diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..d9916aad3663165c4736240353e19734c3a034f9 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +target +work +*.iml +*.iws +*.ipr diff --git a/cli/pom.xml b/cli/pom.xml index 181de7233545960006533e671340a366e4379efb..5f72b126a47edd652bf2f66e16a2def0491143a6 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -4,7 +4,7 @@ pom org.jvnet.hudson.main - 1.306-SNAPSHOT + 1.386-SNAPSHOT cli Hudson CLI @@ -33,7 +33,7 @@ org.jvnet.localizer maven-localizer-plugin - 1.9 + 1.10 @@ -64,7 +64,7 @@ org.jvnet.localizer localizer - 1.9 + 1.10 diff --git a/cli/src/main/java/hudson/cli/CLI.java b/cli/src/main/java/hudson/cli/CLI.java index 402f56b0221ef196a2178515067fdf690d844b63..fa62fa552067df9c6cca85bed98ae29ba5de250b 100644 --- a/cli/src/main/java/hudson/cli/CLI.java +++ b/cli/src/main/java/hudson/cli/CLI.java @@ -27,14 +27,25 @@ import hudson.remoting.Channel; import hudson.remoting.RemoteInputStream; import hudson.remoting.RemoteOutputStream; import hudson.remoting.PingThread; +import hudson.remoting.SocketInputStream; +import hudson.remoting.SocketOutputStream; import java.net.URL; +import java.net.URLConnection; +import java.net.Socket; import java.util.Arrays; import java.util.List; import java.util.Locale; import java.util.ArrayList; +import java.util.logging.Logger; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.io.DataOutputStream; +import java.io.BufferedInputStream; +import java.io.BufferedOutputStream; /** * CLI entry point to Hudson. @@ -42,6 +53,102 @@ import java.util.concurrent.Executors; * @author Kohsuke Kawaguchi */ public class CLI { + private final ExecutorService pool; + private final Channel channel; + private final CliEntryPoint entryPoint; + private final boolean ownsPool; + + public CLI(URL hudson) throws IOException, InterruptedException { + this(hudson,null); + } + + public CLI(URL hudson, ExecutorService exec) throws IOException, InterruptedException { + String url = hudson.toExternalForm(); + if(!url.endsWith("/")) url+='/'; + + ownsPool = exec==null; + pool = exec!=null ? exec : Executors.newCachedThreadPool(); + + int clip = getCliTcpPort(url); + if(clip>=0) { + // connect via CLI port + String host = new URL(url).getHost(); + LOGGER.fine("Trying to connect directly via TCP/IP to port "+clip+" of "+host); + Socket s = new Socket(host,clip); + DataOutputStream dos = new DataOutputStream(s.getOutputStream()); + dos.writeUTF("Protocol:CLI-connect"); + + channel = new Channel("CLI connection to "+hudson, pool, + new BufferedInputStream(new SocketInputStream(s)), + new BufferedOutputStream(new SocketOutputStream(s))); + } else { + // connect via HTTP + LOGGER.fine("Trying to connect to "+url+" via HTTP"); + url+="cli"; + hudson = new URL(url); + + FullDuplexHttpStream con = new FullDuplexHttpStream(hudson); + channel = new Channel("Chunked connection to "+hudson, + pool,con.getInputStream(),con.getOutputStream()); + new PingThread(channel,30*1000) { + protected void onDead() { + // noop. the point of ping is to keep the connection alive + // as most HTTP servers have a rather short read time out + } + }.start(); + } + + // execute the command + entryPoint = (CliEntryPoint)channel.waitForRemoteProperty(CliEntryPoint.class.getName()); + + if(entryPoint.protocolVersion()!=CliEntryPoint.VERSION) + throw new IOException(Messages.CLI_VersionMismatch()); + } + + /** + * If the server advertises CLI port, returns it. + */ + private int getCliTcpPort(String url) throws IOException { + URLConnection head = new URL(url).openConnection(); + try { + head.connect(); + } catch (IOException e) { + throw (IOException)new IOException("Failed to connect to "+url).initCause(e); + } + String p = head.getHeaderField("X-Hudson-CLI-Port"); + if(p==null) return -1; + return Integer.parseInt(p); + } + + public void close() throws IOException, InterruptedException { + channel.close(); + channel.join(); + if(ownsPool) + pool.shutdown(); + } + + public int execute(List args, InputStream stdin, OutputStream stdout, OutputStream stderr) { + return entryPoint.main(args,Locale.getDefault(), + new RemoteInputStream(stdin), + new RemoteOutputStream(stdout), + new RemoteOutputStream(stderr)); + } + + public int execute(List args) { + return execute(args,System.in,System.out,System.err); + } + + public int execute(String... args) { + return execute(Arrays.asList(args)); + } + + /** + * Returns true if the named command exists. + */ + public boolean hasCommand(String name) { + return entryPoint.hasCommand(name); + } + public static void main(final String[] _args) throws Exception { List args = Arrays.asList(_args); @@ -57,43 +164,23 @@ public class CLI { break; } - if(url==null) + if(url==null) { printUsageAndExit(Messages.CLI_NoURL()); - if(!url.endsWith("/")) url+='/'; - url+="cli"; + return; + } if(args.isEmpty()) args = Arrays.asList("help"); // default to help - FullDuplexHttpStream con = new FullDuplexHttpStream(new URL(url)); - ExecutorService pool = Executors.newCachedThreadPool(); - Channel channel = new Channel("Chunked connection to "+url, - pool,con.getInputStream(),con.getOutputStream()); - new PingThread(channel,30*1000) { - protected void onDead() { - // noop. the point of ping is to keep the connection alive - // as most HTTP servers have a rather short read time out - } - }.start(); - - // execute the command - int r=-1; + CLI cli = new CLI(new URL(url)); try { - CliEntryPoint cli = (CliEntryPoint)channel.waitForRemoteProperty(CliEntryPoint.class.getName()); - if(cli.protocolVersion()!=CliEntryPoint.VERSION) { - System.err.println(Messages.CLI_VersionMismatch()); - } else { - // Arrays.asList is not serializable --- see 6835580 - args = new ArrayList(args); - r = cli.main(args, Locale.getDefault(), new RemoteInputStream(System.in), - new RemoteOutputStream(System.out), new RemoteOutputStream(System.err)); - } + // execute the command + // Arrays.asList is not serializable --- see 6835580 + args = new ArrayList(args); + System.exit(cli.execute(args, System.in, System.out, System.err)); } finally { - channel.close(); - pool.shutdown(); + cli.close(); } - - System.exit(r); } private static void printUsageAndExit(String msg) { @@ -101,4 +188,6 @@ public class CLI { System.err.println(Messages.CLI_Usage()); System.exit(-1); } + + private static final Logger LOGGER = Logger.getLogger(CLI.class.getName()); } diff --git a/cli/src/main/java/hudson/cli/CliEntryPoint.java b/cli/src/main/java/hudson/cli/CliEntryPoint.java index 79a1c7ff488853b81812fa8fcd2e3f89c95814f2..1f5478d191495bf86e20a3bc2d32ce78fab02912 100644 --- a/cli/src/main/java/hudson/cli/CliEntryPoint.java +++ b/cli/src/main/java/hudson/cli/CliEntryPoint.java @@ -42,6 +42,11 @@ public interface CliEntryPoint { */ int main(List args, Locale locale, InputStream stdin, OutputStream stdout, OutputStream stderr); + /** + * Does the named command exist? + */ + boolean hasCommand(String name); + /** * Returns {@link #VERSION}, so that the client and the server can detect version incompatibility * gracefully. diff --git a/cli/src/main/java/hudson/cli/FullDuplexHttpStream.java b/cli/src/main/java/hudson/cli/FullDuplexHttpStream.java index f7f73e69aea7e639a33aeb0af592a1c121cebe1d..369448ec53fd9e7ce72d415596b8c43d4cc1524f 100644 --- a/cli/src/main/java/hudson/cli/FullDuplexHttpStream.java +++ b/cli/src/main/java/hudson/cli/FullDuplexHttpStream.java @@ -1,11 +1,17 @@ package hudson.cli; +import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; +import java.io.InputStreamReader; import java.io.OutputStream; import java.net.HttpURLConnection; import java.net.URL; import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; + +import sun.misc.BASE64Encoder; /** * Creates a capacity-unlimited bi-directional {@link InputStream}/{@link OutputStream} pair over @@ -15,10 +21,6 @@ import java.util.UUID; */ public class FullDuplexHttpStream { private final URL target; - /** - * Uniquely identifies this connection, so that the server can bundle separate HTTP requests together. - */ - private final UUID uuid = UUID.randomUUID(); private final OutputStream output; private final InputStream input; @@ -34,12 +36,27 @@ public class FullDuplexHttpStream { public FullDuplexHttpStream(URL target) throws IOException { this.target = target; + String authorization = null; + if (target.getUserInfo() != null) { + authorization = new BASE64Encoder().encode(target.getUserInfo().getBytes()); + } + + CrumbData crumbData = new CrumbData(); + + UUID uuid = UUID.randomUUID(); // so that the server can correlate those two connections + // server->client HttpURLConnection con = (HttpURLConnection) target.openConnection(); con.setDoOutput(true); // request POST to avoid caching con.setRequestMethod("POST"); - con.addRequestProperty("Session",uuid.toString()); + con.addRequestProperty("Session", uuid.toString()); con.addRequestProperty("Side","download"); + if (authorization != null) { + con.addRequestProperty("Authorization", "Basic " + authorization); + } + if(crumbData.isValid) { + con.addRequestProperty(crumbData.crumbName, crumbData.crumb); + } con.getOutputStream().close(); input = con.getInputStream(); // make sure we hit the right URL @@ -51,10 +68,61 @@ public class FullDuplexHttpStream { con.setDoOutput(true); // request POST con.setRequestMethod("POST"); con.setChunkedStreamingMode(0); - con.addRequestProperty("Session",uuid.toString()); + con.setRequestProperty("Content-type","application/octet-stream"); + con.addRequestProperty("Session", uuid.toString()); con.addRequestProperty("Side","upload"); + if (authorization != null) { + con.addRequestProperty ("Authorization", "Basic " + authorization); + } + + if(crumbData.isValid) { + con.addRequestProperty(crumbData.crumbName, crumbData.crumb); + } output = con.getOutputStream(); } static final int BLOCK_SIZE = 1024; + static final Logger LOGGER = Logger.getLogger(FullDuplexHttpStream.class.getName()); + + private final class CrumbData { + String crumbName; + String crumb; + boolean isValid; + + private CrumbData() { + this.crumbName = ""; + this.crumb = ""; + this.isValid = false; + getData(); + } + + private void getData() { + try { + String base = createCrumbUrlBase(); + crumbName = readData(base+"?xpath=/*/crumbRequestField/text()"); + crumb = readData(base+"?xpath=/*/crumb/text()"); + isValid = true; + LOGGER.fine("Crumb data: "+crumbName+"="+crumb); + } catch (IOException e) { + // presumably this Hudson doesn't use crumb + LOGGER.log(Level.FINE,"Failed to get crumb data",e); + } + } + + private String createCrumbUrlBase() { + String url = target.toExternalForm(); + return new StringBuilder(url.substring(0, url.lastIndexOf("/cli"))).append("/crumbIssuer/api/xml/").toString(); + } + + private String readData(String dest) throws IOException { + HttpURLConnection con = (HttpURLConnection) new URL(dest).openConnection(); + try { + BufferedReader reader = new BufferedReader(new InputStreamReader(con.getInputStream())); + return reader.readLine(); + } + finally { + con.disconnect(); + } + } + } } diff --git a/cli/src/main/resources/hudson/cli/Messages_da.properties b/cli/src/main/resources/hudson/cli/Messages_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..264c9c146a1c8aa78b987fb6463d3d808fa5374d --- /dev/null +++ b/cli/src/main/resources/hudson/cli/Messages_da.properties @@ -0,0 +1,28 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +CLI.VersionMismatch=Versionskonflikt. CLI''en fungerer ikke med denne Hudson server +CLI.Usage=Hudson CLI\n\ +Brug: java -jar hudson-cli.jar [-s URL] command [opts...] args...\n\ +Tilvalg:\n\ +De tilg\u00e6ngelige kommandoer afh\u00e6nger af serveren. K\u00f8r 'help' kommandoen for at se listen. +CLI.NoURL=Hverken -s eller HUDSON_URL milj\u00f8variablen er defineret diff --git a/cli/src/main/resources/hudson/cli/Messages_de.properties b/cli/src/main/resources/hudson/cli/Messages_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..4b290fa05f21bcb813dd59cceaec77955319f966 --- /dev/null +++ b/cli/src/main/resources/hudson/cli/Messages_de.properties @@ -0,0 +1,9 @@ +CLI.Usage=Hudson Kommandozeilenschnittstelle (Hudson CLI)\n\ + Verwendung: java -jar hudson-cli.jar [-s URL] command [opts...] args...\n\ + Optionen:\n\ + \ -s URL : URL des Hudson-Servers (Wert der Umgebungsvariable HUDSON_URL ist der Vorgabewert)\n\ + \n\ + Die verfügbaren Kommandos hängen vom kontaktierten Server ab. Verwenden Sie das Kommando \ + 'help', um eine Liste aller verfügbaren Kommandos anzuzeigen. +CLI.NoURL=Weder die Option -s noch eine Umgebungsvariable HUDSON_URL wurde spezifiziert. +CLI.VersionMismatch=Versionskonflikt: Diese Version von Hudson CLI ist nicht mit dem Hudson-Server kompatibel. diff --git a/cli/src/main/resources/hudson/cli/Messages_es.properties b/cli/src/main/resources/hudson/cli/Messages_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..5da93a62e2a6bd45e06d7c9e0972af522e962f38 --- /dev/null +++ b/cli/src/main/resources/hudson/cli/Messages_es.properties @@ -0,0 +1,9 @@ +CLI.Usage=Hudson CLI\n\ + Usar: java -jar hudson-cli.jar [-s URL] command [opts...] args...\n\ + Options:\n\ + \ -s URL : dirección web (por defecto se usa la variable HUDSON_URL)\n\ + \n\ + La lista completa de comandos disponibles depende del servidor. Ejecuta\n\ + el comando ''help'' para ver la lista. +CLI.NoURL=No se ha especificado el parámetro -s ni la variable HUDSON_URL +CLI.VersionMismatch=La versión no coincide. Esta CLI no se puede usar en este Hudson diff --git a/cli/src/main/resources/hudson/cli/Messages_ja.properties b/cli/src/main/resources/hudson/cli/Messages_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..3be9f9dda28d8f00893093a973bea3c6ae88f704 --- /dev/null +++ b/cli/src/main/resources/hudson/cli/Messages_ja.properties @@ -0,0 +1,39 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +# Neither -s nor the HUDSON_URL env var is specified. +CLI.NoURL=-s\u3082\u74B0\u5883\u5909\u6570HUDSON_URL\u3082\u6307\u5B9A\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002 +# Version mismatch. This CLI cannot work with this Hudson server +CLI.VersionMismatch=\u30D0\u30FC\u30B8\u30E7\u30F3\u30DF\u30B9\u30DE\u30C3\u30C1\u3067\u3059\u3002\u3053\u306ECLI\u306FHudson\u30B5\u30FC\u30D0\u3067\u306F\u52D5\u304D\u307E\u305B\u3093\u3002 +# Hudson CLI\n\ +# Usage: java -jar hudson-cli.jar [-s URL] command [opts...] args...\n\ +# Options:\n\ +# \ -s URL : specify the server URL (defaults to the HUDSON_URL env var)\n\ +# \n\ +# The available commands depend on the server. Run the 'help' command to\n\ +# see the list. +CLI.Usage=Hudson CLI\n\ + \u4F7F\u7528\u65B9\u6CD5: java -jar hudson-cli.jar [-s URL] command [opts...] args...\n\ + \u30AA\u30D7\u30B7\u30E7\u30F3:\n\ + \ -s URL : \u30B5\u30FC\u30D0\u306EURL\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u30C7\u30D5\u30A9\u30EB\u30C8\u306F\u74B0\u5883\u5909\u6570HUDSON_URL\u3067\u3059\uFF09\u3002\n\ + \n\ + \u5229\u7528\u53EF\u80FD\u306A\u30B3\u30DE\u30F3\u30C9\u306F\u30B5\u30FC\u30D0\u306B\u4F9D\u5B58\u3057\u307E\u3059\u3002\u305D\u306E\u30EA\u30B9\u30C8\u3092\u307F\u308B\u306B\u306F'help'\u30B3\u30DE\u30F3\u30C9\u3092\u5B9F\u884C\u3057\u3066\u304F\u3060\u3055\u3044\u3002 diff --git a/cli/src/main/resources/hudson/cli/Messages_pt_BR.properties b/cli/src/main/resources/hudson/cli/Messages_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..7152ef0f18a6c112cf6bcaf174183c748f704cd0 --- /dev/null +++ b/cli/src/main/resources/hudson/cli/Messages_pt_BR.properties @@ -0,0 +1,41 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Reginaldo L. Russinholi +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +# Version mismatch. This CLI cannot work with this Hudson server +CLI.VersionMismatch=A versão não coincide. Esta CLI não pode funcionar com este servidor Hudson +# Hudson CLI\n\ +# Usage: java -jar hudson-cli.jar [-s URL] command [opts...] args...\n\ +# Options:\n\ +# \ -s URL : specify the server URL (defaults to the HUDSON_URL env var)\n\ +# \n\ +# The available commands depend on the server. Run the 'help' command to\n\ +# see the list. +CLI.Usage=Hudson CLI\n\ + Uso: java -jar hudson-cli.jar [-s URL] comando [opções...] parâmetros...\n\ + Opções:\n\ + \ -s URL : a URL do servidor (por padrão a variável de ambiente HUDSON_URL é usada)\n\ + \n\ + Os comandos disponíveis dependem do servidor. Execute o comando 'help' para\n\ + ver a lista. + +# Neither -s nor the HUDSON_URL env var is specified. +CLI.NoURL=Não foi especificado nem '-s' e nem a variável de ambiente HUDSON_URL diff --git a/core/pom.xml b/core/pom.xml index 8ee9bcc0dc081524c7ffe74130a103b77f24f199..2e8c845ce1dbd47c706c05b14148d017a87e7d6a 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -1,7 +1,8 @@ + 128m + org.jvnet.localizer maven-localizer-plugin - 1.9 + 1.10 @@ -83,16 +103,41 @@ THE SOFTWARE. - maven-antlr-plugin - - ${basedir}/src/main/grammar - crontab.g - + org.kohsuke + access-modifier-checker + 1.0 + + + + enforce + + + + + + org.codehaus.mojo + antlr-maven-plugin + 2.1 + cron generate + + ${basedir}/src/main/grammar + crontab.g + + + + labelExpr + + generate + + + ${basedir}/src/main/grammar + labelExpr.g + @@ -105,9 +150,17 @@ THE SOFTWARE. - + - + + + + + + + + + @@ -158,7 +211,7 @@ THE SOFTWARE. org.jvnet.hudson.tools extension-point-lister - 1.2 + 1.7 com.sun @@ -186,7 +239,7 @@ THE SOFTWARE. release - ${version} + ${project.version} @@ -227,7 +280,7 @@ THE SOFTWARE. - + findbugs @@ -281,18 +334,6 @@ THE SOFTWARE. - - sorcerer - - - - org.jvnet.sorcerer - maven-sorcerer-plugin - 0.7-SNAPSHOT - - - - @@ -306,6 +347,11 @@ THE SOFTWARE. cli ${project.version} + + org.jvnet.hudson + crypto-util + 1.0 + org.jvnet.hudson jtidy @@ -319,24 +365,25 @@ THE SOFTWARE. - org.jvnet.hudson.svnkit - svnkit - 1.2.2-hudson-4 + org.jruby.ext.posix + jna-posix + 1.0.3 org.kohsuke trilead-putty-extension 1.0 + + org.jvnet.hudson + trilead-ssh2 + build212-hudson-5 + org.kohsuke.stapler stapler-jelly - 1.104 + 1.154 - - dom4j - dom4j - commons-jelly commons-jelly @@ -347,20 +394,53 @@ THE SOFTWARE. + + org.kohsuke.stapler + stapler-adjunct-timeline + 1.2 + + + org.kohsuke.stapler + stapler-adjunct-timeline + 1.0 + tests + test + + + + com.infradna.tool + bridge-method-annotation + 1.2 + + + + org.kohsuke.stapler + json-lib + 2.1-rev6 + args4j args4j - 2.0.13 + 2.0.16 + + + org.jvnet.hudson + annotation-indexer + 1.2 + + + org.jvnet.hudson + task-reactor + 1.2 org.jvnet.localizer localizer - 1.9 + 1.10 org.kohsuke graph-layouter - jdk14 1.0 @@ -371,22 +451,17 @@ THE SOFTWARE. org.jvnet.hudson xstream - 1.3.1-hudson-2 + 1.3.1-hudson-8 jfree jfreechart 1.0.9 - - org.apache.ant - ant-junit - 1.7.0 - org.apache.ant ant - 1.7.0 + 1.8.0 javax.servlet @@ -397,7 +472,7 @@ THE SOFTWARE. commons-io commons-io - 1.3.1 + 1.4 commons-lang @@ -428,23 +503,18 @@ THE SOFTWARE. javax.mail mail 1.4 - - - javax.activation - activation - 1.1 - - - org.jvnet.hudson.dom4j - dom4j - 1.6.1-hudson-1 - - xml-apis - xml-apis + + javax.activation + activation + + org.jvnet.hudson + activation + 1.1.1-hudson-1 + jaxen jaxen @@ -532,11 +602,6 @@ THE SOFTWARE. commons-jexl 1.1-hudson-20090508 - - org.jvnet.hudson - commons-jelly - 1.1-hudson-20090227 - org.acegisecurity acegi-security @@ -571,10 +636,15 @@ THE SOFTWARE. spring-core 2.5 + + org.springframework + spring-aop + 2.5 + xpp3 xpp3 - 1.1.3.3 + 1.1.4c junit @@ -604,12 +674,12 @@ THE SOFTWARE. org.jvnet.winp winp - 1.10 + 1.14 org.jvnet.hudson memory-monitor - 1.1 + 1.3 com.octo.captcha @@ -659,10 +729,15 @@ THE SOFTWARE. wstx-asl 3.2.7 + + org.jvnet.hudson + jmdns + 3.1.6-hudson-2 + com.sun.winsw winsw - 1.5 + 1.8 bin exe provided @@ -670,22 +745,22 @@ THE SOFTWARE. net.java.dev.jna jna - 3.0.9 + 3.2.4 com.sun.akuma akuma - 1.1 + 1.2 org.jvnet.libpam4j libpam4j - 1.1 + 1.2 org.jvnet.libzfs libzfs - 0.4 + 0.5 com.sun.solaris @@ -695,7 +770,7 @@ THE SOFTWARE. net.java.sezpoz sezpoz - 1.4 + 1.7 org.jvnet.hudson @@ -704,8 +779,38 @@ THE SOFTWARE. org.jvnet.hudson - htmlunit - 2.2-hudson-9 + windows-remote-command + 1.0 + + + org.kohsuke.metainf-services + metainf-services + 1.1 + true + + + org.jvnet.robust-http-client + robust-http-client + 1.1 + + + + commons-codec + commons-codec + 1.4 + + + + + asm + asm-commons + 2.2.3 + + + + org.kohsuke + access-modifier-annotation + 1.0 @@ -723,6 +828,7 @@ THE SOFTWARE. org.kohsuke.stapler maven-stapler-plugin + 1.15 /lib/.* @@ -731,6 +837,7 @@ THE SOFTWARE. maven-project-info-reports-plugin + 2.1 false diff --git a/core/src/build-script/Cobertura.groovy b/core/src/build-script/Cobertura.groovy index 349566dd2fef2ef8c9ef92744dec29bdc6048114..073f6291b77c10c07ad948a47a264997e1c7069f 100644 --- a/core/src/build-script/Cobertura.groovy +++ b/core/src/build-script/Cobertura.groovy @@ -49,12 +49,14 @@ public class Cobertura { junitClasspath() } batchtest(todir:dir("target/surefire-reports")) { - fileset(dir:"src/test/java") { - include(name:"**/*Test.java") + fileset(dir:"target/test-classes") { + include(name:"**/*Test.class") } formatter(type:"xml") } sysproperty(key:"net.sourceforge.cobertura.datafile",value:ser) + sysproperty(key:"hudson.ClassicPluginStrategy.useAntClassLoader",value:"true") + jvmarg(value:"-XX:MaxPermSize=128m") } } diff --git a/core/src/main/grammar/labelExpr.g b/core/src/main/grammar/labelExpr.g new file mode 100644 index 0000000000000000000000000000000000000000..bbfa77784e843b7bfb7f82b1121b3f05ac5a0e57 --- /dev/null +++ b/core/src/main/grammar/labelExpr.g @@ -0,0 +1,115 @@ +/* + * The MIT License + * + * Copyright (c) 2010, InfraDNA, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +header { + package hudson.model.labels; + import hudson.model.Label; +} + +class LabelExpressionParser extends Parser; +options { + defaultErrorHandler=false; +} + +// order of precedence is as per http://en.wikipedia.org/wiki/Logical_connective#Order_of_precedence + +expr +returns [Label l] + : l=term1 EOF + ; + +term1 +returns [Label l] +{ Label r; } + : l=term2( IFF r=term2 {l=l.iff(r);} )? + ; + +term2 +returns [Label l] +{ Label r; } + : l=term3( IMPLIES r=term3 {l=l.implies(r);} )? + ; + +term3 +returns [Label l] +{ Label r; } + : l=term4 ( OR r=term4 {l=l.or(r);} )? + ; + +term4 +returns [Label l] +{ Label r; } + : l=term5 ( AND r=term5 {l=l.and(r);} )? + ; + +term5 +returns [Label l] +{ Label x; } + : l=term6 + | NOT x=term6 + { l=x.not(); } + ; + +term6 +returns [Label l] +options { generateAmbigWarnings=false; } + : LPAREN l=term1 RPAREN + { l=l.paren(); } + | a:ATOM + { l=LabelAtom.get(a.getText()); } + | s:STRINGLITERAL + { l=LabelAtom.get(hudson.util.QuotedStringTokenizer.unquote(s.getText())); } + ; + +class LabelExpressionLexer extends Lexer; + +AND: "&&"; +OR: "||"; +NOT: "!"; +IMPLIES:"->"; +IFF: "<->"; +LPAREN: "("; +RPAREN: ")"; + +protected +IDENTIFIER_PART + : ~( '&' | '|' | '!' | '<' | '>' | '(' | ')' | ' ' | '\t' | '\"' | '\'' ) + ; + +ATOM +/* the real check of valid identifier happens in LabelAtom.get() */ + : (IDENTIFIER_PART)+ + ; + +WS + : (' '|'\t')+ + { $setType(Token.SKIP); } + ; + +STRINGLITERAL + : '"' + ( '\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\"' | '\'' | '\\' ) /* escape */ + | ~( '\\' | '"' | '\r' | '\n' ) + )* + '"' + ; diff --git a/core/src/main/java/hudson/AbortException.java b/core/src/main/java/hudson/AbortException.java index 3a1e50cd389a8b1989388cf4bbcdec444d11baf8..41a10739eb16075a27a26a6704923fa45432d131 100644 --- a/core/src/main/java/hudson/AbortException.java +++ b/core/src/main/java/hudson/AbortException.java @@ -27,7 +27,7 @@ import java.io.IOException; /** * Signals a failure where the error was anticipated and diagnosed. - * When this exception is caughted, + * When this exception is caught, * the stack trace will not be printed, and the build will be marked as a failure. * * @author Kohsuke Kawaguchi diff --git a/core/src/main/java/hudson/AbstractMarkupText.java b/core/src/main/java/hudson/AbstractMarkupText.java index 41e4304389321ade0a62bb91920bdee3f51dadca..4f1062615b0f3377cbce34268ec83a2f6e4abed4 100644 --- a/core/src/main/java/hudson/AbstractMarkupText.java +++ b/core/src/main/java/hudson/AbstractMarkupText.java @@ -45,10 +45,14 @@ public abstract class AbstractMarkupText { /** * Returns the plain text portion of this {@link MarkupText} without - * any markup. + * any markup, nor any escape. */ public abstract String getText(); + public char charAt(int idx) { + return getText().charAt(idx); + } + /** * Length of the plain text. */ @@ -56,6 +60,14 @@ public abstract class AbstractMarkupText { return getText().length(); } + /** + * Returns a subtext. + * + * @param end + * If negative, -N means "trim the last N-1 chars". That is, (s,-1) is the same as (s,length) + */ + public abstract MarkupText.SubText subText(int start, int end); + /** * Adds a start tag and end tag at the specified position. * @@ -65,6 +77,15 @@ public abstract class AbstractMarkupText { */ public abstract void addMarkup( int startPos, int endPos, String startTag, String endTag ); + /** + * Inserts an A tag that surrounds the given position. + * + * @since 1.349 + */ + public void addHyperlink( int startPos, int endPos, String url ) { + addMarkup(startPos,endPos,"",""); + } + /** * Adds a start tag and end tag around the entire text */ @@ -72,6 +93,21 @@ public abstract class AbstractMarkupText { addMarkup(0,length(),startTag,endTag); } + /** + * Find the first occurrence of the given pattern in this text, or null. + * + * @since 1.349 + */ + public MarkupText.SubText findToken(Pattern pattern) { + String text = getText(); + Matcher m = pattern.matcher(text); + + if(m.find()) + return createSubText(m); + + return null; + } + /** * Find all "tokens" that match the given pattern in this text. * diff --git a/core/src/main/java/hudson/BulkChange.java b/core/src/main/java/hudson/BulkChange.java index 9c9047a9de5d2f66843228603a6bf176ba9040c1..9625452c95119991019f79ea2f3112cf84e996ed 100644 --- a/core/src/main/java/hudson/BulkChange.java +++ b/core/src/main/java/hudson/BulkChange.java @@ -157,8 +157,18 @@ public class BulkChange { */ public static boolean contains(Saveable s) { for(BulkChange b=current(); b!=null; b=b.parent) - if(b.saveable== s) + if(b.saveable==s || b.saveable==ALL) return true; return false; } + + /** + * Magic {@link Saveable} instance that can make {@link BulkChange} veto + * all the save operations by making the {@link #contains(Saveable)} method return + * true for everything. + */ + public static final Saveable ALL = new Saveable() { + public void save() { + } + }; } diff --git a/core/src/main/java/hudson/ClassicPluginStrategy.java b/core/src/main/java/hudson/ClassicPluginStrategy.java index a6aee7a3eb5e4603fa024e8a309a3ea02ede4ffe..57d7cff079fde195fd694a02e56b2a8dcbcae828 100644 --- a/core/src/main/java/hudson/ClassicPluginStrategy.java +++ b/core/src/main/java/hudson/ClassicPluginStrategy.java @@ -25,7 +25,9 @@ package hudson; import hudson.PluginWrapper.Dependency; import hudson.util.IOException2; -import hudson.model.Hudson; +import hudson.util.MaskingClassLoader; +import hudson.util.VersionNumber; +import hudson.Plugin.DummyImpl; import java.io.BufferedReader; import java.io.File; @@ -33,21 +35,29 @@ import java.io.FileInputStream; import java.io.FileReader; import java.io.FilenameFilter; import java.io.IOException; +import java.io.Closeable; import java.net.URL; import java.net.URLClassLoader; import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.Collections; +import java.util.Enumeration; +import java.util.HashSet; import java.util.List; import java.util.jar.Manifest; +import java.util.jar.Attributes; import java.util.logging.Logger; import org.apache.tools.ant.BuildException; import org.apache.tools.ant.Project; +import org.apache.tools.ant.AntClassLoader; import org.apache.tools.ant.taskdefs.Expand; import org.apache.tools.ant.types.FileSet; public class ClassicPluginStrategy implements PluginStrategy { - - private static final Logger LOGGER = Logger.getLogger(ClassicPluginStrategy.class.getName()); + + private static final Logger LOGGER = Logger.getLogger(ClassicPluginStrategy.class.getName()); /** * Filter for jar files. @@ -59,133 +69,194 @@ public class ClassicPluginStrategy implements PluginStrategy { }; private PluginManager pluginManager; - - public ClassicPluginStrategy(PluginManager pluginManager) { - this.pluginManager = pluginManager; - } - - public PluginWrapper createPluginWrapper(File archive) throws IOException { - LOGGER.info("Loading plugin: " + archive); - - Manifest manifest; - URL baseResourceURL; - - boolean isLinked = archive.getName().endsWith(".hpl"); - - File expandDir = null; - // if .hpi, this is the directory where war is expanded - - if (isLinked) { - // resolve the .hpl file to the location of the manifest file - String firstLine = new BufferedReader(new FileReader(archive)) - .readLine(); - if (firstLine.startsWith("Manifest-Version:")) { - // this is the manifest already - } else { - // indirection - archive = resolve(archive, firstLine); - } - // then parse manifest - FileInputStream in = new FileInputStream(archive); - try { - manifest = new Manifest(in); - } catch (IOException e) { - throw new IOException2("Failed to load " + archive, e); - } finally { - in.close(); - } - } else { - expandDir = new File(archive.getParentFile(), PluginWrapper.getBaseName(archive)); - explode(archive, expandDir); - - File manifestFile = new File(expandDir, "META-INF/MANIFEST.MF"); - if (!manifestFile.exists()) { - throw new IOException( - "Plugin installation failed. No manifest at " - + manifestFile); - } - FileInputStream fin = new FileInputStream(manifestFile); - try { - manifest = new Manifest(fin); - } finally { - fin.close(); - } - } - - // TODO: define a mechanism to hide classes - // String export = manifest.getMainAttributes().getValue("Export"); - - List paths = new ArrayList(); - if (isLinked) { - parseClassPath(manifest, archive, paths, "Libraries", ","); - parseClassPath(manifest, archive, paths, "Class-Path", " +"); // backward - // compatibility - - baseResourceURL = resolve(archive, - manifest.getMainAttributes().getValue("Resource-Path")) - .toURL(); - } else { - File classes = new File(expandDir, "WEB-INF/classes"); - if (classes.exists()) - paths.add(classes.toURL()); - File lib = new File(expandDir, "WEB-INF/lib"); - File[] libs = lib.listFiles(JAR_FILTER); - if (libs != null) { - for (File jar : libs) - paths.add(jar.toURL()); - } - - baseResourceURL = expandDir.toURL(); - } - File disableFile = new File(archive.getPath() + ".disabled"); - if (disableFile.exists()) { - LOGGER.info("Plugin is disabled"); - } - - // compute dependencies - List dependencies = new ArrayList(); - List optionalDependencies = new ArrayList(); - String v = manifest.getMainAttributes().getValue("Plugin-Dependencies"); - if (v != null) { - for (String s : v.split(",")) { - PluginWrapper.Dependency d = new PluginWrapper.Dependency(s); - if (d.optional) { - optionalDependencies.add(d); - } else { - dependencies.add(d); - } - } - } - - // native m2 support moved to a plugin starting 1.296, so plugins built before that - // needs to have an implicit dependency to the maven-plugin, or NoClassDefError will ensue. - String hudsonVersion = manifest.getMainAttributes().getValue("Hudson-Version"); - String shortName = manifest.getMainAttributes().getValue("Short-Name"); - if (!"maven-plugin".equals(shortName) && - // some earlier versions of maven-hpi-plugin apparently puts "null" as a literal here. Watch out for those. - (hudsonVersion == null || hudsonVersion.equals("null") || hudsonVersion.compareTo("1.296") <= 0)) { - optionalDependencies.add(new PluginWrapper.Dependency("maven-plugin:" + Hudson.VERSION)); + + public ClassicPluginStrategy(PluginManager pluginManager) { + this.pluginManager = pluginManager; + } + + public PluginWrapper createPluginWrapper(File archive) throws IOException { + final Manifest manifest; + URL baseResourceURL; + + File expandDir = null; + // if .hpi, this is the directory where war is expanded + + boolean isLinked = archive.getName().endsWith(".hpl"); + if (isLinked) { + // resolve the .hpl file to the location of the manifest file + String firstLine = new BufferedReader(new FileReader(archive)) + .readLine(); + if (firstLine.startsWith("Manifest-Version:")) { + // this is the manifest already + } else { + // indirection + archive = resolve(archive, firstLine); + } + // then parse manifest + FileInputStream in = new FileInputStream(archive); + try { + manifest = new Manifest(in); + } catch (IOException e) { + throw new IOException2("Failed to load " + archive, e); + } finally { + in.close(); + } + } else { + if (archive.isDirectory()) {// already expanded + expandDir = archive; + } else { + expandDir = new File(archive.getParentFile(), PluginWrapper.getBaseName(archive)); + explode(archive, expandDir); + } + + File manifestFile = new File(expandDir, "META-INF/MANIFEST.MF"); + if (!manifestFile.exists()) { + throw new IOException( + "Plugin installation failed. No manifest at " + + manifestFile); + } + FileInputStream fin = new FileInputStream(manifestFile); + try { + manifest = new Manifest(fin); + } finally { + fin.close(); + } + } + + final Attributes atts = manifest.getMainAttributes(); + + // TODO: define a mechanism to hide classes + // String export = manifest.getMainAttributes().getValue("Export"); + + List paths = new ArrayList(); + if (isLinked) { + parseClassPath(manifest, archive, paths, "Libraries", ","); + parseClassPath(manifest, archive, paths, "Class-Path", " +"); // backward compatibility + + baseResourceURL = resolve(archive,atts.getValue("Resource-Path")).toURI().toURL(); + } else { + File classes = new File(expandDir, "WEB-INF/classes"); + if (classes.exists()) + paths.add(classes); + File lib = new File(expandDir, "WEB-INF/lib"); + File[] libs = lib.listFiles(JAR_FILTER); + if (libs != null) + paths.addAll(Arrays.asList(libs)); + + baseResourceURL = expandDir.toURI().toURL(); + } + File disableFile = new File(archive.getPath() + ".disabled"); + if (disableFile.exists()) { + LOGGER.info("Plugin " + archive.getName() + " is disabled"); + } + + // compute dependencies + List dependencies = new ArrayList(); + List optionalDependencies = new ArrayList(); + String v = atts.getValue("Plugin-Dependencies"); + if (v != null) { + for (String s : v.split(",")) { + PluginWrapper.Dependency d = new PluginWrapper.Dependency(s); + if (d.optional) { + optionalDependencies.add(d); + } else { + dependencies.add(d); + } + } + } + for (DetachedPlugin detached : DETACHED_LIST) + detached.fix(atts,optionalDependencies); + + ClassLoader dependencyLoader = new DependencyClassLoader(getBaseClassLoader(atts), archive, Util.join(dependencies,optionalDependencies)); + + return new PluginWrapper(pluginManager, archive, manifest, baseResourceURL, + createClassLoader(paths, dependencyLoader, atts), disableFile, dependencies, optionalDependencies); + } + + @Deprecated + protected ClassLoader createClassLoader(List paths, ClassLoader parent) throws IOException { + return createClassLoader( paths, parent, null ); + } + + /** + * Creates the classloader that can load all the specified jar files and delegate to the given parent. + */ + protected ClassLoader createClassLoader(List paths, ClassLoader parent, Attributes atts) throws IOException { + if (atts != null) { + String usePluginFirstClassLoader = atts.getValue( "PluginFirstClassLoader" ); + if (Boolean.valueOf( usePluginFirstClassLoader )) { + PluginFirstClassLoader classLoader = new PluginFirstClassLoader(); + classLoader.setParentFirst( false ); + classLoader.setParent( parent ); + classLoader.addPathFiles( paths ); + return classLoader; + } + } + if(useAntClassLoader) { + // using AntClassLoader with Closeable so that we can predictably release jar files opened by URLClassLoader + AntClassLoader2 classLoader = new AntClassLoader2(parent); + classLoader.addPathFiles(paths); + return classLoader; + } else { + // Tom reported that AntClassLoader has a performance issue when Hudson keeps trying to load a class that doesn't exist, + // so providing a legacy URLClassLoader support, too + List urls = new ArrayList(); + for (File path : paths) + urls.add(path.toURI().toURL()); + return new URLClassLoader(urls.toArray(new URL[urls.size()]),parent); + } + } + + /** + * Information about plugins that were originally in the core. + */ + private static final class DetachedPlugin { + private final String shortName; + private final VersionNumber splitWhen; + private final String requireVersion; + + private DetachedPlugin(String shortName, String splitWhen, String requireVersion) { + this.shortName = shortName; + this.splitWhen = new VersionNumber(splitWhen); + this.requireVersion = requireVersion; } - ClassLoader dependencyLoader = new DependencyClassLoader(getClass() - .getClassLoader(), Util.join(dependencies,optionalDependencies)); - ClassLoader classLoader = new URLClassLoader(paths.toArray(new URL[paths.size()]), - dependencyLoader); + private void fix(Attributes atts, List optionalDependencies) { + // don't fix the dependency for yourself, or else we'll have a cycle + String yourName = atts.getValue("Short-Name"); + if (shortName.equals(yourName)) return; - return new PluginWrapper(archive, manifest, baseResourceURL, - classLoader, disableFile, dependencies, optionalDependencies); - } + // some earlier versions of maven-hpi-plugin apparently puts "null" as a literal in Hudson-Version. watch out for them. + String hudsonVersion = atts.getValue("Hudson-Version"); + if (hudsonVersion == null || hudsonVersion.equals("null") || new VersionNumber(hudsonVersion).compareTo(splitWhen) <= 0) + optionalDependencies.add(new PluginWrapper.Dependency(shortName+':'+requireVersion)); + } + } - public void initializeComponents(PluginWrapper plugin) { - } + private static final List DETACHED_LIST = Arrays.asList( + new DetachedPlugin("maven-plugin","1.296","1.296"), + new DetachedPlugin("subversion","1.310","1.0"), + new DetachedPlugin("cvs","1.340","0.1") + ); - public void load(PluginWrapper wrapper) throws IOException { - loadPluginDependencies(wrapper.getDependencies(), - wrapper.getOptionalDependencies()); + /** + * Computes the classloader that takes the class masking into account. + * + *

+ * This mechanism allows plugins to have their own verions for libraries that core bundles. + */ + private ClassLoader getBaseClassLoader(Attributes atts) { + ClassLoader base = getClass().getClassLoader(); + String masked = atts.getValue("Mask-Classes"); + if(masked!=null) + base = new MaskingClassLoader(base, masked.trim().split("[ \t\r\n]+")); + return base; + } - if (!wrapper.isActive()) - return; + public void initializeComponents(PluginWrapper plugin) { + } + public void load(PluginWrapper wrapper) throws IOException { // override the context classloader so that XStream activity in plugin.start() // will be able to resolve classes in this plugin ClassLoader old = Thread.currentThread().getContextClassLoader(); @@ -194,7 +265,7 @@ public class ClassicPluginStrategy implements PluginStrategy { String className = wrapper.getPluginClass(); if(className==null) { // use the default dummy instance - wrapper.setPlugin(Plugin.NONE); + wrapper.setPlugin(new DummyImpl()); } else { try { Class clazz = wrapper.classLoader.loadClass(className); @@ -216,7 +287,7 @@ public class ClassicPluginStrategy implements PluginStrategy { // initialize plugin try { - Plugin plugin = wrapper.getPlugin(); + Plugin plugin = wrapper.getPlugin(); plugin.setServletContext(pluginManager.context); startPlugin(wrapper); } catch(Throwable t) { @@ -226,11 +297,11 @@ public class ClassicPluginStrategy implements PluginStrategy { } finally { Thread.currentThread().setContextClassLoader(old); } - } - - public void startPlugin(PluginWrapper plugin) throws Exception { - plugin.getPlugin().start(); - } + } + + public void startPlugin(PluginWrapper plugin) throws Exception { + plugin.getPlugin().start(); + } private static File resolve(File base, String relative) { File rel = new File(relative); @@ -240,7 +311,7 @@ public class ClassicPluginStrategy implements PluginStrategy { return new File(base.getParentFile(),relative); } - private static void parseClassPath(Manifest manifest, File archive, List paths, String attributeName, String separator) throws IOException { + private static void parseClassPath(Manifest manifest, File archive, List paths, String attributeName, String separator) throws IOException { String classPath = manifest.getMainAttributes().getValue(attributeName); if(classPath==null) return; // attribute not found for (String s : classPath.split(separator)) { @@ -252,12 +323,12 @@ public class ClassicPluginStrategy implements PluginStrategy { fs.setDir(dir); fs.setIncludes(file.getName()); for( String included : fs.getDirectoryScanner(new Project()).getIncludedFiles() ) { - paths.add(new File(dir,included).toURL()); + paths.add(new File(dir,included)); } } else { if(!file.exists()) throw new IOException("No such file: "+file); - paths.add(file.toURL()); + paths.add(file); } } } @@ -271,11 +342,9 @@ public class ClassicPluginStrategy implements PluginStrategy { // timestamp check File explodeTime = new File(destDir,".timestamp"); - if(explodeTime.exists() && explodeTime.lastModified()>archive.lastModified()) + if(explodeTime.exists() && explodeTime.lastModified()==archive.lastModified()) return; // no need to expand - LOGGER.info("Extracting "+archive); - // delete the contents so that old files won't interfere with new files Util.deleteContentsRecursive(destDir); @@ -287,55 +356,34 @@ public class ClassicPluginStrategy implements PluginStrategy { e.setDest(destDir); e.execute(); } catch (BuildException x) { - IOException ioe = new IOException("Failed to expand " + archive); - ioe.initCause(x); - throw ioe; + throw new IOException2("Failed to expand " + archive,x); } - Util.touch(explodeTime); + try { + new FilePath(explodeTime).touch(archive.lastModified()); + } catch (InterruptedException e) { + throw new AssertionError(e); // impossible + } } - /** - * Loads the dependencies to other plugins. - * - * @throws IOException - * thrown if one or several mandatory dependencies doesnt - * exists. - */ - private void loadPluginDependencies(List dependencies, - List optionalDependencies) throws IOException { - List missingDependencies = new ArrayList(); - // make sure dependencies exist - for (Dependency d : dependencies) { - if (pluginManager.getPlugin(d.shortName) == null) - missingDependencies.add(d.toString()); - } - if (!missingDependencies.isEmpty()) { - StringBuilder builder = new StringBuilder(); - builder.append("Dependency "); - builder.append(Util.join(missingDependencies, ", ")); - builder.append(" doesn't exist"); - throw new IOException(builder.toString()); - } - - // add the optional dependencies that exists - for (Dependency d : optionalDependencies) { - if (pluginManager.getPlugin(d.shortName) != null) - dependencies.add(d); - } - } - /** * Used to load classes from dependency plugins. */ final class DependencyClassLoader extends ClassLoader { - private List dependencies; + /** + * This classloader is created for this plugin. Useful during debugging. + */ + private final File _for; + + private List dependencies; - public DependencyClassLoader(ClassLoader parent, List dependencies) { + public DependencyClassLoader(ClassLoader parent, File archive, List dependencies) { super(parent); + this._for = archive; this.dependencies = dependencies; } + @Override protected Class findClass(String name) throws ClassNotFoundException { for (Dependency dep : dependencies) { PluginWrapper p = pluginManager.getPlugin(dep.shortName); @@ -350,6 +398,53 @@ public class ClassicPluginStrategy implements PluginStrategy { throw new ClassNotFoundException(name); } - // TODO: delegate resources? watch out for diamond dependencies + @Override + protected Enumeration findResources(String name) throws IOException { + HashSet result = new HashSet(); + for (Dependency dep : dependencies) { + PluginWrapper p = pluginManager.getPlugin(dep.shortName); + if (p!=null) { + Enumeration urls = p.classLoader.getResources(name); + while (urls != null && urls.hasMoreElements()) + result.add(urls.nextElement()); + } + } + + return Collections.enumeration(result); + } + + @Override + protected URL findResource(String name) { + for (Dependency dep : dependencies) { + PluginWrapper p = pluginManager.getPlugin(dep.shortName); + if(p!=null) { + URL url = p.classLoader.getResource(name); + if (url!=null) + return url; + } + } + + return null; + } + } + + /** + * {@link AntClassLoader} with a few methods exposed and {@link Closeable} support. + */ + private static final class AntClassLoader2 extends AntClassLoader implements Closeable { + private AntClassLoader2(ClassLoader parent) { + super(parent,true); + } + + public void addPathFiles(Collection paths) throws IOException { + for (File f : paths) + addPathFile(f); + } + + public void close() throws IOException { + cleanup(); + } } + + public static boolean useAntClassLoader = Boolean.getBoolean(ClassicPluginStrategy.class.getName()+".useAntClassLoader"); } diff --git a/core/src/main/java/hudson/CloseProofOutputStream.java b/core/src/main/java/hudson/CloseProofOutputStream.java index 5af94299f6816959fc4c2c020c77f4e09ffdb226..4256d4ac75bcd70e07ba94a47b602a544f1883d9 100644 --- a/core/src/main/java/hudson/CloseProofOutputStream.java +++ b/core/src/main/java/hudson/CloseProofOutputStream.java @@ -36,6 +36,7 @@ public class CloseProofOutputStream extends DelegatingOutputStream { super(out); } + @Override public void close() { } } diff --git a/core/src/main/java/hudson/DNSMultiCast.java b/core/src/main/java/hudson/DNSMultiCast.java new file mode 100644 index 0000000000000000000000000000000000000000..bcc924f7207b6a47e09f138b0b3e7bf5cb52b87e --- /dev/null +++ b/core/src/main/java/hudson/DNSMultiCast.java @@ -0,0 +1,59 @@ +package hudson; + +import hudson.model.Hudson; + +import javax.jmdns.JmDNS; +import javax.jmdns.ServiceInfo; +import java.io.Closeable; +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; +import java.util.logging.Level; +import java.util.logging.Logger; + +/** + * Registers a DNS multi-cast service-discovery support. + * + * @author Kohsuke Kawaguchi + */ +public class DNSMultiCast implements Closeable { + private JmDNS jmdns; + + public DNSMultiCast(Hudson hudson) { + if (disabled) return; // escape hatch + + try { + this.jmdns = JmDNS.create(); + + Map props = new HashMap(); + String rootURL = hudson.getRootUrl(); + if (rootURL!=null) + props.put("url", rootURL); + try { + props.put("version",String.valueOf(Hudson.getVersion())); + } catch (IllegalArgumentException e) { + // failed to parse the version number + } + + TcpSlaveAgentListener tal = hudson.getTcpSlaveAgentListener(); + if (tal!=null) + props.put("slave-port",String.valueOf(tal.getPort())); + + jmdns.registerService(ServiceInfo.create("_hudson._tcp.local.","hudson", + 80,0,0,props)); + } catch (IOException e) { + LOGGER.log(Level.WARNING,"Failed to advertise the service to DNS multi-cast",e); + } + } + + public void close() { + if (jmdns!=null) { + jmdns.close(); + jmdns = null; + } + } + + private static final Logger LOGGER = Logger.getLogger(DNSMultiCast.class.getName()); + + public static boolean disabled = Boolean.getBoolean(DNSMultiCast.class.getName()+".disabled"); +} diff --git a/core/src/main/java/hudson/DependencyRunner.java b/core/src/main/java/hudson/DependencyRunner.java index 49b8693551dfd284e2adc71ecdd715a3800ec1dc..3af89079cdd9fab24eeef689cfb95a0bd8952316 100644 --- a/core/src/main/java/hudson/DependencyRunner.java +++ b/core/src/main/java/hudson/DependencyRunner.java @@ -1,7 +1,8 @@ /* * The MIT License * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Brian Westrich, Jean-Baptiste Quenot + * Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, + * Brian Westrich, Jean-Baptiste Quenot * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -25,6 +26,7 @@ package hudson; import hudson.model.AbstractProject; import hudson.model.Hudson; +import hudson.security.ACL; import java.util.ArrayList; import java.util.HashSet; @@ -32,6 +34,8 @@ import java.util.List; import java.util.Set; import java.util.Collection; import java.util.logging.Logger; +import org.acegisecurity.Authentication; +import org.acegisecurity.context.SecurityContextHolder; /** * Runs a job on all projects in the order of dependencies @@ -49,22 +53,27 @@ public class DependencyRunner implements Runnable { } public void run() { - Set topLevelProjects = new HashSet(); - // Get all top-level projects - LOGGER.fine("assembling top level projects"); - for (AbstractProject p : Hudson.getInstance().getAllItems( - AbstractProject.class)) - if (p.getUpstreamProjects().size() == 0) { - LOGGER.fine("adding top level project " + p.getName()); - topLevelProjects.add(p); - } else { - LOGGER.fine("skipping project since not a top level project: " - + p.getName()); + Authentication saveAuth = SecurityContextHolder.getContext().getAuthentication(); + SecurityContextHolder.getContext().setAuthentication(ACL.SYSTEM); + + try { + Set topLevelProjects = new HashSet(); + // Get all top-level projects + LOGGER.fine("assembling top level projects"); + for (AbstractProject p : Hudson.getInstance().getAllItems(AbstractProject.class)) + if (p.getUpstreamProjects().size() == 0) { + LOGGER.fine("adding top level project " + p.getName()); + topLevelProjects.add(p); + } else { + LOGGER.fine("skipping project since not a top level project: " + p.getName()); + } + populate(topLevelProjects); + for (AbstractProject p : polledProjects) { + LOGGER.fine("running project in correct dependency order: " + p.getName()); + runnable.run(p); } - populate(topLevelProjects); - for (AbstractProject p : polledProjects) { - LOGGER.fine("running project in correct dependency order: " + p.getName()); - runnable.run(p); + } finally { + SecurityContextHolder.getContext().setAuthentication(saveAuth); } } @@ -77,7 +86,7 @@ public class DependencyRunner implements Runnable { polledProjects.remove(p); } - LOGGER.fine("adding project " + p.getName()); + LOGGER.fine("adding project " + p.getName()); polledProjects.add(p); // Add all downstream dependencies diff --git a/core/src/main/java/hudson/DescriptorExtensionList.java b/core/src/main/java/hudson/DescriptorExtensionList.java index d4bc87db21d53f1b2b2df747860cb996dbcec257..535a58a814d0d026286e66f319674ca76ce01687 100644 --- a/core/src/main/java/hudson/DescriptorExtensionList.java +++ b/core/src/main/java/hudson/DescriptorExtensionList.java @@ -28,8 +28,8 @@ import hudson.model.Describable; import hudson.model.Hudson; import hudson.model.ViewDescriptor; import hudson.model.Descriptor.FormException; +import hudson.util.AdaptedIterator; import hudson.util.Memoizer; -import hudson.util.Iterators; import hudson.util.Iterators.FlattenIterator; import hudson.slaves.NodeDescriptor; import hudson.tasks.Publisher; @@ -67,10 +67,12 @@ public class DescriptorExtensionList, D extends Descrip /** * Creates a new instance. */ + @SuppressWarnings({"unchecked", "rawtypes"}) public static ,D extends Descriptor> - DescriptorExtensionList create(Hudson hudson, Class describableType) { - if(describableType==(Class)Publisher.class) // javac or IntelliJ compiler complains if I don't have this cast - return (DescriptorExtensionList)new DescriptorExtensionListImpl(hudson); + DescriptorExtensionList createDescriptorList(Hudson hudson, Class describableType) { + if (describableType == (Class) Publisher.class) { + return (DescriptorExtensionList) new DescriptorExtensionListImpl(hudson); + } return new DescriptorExtensionList(hudson,describableType); } @@ -80,7 +82,7 @@ public class DescriptorExtensionList, D extends Descrip private final Class describableType; protected DescriptorExtensionList(Hudson hudson, Class describableType) { - super(hudson, (Class)Descriptor.class, legacyDescriptors.get(describableType)); + super(hudson, (Class)Descriptor.class, (CopyOnWriteArrayList)getLegacyDescriptors(describableType)); this.describableType = describableType; } @@ -94,6 +96,17 @@ public class DescriptorExtensionList, D extends Descrip return Descriptor.find(this,fqcn); } + /** + * Finds the descriptor that describes the given type. + * That is, if this method returns d, {@code d.clazz==type} + */ + public D find(Class type) { + for (D d : this) + if (d.clazz==type) + return d; + return null; + } + /** * Creates a new instance of a {@link Describable} * from the structured form submission data posted @@ -121,21 +134,35 @@ public class DescriptorExtensionList, D extends Descrip return d; return null; } - + + /** + * {@link #load()} in the descriptor is not a real load activity, so locking against "this" is enough. + */ + @Override + protected Object getLoadLock() { + return this; + } + + @Override + protected void scoutLoad() { + // no-op, since our load() doesn't by itself do any classloading + } + /** * Loading the descriptors in this case means filtering the descriptor from the master {@link ExtensionList}. */ @Override - protected List load() { - List r = new ArrayList(); - for( Descriptor d : hudson.getExtensionList(Descriptor.class) ) { + protected List> load() { + List> r = new ArrayList>(); + for( ExtensionComponent c : hudson.getExtensionList(Descriptor.class).getComponents() ) { + Descriptor d = c.getInstance(); Type subTyping = Types.getBaseClass(d.getClass(), Descriptor.class); if (!(subTyping instanceof ParameterizedType)) { LOGGER.severe(d.getClass()+" doesn't extend Descriptor with a type parameter"); continue; // skip this one } if(Types.erasure(Types.getTypeArgument(subTyping,0))==(Class)describableType) - r.add(d); + r.add((ExtensionComponent)c); } return r; } @@ -143,21 +170,31 @@ public class DescriptorExtensionList, D extends Descrip /** * Stores manually registered Descriptor instances. Keyed by the {@link Describable} type. */ - private static final Memoizer legacyDescriptors = new Memoizer() { + private static final Memoizer>> legacyDescriptors = new Memoizer>>() { public CopyOnWriteArrayList compute(Class key) { return new CopyOnWriteArrayList(); } }; + private static > CopyOnWriteArrayList>> getLegacyDescriptors(Class type) { + return (CopyOnWriteArrayList)legacyDescriptors.get(type); + } + /** * List up all the legacy instances currently in use. */ public static Iterable listLegacyInstances() { return new Iterable() { public Iterator iterator() { - return new FlattenIterator(legacyDescriptors.values()) { - protected Iterator expand(CopyOnWriteArrayList v) { - return v.iterator(); + return new AdaptedIterator,Descriptor>( + new FlattenIterator,CopyOnWriteArrayList>>(legacyDescriptors.values()) { + protected Iterator> expand(CopyOnWriteArrayList> v) { + return v.iterator(); + } + }) { + + protected Descriptor adapt(ExtensionComponent item) { + return item.getInstance(); } }; } diff --git a/core/src/main/java/hudson/EnvVars.java b/core/src/main/java/hudson/EnvVars.java index 9cf6dccaa937b2b44b35e87ca48d50e8ed6cbe76..0070da51e1f12fdb9c6c8b74902b06589c4df3c4 100644 --- a/core/src/main/java/hudson/EnvVars.java +++ b/core/src/main/java/hudson/EnvVars.java @@ -32,18 +32,33 @@ import java.io.IOException; import java.util.Map; import java.util.TreeMap; import java.util.Arrays; +import java.util.UUID; /** * Environment variables. * *

+ * While all the platforms I tested (Linux 2.6, Solaris, and Windows XP) have the case sensitive + * environment variable table, Windows batch script handles environment variable in the case preserving + * but case insensitive way (that is, cmd.exe can get both FOO and foo as environment variables + * when it's launched, and the "set" command will display it accordingly, but "echo %foo%" results in + * echoing the value of "FOO", not "foo" — this is presumably caused by the behavior of the underlying + * Win32 API GetEnvironmentVariable acting in case insensitive way.) Windows users are also + * used to write environment variable case-insensitively (like %Path% vs %PATH%), and you can see many + * documents on the web that claims Windows environment variables are case insensitive. + * + *

+ * So for a consistent cross platform behavior, it creates the least confusion to make the table + * case insensitive but case preserving. + * + *

* In Hudson, often we need to build up "environment variable overrides" * on master, then to execute the process on slaves. This causes a problem * when working with variables like PATH. So to make this work, * we introduce a special convention PATH+FOO — all entries * that starts with PATH+ are merged and prepended to the inherited * PATH variable, on the process where a new process is executed. - * + * * @author Kohsuke Kawaguchi */ public class EnvVars extends TreeMap { @@ -79,6 +94,9 @@ public class EnvVars extends TreeMap { this((Map)m); } + /** + * Builds an environment variables from an array of the form "key","value","key","value"... + */ public EnvVars(String... keyValuePairs) { this(); if(keyValuePairs.length%2!=0) @@ -138,6 +156,12 @@ public class EnvVars extends TreeMap { entry.setValue(Util.replaceMacro(entry.getValue(), env)); } } + + @Override + public String put(String key, String value) { + if (value==null) throw new IllegalArgumentException("Null value not allowed as an environment variable: "+key); + return super.put(key,value); + } /** * Takes a string that looks like "a=b" and adds that to this map. @@ -156,6 +180,14 @@ public class EnvVars extends TreeMap { return Util.replaceMacro(s, this); } + /** + * Creates a magic cookie that can be used as the model environment variable + * when we later kill the processes. + */ + public static EnvVars createCookie() { + return new EnvVars("HUDSON_COOKIE", UUID.randomUUID().toString()); + } + /** * Obtains the environment variables of a remote peer. * @@ -194,7 +226,7 @@ public class EnvVars extends TreeMap { private static EnvVars initMaster() { EnvVars vars = new EnvVars(System.getenv()); vars.platform = Platform.current(); - if(Functions.isUnitTest) + if(Main.isUnitTest || Main.isDevelopmentMode) // if unit test is launched with maven debug switch, // we need to prevent forked Maven processes from seeing it, or else // they'll hang diff --git a/core/src/main/java/hudson/ExpressionFactory2.java b/core/src/main/java/hudson/ExpressionFactory2.java index 93c4ed3fe644e623d2d7519386a1d30adac6e0c2..be6df295b4e533450e200ba3e9e9b10812a8557f 100644 --- a/core/src/main/java/hudson/ExpressionFactory2.java +++ b/core/src/main/java/hudson/ExpressionFactory2.java @@ -54,6 +54,7 @@ final class ExpressionFactory2 implements ExpressionFactory { this.expression = expression; } + @Override public String toString() { return super.toString() + "[" + expression.getExpression() + "]"; } diff --git a/core/src/main/java/hudson/Extension.java b/core/src/main/java/hudson/Extension.java index c54e3c04101d4b28f99e592d4feae40a654b6c21..66342a2b6161eb5ac7adfe30a6edd384337e4602 100644 --- a/core/src/main/java/hudson/Extension.java +++ b/core/src/main/java/hudson/Extension.java @@ -1,7 +1,7 @@ /* * The MIT License * - * Copyright (c) 2004-2009, Sun Microsystems, Inc. + * Copyright (c) 2004-2010, Sun Microsystems, Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -26,12 +26,11 @@ package hudson; import net.java.sezpoz.Indexable; import java.lang.annotation.Documented; -import static java.lang.annotation.ElementType.*; import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; -import hudson.ExtensionFinder.Sezpoz; +import static java.lang.annotation.ElementType.*; +import static java.lang.annotation.RetentionPolicy.RUNTIME; /** * Marks a field, a method, or a class for automatic discovery, so that Hudson can locate @@ -66,8 +65,23 @@ import hudson.ExtensionFinder.Sezpoz; * @see ExtensionList */ @Indexable -@Retention(RetentionPolicy.SOURCE) +@Retention(RUNTIME) @Target({TYPE, FIELD, METHOD}) @Documented public @interface Extension { + /** + * Used for sorting extensions. + * + * Extensions will be sorted in the descending order of the ordinal. + * This is a rather poor approach to the problem, so its use is generally discouraged. + * + * @since 1.306 + */ + double ordinal() default 0; + + /** + * If an extension is optional, don't log any class loading errors when reading it. + * @since 1.358 + */ + boolean optional() default false; } diff --git a/core/src/main/java/hudson/ExtensionComponent.java b/core/src/main/java/hudson/ExtensionComponent.java new file mode 100644 index 0000000000000000000000000000000000000000..2f7eea3e13ae0b15d32a0e0bba019564b6a0f219 --- /dev/null +++ b/core/src/main/java/hudson/ExtensionComponent.java @@ -0,0 +1,77 @@ +/* + * The MIT License + * + * Copyright (c) 2010, Kohsuke Kawaguchi + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +package hudson; + +/** + * Discovered {@link Extension} object with a bit of metadata for Hudson. + * This is a plain value object. + * + * @author Kohsuke Kawaguchi + * @since 1.356 + */ +public class ExtensionComponent implements Comparable> { + private final T instance; + private final double ordinal; + + public ExtensionComponent(T instance, double ordinal) { + this.instance = instance; + this.ordinal = ordinal; + } + + public ExtensionComponent(T instance, Extension annotation) { + this(instance,annotation.ordinal()); + } + + public ExtensionComponent(T instance) { + this(instance,0); + } + + /** + * See {@link Extension#ordinal()}. Used to sort extensions. + */ + public double ordinal() { + return ordinal; + } + + /** + * The instance of the discovered extension. + * + * @return never null. + */ + public T getInstance() { + return instance; + } + + /** + * Sort {@link ExtensionComponent}s in the descending order of {@link #ordinal()}. + */ + public int compareTo(ExtensionComponent that) { + double a = this.ordinal(); + double b = that.ordinal(); + if (a>b) return -1; + if (a Collection findExtensions(Class type, Hudson hudson) { + return Collections.emptyList(); + } + /** * Discover extensions of the given type. * @@ -67,8 +79,51 @@ public abstract class ExtensionFinder implements ExtensionPoint { * Hudson whose behalf this extension finder is performing lookup. * @return * Can be empty but never null. + * @since 1.356 + * Older implementations provide {@link #findExtensions(Class, Hudson)} */ - public abstract Collection findExtensions(Class type, Hudson hudson); + public abstract Collection> find(Class type, Hudson hudson); + + /** + * A pointless function to work around what appears to be a HotSpot problem. See HUDSON-5756 and bug 6933067 + * on BugParade for more details. + */ + public Collection> _find(Class type, Hudson hudson) { + return find(type,hudson); + } + + /** + * Performs class initializations without creating instances. + * + * If two threads try to initialize classes in the opposite order, a dead lock will ensue, + * and we can get into a similar situation with {@link ExtensionFinder}s. + * + *

+ * That is, one thread can try to list extensions, which results in {@link ExtensionFinder} + * loading and initializing classes. This happens inside a context of a lock, so that + * another thread that tries to list the same extensions don't end up creating different + * extension instances. So this activity locks extension list first, then class initialization next. + * + *

+ * In the mean time, another thread can load and initialize a class, and that initialization + * can eventually results in listing up extensions, for example through static initializer. + * Such activitiy locks class initialization first, then locks extension list. + * + *

+ * This inconsistent locking order results in a dead lock, you see. + * + *

+ * So to reduce the likelihood, this method is called in prior to {@link #find(Class, Hudson)} invocation, + * but from outside the lock. The implementation is expected to perform all the class initialization activities + * from here. + * + *

+ * See http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6459208 for how to force a class initialization. + * Also see http://kohsuke.org/2010/09/01/deadlock-that-you-cant-avoid/ for how class initialization + * can results in a dead lock. + */ + public void scout(Class extensionType, Hudson hudson) { + } /** * The default implementation that looks for the {@link Extension} marker. @@ -78,8 +133,8 @@ public abstract class ExtensionFinder implements ExtensionPoint { */ @Extension public static final class Sezpoz extends ExtensionFinder { - public Collection findExtensions(Class type, Hudson hudson) { - List result = new ArrayList(); + public Collection> find(Class type, Hudson hudson) { + List> result = new ArrayList>(); ClassLoader cl = hudson.getPluginManager().uberClassLoader; for (IndexItem item : Index.load(Extension.class, Object.class, cl)) { @@ -100,15 +155,52 @@ public abstract class ExtensionFinder implements ExtensionPoint { if(type.isAssignableFrom(extType)) { Object instance = item.instance(); if(instance!=null) - result.add(type.cast(instance)); + result.add(new ExtensionComponent(type.cast(instance),item.annotation())); } + } catch (LinkageError e) { + // sometimes the instantiation fails in an indirect classloading failure, + // which results in a LinkageError + LOGGER.log(item.annotation().optional() ? Level.FINE : Level.WARNING, + "Failed to load "+item.className(), e); } catch (InstantiationException e) { - LOGGER.log(Level.WARNING, "Failed to load "+item.className(),e); + LOGGER.log(item.annotation().optional() ? Level.FINE : Level.WARNING, + "Failed to load "+item.className(), e); } } return result; } + + @Override + public void scout(Class extensionType, Hudson hudson) { + ClassLoader cl = hudson.getPluginManager().uberClassLoader; + for (IndexItem item : Index.load(Extension.class, Object.class, cl)) { + try { + AnnotatedElement e = item.element(); + Class extType; + if (e instanceof Class) { + extType = (Class) e; + } else + if (e instanceof Field) { + extType = ((Field)e).getType(); + } else + if (e instanceof Method) { + extType = ((Method)e).getReturnType(); + } else + throw new AssertionError(); + // accroding to http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6459208 + // this appears to be the only way to force a class initialization + Class.forName(extType.getName(),true,extType.getClassLoader()); + } catch (InstantiationException e) { + LOGGER.log(item.annotation().optional() ? Level.FINE : Level.WARNING, + "Failed to scout "+item.className(), e); + } catch (ClassNotFoundException e) { + LOGGER.log(Level.WARNING,"Failed to scout "+item.className(), e); + } catch (LinkageError e) { + LOGGER.log(Level.WARNING,"Failed to scout "+item.className(), e); + } + } + } } private static final Logger LOGGER = Logger.getLogger(ExtensionFinder.class.getName()); diff --git a/core/src/main/java/hudson/ExtensionList.java b/core/src/main/java/hudson/ExtensionList.java index 65355cf7f749ae6fbfc38e9466edee93d33f0ced..208431b164236c5fcb014da935db6362ef7fa8f9 100644 --- a/core/src/main/java/hudson/ExtensionList.java +++ b/core/src/main/java/hudson/ExtensionList.java @@ -23,7 +23,9 @@ */ package hudson; +import hudson.init.InitMilestone; import hudson.model.Hudson; +import hudson.util.AdaptedIterator; import hudson.util.DescriptorList; import hudson.util.Memoizer; import hudson.util.Iterators; @@ -31,11 +33,14 @@ import hudson.ExtensionPoint.LegacyInstancesAreScopedToHudson; import java.util.AbstractList; import java.util.ArrayList; +import java.util.Collection; import java.util.Collections; import java.util.Iterator; import java.util.List; import java.util.Vector; import java.util.concurrent.CopyOnWriteArrayList; +import java.util.logging.Level; +import java.util.logging.Logger; /** * Retains the known extension instances for the given type 'T'. @@ -66,16 +71,16 @@ public class ExtensionList extends AbstractList { * Once discovered, extensions are retained here. */ @CopyOnWrite - private volatile List extensions; + private volatile List> extensions; /** * Place to store manually registered instances with the per-Hudson scope. * {@link CopyOnWriteArrayList} is used here to support concurrent iterations and mutation. */ - private final CopyOnWriteArrayList legacyInstances; + private final CopyOnWriteArrayList> legacyInstances; protected ExtensionList(Hudson hudson, Class extensionType) { - this(hudson,extensionType,new CopyOnWriteArrayList()); + this(hudson,extensionType,new CopyOnWriteArrayList>()); } /** @@ -83,9 +88,9 @@ public class ExtensionList extends AbstractList { * @param legacyStore * Place to store manually registered instances. The version of the constructor that * omits this uses a new {@link Vector}, making the storage lifespan tied to the life of {@link ExtensionList}. - * If the manually registerd instances are scoped to VM level, the caller should pass in a static list. + * If the manually registered instances are scoped to VM level, the caller should pass in a static list. */ - protected ExtensionList(Hudson hudson, Class extensionType, CopyOnWriteArrayList legacyStore) { + protected ExtensionList(Hudson hudson, Class extensionType, CopyOnWriteArrayList> legacyStore) { this.hudson = hudson; this.extensionType = extensionType; this.legacyInstances = legacyStore; @@ -102,13 +107,25 @@ public class ExtensionList extends AbstractList { return null; } + @Override public Iterator iterator() { // we need to intercept mutation, so for now don't allow Iterator.remove - return Iterators.readOnly(ensureLoaded().iterator()); + return new AdaptedIterator,T>(Iterators.readOnly(ensureLoaded().iterator())) { + protected T adapt(ExtensionComponent item) { + return item.getInstance(); + } + }; + } + + /** + * Gets the same thing as the 'this' list represents, except as {@link ExtensionComponent}s. + */ + public List> getComponents() { + return Collections.unmodifiableList(ensureLoaded()); } public T get(int index) { - return ensureLoaded().get(index); + return ensureLoaded().get(index).getInstance(); } public int size() { @@ -117,15 +134,25 @@ public class ExtensionList extends AbstractList { @Override public synchronized boolean remove(Object o) { - legacyInstances.remove(o); + removeComponent(legacyInstances,o); if(extensions!=null) { - List r = new ArrayList(extensions); - r.remove(o); + List> r = new ArrayList>(extensions); + removeComponent(r,o); extensions = sort(r); } return true; } + private void removeComponent(Collection> collection, Object t) { + for (Iterator> itr = collection.iterator(); itr.hasNext();) { + ExtensionComponent c = itr.next(); + if (c.getInstance().equals(t)) { + collection.remove(c); + return; + } + } + } + @Override public synchronized T remove(int index) { T t = get(index); @@ -136,16 +163,16 @@ public class ExtensionList extends AbstractList { /** * Write access will put the instance into a legacy store. * - * @deprecated + * @deprecated since 2009-02-23. * Prefer automatic registration. */ @Override public synchronized boolean add(T t) { - legacyInstances.add(t); + legacyInstances.add(new ExtensionComponent(t)); // if we've already filled extensions, add it if(extensions!=null) { - List r = new ArrayList(extensions); - r.add(t); + List> r = new ArrayList>(extensions); + r.add(new ExtensionComponent(t)); extensions = sort(r); } return true; @@ -156,6 +183,17 @@ public class ExtensionList extends AbstractList { add(element); } + /** + * Used to bind extension to URLs by their class names. + * + * @since 1.349 + */ + public T getDynamic(String className) { + for (T t : this) + if (t.getClass().getName().equals(className)) + return t; + return null; + } /** @@ -165,15 +203,17 @@ public class ExtensionList extends AbstractList { return hudson.getExtensionList(ExtensionFinder.class); } - private List ensureLoaded() { + private List> ensureLoaded() { if(extensions!=null) return extensions; // already loaded - if(Hudson.getInstance().getPluginManager()==null) - return legacyInstances; // can't perform the auto discovery until all plugins are loaded, so just make the legacy instances visisble + if(Hudson.getInstance().getInitLevel().compareTo(InitMilestone.PLUGINS_PREPARED)<0) + return legacyInstances; // can't perform the auto discovery until all plugins are loaded, so just make the legacy instances visible + + scoutLoad(); - synchronized (this) { + synchronized (getLoadLock()) { if(extensions==null) { - List r = load(); + List> r = load(); r.addAll(legacyInstances); extensions = sort(r); } @@ -181,13 +221,48 @@ public class ExtensionList extends AbstractList { } } + /** + * Chooses the object that locks the loading of the extension instances. + */ + protected Object getLoadLock() { + return hudson.lookup.setIfNull(Lock.class,new Lock()); + } + + /** + * Loading an {@link ExtensionList} can result in a nested loading of another {@link ExtensionList}. + * What that means is that we need a single lock that spans across all the {@link ExtensionList}s, + * or else we can end up in a dead lock. + */ + private static final class Lock {} + + /** + * See {@link ExtensionFinder#scout(Class, Hudson)} for the dead lock issue and what this does. + */ + protected void scoutLoad() { + if (LOGGER.isLoggable(Level.FINER)) + LOGGER.log(Level.FINER,"Scout-loading ExtensionList: "+extensionType, new Throwable()); + for (ExtensionFinder finder : finders()) { + finder.scout(extensionType, hudson); + } + } + /** * Loads all the extensions. */ - protected List load() { - List r = new ArrayList(); - for (ExtensionFinder finder : finders()) - r.addAll(finder.findExtensions(extensionType, hudson)); + protected List> load() { + if (LOGGER.isLoggable(Level.FINE)) + LOGGER.log(Level.FINE,"Loading ExtensionList: "+extensionType, new Throwable()); + + List> r = new ArrayList>(); + for (ExtensionFinder finder : finders()) { + try { + r.addAll(finder._find(extensionType, hudson)); + } catch (AbstractMethodError e) { + // backward compatibility + for (T t : finder.findExtensions(extensionType, hudson)) + r.add(new ExtensionComponent(t)); + } + } return r; } @@ -198,7 +273,9 @@ public class ExtensionList extends AbstractList { *

* The implementation should copy a list, do a sort, and return the new instance. */ - protected List sort(List r) { + protected List> sort(List> r) { + r = new ArrayList>(r); + Collections.sort(r); return r; } @@ -206,7 +283,7 @@ public class ExtensionList extends AbstractList { if(type==ExtensionFinder.class) return new ExtensionList(hudson,type) { /** - * If this ExtensionList is searching for ExtensionFinders, calling hudosn.getExtensionList + * If this ExtensionList is searching for ExtensionFinders, calling hudson.getExtensionList * results in infinite recursion. */ @Override @@ -236,4 +313,6 @@ public class ExtensionList extends AbstractList { public static void clearLegacyInstances() { staticLegacyInstances.clear(); } + + private static final Logger LOGGER = Logger.getLogger(ExtensionList.class.getName()); } diff --git a/core/src/main/java/hudson/ExtensionListView.java b/core/src/main/java/hudson/ExtensionListView.java index 56917dccba4d8b969d9670f9d3be822bcf406850..070aebd237f7e620ab17a85a8b90fd643e8e32db 100644 --- a/core/src/main/java/hudson/ExtensionListView.java +++ b/core/src/main/java/hudson/ExtensionListView.java @@ -61,6 +61,7 @@ public class ExtensionListView { return Hudson.getInstance().getExtensionList(type); } + @Override public Iterator iterator() { return storage().iterator(); } @@ -73,10 +74,12 @@ public class ExtensionListView { return storage().size(); } + @Override public boolean add(T t) { return storage().add(t); } + @Override public void add(int index, T t) { // index ignored storage().add(t); diff --git a/core/src/main/java/hudson/FilePath.java b/core/src/main/java/hudson/FilePath.java index f6621065dd50e7dc63fe3a4ef6b77f207299bbe0..c64e61f858e6daa5a635049ebb3713b591bcafa6 100644 --- a/core/src/main/java/hudson/FilePath.java +++ b/core/src/main/java/hudson/FilePath.java @@ -1,7 +1,8 @@ /* * The MIT License * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Eric Lefevre-Ardant, Erik Ramfelt, Michael B. Donohue + * Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, + * Eric Lefevre-Ardant, Erik Ramfelt, Michael B. Donohue, Alan Harder * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -37,25 +38,28 @@ import hudson.remoting.Pipe; import hudson.remoting.RemoteOutputStream; import hudson.remoting.VirtualChannel; import hudson.remoting.RemoteInputStream; +import hudson.util.DirScanner; import hudson.util.IOException2; import hudson.util.HeadBufferingStream; import hudson.util.FormValidation; +import hudson.util.IOUtils; import static hudson.util.jna.GNUCLibrary.LIBC; import static hudson.Util.fixEmpty; import static hudson.FilePath.TarCompression.GZIP; +import hudson.os.PosixAPI; +import hudson.org.apache.tools.tar.TarInputStream; +import hudson.util.io.Archiver; +import hudson.util.io.ArchiverFactory; import org.apache.tools.ant.BuildException; import org.apache.tools.ant.DirectoryScanner; import org.apache.tools.ant.Project; import org.apache.tools.ant.taskdefs.Copy; import org.apache.tools.ant.types.FileSet; import org.apache.tools.tar.TarEntry; -import org.apache.tools.tar.TarOutputStream; -import org.apache.tools.tar.TarInputStream; -import org.apache.tools.zip.ZipOutputStream; -import org.apache.tools.zip.ZipEntry; -import org.apache.commons.io.IOUtils; +import org.apache.commons.io.input.CountingInputStream; import org.apache.commons.fileupload.FileItem; import org.kohsuke.stapler.Stapler; +import org.jvnet.robust_http_client.RetryableHttpStream; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; @@ -80,6 +84,7 @@ import java.util.List; import java.util.StringTokenizer; import java.util.Arrays; import java.util.Comparator; +import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.concurrent.ExecutionException; import java.util.concurrent.TimeUnit; @@ -107,7 +112,7 @@ import com.sun.jna.Native; *

* The transparency makes it easy to write plugins without worrying too much about * remoting, by making it works like NFS, where remoting happens at the file-system - * later. + * layer. * *

* But one should note that such use of remoting may not be optional. Sometimes, @@ -179,7 +184,7 @@ public final class FilePath implements Serializable { */ public FilePath(VirtualChannel channel, String remote) { this.channel = channel; - this.remote = remote; + this.remote = normalize(remote); } /** @@ -191,7 +196,7 @@ public final class FilePath implements Serializable { */ public FilePath(File localPath) { this.channel = null; - this.remote = localPath.getPath(); + this.remote = normalize(localPath.getPath()); } /** @@ -203,12 +208,12 @@ public final class FilePath implements Serializable { this.channel = base.channel; if(isAbsolute(rel)) { // absolute - this.remote = rel; + this.remote = normalize(rel); } else if(base.isUnix()) { - this.remote = base.remote+'/'+rel; + this.remote = normalize(base.remote+'/'+rel); } else { - this.remote = base.remote+'\\'+rel; + this.remote = normalize(base.remote+'\\'+rel); } } @@ -216,7 +221,67 @@ public final class FilePath implements Serializable { return rel.startsWith("/") || DRIVE_PATTERN.matcher(rel).matches(); } - private static final Pattern DRIVE_PATTERN = Pattern.compile("[A-Za-z]:\\\\.+"); + private static final Pattern DRIVE_PATTERN = Pattern.compile("[A-Za-z]:[\\\\/].*"), + ABSOLUTE_PREFIX_PATTERN = Pattern.compile("^(\\\\\\\\|(?:[A-Za-z]:)?[\\\\/])[\\\\/]*"); + + /** + * {@link File#getParent()} etc cannot handle ".." and "." in the path component very well, + * so remove them. + */ + private static String normalize(String path) { + StringBuilder buf = new StringBuilder(); + // Check for prefix designating absolute path + Matcher m = ABSOLUTE_PREFIX_PATTERN.matcher(path); + if (m.find()) { + buf.append(m.group(1)); + path = path.substring(m.end()); + } + boolean isAbsolute = buf.length() > 0; + // Split remaining path into tokens, trimming any duplicate or trailing separators + List tokens = new ArrayList(); + int s = 0, end = path.length(); + for (int i = 0; i < end; i++) { + char c = path.charAt(i); + if (c == '/' || c == '\\') { + tokens.add(path.substring(s, i)); + s = i; + // Skip any extra separator chars + while (++i < end && ((c = path.charAt(i)) == '/' || c == '\\')) { } + // Add token for separator unless we reached the end + if (i < end) tokens.add(path.substring(s, s+1)); + s = i; + } + } + if (s < end) tokens.add(path.substring(s)); + // Look through tokens for "." or ".." + for (int i = 0; i < tokens.size();) { + String token = tokens.get(i); + if (token.equals(".")) { + tokens.remove(i); + if (tokens.size() > 0) + tokens.remove(i > 0 ? i - 1 : i); + } else if (token.equals("..")) { + if (i == 0) { + // If absolute path, just remove: /../something + // If relative path, not collapsible so leave as-is + tokens.remove(0); + if (tokens.size() > 0) token += tokens.remove(0); + if (!isAbsolute) buf.append(token); + } else { + // Normalize: remove something/.. plus separator before/after + i -= 2; + for (int j = 0; j < 3; j++) tokens.remove(i); + if (i > 0) tokens.remove(i-1); + else if (tokens.size() > 0) tokens.remove(0); + } + } else + i += 2; + } + // Recombine tokens + for (String token : tokens) buf.append(token); + if (buf.length() == 0) buf.append('.'); + return buf.toString(); + } /** * Checks if the remote path is Unix. @@ -243,48 +308,31 @@ public final class FilePath implements Serializable { /** * Creates a zip file from this directory or a file and sends that to the given output stream. + * + * @deprecated as of 1.315. Use {@link #zip(OutputStream)} that has more consistent name. */ public void createZipArchive(OutputStream os) throws IOException, InterruptedException { - final OutputStream out = (channel!=null)?new RemoteOutputStream(os):os; - act(new FileCallable() { - private transient byte[] buf; - public Void invoke(File f, VirtualChannel channel) throws IOException { - buf = new byte[8192]; + zip(os); + } - ZipOutputStream zip = new ZipOutputStream(out); - zip.setEncoding(System.getProperty("file.encoding")); - scan(f,zip,""); - zip.close(); - return null; - } + /** + * Creates a zip file from this directory or a file and sends that to the given output stream. + */ + public void zip(OutputStream os) throws IOException, InterruptedException { + zip(os,(FileFilter)null); + } - private void scan(File f, ZipOutputStream zip, String path) throws IOException { - // Bitmask indicating directories in 'external attributes' of a ZIP archive entry. - final long BITMASK_IS_DIRECTORY = 1<<4; - - if (f.canRead()) { - if(f.isDirectory()) { - ZipEntry dirZipEntry = new ZipEntry(path+f.getName()+'/'); - // Setting this bit explicitly is needed by some unzipping applications (see HUDSON-3294). - dirZipEntry.setExternalAttributes(BITMASK_IS_DIRECTORY); - zip.putNextEntry(dirZipEntry); - zip.closeEntry(); - for( File child : f.listFiles() ) - scan(child,zip,path+f.getName()+'/'); - } else { - zip.putNextEntry(new ZipEntry(path+f.getName())); - FileInputStream in = new FileInputStream(f); - int len; - while((len=in.read(buf))>0) - zip.write(buf,0,len); - in.close(); - zip.closeEntry(); - } - } - } - - private static final long serialVersionUID = 1L; - }); + /** + * Creates a zip file from this directory by using the specified filter, + * and sends the result to the given output stream. + * + * @param filter + * Must be serializable since it may be executed remotely. Can be null to add all files. + * + * @since 1.315 + */ + public void zip(OutputStream os, FileFilter filter) throws IOException, InterruptedException { + archive(ArchiverFactory.ZIP,os,filter); } /** @@ -295,41 +343,66 @@ public final class FilePath implements Serializable { * works like {@link #createZipArchive(OutputStream)} * * @since 1.129 + * @deprecated as of 1.315 + * Use {@link #zip(OutputStream,String)} that has more consistent name. */ public void createZipArchive(OutputStream os, final String glob) throws IOException, InterruptedException { - if(glob==null || glob.length()==0) { - createZipArchive(os); - return; - } - + archive(ArchiverFactory.ZIP,os,glob); + } + + /** + * Creates a zip file from this directory by only including the files that match the given glob. + * + * @param glob + * Ant style glob, like "**/*.xml". If empty or null, this method + * works like {@link #createZipArchive(OutputStream)} + * + * @since 1.315 + */ + public void zip(OutputStream os, final String glob) throws IOException, InterruptedException { + archive(ArchiverFactory.ZIP,os,glob); + } + + /** + * Uses the given scanner on 'this' directory to list up files and then archive it to a zip stream. + */ + public int zip(OutputStream out, DirScanner scanner) throws IOException, InterruptedException { + return archive(ArchiverFactory.ZIP, out, scanner); + } + + /** + * Archives this directory into the specified archive format, to the given {@link OutputStream}, by using + * {@link DirScanner} to choose what files to include. + * + * @return + * number of files/directories archived. This is only really useful to check for a situation where nothing + * is archived. + */ + public int archive(final ArchiverFactory factory, OutputStream os, final DirScanner scanner) throws IOException, InterruptedException { final OutputStream out = (channel!=null)?new RemoteOutputStream(os):os; - act(new FileCallable() { - public Void invoke(File dir, VirtualChannel channel) throws IOException { - byte[] buf = new byte[8192]; - - ZipOutputStream zip = new ZipOutputStream(out); - zip.setEncoding(System.getProperty("file.encoding")); - for( String entry : glob(dir,glob) ) { - File file = new File(dir,entry); - if (file.canRead()) { - zip.putNextEntry(new ZipEntry(dir.getName()+'/'+entry)); - FileInputStream in = new FileInputStream(file); - int len; - while((len=in.read(buf))>0) - zip.write(buf,0,len); - in.close(); - zip.closeEntry(); - } + return act(new FileCallable() { + public Integer invoke(File f, VirtualChannel channel) throws IOException { + Archiver a = factory.create(out); + try { + scanner.scan(f,a); + } finally { + a.close(); } - - zip.close(); - return null; + return a.countEntries(); } private static final long serialVersionUID = 1L; }); } + private int archive(final ArchiverFactory factory, OutputStream os, final FileFilter filter) throws IOException, InterruptedException { + return archive(factory,os,new DirScanner.Filter(filter)); + } + + private int archive(final ArchiverFactory factory, OutputStream os, final String glob) throws IOException, InterruptedException { + return archive(factory,os,new DirScanner.Glob(glob,null)); + } + /** * When this {@link FilePath} represents a zip file, extracts that zip file. * @@ -400,12 +473,7 @@ public final class FilePath implements Serializable { } else { File p = f.getParentFile(); if(p!=null) p.mkdirs(); - FileOutputStream out = new FileOutputStream(f); - try { - IOUtils.copy(zip, out); - } finally { - out.close(); - } + IOUtils.copy(zip, f); f.setLastModified(e.getTime()); zip.closeEntry(); } @@ -426,6 +494,23 @@ public final class FilePath implements Serializable { })); } + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + + FilePath that = (FilePath) o; + + if (channel != null ? !channel.equals(that.channel) : that.channel != null) return false; + return remote.equals(that.remote); + + } + + @Override + public int hashCode() { + return 31 * (channel != null ? channel.hashCode() : 0) + remote.hashCode(); + } + /** * Supported tar file compression methods. */ @@ -509,38 +594,53 @@ public final class FilePath implements Serializable { * @since 1.299 */ public boolean installIfNecessaryFrom(URL archive, TaskListener listener, String message) throws IOException, InterruptedException { - URLConnection con; try { - con = archive.openConnection(); - con.connect(); - } catch (IOException x) { - if (this.exists()) { - // Cannot connect now, so assume whatever was last unpacked is still OK. - if (listener != null) { - listener.getLogger().println("Skipping installation of " + archive + " to " + remote + ": " + x); + URLConnection con; + try { + con = ProxyConfiguration.open(archive); + con.connect(); + } catch (IOException x) { + if (this.exists()) { + // Cannot connect now, so assume whatever was last unpacked is still OK. + if (listener != null) { + listener.getLogger().println("Skipping installation of " + archive + " to " + remote + ": " + x); + } + return false; + } else { + throw x; } - return false; + } + long sourceTimestamp = con.getLastModified(); + FilePath timestamp = this.child(".timestamp"); + + if(this.exists()) { + if(timestamp.exists() && sourceTimestamp ==timestamp.lastModified()) + return false; // already up to date + this.deleteContents(); } else { - throw x; + this.mkdirs(); } - } - long sourceTimestamp = con.getLastModified(); - FilePath timestamp = this.child(".timestamp"); - if(this.exists()) { - if(timestamp.exists() && sourceTimestamp ==timestamp.lastModified()) - return false; // already up to date - this.deleteContents(); - } + if(listener!=null) + listener.getLogger().println(message); - if(listener!=null) - listener.getLogger().println(message); - if(archive.toExternalForm().endsWith(".zip")) - unzipFrom(con.getInputStream()); - else - untarFrom(con.getInputStream(),GZIP); - timestamp.touch(sourceTimestamp); - return true; + // for HTTP downloads, enable automatic retry for added resilience + InputStream in = archive.getProtocol().equals("http") ? new RetryableHttpStream(archive) : con.getInputStream(); + CountingInputStream cis = new CountingInputStream(in); + try { + if(archive.toExternalForm().endsWith(".zip")) + unzipFrom(cis); + else + untarFrom(cis,GZIP); + } catch (IOException e) { + throw new IOException2(String.format("Failed to unpack %s (%d bytes read of total %d)", + archive,cis.getByteCount(),con.getContentLength()),e); + } + timestamp.touch(sourceTimestamp); + return true; + } catch (IOException e) { + throw new IOException2("Failed to install "+archive+" to "+remote,e); + } } /** @@ -572,6 +672,15 @@ public final class FilePath implements Serializable { } } + /** + * Conveniene method to call {@link FilePath#copyTo(FilePath)}. + * + * @since 1.311 + */ + public void copyFrom(FilePath src) throws IOException, InterruptedException { + src.copyTo(this); + } + /** * Place the data from {@link FileItem} into the file location specified by this {@link FilePath} object. */ @@ -606,13 +715,16 @@ public final class FilePath implements Serializable { /** * Performs the computational task on the node where the data is located. * + *

+ * All the exceptions are forwarded to the caller. + * * @param f * {@link File} that represents the local file that {@link FilePath} has represented. * @param channel * The "back pointer" of the {@link Channel} that represents the communication * with the node from where the code was sent. */ - T invoke(File f, VirtualChannel channel) throws IOException; + T invoke(File f, VirtualChannel channel) throws IOException, InterruptedException; } /** @@ -620,15 +732,21 @@ public final class FilePath implements Serializable { * so that one can perform local file operations. */ public T act(final FileCallable callable) throws IOException, InterruptedException { + return act(callable,callable.getClass().getClassLoader()); + } + + private T act(final FileCallable callable, ClassLoader cl) throws IOException, InterruptedException { if(channel!=null) { // run this on a remote system try { - return channel.call(new FileCallableWrapper(callable)); + return channel.call(new FileCallableWrapper(callable,cl)); + } catch (TunneledInterruptedException e) { + throw (InterruptedException)new InterruptedException().initCause(e); } catch (AbortException e) { throw e; // pass through so that the caller can catch it as AbortException } catch (IOException e) { // wrap it into a new IOException so that we get the caller's stack trace as well. - throw new IOException2("remote file operation failed",e); + throw new IOException2("remote file operation failed: "+remote+" at "+channel,e); } } else { // the file is on the local machine. @@ -681,16 +799,12 @@ public final class FilePath implements Serializable { */ public void mkdirs() throws IOException, InterruptedException { if(!act(new FileCallable() { - public Boolean invoke(File f, VirtualChannel channel) throws IOException { + public Boolean invoke(File f, VirtualChannel channel) throws IOException, InterruptedException { if(f.mkdirs() || f.exists()) return true; // OK // following Ant task to avoid possible race condition. - try { - Thread.sleep(10); - } catch (InterruptedException e) { - // ignore - } + Thread.sleep(10); return f.mkdirs() || f.exists(); } @@ -722,6 +836,17 @@ public final class FilePath implements Serializable { }); } + /** + * Gets the file name portion except the extension. + * + * For example, "foo" for "foo.txt" and "foo.tar" for "foo.tar.gz". + */ + public String getBaseName() { + String n = getName(); + int idx = n.lastIndexOf('.'); + if (idx<0) return n; + return n.substring(0,idx); + } /** * Gets just the file name portion. * @@ -743,6 +868,20 @@ public final class FilePath implements Serializable { return r.substring(len+1); } + /** + * Short for {@code getParent().child(rel)}. Useful for getting other files in the same directory. + */ + public FilePath sibling(String rel) { + return getParent().child(rel); + } + + /** + * Returns a {@link FilePath} by adding the given suffix to this path name. + */ + public FilePath withSuffix(String suffix) { + return new FilePath(channel,remote+suffix); + } + /** * The same as {@link FilePath#FilePath(FilePath,String)} but more OO. * @param rel a relative or absolute path @@ -754,17 +893,17 @@ public final class FilePath implements Serializable { /** * Gets the parent file. + * @return parent FilePath or null if there is no parent */ public FilePath getParent() { - int len = remote.length()-1; - while(len>=0) { - char ch = remote.charAt(len); + int i = remote.length() - 2; + for (; i >= 0; i--) { + char ch = remote.charAt(i); if(ch=='\\' || ch=='/') break; - len--; } - return new FilePath( channel, remote.substring(0,len) ); + return i >= 0 ? new FilePath( channel, remote.substring(0,i+1) ) : null; } /** @@ -823,15 +962,38 @@ public final class FilePath implements Serializable { } } + /** + * Creates a temporary directory inside the directory represented by 'this' + * @since 1.311 + */ + public FilePath createTempDir(final String prefix, final String suffix) throws IOException, InterruptedException { + try { + return new FilePath(this,act(new FileCallable() { + public String invoke(File dir, VirtualChannel channel) throws IOException { + File f = File.createTempFile(prefix, suffix, dir); + f.delete(); + f.mkdir(); + return f.getName(); + } + })); + } catch (IOException e) { + throw new IOException2("Failed to create a temp directory on "+remote,e); + } + } + /** * Deletes this file. + * @throws IOException if it exists but could not be successfully deleted + * @return true, for a modicum of compatibility */ public boolean delete() throws IOException, InterruptedException { - return act(new FileCallable() { - public Boolean invoke(File f, VirtualChannel channel) throws IOException { - return f.delete(); + act(new FileCallable() { + public Void invoke(File f, VirtualChannel channel) throws IOException { + Util.deleteFile(f); + return null; } }); + return true; } /** @@ -906,19 +1068,40 @@ public final class FilePath implements Serializable { * * On Windows, no-op. * + * @param mask + * File permission mask. To simplify the permission copying, + * if the parameter is -1, this method becomes no-op. * @since 1.303 + * @see #mode() */ public void chmod(final int mask) throws IOException, InterruptedException { - if(!isUnix()) return; + if(!isUnix() || mask==-1) return; act(new FileCallable() { public Void invoke(File f, VirtualChannel channel) throws IOException { - if(LIBC.chmod(f.getAbsolutePath(),mask)!=0) + if(File.separatorChar=='/' && LIBC.chmod(f.getAbsolutePath(),mask)!=0) throw new IOException("Failed to chmod "+f+" : "+LIBC.strerror(Native.getLastError())); return null; } }); } + /** + * Gets the file permission bit mask. + * + * @return + * -1 on Windows, since such a concept doesn't make sense. + * @since 1.311 + * @see #chmod(int) + */ + public int mode() throws IOException, InterruptedException { + if(!isUnix()) return -1; + return act(new FileCallable() { + public Integer invoke(File f, VirtualChannel channel) throws IOException { + return PosixAPI.get().stat(f.getPath()).mode(); + } + }); + } + /** * List up files and directories in this directory. * @@ -929,6 +1112,22 @@ public final class FilePath implements Serializable { return list((FileFilter)null); } + /** + * List up subdirectories. + * + * @return can be empty but never null. Doesn't contain "." and ".." + */ + public List listDirectories() throws IOException, InterruptedException { + return list(new DirectoryFilter()); + } + + private static final class DirectoryFilter implements FileFilter, Serializable { + public boolean accept(File f) { + return f.isDirectory(); + } + private static final long serialVersionUID = 1L; + } + /** * List up files in this directory, just like {@link File#listFiles(FileFilter)}. * @@ -939,6 +1138,9 @@ public final class FilePath implements Serializable { * the filter object will be executed on the remote machine. */ public List list(final FileFilter filter) throws IOException, InterruptedException { + if (filter != null && !(filter instanceof Serializable)) { + throw new IllegalArgumentException("Non-serializable filter of " + filter.getClass()); + } return act(new FileCallable>() { public List invoke(File f, VirtualChannel channel) throws IOException { File[] children = f.listFiles(filter); @@ -950,7 +1152,7 @@ public final class FilePath implements Serializable { return r; } - }); + }, (filter!=null?filter:this).getClass().getClassLoader()); } /** @@ -983,7 +1185,7 @@ public final class FilePath implements Serializable { */ private static String[] glob(File dir, String includes) throws IOException { if(isAbsolute(includes)) - throw new IOException("Expecting Ant GLOB pattern, but saw '"+includes+"'. See http://ant.apache.org/manual/CoreTypes/fileset.html for syntax"); + throw new IOException("Expecting Ant GLOB pattern, but saw '"+includes+"'. See http://ant.apache.org/manual/Types/fileset.html for syntax"); FileSet fs = Util.createFileSet(dir,includes); DirectoryScanner ds = fs.getDirectoryScanner(new Project()); String[] files = ds.getIncludedFiles(); @@ -1015,6 +1217,18 @@ public final class FilePath implements Serializable { return p.getIn(); } + /** + * Reads this file into a string, by using the current system encoding. + */ + public String readToString() throws IOException { + InputStream in = read(); + try { + return IOUtils.toString(in); + } finally { + in.close(); + } + } + /** * Writes to this file. * If this file already exists, it will be overwritten. @@ -1087,18 +1301,56 @@ public final class FilePath implements Serializable { }); } + /** + * Moves all the contents of this directory into the specified directory, then delete this directory itself. + * + * @since 1.308. + */ + public void moveAllChildrenTo(final FilePath target) throws IOException, InterruptedException { + if(this.channel != target.channel) { + throw new IOException("pullUpTo target must be on the same host"); + } + act(new FileCallable() { + public Void invoke(File f, VirtualChannel channel) throws IOException { + File t = new File(target.getRemote()); + + for(File child : f.listFiles()) { + File target = new File(t, child.getName()); + if(!child.renameTo(target)) + throw new IOException("Failed to rename "+child+" to "+target); + } + f.delete(); + return null; + } + }); + } + /** * Copies this file to the specified target. */ public void copyTo(FilePath target) throws IOException, InterruptedException { - OutputStream out = target.write(); try { - copyTo(out); - } finally { - out.close(); + OutputStream out = target.write(); + try { + copyTo(out); + } finally { + out.close(); + } + } catch (IOException e) { + throw new IOException2("Failed to copy "+this+" to "+target,e); } } + /** + * Copies this file to the specified target, with file permissions intact. + * @since 1.311 + */ + public void copyToWithPermission(FilePath target) throws IOException, InterruptedException { + copyTo(target); + // copy file permission + target.chmod(mode()); + } + /** * Sends the contents of this file into the given {@link OutputStream}. */ @@ -1135,6 +1387,14 @@ public final class FilePath implements Serializable { void close() throws IOException; } + /** + * Copies the contents of this directory recursively into the specified target directory. + * @since 1.312 + */ + public int copyRecursiveTo(FilePath target) throws IOException, InterruptedException { + return copyRecursiveTo("**/*",target); + } + public int copyRecursiveTo(String fileMask, FilePath target) throws IOException, InterruptedException { return copyRecursiveTo(fileMask,null,target); } @@ -1168,6 +1428,7 @@ public final class FilePath implements Serializable { setProject(new org.apache.tools.ant.Project()); } + @Override protected void doFileOperations() { copySize = super.fileCopyMap.size(); super.doFileOperations(); @@ -1181,6 +1442,7 @@ public final class FilePath implements Serializable { CopyImpl copyTask = new CopyImpl(); copyTask.setTodir(new File(target.remote)); copyTask.addFileset(Util.createFileSet(base,fileMask,excludes)); + copyTask.setOverwrite(true); copyTask.setIncludeEmptyDirs(false); copyTask.execute(); @@ -1247,53 +1509,42 @@ public final class FilePath implements Serializable { } } + /** - * Writes to a tar stream and stores obtained files to the base dir. + * Writes files in 'this' directory to a tar stream. * - * @return - * number of files/directories that are written. + * @param glob + * Ant file pattern mask, like "**/*.java". */ - private Integer writeToTar(File baseDir, String fileMask, String excludes, OutputStream out) throws IOException { - FileSet fs = Util.createFileSet(baseDir,fileMask,excludes); - - byte[] buf = new byte[8192]; - - TarOutputStream tar = new TarOutputStream(new BufferedOutputStream(out)); - tar.setLongFileMode(TarOutputStream.LONGFILE_GNU); - String[] files; - if(baseDir.exists()) { - DirectoryScanner ds = fs.getDirectoryScanner(new org.apache.tools.ant.Project()); - files = ds.getIncludedFiles(); - } else { - files = new String[0]; - } - for( String f : files) { - if(Functions.isWindows()) - f = f.replace('\\','/'); - - File file = new File(baseDir, f); - - TarEntry te = new TarEntry(f); - te.setModTime(file.lastModified()); - if(!file.isDirectory()) - te.setSize(file.length()); + public int tar(OutputStream out, final String glob) throws IOException, InterruptedException { + return archive(ArchiverFactory.TAR, out, glob); + } - tar.putNextEntry(te); + public int tar(OutputStream out, FileFilter filter) throws IOException, InterruptedException { + return archive(ArchiverFactory.TAR, out, filter); + } - if (!file.isDirectory()) { - FileInputStream in = new FileInputStream(file); - int len; - while((len=in.read(buf))>=0) - tar.write(buf,0,len); - in.close(); - } + /** + * Uses the given scanner on 'this' directory to list up files and then archive it to a tar stream. + */ + public int tar(OutputStream out, DirScanner scanner) throws IOException, InterruptedException { + return archive(ArchiverFactory.TAR, out, scanner); + } - tar.closeEntry(); + /** + * Writes to a tar stream and stores obtained files to the base dir. + * + * @return + * number of files/directories that are written. + */ + private static Integer writeToTar(File baseDir, String fileMask, String excludes, OutputStream out) throws IOException { + Archiver tw = ArchiverFactory.TAR.create(out); + try { + new DirScanner.Glob(fileMask,excludes).scan(baseDir,tw); + } finally { + tw.close(); } - - tar.close(); - - return files.length; + return tw.countEntries(); } /** @@ -1311,16 +1562,15 @@ public final class FilePath implements Serializable { File parent = f.getParentFile(); if (parent != null) parent.mkdirs(); - OutputStream fos = new FileOutputStream(f); - try { - IOUtils.copy(t,fos); - } finally { - fos.close(); - } + IOUtils.copy(t,f); f.setLastModified(te.getModTime().getTime()); int mode = te.getMode()&0777; - if(mode!=0 && !Hudson.isWindows()) // be defensive - LIBC.chmod(f.getPath(),mode); + if(mode!=0 && !Functions.isWindows()) // be defensive + try { + LIBC.chmod(f.getPath(),mode); + } catch (NoClassDefFoundError e) { + // be defensive. see http://www.nabble.com/-3.0.6--Site-copy-problem%3A-hudson.util.IOException2%3A--java.lang.NoClassDefFoundError%3A-Could-not-initialize-class--hudson.util.jna.GNUCLibrary-td23588879.html + } } } } catch(IOException e) { @@ -1400,7 +1650,7 @@ public final class FilePath implements Serializable { } } - {// check the (1) above next as this is more expensive. + {// check the (2) above next as this is more expensive. // Try prepending "**/" to see if that results in a match FileSet fs = Util.createFileSet(dir,"**/"+fileMask); DirectoryScanner ds = fs.getDirectoryScanner(new Project()); @@ -1437,20 +1687,17 @@ public final class FilePath implements Serializable { if(hasMatch(dir,pattern)) { // found a match if(previous==null) - return String.format("'%s' doesn't match anything, although '%s' exists", - fileMask, pattern ); + return Messages.FilePath_validateAntFileMask_portionMatchAndSuggest(fileMask,pattern); else - return String.format("'%s' doesn't match anything: '%s' exists but not '%s'", - fileMask, pattern, previous ); + return Messages.FilePath_validateAntFileMask_portionMatchButPreviousNotMatchAndSuggest(fileMask,pattern,previous); } int idx = findSeparator(pattern); if(idx<0) {// no more path component left to go back if(pattern.equals(fileMask)) - return String.format("'%s' doesn't match anything", fileMask ); + return Messages.FilePath_validateAntFileMask_doesntMatchAnything(fileMask); else - return String.format("'%s' doesn't match anything: even '%s' doesn't exist", - fileMask, pattern ); + return Messages.FilePath_validateAntFileMask_doesntMatchAnythingAndSuggest(fileMask,pattern); } // cut off the trailing component and try again @@ -1499,10 +1746,14 @@ public final class FilePath implements Serializable { } /** - * Checks the GLOB-style file mask. See {@link #validateAntFileMask(String)} + * Checks the GLOB-style file mask. See {@link #validateAntFileMask(String)}. + * Requires configure permission on ancestor AbstractProject object in request. * @since 1.294 */ public FormValidation validateFileMask(String value, boolean errorIfNotExist) throws IOException { + AbstractProject subject = Stapler.getCurrentRequest().findAncestorObject(AbstractProject.class); + subject.checkPermission(Item.CONFIGURE); + value = fixEmpty(value); if(value==null) return FormValidation.ok(); @@ -1521,6 +1772,7 @@ public final class FilePath implements Serializable { /** * Validates a relative file path from this {@link FilePath}. + * Requires configure permission on ancestor AbstractProject object in request. * * @param value * The relative path being validated. @@ -1540,7 +1792,7 @@ public final class FilePath implements Serializable { if(value==null || (AbstractProject)subject ==null) return FormValidation.ok(); // a common mistake is to use wildcard - if(value.contains("*")) return FormValidation.error("Wildcard is not allowed here"); + if(value.contains("*")) return FormValidation.error(Messages.FilePath_validateRelativePath_wildcardNotAllowed()); try { if(!exists()) // no base directory. can't check @@ -1552,16 +1804,17 @@ public final class FilePath implements Serializable { if(!path.isDirectory()) return FormValidation.ok(); else - return FormValidation.error(value+" is not a file"); + return FormValidation.error(Messages.FilePath_validateRelativePath_notFile(value)); } else { if(path.isDirectory()) return FormValidation.ok(); else - return FormValidation.error(value+" is not a directory"); + return FormValidation.error(Messages.FilePath_validateRelativePath_notDirectory(value)); } } - String msg = "No such "+(expectingFile?"file":"directory")+": " + value; + String msg = expectingFile ? Messages.FilePath_validateRelativePath_noSuchFile(value) : + Messages.FilePath_validateRelativePath_noSuchDirectory(value); if(errorIfNotExist) return FormValidation.error(msg); else return FormValidation.warning(msg); } catch (InterruptedException e) { @@ -1580,7 +1833,7 @@ public final class FilePath implements Serializable { return validateRelativeDirectory(value,true); } - @Deprecated + @Deprecated @Override public String toString() { // to make writing JSPs easily, return local return remote; @@ -1629,22 +1882,43 @@ public final class FilePath implements Serializable { */ private class FileCallableWrapper implements DelegatingCallable { private final FileCallable callable; + private transient ClassLoader classLoader; public FileCallableWrapper(FileCallable callable) { this.callable = callable; + this.classLoader = callable.getClass().getClassLoader(); + } + + private FileCallableWrapper(FileCallable callable, ClassLoader classLoader) { + this.callable = callable; + this.classLoader = classLoader; } public T call() throws IOException { - return callable.invoke(new File(remote), Channel.current()); + try { + return callable.invoke(new File(remote), Channel.current()); + } catch (InterruptedException e) { + throw new TunneledInterruptedException(e); + } } public ClassLoader getClassLoader() { - return callable.getClass().getClassLoader(); + return classLoader; } private static final long serialVersionUID = 1L; } + /** + * Used to tunnel {@link InterruptedException} over a Java signature that only allows {@link IOException} + */ + private static class TunneledInterruptedException extends IOException2 { + private TunneledInterruptedException(InterruptedException cause) { + super(cause); + } + private static final long serialVersionUID = 1L; + } + private static final Comparator SHORTER_STRING_FIRST = new Comparator() { public int compare(String o1, String o2) { return o1.length()-o2.length(); diff --git a/core/src/main/java/hudson/FileSystemProvisioner.java b/core/src/main/java/hudson/FileSystemProvisioner.java index d69a2ffa456fdb1521a99fc795bd585b106427c7..40b28d9c541c317ff884c8ffd017230881472023 100644 --- a/core/src/main/java/hudson/FileSystemProvisioner.java +++ b/core/src/main/java/hudson/FileSystemProvisioner.java @@ -167,11 +167,14 @@ public abstract class FileSystemProvisioner implements ExtensionPoint, Describab * @param ws * New workspace should be prepared in this location. This is the same value as * {@code build.getProject().getWorkspace()} but passed separately for convenience. + * @param glob + * Ant-style file glob for files to include in the snapshot. May not be pertinent for all + * implementations. */ - public abstract WorkspaceSnapshot snapshot(AbstractBuild build, FilePath ws, TaskListener listener) throws IOException, InterruptedException; + public abstract WorkspaceSnapshot snapshot(AbstractBuild build, FilePath ws, String glob, TaskListener listener) throws IOException, InterruptedException; public FileSystemProvisionerDescriptor getDescriptor() { - return (FileSystemProvisionerDescriptor) Hudson.getInstance().getDescriptor(getClass()); + return (FileSystemProvisionerDescriptor) Hudson.getInstance().getDescriptorOrDie(getClass()); } /** @@ -183,7 +186,7 @@ public abstract class FileSystemProvisioner implements ExtensionPoint, Describab * Returns all the registered {@link FileSystemProvisioner} descriptors. */ public static DescriptorExtensionList all() { - return Hudson.getInstance().getDescriptorList(FileSystemProvisioner.class); + return Hudson.getInstance().getDescriptorList(FileSystemProvisioner.class); } /** @@ -198,13 +201,20 @@ public abstract class FileSystemProvisioner implements ExtensionPoint, Describab } /** - * Creates a tar ball. + * @deprecated as of 1.350 */ public WorkspaceSnapshot snapshot(AbstractBuild build, FilePath ws, TaskListener listener) throws IOException, InterruptedException { + return snapshot(build, ws, "**/*", listener); + } + + /** + * Creates a tar ball. + */ + public WorkspaceSnapshot snapshot(AbstractBuild build, FilePath ws, String glob, TaskListener listener) throws IOException, InterruptedException { File wss = new File(build.getRootDir(),"workspace.zip"); OutputStream os = new BufferedOutputStream(new FileOutputStream(wss)); try { - ws.createZipArchive(os); + ws.zip(os,glob); } finally { os.close(); } diff --git a/core/src/main/java/hudson/FileSystemProvisionerDescriptor.java b/core/src/main/java/hudson/FileSystemProvisionerDescriptor.java index 15d2e97b89cd6cf2a6c6b7305ed37b5f06428f7f..2cb0506fa9da19b11cea287563d6a6c4343e7b9c 100644 --- a/core/src/main/java/hudson/FileSystemProvisionerDescriptor.java +++ b/core/src/main/java/hudson/FileSystemProvisionerDescriptor.java @@ -25,7 +25,6 @@ package hudson; import hudson.model.Descriptor; import hudson.model.TaskListener; -import hudson.model.AbstractBuild; import java.io.IOException; diff --git a/core/src/main/java/hudson/Functions.java b/core/src/main/java/hudson/Functions.java index c9dbc65a9c011f9ce2bce2f8af9de944fa582364..1098c5add69faafc0b73a59c1700e59f061370d5 100644 --- a/core/src/main/java/hudson/Functions.java +++ b/core/src/main/java/hudson/Functions.java @@ -1,7 +1,8 @@ /* * The MIT License * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Yahoo! Inc., Stephen Connolly, Tom Huybrechts + * Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, + * Yahoo! Inc., Stephen Connolly, Tom Huybrechts, Alan Harder, Romain Seguy * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -23,8 +24,11 @@ */ package hudson; +import hudson.console.ConsoleAnnotationDescriptor; +import hudson.console.ConsoleAnnotatorFactory; import hudson.model.AbstractProject; import hudson.model.Action; +import hudson.model.Describable; import hudson.model.Descriptor; import hudson.model.Hudson; import hudson.model.Item; @@ -47,6 +51,7 @@ import hudson.security.AccessControlled; import hudson.security.AuthorizationStrategy; import hudson.security.Permission; import hudson.security.SecurityRealm; +import hudson.security.csrf.CrumbIssuer; import hudson.slaves.Cloud; import hudson.slaves.ComputerLauncher; import hudson.slaves.NodeProperty; @@ -61,12 +66,13 @@ import hudson.util.Area; import hudson.util.Iterators; import hudson.scm.SCM; import hudson.scm.SCMDescriptor; +import hudson.util.Secret; +import hudson.views.MyViewsTabBar; +import hudson.views.ViewsTabBar; import org.acegisecurity.providers.anonymous.AnonymousAuthenticationToken; import org.apache.commons.jelly.JellyContext; import org.apache.commons.jelly.JellyTagException; import org.apache.commons.jelly.Script; -import org.apache.commons.jelly.Tag; -import org.apache.commons.jelly.TagSupport; import org.apache.commons.jelly.XMLOutput; import org.apache.commons.jexl.parser.ASTSizeFunction; import org.apache.commons.jexl.util.Introspector; @@ -76,7 +82,6 @@ import org.kohsuke.stapler.Ancestor; import org.kohsuke.stapler.Stapler; import org.kohsuke.stapler.StaplerRequest; import org.kohsuke.stapler.StaplerResponse; -import org.kohsuke.stapler.jelly.CustomTagLibrary.StaplerDynamicTag; import javax.servlet.ServletException; import javax.servlet.http.Cookie; @@ -98,14 +103,20 @@ import java.net.MalformedURLException; import java.net.URL; import java.net.URLDecoder; import java.util.ArrayList; +import java.util.Arrays; import java.util.Calendar; import java.util.Collection; import java.util.Collections; +import java.util.Comparator; +import java.util.ConcurrentModificationException; +import java.util.Enumeration; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.SortedMap; import java.util.TreeMap; +import java.util.Date; +import java.util.logging.LogManager; import java.util.logging.LogRecord; import java.util.logging.SimpleFormatter; import java.util.regex.Pattern; @@ -436,7 +447,7 @@ public class Functions { response.addCookie(c); } if (refresh) { - response.addHeader("Refresh", "10"); + response.addHeader("Refresh", System.getProperty("hudson.Functions.autoRefreshSeconds", "10")); } } @@ -650,7 +661,7 @@ public class Functions { } public static List> getComputerLauncherDescriptors() { - return Hudson.getInstance().getDescriptorList(ComputerLauncher.class); + return Hudson.getInstance().>getDescriptorList(ComputerLauncher.class); } public static List>> getRetentionStrategyDescriptors() { @@ -661,6 +672,14 @@ public class Functions { return ParameterDefinition.all(); } + public static List> getViewsTabBarDescriptors() { + return ViewsTabBar.all(); + } + + public static List> getMyViewsTabBarDescriptors() { + return MyViewsTabBar.all(); + } + public static List getNodePropertyDescriptors(Class clazz) { List result = new ArrayList(); Collection list = (Collection) Hudson.getInstance().getDescriptorList(NodeProperty.class); @@ -672,6 +691,25 @@ public class Functions { return result; } + /** + * Gets all the descriptors sorted by their inheritance tree of {@link Describable} + * so that descriptors of similar types come nearby. + */ + public static Collection getSortedDescriptorsForGlobalConfig() { + Map r = new TreeMap(); + for (Descriptor d : Hudson.getInstance().getExtensionList(Descriptor.class)) { + if (d.getGlobalConfigPage()==null) continue; + r.put(buildSuperclassHierarchy(d.clazz, new StringBuilder()).toString(),d); + } + return r.values(); + } + + private static StringBuilder buildSuperclassHierarchy(Class c, StringBuilder buf) { + Class sc = c.getSuperclass(); + if (sc!=null) buildSuperclassHierarchy(sc,buf).append(':'); + return buf.append(c.getName()); + } + /** * Computes the path to the icon of the given action * from the context path. @@ -736,13 +774,70 @@ public class Functions { } public static Map dumpAllThreads() { - return Thread.getAllStackTraces(); + Map sorted = new TreeMap(new ThreadSorter()); + sorted.putAll(Thread.getAllStackTraces()); + return sorted; } @IgnoreJRERequirement public static ThreadInfo[] getThreadInfos() { ThreadMXBean mbean = ManagementFactory.getThreadMXBean(); - return mbean.getThreadInfo(mbean.getAllThreadIds(),mbean.isObjectMonitorUsageSupported(),mbean.isSynchronizerUsageSupported()); + return mbean.dumpAllThreads(mbean.isObjectMonitorUsageSupported(),mbean.isSynchronizerUsageSupported()); + } + + public static ThreadGroupMap sortThreadsAndGetGroupMap(ThreadInfo[] list) { + ThreadGroupMap sorter = new ThreadGroupMap(); + Arrays.sort(list, sorter); + return sorter; + } + + // Common code for sorting Threads/ThreadInfos by ThreadGroup + private static class ThreadSorterBase { + protected Map map = new HashMap(); + + private ThreadSorterBase() { + ThreadGroup tg = Thread.currentThread().getThreadGroup(); + while (tg.getParent() != null) tg = tg.getParent(); + Thread[] threads = new Thread[tg.activeCount()*2]; + int threadsLen = tg.enumerate(threads, true); + for (int i = 0; i < threadsLen; i++) + map.put(threads[i].getId(), threads[i].getThreadGroup().getName()); + } + + protected int compare(long idA, long idB) { + String tga = map.get(idA), tgb = map.get(idB); + int result = (tga!=null?-1:0) + (tgb!=null?1:0); // Will be non-zero if only one is null + if (result==0 && tga!=null) + result = tga.compareToIgnoreCase(tgb); + return result; + } + } + + public static class ThreadGroupMap extends ThreadSorterBase implements Comparator { + + /** + * @return ThreadGroup name or null if unknown + */ + public String getThreadGroup(ThreadInfo ti) { + return map.get(ti.getThreadId()); + } + + public int compare(ThreadInfo a, ThreadInfo b) { + int result = compare(a.getThreadId(), b.getThreadId()); + if (result == 0) + result = a.getThreadName().compareToIgnoreCase(b.getThreadName()); + return result; + } + } + + private static class ThreadSorter extends ThreadSorterBase implements Comparator { + + public int compare(Thread a, Thread b) { + int result = compare(a.getId(), b.getId()); + if (result == 0) + result = a.getName().compareToIgnoreCase(b.getName()); + return result; + } } /** @@ -760,9 +855,11 @@ public class Functions { // ThreadInfo.toString() truncates the stack trace by first 8, so needed my own version @IgnoreJRERequirement - public static String dumpThreadInfo(ThreadInfo ti) { + public static String dumpThreadInfo(ThreadInfo ti, ThreadGroupMap map) { + String grp = map.getThreadGroup(ti); StringBuilder sb = new StringBuilder("\"" + ti.getThreadName() + "\"" + - " Id=" + ti.getThreadId() + " " + + " Id=" + ti.getThreadId() + " Group=" + + (grp != null ? grp : "?") + " " + ti.getThreadState()); if (ti.getLockName() != null) { sb.append(" on " + ti.getLockName()); @@ -1000,10 +1097,10 @@ public class Functions { if(SCHEME.matcher(urlName).matches()) return urlName; // absolute URL if(urlName.startsWith("/")) - return Stapler.getCurrentRequest().getContextPath()+urlName+'/'; + return Stapler.getCurrentRequest().getContextPath()+urlName; else // relative URL name - return Stapler.getCurrentRequest().getContextPath()+'/'+itUrl+urlName+'/'; + return Stapler.getCurrentRequest().getContextPath()+'/'+itUrl+urlName; } /** @@ -1065,13 +1162,6 @@ public class Functions { return null; } - /** - * Gets the URL for the update center server - */ - public String getUpdateCenterUrl() { - return Hudson.getInstance().getUpdateCenter().getUrl(); - } - /** * If the given href link is matching the current page, return true. * @@ -1079,11 +1169,13 @@ public class Functions { */ public boolean hyperlinkMatchesCurrentPage(String href) throws UnsupportedEncodingException { String url = Stapler.getCurrentRequest().getRequestURL().toString(); + if (href == null || href.length() <= 1) return ".".equals(href) && url.endsWith("/"); url = URLDecoder.decode(url,"UTF-8"); href = URLDecoder.decode(href,"UTF-8"); + if (url.endsWith("/")) url = url.substring(0, url.length() - 1); + if (href.endsWith("/")) href = href.substring(0, href.length() - 1); - return (href.length()>1 && url.endsWith(href)) - || (href.equals(".") && url.endsWith(".")); + return url.endsWith(href); } public List singletonList(T t) { @@ -1104,36 +1196,106 @@ public class Functions { } /** - * Used to assist form databinding. Given the "attrs" object, - * find the ancestor tag file of the given name. + * Prepend a prefix only when there's the specified body. */ - public Tag findAncestorTag(Map attributes, String nsUri, String local) { - Tag tag = (Tag) attributes.get("ownerTag"); - if(tag==null) return null; + public String prepend(String prefix, String body) { + if(body!=null && body.length()>0) + return prefix+body; + return body; + } - while(true) { - tag = TagSupport.findAncestorWithClass(tag.getParent(), StaplerDynamicTag.class); - if(tag==null) - return null; - StaplerDynamicTag stag = (StaplerDynamicTag)tag; - if(stag.getLocalName().equals(local) && stag.getNsUri().equals(nsUri)) - return tag; + public static List> getCrumbIssuerDescriptors() { + return CrumbIssuer.all(); + } + + public static String getCrumb(StaplerRequest req) { + Hudson h = Hudson.getInstance(); + CrumbIssuer issuer = h != null ? h.getCrumbIssuer() : null; + return issuer != null ? issuer.getCrumb(req) : ""; + } + + public static String getCrumbRequestField() { + Hudson h = Hudson.getInstance(); + CrumbIssuer issuer = h != null ? h.getCrumbIssuer() : null; + return issuer != null ? issuer.getDescriptor().getCrumbRequestField() : ""; + } + + public static Date getCurrentTime() { + return new Date(); + } + + /** + * Generate a series of <script> tags to include script.js + * from {@link ConsoleAnnotatorFactory}s and {@link ConsoleAnnotationDescriptor}s. + */ + public static String generateConsoleAnnotationScriptAndStylesheet() { + String cp = Stapler.getCurrentRequest().getContextPath(); + StringBuilder buf = new StringBuilder(); + for (ConsoleAnnotatorFactory f : ConsoleAnnotatorFactory.all()) { + String path = cp + "/extensionList/" + ConsoleAnnotatorFactory.class.getName() + "/" + f.getClass().getName(); + if (f.hasScript()) + buf.append(""); + if (f.hasStylesheet()) + buf.append(""); } + for (ConsoleAnnotationDescriptor d : ConsoleAnnotationDescriptor.all()) { + String path = cp+"/descriptor/"+d.clazz.getName(); + if (d.hasScript()) + buf.append(""); + if (d.hasStylesheet()) + buf.append(""); + } + return buf.toString(); } /** - * Prepend a prefix only when there's the specified body. + * Work around for bug 6935026. */ - public String prepend(String prefix, String body) { - if(body!=null && body.length()>0) - return prefix+body; - return body; + public List getLoggerNames() { + while (true) { + try { + List r = new ArrayList(); + Enumeration e = LogManager.getLogManager().getLoggerNames(); + while (e.hasMoreElements()) + r.add(e.nextElement()); + return r; + } catch (ConcurrentModificationException e) { + // retry + } + } } + /** + * Used by <f:password/> so that we send an encrypted value to the client. + */ + public String getPasswordValue(Object o) { + if (o==null) return null; + if (o instanceof Secret) return ((Secret)o).getEncryptedValue(); + return o.toString(); + } + private static final Pattern SCHEME = Pattern.compile("[a-z]+://.+"); /** - * Set to true if we are running unit tests. + * Returns true if we are running unit tests. */ - public static boolean isUnitTest = false; + public static boolean getIsUnitTest() { + return Main.isUnitTest; + } + + /** + * Returns {@code true} if the {@link Run#ARTIFACTS} permission is enabled, + * {@code false} otherwise. + * + *

When the {@link Run#ARTIFACTS} permission is not turned on using the + * {@code hudson.security.ArtifactsPermission}, this permission must not be + * considered to be set to {@code false} for every user. It must rather be + * like if the permission doesn't exist at all (which means that every user + * has to have an access to the artifacts but the permission can't be + * configured in the security screen). Got it?

+ */ + public static boolean isArtifactsPermissionEnabled() { + return Boolean.getBoolean("hudson.security.ArtifactsPermission"); + } + } diff --git a/core/src/main/java/hudson/Launcher.java b/core/src/main/java/hudson/Launcher.java index 3b3f6321dafbdc26a0822ba889d5f23c05092b15..cdc5082f787e16dc191dd374b55a8839fb2554f3 100644 --- a/core/src/main/java/hudson/Launcher.java +++ b/core/src/main/java/hudson/Launcher.java @@ -35,8 +35,10 @@ import hudson.remoting.Pipe; import hudson.remoting.RemoteInputStream; import hudson.remoting.RemoteOutputStream; import hudson.remoting.VirtualChannel; -import hudson.util.ProcessTreeKiller; import hudson.util.StreamCopyThread; +import hudson.util.ArgumentListBuilder; +import hudson.util.ProcessTree; +import org.apache.commons.io.input.NullInputStream; import java.io.BufferedOutputStream; import java.io.File; @@ -46,6 +48,11 @@ import java.io.OutputStream; import java.util.Arrays; import java.util.Map; import java.util.List; +import java.util.ArrayList; +import java.util.logging.Level; +import java.util.logging.Logger; + +import static org.apache.commons.io.output.NullOutputStream.NULL_OUTPUT_STREAM; /** * Starts a process. @@ -65,6 +72,7 @@ import java.util.List; * * * @author Kohsuke Kawaguchi + * @see FilePath#createLauncher(TaskListener) */ public abstract class Launcher { @@ -115,7 +123,7 @@ public abstract class Launcher { * * @return * null if this launcher is not created from a {@link Computer} object. - * @deprecated + * @deprecated since 2008-11-16. * See the javadoc for why this is inherently unreliable. If you are trying to * figure out the current {@link Computer} from within a build, use * {@link Computer#currentComputer()} @@ -127,14 +135,187 @@ public abstract class Launcher { return null; } + /** + * Builder pattern for configuring a process to launch. + * @since 1.311 + */ + public final class ProcStarter { + protected List commands; + protected boolean[] masks; + protected FilePath pwd; + protected OutputStream stdout = NULL_OUTPUT_STREAM, stderr; + protected InputStream stdin = new NullInputStream(0); + protected String[] envs; + + public ProcStarter cmds(String... args) { + return cmds(Arrays.asList(args)); + } + + public ProcStarter cmds(File program, String... args) { + commands = new ArrayList(args.length+1); + commands.add(program.getPath()); + commands.addAll(Arrays.asList(args)); + return this; + } + + public ProcStarter cmds(List args) { + commands = new ArrayList(args); + return this; + } + + public ProcStarter cmds(ArgumentListBuilder args) { + commands = args.toList(); + masks = args.toMaskArray(); + return this; + } + + public List cmds() { + return commands; + } + + public ProcStarter masks(boolean... masks) { + this.masks = masks; + return this; + } + + public boolean[] masks() { + return masks; + } + + public ProcStarter pwd(FilePath workDir) { + this.pwd = workDir; + return this; + } + + public ProcStarter pwd(File workDir) { + return pwd(new FilePath(workDir)); + } + + public ProcStarter pwd(String workDir) { + return pwd(new File(workDir)); + } + + public FilePath pwd() { + return pwd; + } + + public ProcStarter stdout(OutputStream out) { + this.stdout = out; + return this; + } + + /** + * Sends the stdout to the given {@link TaskListener}. + */ + public ProcStarter stdout(TaskListener out) { + return stdout(out.getLogger()); + } + + public OutputStream stdout() { + return stdout; + } + + /** + * Controls where the stderr of the process goes. + * By default, it's bundled into stdout. + */ + public ProcStarter stderr(OutputStream err) { + this.stderr = err; + return this; + } + + public OutputStream stderr() { + return stderr; + } + + /** + * Controls where the stdin of the process comes from. + * By default, /dev/null. + */ + public ProcStarter stdin(InputStream in) { + this.stdin = in; + return this; + } + + public InputStream stdin() { + return stdin; + } + + /** + * Sets the environment variable overrides. + * + *

+ * In adition to what the current process + * is inherited (if this is going to be launched from a slave agent, that + * becomes the "current" process), these variables will be also set. + */ + public ProcStarter envs(Map overrides) { + return envs(Util.mapToEnv(overrides)); + } + + /** + * @param overrides + * List of "VAR=VALUE". See {@link #envs(Map)} for the semantics. + */ + public ProcStarter envs(String... overrides) { + this.envs = overrides; + return this; + } + + public String[] envs() { + return envs; + } + + /** + * Starts the new process as configured. + */ + public Proc start() throws IOException { + return launch(this); + } + + /** + * Starts the process and waits for its completion. + */ + public int join() throws IOException, InterruptedException { + return start().join(); + } + + /** + * Copies a {@link ProcStarter}. + */ + public ProcStarter copy() { + return new ProcStarter().cmds(commands).pwd(pwd).masks(masks).stdin(stdin).stdout(stdout).stderr(stderr).envs(envs); + } + } + + /** + * Launches a process by using a {@linkplain ProcStarter builder-pattern} to configure + * the parameters. + */ + public final ProcStarter launch() { + return new ProcStarter(); + } + + /** + * @deprecated as of 1.311 + * Use {@link #launch()} and its associated builder pattern + */ public final Proc launch(String cmd, Map env, OutputStream out, FilePath workDir) throws IOException { return launch(cmd,Util.mapToEnv(env),out,workDir); } + /** + * @deprecated as of 1.311 + * Use {@link #launch()} and its associated builder pattern + */ public final Proc launch(String[] cmd, Map env, OutputStream out, FilePath workDir) throws IOException { return launch(cmd, Util.mapToEnv(env), out, workDir); } + /** + * @deprecated as of 1.311 + * Use {@link #launch()} and its associated builder pattern + */ public final Proc launch(String[] cmd, Map env, InputStream in, OutputStream out) throws IOException { return launch(cmd, Util.mapToEnv(env), in, out); } @@ -152,6 +333,9 @@ public abstract class Launcher { * @param workDir null if the working directory could be anything. * @return The process of the command. * @throws IOException When there are IO problems. + * + * @deprecated as of 1.311 + * Use {@link #launch()} and its associated builder pattern */ public final Proc launch(String[] cmd, boolean[] mask, Map env, OutputStream out, FilePath workDir) throws IOException { return launch(cmd, mask, Util.mapToEnv(env), out, workDir); @@ -170,19 +354,34 @@ public abstract class Launcher { * @param out stdout and stderr of the process will be sent to this stream. the stream won't be closed. * @return The process of the command. * @throws IOException When there are IO problems. + * + * @deprecated as of 1.311 + * Use {@link #launch()} and its associated builder pattern */ public final Proc launch(String[] cmd, boolean[] mask, Map env, InputStream in, OutputStream out) throws IOException { return launch(cmd, mask, Util.mapToEnv(env), in, out); } + /** + * @deprecated as of 1.311 + * Use {@link #launch()} and its associated builder pattern + */ public final Proc launch(String cmd,String[] env,OutputStream out, FilePath workDir) throws IOException { return launch(Util.tokenize(cmd),env,out,workDir); } + /** + * @deprecated as of 1.311 + * Use {@link #launch()} and its associated builder pattern + */ public final Proc launch(String[] cmd, String[] env, OutputStream out, FilePath workDir) throws IOException { return launch(cmd, env, null, out, workDir); } + /** + * @deprecated as of 1.311 + * Use {@link #launch()} and its associated builder pattern + */ public final Proc launch(String[] cmd, String[] env, InputStream in, OutputStream out) throws IOException { return launch(cmd, env, in, out, null); } @@ -200,6 +399,9 @@ public abstract class Launcher { * @param workDir null if the working directory could be anything. * @return The process of the command. * @throws IOException When there are IO problems. + * + * @deprecated as of 1.311 + * Use {@link #launch()} and its associated builder pattern */ public final Proc launch(String[] cmd, boolean[] mask, String[] env, OutputStream out, FilePath workDir) throws IOException { return launch(cmd, mask, env, null, out, workDir); @@ -218,6 +420,9 @@ public abstract class Launcher { * @param out stdout and stderr of the process will be sent to this stream. the stream won't be closed. * @return The process of the command. * @throws IOException When there are IO problems. + * + * @deprecated as of 1.311 + * Use {@link #launch()} and its associated builder pattern */ public final Proc launch(String[] cmd, boolean[] mask, String[] env, InputStream in, OutputStream out) throws IOException { return launch(cmd, mask, env, in, out, null); @@ -233,8 +438,13 @@ public abstract class Launcher { * @param out * stdout and stderr of the process will be sent to this stream. * the stream won't be closed. + * + * @deprecated as of 1.311 + * Use {@link #launch()} and its associated builder pattern */ - public abstract Proc launch(String[] cmd,String[] env,InputStream in,OutputStream out, FilePath workDir) throws IOException; + public Proc launch(String[] cmd, String[] env, InputStream in, OutputStream out, FilePath workDir) throws IOException { + return launch(launch().cmds(cmd).envs(env).stdin(in).stdout(out).pwd(workDir)); + } /** * Launch a command with optional censoring of arguments from the listener (Note: The censored portions will @@ -250,8 +460,18 @@ public abstract class Launcher { * @param workDir null if the working directory could be anything. * @return The process of the command. * @throws IOException When there are IO problems. + * + * @deprecated as of 1.311 + * Use {@link #launch()} and its associated builder pattern */ - public abstract Proc launch(String[] cmd, boolean[] mask, String[] env, InputStream in, OutputStream out, FilePath workDir) throws IOException; + public Proc launch(String[] cmd, boolean[] mask, String[] env, InputStream in, OutputStream out, FilePath workDir) throws IOException { + return launch(launch().cmds(cmd).masks(mask).envs(env).stdin(in).stdout(out).pwd(workDir)); + } + + /** + * Primarily invoked from {@link ProcStarter#start()} to start a process with a specific launcher. + */ + public abstract Proc launch(ProcStarter starter) throws IOException; /** * Launches a specified process and connects its input/output to a {@link Channel}, then @@ -266,7 +486,7 @@ public abstract class Launcher { * The working directory of the new process, or null to inherit * from the current process * @param envVars - * Environment variable overrides. In adition to what the current process + * Environment variable overrides. In addition to what the current process * is inherited (if this is going to be launched from a slave agent, that * becomes the "current" process), these variables will be also set. */ @@ -280,7 +500,7 @@ public abstract class Launcher { } /** - * Calls {@link ProcessTreeKiller#kill(Map)} to kill processes. + * Calls {@link ProcessTree#killAll(Map)} to kill processes. */ public abstract void kill(Map modelEnvVars) throws IOException, InterruptedException; @@ -288,7 +508,7 @@ public abstract class Launcher { * Prints out the command line to the listener so that users know what we are doing. */ protected final void printCommandLine(String[] cmd, FilePath workDir) { - StringBuffer buf = new StringBuffer(); + StringBuilder buf = new StringBuilder(); if (workDir != null) { buf.append('['); if(showFullPath) @@ -320,18 +540,26 @@ public abstract class Launcher { * remain unmasked (false). * @param workDir The work dir. */ - protected final void maskedPrintCommandLine(final String[] cmd, final boolean[] mask, final FilePath workDir) { - assert mask.length == cmd.length; - final String[] masked = new String[cmd.length]; - for (int i = 0; i < cmd.length; i++) { + protected final void maskedPrintCommandLine(List cmd, boolean[] mask, FilePath workDir) { + if(mask==null) { + printCommandLine(cmd.toArray(new String[cmd.size()]),workDir); + return; + } + + assert mask.length == cmd.size(); + final String[] masked = new String[cmd.size()]; + for (int i = 0; i < cmd.size(); i++) { if (mask[i]) { masked[i] = "********"; } else { - masked[i] = cmd[i]; + masked[i] = cmd.get(i); } } printCommandLine(masked, workDir); } + protected final void maskedPrintCommandLine(String[] cmd, boolean[] mask, FilePath workDir) { + maskedPrintCommandLine(Arrays.asList(cmd),mask,workDir); + } /** * Returns a decorated {@link Launcher} for the given node. @@ -353,13 +581,10 @@ public abstract class Launcher { final Launcher outer = this; return new Launcher(outer) { @Override - public Proc launch(String[] cmd, String[] env, InputStream in, OutputStream out, FilePath workDir) throws IOException { - return outer.launch(prefix(cmd),env,in,out,workDir); - } - - @Override - public Proc launch(String[] cmd, boolean[] mask, String[] env, InputStream in, OutputStream out, FilePath workDir) throws IOException { - return outer.launch(prefix(cmd),prefix(mask),env,in,out,workDir); + public Proc launch(ProcStarter starter) throws IOException { + starter.commands.addAll(0,Arrays.asList(prefix)); + starter.masks = prefix(starter.masks); + return outer.launch(starter); } @Override @@ -399,26 +624,18 @@ public abstract class Launcher { super(listener, channel); } - public Proc launch(String[] cmd, String[] env, InputStream in, OutputStream out, FilePath workDir) throws IOException { - printCommandLine(cmd, workDir); - return createLocalProc(cmd, env, in, out, workDir); - } - - public Proc launch(String[] cmd, boolean[] mask, String[] env, InputStream in, OutputStream out, FilePath workDir) throws IOException { - maskedPrintCommandLine(cmd, mask, workDir); - return createLocalProc(cmd, env, in, out, workDir); - } + @Override + public Proc launch(ProcStarter ps) throws IOException { + maskedPrintCommandLine(ps.commands, ps.masks, ps.pwd); - private Proc createLocalProc(String[] cmd, String[] env, InputStream in, OutputStream out, FilePath workDir) throws IOException { - EnvVars jobEnv = inherit(env); + EnvVars jobEnv = inherit(ps.envs); // replace variables in command line - String[] jobCmd = new String[cmd.length]; - for ( int idx = 0 ; idx < jobCmd.length; idx++ ) { - jobCmd[idx] = jobEnv.expand(cmd[idx]); - } + String[] jobCmd = new String[ps.commands.size()]; + for ( int idx = 0 ; idx < jobCmd.length; idx++ ) + jobCmd[idx] = jobEnv.expand(ps.commands.get(idx)); - return new LocalProc(jobCmd, Util.mapToEnv(jobEnv), in, out, toFile(workDir)); + return new LocalProc(jobCmd, Util.mapToEnv(jobEnv), ps.stdin, ps.stdout, ps.stderr, toFile(ps.pwd)); } private File toFile(FilePath f) { @@ -430,13 +647,14 @@ public abstract class Launcher { ProcessBuilder pb = new ProcessBuilder(cmd); pb.directory(toFile(workDir)); + if (envVars!=null) pb.environment().putAll(envVars); return launchChannel(out, pb); } @Override - public void kill(Map modelEnvVars) { - ProcessTreeKiller.get().kill(modelEnvVars); + public void kill(Map modelEnvVars) throws InterruptedException { + ProcessTree.get().killAll(modelEnvVars); } /** @@ -444,7 +662,7 @@ public abstract class Launcher { * Where the stderr from the launched process will be sent. */ public Channel launchChannel(OutputStream out, ProcessBuilder pb) throws IOException { - final EnvVars cookie = ProcessTreeKiller.createCookie(); + final EnvVars cookie = EnvVars.createCookie(); pb.environment().putAll(cookie); final Process proc = pb.start(); @@ -458,11 +676,18 @@ public abstract class Launcher { /** * Kill the process when the channel is severed. */ + @Override protected synchronized void terminate(IOException e) { super.terminate(e); - ProcessTreeKiller.get().kill(proc,cookie); + ProcessTree pt = ProcessTree.get(); + try { + pt.killAll(proc,cookie); + } catch (InterruptedException x) { + LOGGER.log(Level.INFO, "Interrupted", x); + } } + @Override public synchronized void close() throws IOException { super.close(); // wait for all the output from the process to be picked up @@ -488,22 +713,13 @@ public abstract class Launcher { this.isUnix = isUnix; } - public Proc launch(final String[] cmd, final String[] env, InputStream in, OutputStream out, FilePath workDir) throws IOException { - printCommandLine(cmd, workDir); - return createRemoteProc(cmd, env, in, out, workDir); - } - - public Proc launch(String[] cmd, boolean[] mask, String[] env, InputStream in, OutputStream out, FilePath workDir) throws IOException { - maskedPrintCommandLine(cmd, mask, workDir); - return createRemoteProc(cmd, env, in, out, workDir); - } - - private Proc createRemoteProc(String[] cmd, String[] env, InputStream _in, OutputStream _out, FilePath _workDir) throws IOException { - final OutputStream out = new RemoteOutputStream(new CloseProofOutputStream(_out)); - final InputStream in = _in==null ? null : new RemoteInputStream(_in); - final String workDir = _workDir==null ? null : _workDir.getRemote(); + public Proc launch(ProcStarter ps) throws IOException { + final OutputStream out = ps.stdout == null ? null : new RemoteOutputStream(new CloseProofOutputStream(ps.stdout)); + final OutputStream err = ps.stderr==null ? null : new RemoteOutputStream(new CloseProofOutputStream(ps.stderr)); + final InputStream in = ps.stdin==null ? null : new RemoteInputStream(ps.stdin); + final String workDir = ps.pwd==null ? null : ps.pwd.getRemote(); - return new RemoteProc(getChannel().callAsync(new RemoteLaunchCallable(cmd, env, in, out, workDir))); + return new RemoteProc(getChannel().callAsync(new RemoteLaunchCallable(ps.commands, ps.masks, ps.envs, in, out, err, workDir, listener))); } public Channel launchChannel(String[] cmd, OutputStream err, FilePath _workDir, Map envOverrides) throws IOException, InterruptedException { @@ -536,7 +752,11 @@ public abstract class Launcher { } public Void call() throws RuntimeException { - ProcessTreeKiller.get().kill(modelEnvVars); + try { + ProcessTree.get().killAll(modelEnvVars); + } catch (InterruptedException e) { + // we are asked to terminate early by the caller, so no need to do anything + } return null; } @@ -545,23 +765,32 @@ public abstract class Launcher { } private static class RemoteLaunchCallable implements Callable { - private final String[] cmd; + private final List cmd; + private final boolean[] masks; private final String[] env; private final InputStream in; private final OutputStream out; + private final OutputStream err; private final String workDir; + private final TaskListener listener; - public RemoteLaunchCallable(String[] cmd, String[] env, InputStream in, OutputStream out, String workDir) { - this.cmd = cmd; + RemoteLaunchCallable(List cmd, boolean[] masks, String[] env, InputStream in, OutputStream out, OutputStream err, String workDir, TaskListener listener) { + this.cmd = new ArrayList(cmd); + this.masks = masks; this.env = env; this.in = in; this.out = out; + this.err = err; this.workDir = workDir; + this.listener = listener; } public Integer call() throws IOException { - Proc p = new LocalLauncher(TaskListener.NULL).launch(cmd, env, in, out, - workDir ==null ? null : new FilePath(new File(workDir))); + Launcher.ProcStarter ps = new LocalLauncher(listener).launch(); + ps.cmds(cmd).masks(masks).envs(env).stdin(in).stdout(out).stderr(err); + if(workDir!=null) ps.pwd(workDir); + + Proc p = ps.start(); try { return p.join(); } catch (InterruptedException e) { @@ -612,9 +841,11 @@ public abstract class Launcher { private static EnvVars inherit(String[] env) { // convert String[] to Map first EnvVars m = new EnvVars(); - for (String e : env) { - int index = e.indexOf('='); - m.put(e.substring(0,index), e.substring(index+1)); + if(env!=null) { + for (String e : env) { + int index = e.indexOf('='); + m.put(e.substring(0,index), e.substring(index+1)); + } } // then do the inheritance return inherit(m); @@ -634,4 +865,6 @@ public abstract class Launcher { * Debug option to display full current path instead of just the last token. */ public static boolean showFullPath = false; + + private static final Logger LOGGER = Logger.getLogger(Launcher.class.getName()); } diff --git a/core/src/main/java/hudson/LauncherDecorator.java b/core/src/main/java/hudson/LauncherDecorator.java index b1d33b06856d40dbb610a89805d5a709e082fab7..becd81a3ec3a0eb2c7858df96aa84bc40e72d50d 100644 --- a/core/src/main/java/hudson/LauncherDecorator.java +++ b/core/src/main/java/hudson/LauncherDecorator.java @@ -2,9 +2,6 @@ package hudson; import hudson.model.Hudson; import hudson.model.Node; -import hudson.model.TaskListener; -import hudson.model.AbstractBuild; -import hudson.model.BuildListener; import hudson.model.Executor; import hudson.tasks.BuildWrapper; diff --git a/core/src/main/java/hudson/LocalPluginManager.java b/core/src/main/java/hudson/LocalPluginManager.java new file mode 100644 index 0000000000000000000000000000000000000000..74ecbb4ac493e1c97b995d973a4f6cd59cd004b7 --- /dev/null +++ b/core/src/main/java/hudson/LocalPluginManager.java @@ -0,0 +1,87 @@ +/* + * The MIT License + * + * Copyright (c) 2010, Kohsuke Kawaguchi + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +package hudson; + +import hudson.model.Hudson; + +import java.io.File; +import java.io.IOException; +import java.net.URL; +import java.util.Collection; +import java.util.Collections; +import java.util.HashSet; +import java.util.Set; +import java.util.logging.Level; +import java.util.logging.Logger; + +/** + * {@link PluginManager} + * + * @author Kohsuke Kawaguchi + */ +public class LocalPluginManager extends PluginManager { + private final Hudson hudson; + public LocalPluginManager(Hudson hudson) { + super(hudson.servletContext, new File(hudson.getRootDir(),"plugins")); + this.hudson = hudson; + } + + /** + * If the war file has any "/WEB-INF/plugins/*.hpi", extract them into the plugin directory. + * + * @return + * File names of the bundled plugins. Like {"ssh-slaves.hpi","subvesrion.hpi"} + */ + @Override + protected Collection loadBundledPlugins() { + // this is used in tests, when we want to override the default bundled plugins with .hpl versions + if (System.getProperty("hudson.bundled.plugins") != null) { + return Collections.emptySet(); + } + + Set names = new HashSet(); + + for( String path : Util.fixNull((Set)hudson.servletContext.getResourcePaths("/WEB-INF/plugins"))) { + String fileName = path.substring(path.lastIndexOf('/')+1); + if(fileName.length()==0) { + // see http://www.nabble.com/404-Not-Found-error-when-clicking-on-help-td24508544.html + // I suspect some containers are returning directory names. + continue; + } + try { + names.add(fileName); + + URL url = hudson.servletContext.getResource(path); + copyBundledPlugin(url, fileName); + } catch (IOException e) { + LOGGER.log(Level.SEVERE, "Failed to extract the bundled plugin "+fileName,e); + } + } + + return names; + } + + private static final Logger LOGGER = Logger.getLogger(LocalPluginManager.class.getName()); +} diff --git a/core/src/main/java/hudson/Lookup.java b/core/src/main/java/hudson/Lookup.java new file mode 100644 index 0000000000000000000000000000000000000000..090f3eb28449490f2ed72c8d675a0cc21e773301 --- /dev/null +++ b/core/src/main/java/hudson/Lookup.java @@ -0,0 +1,57 @@ +/* + * The MIT License + * + * Copyright (c) 2010, Kohsuke Kawaguchi + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +package hudson; + +import java.util.concurrent.ConcurrentHashMap; + +/** + * Type-safe instance map. + * + * @author Kohsuke Kawaguchi + */ +public class Lookup { + private final ConcurrentHashMap data = new ConcurrentHashMap(); + + public T get(Class type) { + return type.cast(data.get(type)); + } + + public T set(Class type, T instance) { + return type.cast(data.put(type,instance)); + } + + /** + * Overwrites the value only if the current value is null. + * + * @return + * If the value was null, return the {@code instance} value. + * Otherwise return the current value, which is non-null. + */ + public T setIfNull(Class type, T instance) { + Object o = data.putIfAbsent(type, instance); + if (o!=null) return type.cast(o); + return instance; + } +} diff --git a/core/src/main/java/hudson/Main.java b/core/src/main/java/hudson/Main.java index 0dbb91c90772b2995088c973acfc1f8c80d7d860..89ad4b9076abb253b36e433b94a2f610a70197d3 100644 --- a/core/src/main/java/hudson/Main.java +++ b/core/src/main/java/hudson/Main.java @@ -25,10 +25,14 @@ package hudson; import hudson.util.DualOutputStream; import hudson.util.EncodingStream; +import com.thoughtworks.xstream.core.util.Base64Encoder; +import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.Writer; import java.net.HttpRetryException; @@ -37,6 +41,7 @@ import java.net.URL; import java.net.URLEncoder; import java.util.ArrayList; import java.util.List; +import java.nio.charset.Charset; /** * Entry point to Hudson from command line. @@ -58,10 +63,14 @@ public class Main { public static int run(String[] args) throws Exception { String home = getHudsonHome(); - if(home==null) { + if (home==null) { System.err.println("HUDSON_HOME is not set."); return -1; } + if (args.length < 2) { + System.err.println("Usage: "); + return -1; + } return remotePost(args); } @@ -79,8 +88,13 @@ public class Main { String home = getHudsonHome(); if(!home.endsWith("/")) home = home + '/'; // make sure it ends with '/' + // check for authentication info + String auth = new URL(home).getUserInfo(); + if(auth != null) auth = "Basic " + new Base64Encoder().encode(auth.getBytes("UTF-8")); + {// check if the home is set correctly - HttpURLConnection con = (HttpURLConnection)new URL(home).openConnection(); + HttpURLConnection con = open(new URL(home)); + if (auth != null) con.setRequestProperty("Authorization", auth); con.connect(); if(con.getResponseCode()!=200 || con.getHeaderField("X-Hudson")==null) { @@ -92,7 +106,8 @@ public class Main { String projectNameEnc = URLEncoder.encode(projectName,"UTF-8").replaceAll("\\+","%20"); {// check if the job name is correct - HttpURLConnection con = (HttpURLConnection)new URL(home+"job/"+projectNameEnc+"/acceptBuildResult").openConnection(); + HttpURLConnection con = open(new URL(home+"job/"+projectNameEnc+"/acceptBuildResult")); + if (auth != null) con.setRequestProperty("Authorization", auth); con.connect(); if(con.getResponseCode()!=200) { System.err.println(projectName+" is not a valid job name on "+home+" ("+con.getResponseMessage()+")"); @@ -100,58 +115,108 @@ public class Main { } } + // get a crumb to pass the csrf check + String crumbField = null, crumbValue = null; + try { + HttpURLConnection con = open(new URL(home + + "crumbIssuer/api/xml?xpath=concat(//crumbRequestField,\":\",//crumb)'")); + if (auth != null) con.setRequestProperty("Authorization", auth); + BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream())); + String line = in.readLine(); + in.close(); + String[] components = line.split(":"); + if (components.length == 2) { + crumbField = components[0]; + crumbValue = components[1]; + } + } catch (IOException e) { + // presumably this Hudson doesn't use CSRF protection + } + // write the output to a temporary file first. File tmpFile = File.createTempFile("hudson","log"); - tmpFile.deleteOnExit(); - FileOutputStream os = new FileOutputStream(tmpFile); - - Writer w = new OutputStreamWriter(os,"UTF-8"); - w.write(""); - w.write(""); - w.flush(); - - // run the command - long start = System.currentTimeMillis(); - - List cmd = new ArrayList(); - for( int i=1; i"+ret+""+(System.currentTimeMillis()-start)+""); - w.close(); - - String location = home+"job/"+projectNameEnc+"/postBuildResult"; - while(true) { - try { - // start a remote connection - HttpURLConnection con = (HttpURLConnection) new URL(location).openConnection(); - con.setDoOutput(true); - // this tells HttpURLConnection not to buffer the whole thing - con.setFixedLengthStreamingMode((int)tmpFile.length()); - con.connect(); - // send the data - FileInputStream in = new FileInputStream(tmpFile); - Util.copyStream(in,con.getOutputStream()); - in.close(); - - if(con.getResponseCode()!=200) { - Util.copyStream(con.getErrorStream(),System.err); - } - - return ret; - } catch (HttpRetryException e) { - if(e.getLocation()!=null) { - // retry with the new location - location = e.getLocation(); - continue; + try { + FileOutputStream os = new FileOutputStream(tmpFile); + + Writer w = new OutputStreamWriter(os,"UTF-8"); + w.write(""); + w.write(""); + w.flush(); + + // run the command + long start = System.currentTimeMillis(); + + List cmd = new ArrayList(); + for( int i=1; i"+ret+""+(System.currentTimeMillis()-start)+""); + w.close(); + + String location = home+"job/"+projectNameEnc+"/postBuildResult"; + while(true) { + try { + // start a remote connection + HttpURLConnection con = open(new URL(location)); + if (auth != null) con.setRequestProperty("Authorization", auth); + if (crumbField != null && crumbValue != null) { + con.setRequestProperty(crumbField, crumbValue); + } + con.setDoOutput(true); + // this tells HttpURLConnection not to buffer the whole thing + con.setFixedLengthStreamingMode((int)tmpFile.length()); + con.connect(); + // send the data + FileInputStream in = new FileInputStream(tmpFile); + Util.copyStream(in,con.getOutputStream()); + in.close(); + + if(con.getResponseCode()!=200) { + Util.copyStream(con.getErrorStream(),System.err); + } + + return ret; + } catch (HttpRetryException e) { + if(e.getLocation()!=null) { + // retry with the new location + location = e.getLocation(); + continue; + } + // otherwise failed for reasons beyond us. + throw e; } - // otherwise failed for reasons beyond us. - throw e; } + } finally { + tmpFile.delete(); } } + + /** + * Connects to the given HTTP URL and configure time out, to avoid infinite hang. + */ + private static HttpURLConnection open(URL url) throws IOException { + HttpURLConnection c = (HttpURLConnection)url.openConnection(); + c.setReadTimeout(TIMEOUT); + c.setConnectTimeout(TIMEOUT); + return c; + } + + /** + * Set to true if we are running unit tests. + */ + public static boolean isUnitTest = false; + + /** + * Set to true if we are running inside "mvn hpi:run" or "mvn hudson-dev:run" + */ + public static boolean isDevelopmentMode = Boolean.getBoolean(Main.class.getName()+".development"); + + /** + * Time out for socket connection to Hudson. + */ + public static final int TIMEOUT = Integer.getInteger(Main.class.getName()+".timeout",15000); } diff --git a/core/src/main/java/hudson/MarkupText.java b/core/src/main/java/hudson/MarkupText.java index 619e2a4a8d4b9566b9d38de4b22f4d7f2a6b0423..03ef1fcb02f18f6bc44ee1ec11993cdaf0cd9171 100644 --- a/core/src/main/java/hudson/MarkupText.java +++ b/core/src/main/java/hudson/MarkupText.java @@ -1,7 +1,7 @@ /* * The MIT License * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi + * Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -52,9 +52,14 @@ public class MarkupText extends AbstractMarkupText { * Represents one mark up inserted into text. */ private static final class Tag implements Comparable { + /** + * Char position of this tag in {@link MarkupText#text}. + * This tag is placed in front of the character of this index. + */ private final int pos; private final String markup; + public Tag(int pos, String markup) { this.pos = pos; this.markup = markup; @@ -84,6 +89,18 @@ public class MarkupText extends AbstractMarkupText { } } + public SubText(int start, int end) { + this.start = start; + this.end = end; + groups = new int[0]; + } + + @Override + public SubText subText(int start, int end) { + return MarkupText.this.subText(this.start+start, + end<0 ? this.end+1+end : this.start+end); + } + @Override public String getText() { return text.substring(start,end); @@ -114,6 +131,13 @@ public class MarkupText extends AbstractMarkupText { addMarkup(0,length(),startTag,endTag); } + /** + * Surrounds this subtext with <a>...</a>. + */ + public void href(String url) { + addHyperlink(0,length(),url); + } + /** * Gets the start index of the captured group within {@link MarkupText#getText()}. * @@ -157,6 +181,14 @@ public class MarkupText extends AbstractMarkupText { return text.substring(start(groupIndex),end(groupIndex)); } + /** + * How many captured groups are in this subtext. + * @since 1.357 + */ + public int groupCount() { + return groups.length / 2; + } + /** * Replaces the group tokens like "$0", "$1", and etc with their actual matches. */ @@ -198,6 +230,11 @@ public class MarkupText extends AbstractMarkupText { } } + /** + * + * @param text + * Plain text. This shouldn't include any markup nor escape. Those are done later in {@link #toString(boolean)}. + */ public MarkupText(String text) { this.text = text; } @@ -207,6 +244,16 @@ public class MarkupText extends AbstractMarkupText { return text; } + /** + * Returns a subtext. + * + * @param end + * If negative, -N means "trim the last N-1 chars". That is, (s,-1) is the same as (s,length) + */ + public SubText subText(int start, int end) { + return new SubText(start, end<0 ? text.length()+1+end : end); + } + @Override public void addMarkup( int startPos, int endPos, String startTag, String endTag ) { rangeCheck(startPos); @@ -214,10 +261,15 @@ public class MarkupText extends AbstractMarkupText { if(startPos>endPos) throw new IndexOutOfBoundsException(); // when multiple tags are added to the same range, we want them to show up like - // abc, not abc. Do this by inserting them to different - // places. - tags.add(0,new Tag(startPos, startTag)); - tags.add(new Tag(endPos,endTag)); + // abc, not abc. Also, we'd like abcdef, + // not abcdef. Do this by inserting them to different places. + tags.add(new Tag(startPos, startTag)); + tags.add(0,new Tag(endPos,endTag)); + } + + public void addMarkup(int pos, String tag) { + rangeCheck(pos); + tags.add(new Tag(pos,tag)); } private void rangeCheck(int pos) { @@ -227,19 +279,42 @@ public class MarkupText extends AbstractMarkupText { /** * Returns the fully marked-up text. + * + * @deprecated as of 1.350. + * Use {@link #toString(boolean)} to be explicit about the escape mode. */ + @Override public String toString() { + return toString(false); + } + + /** + * Returns the fully marked-up text. + * + * @param preEscape + * If true, the escaping is for the <PRE> context. This leave SP and CR/LF intact. + * If false, the escape is for the normal HTML, thus SP becomes &nbsp; and CR/LF becomes <BR> + */ + public String toString(boolean preEscape) { if(tags.isEmpty()) - return text; // the most common case + return preEscape? Util.xmlEscape(text) : Util.escape(text); // the most common case - // somewhat inefficient implementation, if there are a lot of mark up and text is large. Collections.sort(tags); + StringBuilder buf = new StringBuilder(); - buf.append(text); - int offset = 0; // remember the # of chars inserted. + int copied = 0; // # of chars already copied from text to buf + for (Tag tag : tags) { - buf.insert(tag.pos+offset,tag.markup); - offset += tag.markup.length(); + if (copied * If you are using this method, you'll likely be interested in * using {@link #save()} and {@link #load()}. - * @since XXX + * @since 1.305 */ public void configure(StaplerRequest req, JSONObject formData) throws IOException, ServletException, FormException { configure(formData); @@ -227,6 +228,7 @@ public abstract class Plugin implements Saveable { public void save() throws IOException { if(BulkChange.contains(this)) return; getConfigXml().write(this); + SaveableListener.fireOnChange(this, getConfigXml()); } /** @@ -243,11 +245,12 @@ public abstract class Plugin implements Saveable { new File(Hudson.getInstance().getRootDir(),wrapper.getShortName()+".xml")); } + /** * Dummy instance of {@link Plugin} to be used when a plugin didn't * supply one on its own. * - * @since 1.288 + * @since 1.321 */ - public static final Plugin NONE = new Plugin() {}; + public static final class DummyImpl extends Plugin {} } diff --git a/core/src/main/java/hudson/PluginFirstClassLoader.java b/core/src/main/java/hudson/PluginFirstClassLoader.java new file mode 100644 index 0000000000000000000000000000000000000000..41ca562e6b121cedaa18137a51b0dfaa27a054de --- /dev/null +++ b/core/src/main/java/hudson/PluginFirstClassLoader.java @@ -0,0 +1,105 @@ +/* + * The MIT License + * + * Copyright (c) 2004-2009, Sun Microsystems, Inc., Olivier Lamy + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson; + +import java.io.Closeable; +import java.io.File; +import java.io.IOException; +import java.io.InputStream; +import java.net.URL; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Enumeration; +import java.util.List; + +import org.apache.tools.ant.AntClassLoader; + +/** + * classLoader which use first /WEB-INF/lib/*.jar and /WEB-INF/classes before core classLoader + * you must use the pluginFirstClassLoader true in the maven-hpi-plugin + * @author olamy + * @since 1.371 + */ +public class PluginFirstClassLoader + extends AntClassLoader + implements Closeable +{ + + private List urls = new ArrayList(); + + public void addPathFiles( Collection paths ) + throws IOException + { + for ( File f : paths ) + { + urls.add( f.toURI().toURL() ); + addPathFile( f ); + } + } + + /** + * @return List of jar used by the plugin /WEB-INF/lib/*.jar and classes directory /WEB-INF/classes + */ + public List getURLs() + { + return urls; + } + + public void close() + throws IOException + { + cleanup(); + } + + @Override + protected Enumeration findResources( String arg0, boolean arg1 ) + throws IOException + { + Enumeration enu = super.findResources( arg0, arg1 ); + return enu; + } + + @Override + protected Enumeration findResources( String name ) + throws IOException + { + Enumeration enu = super.findResources( name ); + return enu; + } + + @Override + public URL getResource( String arg0 ) + { + URL url = super.getResource( arg0 ); + return url; + } + + @Override + public InputStream getResourceAsStream( String name ) + { + InputStream is = super.getResourceAsStream( name ); + return is; + } + +} diff --git a/core/src/main/java/hudson/PluginManager.java b/core/src/main/java/hudson/PluginManager.java index 2052160caae10bec123384f1f86714cc8b0ae9b3..cb7a8c64751a633ec178112b3c03d44707f3f124 100644 --- a/core/src/main/java/hudson/PluginManager.java +++ b/core/src/main/java/hudson/PluginManager.java @@ -1,7 +1,7 @@ /* * The MIT License * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Stephen Connolly, Tom Huybrechts + * Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Stephen Connolly, Tom Huybrechts * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -23,59 +23,87 @@ */ package hudson; -import hudson.model.*; +import static hudson.init.InitMilestone.PLUGINS_PREPARED; +import static hudson.init.InitMilestone.PLUGINS_STARTED; +import static hudson.init.InitMilestone.PLUGINS_LISTED; + +import hudson.PluginWrapper.Dependency; +import hudson.init.InitStrategy; +import hudson.init.InitializerFinder; +import hudson.model.AbstractModelObject; +import hudson.model.Failure; +import hudson.model.Hudson; +import hudson.model.UpdateCenter; +import hudson.model.UpdateSite; +import hudson.util.CyclicGraphDetector; +import hudson.util.CyclicGraphDetector.CycleDetectedException; +import hudson.util.PersistedList; import hudson.util.Service; +import org.apache.commons.fileupload.FileItem; +import org.apache.commons.fileupload.disk.DiskFileItemFactory; +import org.apache.commons.fileupload.servlet.ServletFileUpload; +import org.apache.commons.io.FileUtils; +import org.apache.commons.logging.LogFactory; +import org.jvnet.hudson.reactor.Executable; +import org.jvnet.hudson.reactor.Reactor; +import org.jvnet.hudson.reactor.TaskBuilder; +import org.jvnet.hudson.reactor.TaskGraphBuilder; +import org.kohsuke.stapler.HttpRedirect; +import org.kohsuke.stapler.HttpResponse; +import org.kohsuke.stapler.HttpResponses; +import org.kohsuke.stapler.QueryParameter; +import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerResponse; -import java.util.Enumeration; import javax.servlet.ServletContext; import javax.servlet.ServletException; import java.io.File; -import java.io.FilenameFilter; import java.io.IOException; +import java.lang.ref.WeakReference; import java.net.URL; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; +import java.util.Enumeration; import java.util.HashSet; +import java.util.Hashtable; import java.util.List; import java.util.Set; -import java.util.Arrays; +import java.util.Map; +import java.util.HashMap; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.ConcurrentMap; import java.util.logging.Level; import java.util.logging.Logger; -import org.apache.commons.logging.LogFactory; -import org.apache.commons.fileupload.servlet.ServletFileUpload; -import org.apache.commons.fileupload.disk.DiskFileItemFactory; -import org.apache.commons.fileupload.FileItem; -import org.apache.commons.io.FileUtils; -import org.kohsuke.stapler.StaplerRequest; -import org.kohsuke.stapler.StaplerResponse; -import org.kohsuke.stapler.QueryParameter; -import org.kohsuke.stapler.WebApp; - /** * Manages {@link PluginWrapper}s. * * @author Kohsuke Kawaguchi */ -public final class PluginManager extends AbstractModelObject { +public abstract class PluginManager extends AbstractModelObject { /** * All discovered plugins. */ - private final List plugins = new ArrayList(); + protected final List plugins = new ArrayList(); /** * All active plugins. */ - private final List activePlugins = new ArrayList(); + protected final List activePlugins = new ArrayList(); - private final List failedPlugins = new ArrayList(); + protected final List failedPlugins = new ArrayList(); /** * Plug-in root directory. */ public final File rootDir; + /** + * @deprecated as of 1.355 + * {@link PluginManager} can now live longer than {@link Hudson} instance, so + * use {@code Hudson.getInstance().servletContext} instead. + */ public final ServletContext context; /** @@ -92,72 +120,29 @@ public final class PluginManager extends AbstractModelObject { * This is used to report a message that Hudson needs to be restarted * for new plugins to take effect. */ - public volatile boolean pluginUploaded =false; + public volatile boolean pluginUploaded = false; + + /** + * The initialization of {@link PluginManager} splits into two parts; + * one is the part about listing them, extracting them, and preparing classloader for them. + * The 2nd part is about creating instances. Once the former completes this flags become true, + * as the 2nd part can be repeated for each Hudson instance. + */ + private boolean pluginListed = false; /** * Strategy for creating and initializing plugins */ - private PluginStrategy strategy; + private final PluginStrategy strategy; - public PluginManager(ServletContext context) { + public PluginManager(ServletContext context, File rootDir) { this.context = context; - // JSON binding needs to be able to see all the classes from all the plugins - WebApp.get(context).setClassLoader(uberClassLoader); - rootDir = new File(Hudson.getInstance().getRootDir(),"plugins"); + this.rootDir = rootDir; if(!rootDir.exists()) rootDir.mkdirs(); - - loadBundledPlugins(); - - File[] archives = rootDir.listFiles(new FilenameFilter() { - public boolean accept(File dir, String name) { - return name.endsWith(".hpi") // plugin jar file - || name.endsWith(".hpl"); // linked plugin. for debugging. - } - }); - - if(archives==null) { - LOGGER.severe("Hudson is unable to create "+rootDir+"\nPerhaps its security privilege is insufficient"); - return; - } strategy = createPluginStrategy(); - - // load plugins from a system property, for use in the "mvn hudson-dev:run" - List archivesList = new ArrayList(Arrays.asList(archives)); - String hplProperty = System.getProperty("hudson.bundled.plugins"); - if (hplProperty != null) { - for (String hplLocation: hplProperty.split(",")) { - File hpl = new File(hplLocation.trim()); - if (hpl.exists()) - archivesList.add(hpl); - else - LOGGER.warning("bundled plugin " + hplLocation + " does not exist"); - } - } - - for( File arc : archivesList ) { - try { - PluginWrapper p = strategy.createPluginWrapper(arc); - plugins.add(p); - if(p.isActive()) - activePlugins.add(p); - } catch (IOException e) { - failedPlugins.add(new FailedPlugin(arc.getName(),e)); - LOGGER.log(Level.SEVERE, "Failed to load a plug-in " + arc, e); - } - } - - for (PluginWrapper p : activePlugins.toArray(new PluginWrapper[activePlugins.size()])) - try { - strategy.load(p); - } catch (IOException e) { - failedPlugins.add(new FailedPlugin(p.getShortName(),e)); - LOGGER.log(Level.SEVERE, "Failed to load a plug-in " + p.getShortName(), e); - activePlugins.remove(p); - plugins.remove(p); - } } /** @@ -165,54 +150,205 @@ public final class PluginManager extends AbstractModelObject { * This is a separate method so that code executed from here will see a valid value in * {@link Hudson#pluginManager}. */ - public void initialize() { - for (PluginWrapper p : activePlugins.toArray(new PluginWrapper[activePlugins.size()])) { - strategy.initializeComponents(p); - try { - p.getPlugin().postInitialize(); - } catch (Exception e) { - failedPlugins.add(new FailedPlugin(p.getShortName(), e)); - LOGGER.log(Level.SEVERE, "Failed to post-initialize a plug-in " + p.getShortName(), e); - activePlugins.remove(p); - plugins.remove(p); - } + public TaskBuilder initTasks(final InitStrategy initStrategy) { + TaskBuilder builder; + if (!pluginListed) { + builder = new TaskGraphBuilder() { + List archives; + Collection bundledPlugins; + + { + Handle loadBundledPlugins = add("Loading bundled plugins", new Executable() { + public void run(Reactor session) throws Exception { + bundledPlugins = loadBundledPlugins(); + } + }); + + Handle listUpPlugins = requires(loadBundledPlugins).add("Listing up plugins", new Executable() { + public void run(Reactor session) throws Exception { + archives = initStrategy.listPluginArchives(PluginManager.this); + } + }); + + requires(listUpPlugins).attains(PLUGINS_LISTED).add("Preparing plugins",new Executable() { + public void run(Reactor session) throws Exception { + // once we've listed plugins, we can fill in the reactor with plugin-specific initialization tasks + TaskGraphBuilder g = new TaskGraphBuilder(); + + final Map inspectedShortNames = new HashMap(); + + for( final File arc : archives ) { + g.followedBy().notFatal().attains(PLUGINS_LISTED).add("Inspecting plugin " + arc, new Executable() { + public void run(Reactor session1) throws Exception { + try { + PluginWrapper p = strategy.createPluginWrapper(arc); + if (isDuplicate(p)) return; + + p.isBundled = bundledPlugins.contains(arc.getName()); + plugins.add(p); + if(p.isActive()) + activePlugins.add(p); + } catch (IOException e) { + failedPlugins.add(new FailedPlugin(arc.getName(),e)); + throw e; + } + } + + /** + * Inspects duplication. this happens when you run hpi:run on a bundled plugin, + * as well as putting numbered hpi files, like "cobertura-1.0.hpi" and "cobertura-1.1.hpi" + */ + private boolean isDuplicate(PluginWrapper p) { + String shortName = p.getShortName(); + if (inspectedShortNames.containsKey(shortName)) { + LOGGER.info("Ignoring "+arc+" because "+inspectedShortNames.get(shortName)+" is already loaded"); + return true; + } + + inspectedShortNames.put(shortName,arc); + return false; + } + }); + } + + g.requires(PLUGINS_PREPARED).add("Checking cyclic dependencies",new Executable() { + /** + * Makes sure there's no cycle in dependencies. + */ + public void run(Reactor reactor) throws Exception { + try { + new CyclicGraphDetector() { + @Override + protected List getEdges(PluginWrapper p) { + List next = new ArrayList(); + addTo(p.getDependencies(),next); + addTo(p.getOptionalDependencies(),next); + return next; + } + + private void addTo(List dependencies, List r) { + for (Dependency d : dependencies) { + PluginWrapper p = getPlugin(d.shortName); + if (p!=null) + r.add(p); + } + } + }.run(getPlugins()); + } catch (CycleDetectedException e) { + stop(); // disable all plugins since classloading from them can lead to StackOverflow + throw e; // let Hudson fail + } + Collections.sort(plugins); + } + }); + + session.addAll(g.discoverTasks(session)); + + pluginListed = true; // technically speaking this is still too early, as at this point tasks are merely scheduled, not necessarily executed. + } + }); + } + }; + } else { + builder = TaskBuilder.EMPTY_BUILDER; } + + final InitializerFinder initializerFinder = new InitializerFinder(uberClassLoader); // misc. stuff + + // lists up initialization tasks about loading plugins. + return TaskBuilder.union(initializerFinder, // this scans @Initializer in the core once + builder,new TaskGraphBuilder() {{ + requires(PLUGINS_LISTED).attains(PLUGINS_PREPARED).add("Loading plugins",new Executable() { + /** + * Once the plugins are listed, schedule their initialization. + */ + public void run(Reactor session) throws Exception { + Hudson.getInstance().lookup.set(PluginInstanceStore.class,new PluginInstanceStore()); + TaskGraphBuilder g = new TaskGraphBuilder(); + + // schedule execution of loading plugins + for (final PluginWrapper p : activePlugins.toArray(new PluginWrapper[activePlugins.size()])) { + g.followedBy().notFatal().attains(PLUGINS_PREPARED).add("Loading plugin " + p.getShortName(), new Executable() { + public void run(Reactor session) throws Exception { + try { + p.resolvePluginDependencies(); + strategy.load(p); + } catch (IOException e) { + failedPlugins.add(new FailedPlugin(p.getShortName(), e)); + activePlugins.remove(p); + plugins.remove(p); + throw e; + } + } + }); + } + + // schedule execution of initializing plugins + for (final PluginWrapper p : activePlugins.toArray(new PluginWrapper[activePlugins.size()])) { + g.followedBy().notFatal().attains(PLUGINS_STARTED).add("Initializing plugin " + p.getShortName(), new Executable() { + public void run(Reactor session) throws Exception { + try { + p.getPlugin().postInitialize(); + } catch (Exception e) { + failedPlugins.add(new FailedPlugin(p.getShortName(), e)); + activePlugins.remove(p); + plugins.remove(p); + throw e; + } + } + }); + } + + g.followedBy().attains(PLUGINS_STARTED).add("Discovering plugin initialization tasks", new Executable() { + public void run(Reactor reactor) throws Exception { + // rescan to find plugin-contributed @Initializer + reactor.addAll(initializerFinder.discoverTasks(reactor)); + } + }); + + // register them all + session.addAll(g.discoverTasks(session)); + } + }); + }}); } /** * If the war file has any "/WEB-INF/plugins/*.hpi", extract them into the plugin directory. + * + * @return + * File names of the bundled plugins. Like {"ssh-slaves.hpi","subvesrion.hpi"} + * @throws Exception + * Any exception will be reported and halt the startup. */ - private void loadBundledPlugins() { - // this is used in tests, when we want to override the default bundled plugins with .hpl versions - if (System.getProperty("hudson.bundled.plugins") != null) { - return; - } - Set paths = context.getResourcePaths("/WEB-INF/plugins"); - if(paths==null) return; // crap - for( String path : (Set) paths) { - String fileName = path.substring(path.lastIndexOf('/')+1); - try { - URL url = context.getResource(path); - long lastModified = url.openConnection().getLastModified(); - File file = new File(rootDir, fileName); - if (!file.exists() || file.lastModified() != lastModified) { - FileUtils.copyURLToFile(url, file); - file.setLastModified(url.openConnection().getLastModified()); - // lastModified is set for two reasons: - // - to avoid unpacking as much as possible, but still do it on both upgrade and downgrade - // - to make sure the value is not changed after each restart, so we can avoid - // unpacking the plugin itself in ClassicPluginStrategy.explode - } - } catch (IOException e) { - LOGGER.log(Level.SEVERE, "Failed to extract the bundled plugin "+fileName,e); - } + protected abstract Collection loadBundledPlugins() throws Exception; + + /** + * Copies the bundled plugin from the given URL to the destination of the given file name (like 'abc.hpi'), + * with a reasonable up-to-date check. A convenience method to be used by the {@link #loadBundledPlugins()}. + */ + protected void copyBundledPlugin(URL src, String fileName) throws IOException { + long lastModified = src.openConnection().getLastModified(); + File file = new File(rootDir, fileName); + File pinFile = new File(rootDir, fileName+".pinned"); + + // update file if: + // - no file exists today + // - bundled version and current version differs (by timestamp), and the file isn't pinned. + if (!file.exists() || (file.lastModified() != lastModified && !pinFile.exists())) { + FileUtils.copyURLToFile(src, file); + file.setLastModified(src.openConnection().getLastModified()); + // lastModified is set for two reasons: + // - to avoid unpacking as much as possible, but still do it on both upgrade and downgrade + // - to make sure the value is not changed after each restart, so we can avoid + // unpacking the plugin itself in ClassicPluginStrategy.explode } } /** * Creates a hudson.PluginStrategy, looking at the corresponding system property. */ - private PluginStrategy createPluginStrategy() { + private PluginStrategy createPluginStrategy() { String strategyName = System.getProperty(PluginStrategy.class.getName()); if (strategyName != null) { try { @@ -238,14 +374,15 @@ public final class PluginManager extends AbstractModelObject { // default and fallback return new ClassicPluginStrategy(this); - } - - public PluginStrategy getPluginStrategy() { - return strategy; - } - - /** - * Retrurns true if any new plugin was added, which means a restart is required for the change to take effect. + } + + public PluginStrategy getPluginStrategy() { + return strategy; + } + + /** + * Returns true if any new plugin was added, which means a restart is required + * for the change to take effect. */ public boolean isPluginUploaded() { return pluginUploaded; @@ -297,7 +434,7 @@ public final class PluginManager extends AbstractModelObject { } public String getDisplayName() { - return "Plugin Manager"; + return Messages.PluginManager_DisplayName(); } public String getSearchUrl() { @@ -324,12 +461,33 @@ public final class PluginManager extends AbstractModelObject { public void stop() { for (PluginWrapper p : activePlugins) { p.stop(); + p.releaseClassLoader(); } + activePlugins.clear(); // Work around a bug in commons-logging. // See http://www.szegedi.org/articles/memleak.html LogFactory.release(uberClassLoader); } + public HttpResponse doUpdateSources(StaplerRequest req) throws IOException { + Hudson.getInstance().checkPermission(Hudson.ADMINISTER); + + if (req.hasParameter("remove")) { + UpdateCenter uc = Hudson.getInstance().getUpdateCenter(); + BulkChange bc = new BulkChange(uc); + try { + for (String id : req.getParameterValues("sources")) + uc.getSites().remove(uc.getById(id)); + } finally { + bc.commit(); + } + } else + if (req.hasParameter("add")) + return new HttpRedirect("addSite"); + + return new HttpRedirect("./sites"); + } + /** * Performs the installation of the plugins. */ @@ -339,42 +497,64 @@ public final class PluginManager extends AbstractModelObject { String n = en.nextElement(); if(n.startsWith("plugin.")) { n = n.substring(7); - UpdateCenter.Plugin p = Hudson.getInstance().getUpdateCenter().getPlugin(n); - if(p==null) { - sendError("No such plugin: "+n,req,rsp); - return; + if (n.indexOf(".") > 0) { + String[] pluginInfo = n.split("\\."); + UpdateSite.Plugin p = Hudson.getInstance().getUpdateCenter().getById(pluginInfo[1]).getPlugin(pluginInfo[0]); + if(p==null) + throw new Failure("No such plugin: "+n); + p.deploy(); } - p.install(); } } rsp.sendRedirect("../updateCenter/"); } + - public void doProxyConfigure( + /** + * Bare-minimum configuration mechanism to change the update center. + */ + public HttpResponse doSiteConfigure(@QueryParameter String site) throws IOException { + Hudson hudson = Hudson.getInstance(); + hudson.checkPermission(Hudson.ADMINISTER); + UpdateCenter uc = hudson.getUpdateCenter(); + PersistedList sites = uc.getSites(); + for (UpdateSite s : sites) { + if (s.getId().equals("default")) + sites.remove(s); + } + sites.add(new UpdateSite("default",site)); + + return HttpResponses.redirectToContextRoot(); + } + + + public HttpResponse doProxyConfigure( @QueryParameter("proxy.server") String server, @QueryParameter("proxy.port") String port, @QueryParameter("proxy.userName") String userName, - @QueryParameter("proxy.password") String password, - StaplerResponse rsp) throws IOException { - Hudson.getInstance().checkPermission(Hudson.ADMINISTER); - + @QueryParameter("proxy.password") String password) throws IOException { Hudson hudson = Hudson.getInstance(); + hudson.checkPermission(Hudson.ADMINISTER); + server = Util.fixEmptyAndTrim(server); if(server==null) { hudson.proxy = null; ProxyConfiguration.getXmlFile().delete(); - } else { - hudson.proxy = new ProxyConfiguration(server,Integer.parseInt(Util.fixEmptyAndTrim(port)), + } else try { + hudson.proxy = new ProxyConfiguration(server,Integer.parseInt(Util.fixNull(port)), Util.fixEmptyAndTrim(userName),Util.fixEmptyAndTrim(password)); hudson.proxy.save(); + } catch (NumberFormatException nfe) { + return HttpResponses.error(StaplerResponse.SC_BAD_REQUEST, + new IllegalArgumentException("Invalid proxy port: " + port, nfe)); } - rsp.sendRedirect("./advanced"); + return new HttpRedirect("advanced"); } /** * Uploads a plugin. */ - public void doUploadPlugin( StaplerRequest req, StaplerResponse rsp ) throws IOException, ServletException { + public HttpResponse doUploadPlugin(StaplerRequest req) throws IOException, ServletException { try { Hudson.getInstance().checkPermission(Hudson.ADMINISTER); @@ -383,16 +563,16 @@ public final class PluginManager extends AbstractModelObject { // Parse the request FileItem fileItem = (FileItem) upload.parseRequest(req).get(0); String fileName = Util.getFileName(fileItem.getName()); - if(!fileName.endsWith(".hpi")) { - sendError(hudson.model.Messages.Hudson_NotAPlugin(fileName),req,rsp); - return; - } + if("".equals(fileName)) + return new HttpRedirect("advanced"); + if(!fileName.endsWith(".hpi")) + throw new Failure(hudson.model.Messages.Hudson_NotAPlugin(fileName)); fileItem.write(new File(rootDir, fileName)); fileItem.delete(); - pluginUploaded=true; + pluginUploaded = true; - rsp.sendRedirect2("."); + return new HttpRedirect("."); } catch (IOException e) { throw e; } catch (Exception e) {// grrr. fileItem.write throws this @@ -400,13 +580,33 @@ public final class PluginManager extends AbstractModelObject { } } - private final class UberClassLoader extends ClassLoader { + /** + * {@link ClassLoader} that can see all plugins. + */ + public final class UberClassLoader extends ClassLoader { + /** + * Make generated types visible. + * Keyed by the generated class name. + */ + private ConcurrentMap> generatedClasses = new ConcurrentHashMap>(); + public UberClassLoader() { super(PluginManager.class.getClassLoader()); } + public void addNamedClass(String className, Class c) { + generatedClasses.put(className,new WeakReference(c)); + } + @Override protected Class findClass(String name) throws ClassNotFoundException { + WeakReference wc = generatedClasses.get(name); + if (wc!=null) { + Class c = wc.get(); + if (c!=null) return c; + else generatedClasses.remove(name,wc); + } + // first, use the context classloader so that plugins that are loading // can use its own classloader first. ClassLoader cl = Thread.currentThread().getContextClassLoader(); @@ -466,4 +666,11 @@ public final class PluginManager extends AbstractModelObject { return Functions.printThrowable(cause); } } + + /** + * Stores {@link Plugin} instances. + */ + /*package*/ static final class PluginInstanceStore { + final Map store = new Hashtable(); + } } diff --git a/core/src/main/java/hudson/PluginStrategy.java b/core/src/main/java/hudson/PluginStrategy.java index 83364745675251adef68d57b1b3f8acd56cbc25e..0fe0e7233b53baf3b73df74d0e00226923f64745 100644 --- a/core/src/main/java/hudson/PluginStrategy.java +++ b/core/src/main/java/hudson/PluginStrategy.java @@ -41,8 +41,7 @@ public interface PluginStrategy extends ExtensionPoint { /** * Creates a plugin wrapper, which provides a management interface for the plugin * @param archive - * @return - * @throws IOException + * Either a directory that points to a pre-exploded plugin, or an hpi file, or an hpl file. */ public abstract PluginWrapper createPluginWrapper(File archive) throws IOException; diff --git a/core/src/main/java/hudson/PluginWrapper.java b/core/src/main/java/hudson/PluginWrapper.java index fd6fc5a1ad8b7bbac3c7e564a2ee5597166d342b..a1090dea80218c03ab96b4f16ed14ff924cce7a7 100644 --- a/core/src/main/java/hudson/PluginWrapper.java +++ b/core/src/main/java/hudson/PluginWrapper.java @@ -1,7 +1,8 @@ /* * The MIT License * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Yahoo! Inc., Erik Ramfelt, Tom Huybrechts + * Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, + * Yahoo! Inc., Erik Ramfelt, Tom Huybrechts * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -23,21 +24,30 @@ */ package hudson; +import hudson.PluginManager.PluginInstanceStore; import hudson.model.Hudson; import hudson.model.UpdateCenter; +import hudson.model.UpdateSite; +import hudson.util.VersionNumber; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; +import java.io.Closeable; import java.net.URL; +import java.util.ArrayList; import java.util.List; import java.util.jar.Manifest; import java.util.logging.Logger; +import static java.util.logging.Level.WARNING; import org.apache.commons.logging.LogFactory; -import org.kohsuke.stapler.StaplerRequest; -import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.HttpResponse; +import org.kohsuke.stapler.HttpResponses; + +import java.util.Enumeration; +import java.util.jar.JarFile; /** * Represents a Hudson plug-in and associated control information @@ -61,18 +71,17 @@ import org.kohsuke.stapler.StaplerResponse; * * @author Kohsuke Kawaguchi */ -public final class PluginWrapper { +public class PluginWrapper implements Comparable { /** - * Plugin manifest. - * Contains description of the plugin. + * {@link PluginManager} to which this belongs to. */ - private final Manifest manifest; + public final PluginManager parent; /** - * Loaded plugin instance. - * Null if disabled. + * Plugin manifest. + * Contains description of the plugin. */ - private Plugin plugin; + private final Manifest manifest; /** * {@link ClassLoader} for loading classes from this plugin. @@ -93,6 +102,15 @@ public final class PluginWrapper { */ private final File disableFile; + /** + * Used to control the unpacking of the bundled plugin. + * If a pin file exists, Hudson assumes that the user wants to pin down a particular version + * of a plugin, and will not try to overwrite it. Otherwise, it'll be overwritten + * by a bundled copy, to ensure consistency across upgrade/downgrade. + * @since 1.325 + */ + private final File pinFile; + /** * Short name of the plugin. The artifact Id of the plugin. * This is also used in the URL within Hudson, so it needs @@ -101,14 +119,19 @@ public final class PluginWrapper { */ private final String shortName; - /** + /** * True if this plugin is activated for this session. * The snapshot of disableFile.exists() as of the start up. */ private final boolean active; private final List dependencies; - private final List optionalDependencies; + private final List optionalDependencies; + + /** + * Is this plugin bundled in hudson.war? + */ + /*package*/ boolean isBundled; static final class Dependency { public final String shortName; @@ -153,24 +176,36 @@ public final class PluginWrapper { * @param dependencies a list of mandatory dependencies * @param optionalDependencies a list of optional dependencies */ - public PluginWrapper(File archive, Manifest manifest, URL baseResourceURL, + public PluginWrapper(PluginManager parent, File archive, Manifest manifest, URL baseResourceURL, ClassLoader classLoader, File disableFile, List dependencies, List optionalDependencies) { + this.parent = parent; this.manifest = manifest; this.shortName = computeShortName(manifest, archive); this.baseResourceURL = baseResourceURL; this.classLoader = classLoader; this.disableFile = disableFile; + this.pinFile = new File(archive.getPath() + ".pinned"); this.active = !disableFile.exists(); this.dependencies = dependencies; this.optionalDependencies = optionalDependencies; - } + } /** * Returns the URL of the index page jelly script. */ public URL getIndexPage() { - return classLoader.getResource("index.jelly"); + // In the current impl dependencies are checked first, so the plugin itself + // will add the last entry in the getResources result. + URL idx = null; + try { + Enumeration en = classLoader.getResources("index.jelly"); + while (en.hasMoreElements()) + idx = en.nextElement(); + } catch (IOException ignore) { } + // In case plugin has dependencies but is missing its own index.jelly, + // check that result has this plugin's artifactId in it: + return idx != null && idx.toString().contains(shortName) ? idx : null; } private String computeShortName(Manifest manifest, File archive) { @@ -201,12 +236,12 @@ public final class PluginWrapper { } public List getDependencies() { - return dependencies; - } + return dependencies; + } - public List getOptionalDependencies() { - return optionalDependencies; - } + public List getOptionalDependencies() { + return optionalDependencies; + } /** @@ -220,7 +255,7 @@ public final class PluginWrapper { * Gets the instance of {@link Plugin} contributed by this plugin. */ public Plugin getPlugin() { - return plugin; + return Hudson.lookup(PluginInstanceStore.class).store.get(this); } /** @@ -235,7 +270,7 @@ public final class PluginWrapper { if(url!=null) return url; // fallback to update center metadata - UpdateCenter.Plugin ui = getInfo(); + UpdateSite.Plugin ui = getInfo(); if(ui!=null) return ui.wiki; return null; @@ -269,22 +304,50 @@ public final class PluginWrapper { return "???"; } + /** + * Returns the version number of this plugin + */ + public VersionNumber getVersionNumber() { + return new VersionNumber(getVersion()); + } + + /** + * Returns true if the version of this plugin is older than the given version. + */ + public boolean isOlderThan(VersionNumber v) { + try { + return getVersionNumber().compareTo(v) < 0; + } catch (IllegalArgumentException e) { + // if we can't figure out our current version, it probably means it's very old, + // since the version information is missing only from the very old plugins + return true; + } + } + /** * Terminates the plugin. */ - void stop() { + public void stop() { LOGGER.info("Stopping "+shortName); try { - plugin.stop(); + getPlugin().stop(); } catch(Throwable t) { - System.err.println("Failed to shut down "+shortName); - System.err.println(t); + LOGGER.log(WARNING, "Failed to shut down "+shortName, t); } // Work around a bug in commons-logging. // See http://www.szegedi.org/articles/memleak.html LogFactory.release(classLoader); } + public void releaseClassLoader() { + if (classLoader instanceof Closeable) + try { + ((Closeable) classLoader).close(); + } catch (IOException e) { + LOGGER.log(WARNING, "Failed to shut down classloader",e); + } + } + /** * Enables this plugin next time Hudson runs. */ @@ -309,6 +372,10 @@ public final class PluginWrapper { return active; } + public boolean isBundled() { + return isBundled; + } + /** * If true, the plugin is going to be activated next time * Hudson runs. @@ -318,37 +385,61 @@ public final class PluginWrapper { } public Manifest getManifest() { - return manifest; - } + return manifest; + } + + public void setPlugin(Plugin plugin) { + Hudson.lookup(PluginInstanceStore.class).store.put(this,plugin); + plugin.wrapper = this; + } + + public String getPluginClass() { + return manifest.getMainAttributes().getValue("Plugin-Class"); + } + + /** + * Makes sure that all the dependencies exist, and then accept optional dependencies + * as real dependencies. + * + * @throws IOException + * thrown if one or several mandatory dependencies doesn't exists. + */ + /*package*/ void resolvePluginDependencies() throws IOException { + List missingDependencies = new ArrayList(); + // make sure dependencies exist + for (Dependency d : dependencies) { + if (parent.getPlugin(d.shortName) == null) + missingDependencies.add(d.toString()); + } + if (!missingDependencies.isEmpty()) + throw new IOException("Dependency "+Util.join(missingDependencies, ", ")+" doesn't exist"); - public void setPlugin(Plugin plugin) { - this.plugin = plugin; - plugin.wrapper = this; - } - - public String getPluginClass() { - return manifest.getMainAttributes().getValue("Plugin-Class"); - } + // add the optional dependencies that exists + for (Dependency d : optionalDependencies) { + if (parent.getPlugin(d.shortName) != null) + dependencies.add(d); + } + } /** * If the plugin has {@link #getUpdateInfo() an update}, - * returns the {@link UpdateCenter.Plugin} object. + * returns the {@link UpdateSite.Plugin} object. * * @return * This method may return null — for example, * the user may have installed a plugin locally developed. */ - public UpdateCenter.Plugin getUpdateInfo() { + public UpdateSite.Plugin getUpdateInfo() { UpdateCenter uc = Hudson.getInstance().getUpdateCenter(); - UpdateCenter.Plugin p = uc.getPlugin(getShortName()); + UpdateSite.Plugin p = uc.getPlugin(getShortName()); if(p!=null && p.isNewerThan(getVersion())) return p; return null; } /** - * returns the {@link UpdateCenter.Plugin} object, or null. + * returns the {@link UpdateSite.Plugin} object, or null. */ - public UpdateCenter.Plugin getInfo() { + public UpdateSite.Plugin getInfo() { UpdateCenter uc = Hudson.getInstance().getUpdateCenter(); return uc.getPlugin(getShortName()); } @@ -363,21 +454,76 @@ public final class PluginWrapper { public boolean hasUpdate() { return getUpdateInfo()!=null; } + + public boolean isPinned() { + return pinFile.exists(); + } + /** + * Sort by short name. + */ + public int compareTo(PluginWrapper pw) { + return shortName.compareToIgnoreCase(pw.shortName); + } + + /** + * returns true if backup of previous version of plugin exists + */ + public boolean isDowngradable() { + return getBackupFile().exists(); + } + + /** + * Where is the backup file? + */ + public File getBackupFile() { + return new File(Hudson.getInstance().getRootDir(),"plugins/"+getShortName() + ".bak"); + } + + /** + * returns the version of the backed up plugin, + * or null if there's no back up. + */ + public String getBackupVersion() { + if (getBackupFile().exists()) { + try { + JarFile backupPlugin = new JarFile(getBackupFile()); + return backupPlugin.getManifest().getMainAttributes().getValue("Plugin-Version"); + } catch (IOException e) { + LOGGER.log(WARNING, "Failed to get backup version ", e); + return null; + } + } else { + return null; + } + } // // // Action methods // // - public void doMakeEnabled(StaplerRequest req, StaplerResponse rsp) throws IOException { - Hudson.getInstance().checkPermission(Hudson.ADMINISTER); + public HttpResponse doMakeEnabled() throws IOException { + Hudson.getInstance().checkPermission(Hudson.ADMINISTER); enable(); - rsp.setStatus(200); + return HttpResponses.ok(); } - public void doMakeDisabled(StaplerRequest req, StaplerResponse rsp) throws IOException { + + public HttpResponse doMakeDisabled() throws IOException { Hudson.getInstance().checkPermission(Hudson.ADMINISTER); disable(); - rsp.setStatus(200); + return HttpResponses.ok(); + } + + public HttpResponse doPin() throws IOException { + Hudson.getInstance().checkPermission(Hudson.ADMINISTER); + new FileOutputStream(pinFile).close(); + return HttpResponses.ok(); + } + + public HttpResponse doUnpin() throws IOException { + Hudson.getInstance().checkPermission(Hudson.ADMINISTER); + pinFile.delete(); + return HttpResponses.ok(); } diff --git a/core/src/main/java/hudson/Proc.java b/core/src/main/java/hudson/Proc.java index e1400eda25fcf6f3bb9e6b07b938033a8785870c..73679ac8adcdbf084b0c22e2425628c5055bbcf9 100644 --- a/core/src/main/java/hudson/Proc.java +++ b/core/src/main/java/hudson/Proc.java @@ -23,18 +23,24 @@ */ package hudson; -import hudson.remoting.Channel; +import hudson.model.TaskListener; import hudson.util.IOException2; -import hudson.util.ProcessTreeKiller; import hudson.util.StreamCopyThread; +import hudson.util.ProcessTree; import java.io.File; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; +import java.util.Locale; import java.util.Map; +import java.util.concurrent.CancellationException; +import java.util.concurrent.CountDownLatch; import java.util.concurrent.ExecutionException; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; import java.util.concurrent.Future; +import java.util.concurrent.TimeUnit; import java.util.logging.Level; import java.util.logging.Logger; @@ -47,7 +53,7 @@ import java.util.logging.Logger; * @author Kohsuke Kawaguchi */ public abstract class Proc { - private Proc() {} + protected Proc() {} /** * Checks if the process is still alive. @@ -64,7 +70,8 @@ public abstract class Proc { public abstract void kill() throws IOException, InterruptedException; /** - * Waits for the completion of the process. + * Waits for the completion of the process and until we finish reading everything that the process has produced + * to stdout/stderr. * *

* If the thread is interrupted while waiting for the completion @@ -77,14 +84,53 @@ public abstract class Proc { */ public abstract int join() throws IOException, InterruptedException; + private static final ExecutorService executor = Executors.newCachedThreadPool(); + /** + * Like {@link #join} but can be given a maximum time to wait. + * @param timeout number of time units + * @param unit unit of time + * @param listener place to send messages if there are problems, incl. timeout + * @return exit code from the process + * @throws IOException for the same reasons as {@link #join} + * @throws InterruptedException for the same reasons as {@link #join} + * @since 1.363 + */ + public final int joinWithTimeout(final long timeout, final TimeUnit unit, + final TaskListener listener) throws IOException, InterruptedException { + final CountDownLatch latch = new CountDownLatch(1); + try { + executor.submit(new Runnable() { + public void run() { + try { + if (!latch.await(timeout, unit)) { + listener.error("Timeout after " + timeout + " " + + unit.toString().toLowerCase(Locale.ENGLISH)); + kill(); + } + } catch (InterruptedException x) { + listener.error(x.toString()); + } catch (IOException x) { + listener.error(x.toString()); + } catch (RuntimeException x) { + listener.error(x.toString()); + } + } + }); + return join(); + } finally { + latch.countDown(); + } + } + /** * Locally launched process. */ public static final class LocalProc extends Proc { private final Process proc; - private final Thread copier; + private final Thread copier,copier2; private final OutputStream out; private final EnvVars cookie; + private final String name; public LocalProc(String cmd, Map env, OutputStream out, File workDir) throws IOException { this(cmd,Util.mapToEnv(env),out,workDir); @@ -107,9 +153,22 @@ public abstract class Proc { } public LocalProc(String[] cmd,String[] env,InputStream in,OutputStream out, File workDir) throws IOException { + this(cmd,env,in,out,null,workDir); + } + + /** + * @param err + * null to redirect stderr to stdout. + */ + public LocalProc(String[] cmd,String[] env,InputStream in,OutputStream out,OutputStream err,File workDir) throws IOException { this( calcName(cmd), - environment(new ProcessBuilder(cmd),env).directory(workDir).redirectErrorStream(true), - in, out ); + stderr(environment(new ProcessBuilder(cmd),env).directory(workDir),err), + in, out, err ); + } + + private static ProcessBuilder stderr(ProcessBuilder pb, OutputStream stderr) { + if(stderr==null) pb.redirectErrorStream(true); + return pb; } private static ProcessBuilder environment(ProcessBuilder pb, String[] env) { @@ -124,18 +183,25 @@ public abstract class Proc { return pb; } - private LocalProc( String name, ProcessBuilder procBuilder, InputStream in, OutputStream out ) throws IOException { + private LocalProc( String name, ProcessBuilder procBuilder, InputStream in, OutputStream out, OutputStream err ) throws IOException { Logger.getLogger(Proc.class.getName()).log(Level.FINE, "Running: {0}", name); + this.name = name; this.out = out; - this.cookie = ProcessTreeKiller.createCookie(); + this.cookie = EnvVars.createCookie(); procBuilder.environment().putAll(cookie); this.proc = procBuilder.start(); copier = new StreamCopyThread(name+": stdout copier", proc.getInputStream(), out); copier.start(); if(in!=null) - new ByteCopier(name+": stdin copier",in,proc.getOutputStream()).start(); + new StdinCopyThread(name+": stdin copier",in,proc.getOutputStream()).start(); else proc.getOutputStream().close(); + if(err!=null) { + copier2 = new StreamCopyThread(name+": stderr copier", proc.getErrorStream(), err); + copier2.start(); + } else { + copier2 = null; + } } /** @@ -143,16 +209,26 @@ public abstract class Proc { */ @Override public int join() throws InterruptedException, IOException { + // show what we are waiting for in the thread title + // since this involves some native work, let's have some soak period before enabling this by default + Thread t = Thread.currentThread(); + String oldName = t.getName(); + if (SHOW_PID) { + ProcessTree.OSProcess p = ProcessTree.get().get(proc); + t.setName(oldName+" "+(p!=null?"waiting for pid="+p.getPid():"waiting for "+name)); + } + try { int r = proc.waitFor(); // see http://hudson.gotdns.com/wiki/display/HUDSON/Spawning+processes+from+build - // problems like that shows up as inifinite wait in join(), which confuses great many users. + // problems like that shows up as infinite wait in join(), which confuses great many users. // So let's do a timed wait here and try to diagnose the problem copier.join(10*1000); - if(copier.isAlive()) { + if(copier2!=null) copier2.join(10*1000); + if(copier.isAlive() || (copier2!=null && copier2.isAlive())) { // looks like handles are leaking. // closing these handles should terminate the threads. - String msg = "Process leaked file descriptors. See http://hudson.gotdns.com/wiki/display/HUDSON/Spawning+processes+from+build for more information"; + String msg = "Process leaked file descriptors. See http://wiki.hudson-ci.org/display/HUDSON/Spawning+processes+from+build for more information"; Throwable e = new Exception().fillInStackTrace(); LOGGER.log(Level.WARNING,msg,e); @@ -178,6 +254,8 @@ public abstract class Proc { // aborting. kill the process destroy(); throw e; + } finally { + t.setName(oldName); } } @@ -200,29 +278,38 @@ public abstract class Proc { /** * Destroys the child process without join. */ - private void destroy() { - ProcessTreeKiller.get().kill(proc,cookie); + private void destroy() throws InterruptedException { + ProcessTree.get().killAll(proc,cookie); } - private static class ByteCopier extends Thread { + /** + * {@link Process#getOutputStream()} is buffered, so we need to eagerly flash + * the stream to push bytes to the process. + */ + private static class StdinCopyThread extends Thread { private final InputStream in; private final OutputStream out; - public ByteCopier(String threadName, InputStream in, OutputStream out) { + public StdinCopyThread(String threadName, InputStream in, OutputStream out) { super(threadName); this.in = in; this.out = out; } + @Override public void run() { try { - while(true) { - int ch = in.read(); - if(ch==-1) break; - out.write(ch); + try { + byte[] buf = new byte[8192]; + int len; + while ((len = in.read(buf)) > 0) { + out.write(buf, 0, len); + out.flush(); + } + } finally { + in.close(); + out.close(); } - in.close(); - out.close(); } catch (IOException e) { // TODO: what to do? } @@ -230,7 +317,7 @@ public abstract class Proc { } private static String calcName(String[] cmd) { - StringBuffer buf = new StringBuffer(); + StringBuilder buf = new StringBuilder(); for (String token : cmd) { if(buf.length()>0) buf.append(' '); buf.append(token); @@ -252,7 +339,6 @@ public abstract class Proc { @Override public void kill() throws IOException, InterruptedException { process.cancel(true); - join(); } @Override @@ -267,6 +353,8 @@ public abstract class Proc { if(e.getCause() instanceof IOException) throw (IOException)e.getCause(); throw new IOException2("Failed to join the process",e); + } catch (CancellationException x) { + return -1; } } @@ -277,4 +365,8 @@ public abstract class Proc { } private static final Logger LOGGER = Logger.getLogger(Proc.class.getName()); + /** + * Debug switch to have the thread display the process it's waiting for. + */ + public static boolean SHOW_PID = false; } diff --git a/core/src/main/java/hudson/ProxyConfiguration.java b/core/src/main/java/hudson/ProxyConfiguration.java index 8b951c80d7c35dc487a65189133d6d678af5390a..362685c4b5699b605236a1f2e8bce169fa8665d2 100644 --- a/core/src/main/java/hudson/ProxyConfiguration.java +++ b/core/src/main/java/hudson/ProxyConfiguration.java @@ -23,25 +23,35 @@ */ package hudson; -import com.thoughtworks.xstream.XStream; import hudson.model.Hudson; import hudson.model.Saveable; -import hudson.util.XStream2; +import hudson.model.listeners.SaveableListener; import hudson.util.Scrambler; +import hudson.util.XStream2; import java.io.File; import java.io.IOException; +import java.net.Authenticator; import java.net.InetSocketAddress; +import java.net.PasswordAuthentication; import java.net.Proxy; -import java.net.URLConnection; import java.net.URL; +import java.net.URLConnection; + +import com.thoughtworks.xstream.XStream; /** * HTTP proxy configuration. * *

* Use {@link #open(URL)} to open a connection with the proxy setting. - * + *

+ * Proxy authentication (including NTLM) is implemented by setting a default + * {@link Authenticator} which provides a {@link PasswordAuthentication} + * (as described in the Java 6 tech note + * + * Http Authentication). + * * @see Hudson#proxy */ public final class ProxyConfiguration implements Saveable { @@ -80,6 +90,7 @@ public final class ProxyConfiguration implements Saveable { public void save() throws IOException { if(BulkChange.contains(this)) return; getXmlFile().write(this); + SaveableListener.fireOnChange(this, getXmlFile()); } public static XmlFile getXmlFile() { @@ -94,15 +105,27 @@ public final class ProxyConfiguration implements Saveable { return null; } + /** + * This method should be used wherever {@link URL#openConnection()} to internet URLs is invoked directly. + */ public static URLConnection open(URL url) throws IOException { - ProxyConfiguration p = Hudson.getInstance().proxy; + Hudson h = Hudson.getInstance(); // this code might run on slaves + ProxyConfiguration p = h!=null ? h.proxy : null; if(p==null) return url.openConnection(); URLConnection con = url.openConnection(p.createProxy()); if(p.getUserName()!=null) { - con.setRequestProperty("Proxy-Authorization","Basic "+ - Scrambler.scramble(p.getUserName()+':'+p.getPassword())); + // Add an authenticator which provides the credentials for proxy authentication + Authenticator.setDefault(new Authenticator() { + @Override + public PasswordAuthentication getPasswordAuthentication() { + if (getRequestorType()!=RequestorType.PROXY) return null; + ProxyConfiguration p = Hudson.getInstance().proxy; + return new PasswordAuthentication(p.getUserName(), + p.getPassword().toCharArray()); + } + }); } return con; } diff --git a/core/src/main/java/hudson/RelativePath.java b/core/src/main/java/hudson/RelativePath.java new file mode 100644 index 0000000000000000000000000000000000000000..0beadad283df0c7689602b5d6e0b23b6259e9514 --- /dev/null +++ b/core/src/main/java/hudson/RelativePath.java @@ -0,0 +1,28 @@ +package hudson; + +import org.kohsuke.stapler.QueryParameter; + +import java.lang.annotation.Documented; +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +import static java.lang.annotation.ElementType.*; +import static java.lang.annotation.RetentionPolicy.*; + +/** + * Used in conjunction with {@link QueryParameter} to refer to + * nearby parameters that belong to different parents. + * + *

+ * Currently, "..", "../..", etc. are supported to indicate + * parameters that belong to the ancestors. + * + * @author Kohsuke Kawaguchi + * @since 1.376 + */ +@Documented +@Target(PARAMETER) +@Retention(RUNTIME) +public @interface RelativePath { + String value(); +} diff --git a/core/src/main/java/hudson/ResponseHeaderFilter.java b/core/src/main/java/hudson/ResponseHeaderFilter.java index 15d8858546be521b4e200edbf086f658945f9778..c85bdc2502ec5e67295977520aac38877e5f6341 100644 --- a/core/src/main/java/hudson/ResponseHeaderFilter.java +++ b/core/src/main/java/hudson/ResponseHeaderFilter.java @@ -28,15 +28,11 @@ import java.util.*; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; -import javax.servlet.RequestDispatcher; -import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; -import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; -import java.net.URLEncoder; /** * This filter allows you to modify headers set by the container or other servlets diff --git a/core/src/main/java/hudson/RestrictedSince.java b/core/src/main/java/hudson/RestrictedSince.java new file mode 100644 index 0000000000000000000000000000000000000000..507c1788c37d01205053c2d26333b012be12ecd1 --- /dev/null +++ b/core/src/main/java/hudson/RestrictedSince.java @@ -0,0 +1,43 @@ +/* + * The MIT License + * + * Copyright (c) 2010, Kohsuke Kawaguchi + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +package hudson; + +import org.kohsuke.accmod.Restricted; + +import java.lang.annotation.Documented; + +/** + * Accompanies {@link Restricted} annotation to indicate when the access restriction was placed. + * + * @author Kohsuke Kawaguchi + * @since 1.355 + */ +@Documented +public @interface RestrictedSince { + /** + * Hudson version number that this restriction has started. + */ + String value(); +} diff --git a/core/src/main/java/hudson/StructuredForm.java b/core/src/main/java/hudson/StructuredForm.java index f457ae55064079bdd114b88bd701b4574c3e00bb..099d4eff9676b9aea5f8378b4603309f1d3320b2 100644 --- a/core/src/main/java/hudson/StructuredForm.java +++ b/core/src/main/java/hudson/StructuredForm.java @@ -67,7 +67,7 @@ public class StructuredForm { if(v instanceof JSONObject) return Collections.singletonList((JSONObject)v); if(v instanceof JSONArray) - return (JSONArray)v; + return (List)(JSONArray)v; throw new IllegalArgumentException(); } diff --git a/core/src/main/java/hudson/TcpSlaveAgentListener.java b/core/src/main/java/hudson/TcpSlaveAgentListener.java index 00feea7f4aeaa99abb3c3f60b113a4ef8f372b9b..f526f4c2625e109ee733be949794eb5dd54a3d49 100644 --- a/core/src/main/java/hudson/TcpSlaveAgentListener.java +++ b/core/src/main/java/hudson/TcpSlaveAgentListener.java @@ -24,9 +24,16 @@ package hudson; import hudson.model.Hudson; +import hudson.model.Computer; import hudson.slaves.SlaveComputer; import hudson.remoting.Channel; +import hudson.remoting.SocketOutputStream; +import hudson.remoting.SocketInputStream; +import hudson.remoting.Engine; import hudson.remoting.Channel.Listener; +import hudson.remoting.Channel.Mode; +import hudson.cli.CliManagerImpl; +import hudson.cli.CliEntryPoint; import java.io.DataInputStream; import java.io.IOException; @@ -36,11 +43,12 @@ import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.net.ServerSocket; import java.net.Socket; +import java.net.BindException; import java.util.logging.Level; import java.util.logging.Logger; /** - * Listens to incoming TCP connections from JNLP slave agents. + * Listens to incoming TCP connections from JNLP slave agents and CLI. * *

Security

*

@@ -79,7 +87,11 @@ public final class TcpSlaveAgentListener extends Thread { */ public TcpSlaveAgentListener(int port) throws IOException { super("TCP slave agent listener port="+port); - serverSocket = new ServerSocket(port); + try { + serverSocket = new ServerSocket(port); + } catch (BindException e) { + throw (BindException)new BindException("Failed to listen on port "+port+" because it's already in use.").initCause(e); + } this.configuredPort = port; LOGGER.info("JNLP slave agent listener started on TCP port "+getPort()); @@ -98,6 +110,7 @@ public final class TcpSlaveAgentListener extends Thread { return Hudson.getInstance().getSecretKey(); } + @Override public void run() { try { // the loop eventually terminates when the socket is closed. @@ -138,6 +151,7 @@ public final class TcpSlaveAgentListener extends Thread { } } + @Override public void run() { try { LOGGER.info("Accepted connection #"+id+" from "+s.getRemoteSocketAddress()); @@ -151,6 +165,8 @@ public final class TcpSlaveAgentListener extends Thread { String protocol = s.substring(9); if(protocol.equals("JNLP-connect")) { runJnlpConnect(in, out); + } else if(protocol.equals("CLI-connect")) { + runCliConnect(in, out); } else { error(out, "Unknown protocol:" + s); } @@ -174,6 +190,19 @@ public final class TcpSlaveAgentListener extends Thread { } } + /** + * Handles CLI connection request. + */ + private void runCliConnect(DataInputStream in, PrintWriter out) throws IOException, InterruptedException { + out.println("Welcome"); + Channel channel = new Channel("CLI channel from " + s.getInetAddress(), + Computer.threadPoolForRemoting, Mode.BINARY, + new BufferedInputStream(new SocketInputStream(this.s)), + new BufferedOutputStream(new SocketOutputStream(this.s)), null, true); + channel.setProperty(CliEntryPoint.class.getName(),new CliManagerImpl()); + channel.join(); + } + /** * Handles JNLP slave agent connection request. */ @@ -195,28 +224,40 @@ public final class TcpSlaveAgentListener extends Thread { return; } - out.println("Welcome"); + out.println(Engine.GREETING_SUCCESS); final OutputStream log = computer.openLogFile(); - new PrintWriter(log).println("JNLP agent connected from "+ this.s.getInetAddress()); - - computer.setChannel(new BufferedInputStream(this.s.getInputStream()), new BufferedOutputStream(this.s.getOutputStream()), log, - new Listener() { - public void onClosed(Channel channel, IOException cause) { - try { - log.close(); - } catch (IOException e) { - e.printStackTrace(); - } - if(cause!=null) - LOGGER.log(Level.WARNING, "Connection #"+id+" terminated",cause); - try { - ConnectionHandler.this.s.close(); - } catch (IOException e) { - // ignore + PrintWriter logw = new PrintWriter(log,true); + logw.println("JNLP agent connected from "+ this.s.getInetAddress()); + + try { + computer.setChannel(new BufferedInputStream(this.s.getInputStream()), new BufferedOutputStream(this.s.getOutputStream()), log, + new Listener() { + @Override + public void onClosed(Channel channel, IOException cause) { + try { + log.close(); + } catch (IOException e) { + e.printStackTrace(); + } + if(cause!=null) + LOGGER.log(Level.WARNING, "Connection #"+id+" terminated",cause); + try { + ConnectionHandler.this.s.close(); + } catch (IOException e) { + // ignore + } } - } - }); + }); + } catch (AbortException e) { + logw.println(e.getMessage()); + logw.println("Failed to establish the connection with the slave"); + throw e; + } catch (IOException e) { + logw.println("Failed to establish the connection with the slave"); + e.printStackTrace(logw); + throw e; + } } private void error(PrintWriter out, String msg) throws IOException { diff --git a/core/src/main/java/hudson/UDPBroadcastFragment.java b/core/src/main/java/hudson/UDPBroadcastFragment.java index 5a52fe153ab5fe74c97d8107306bedae6af0d4ec..7e630a15bca77b0a5c3749d26434e16d54f5fa96 100644 --- a/core/src/main/java/hudson/UDPBroadcastFragment.java +++ b/core/src/main/java/hudson/UDPBroadcastFragment.java @@ -1,3 +1,26 @@ +/* + * The MIT License + * + * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ package hudson; import hudson.model.Hudson; diff --git a/core/src/main/java/hudson/UDPBroadcastThread.java b/core/src/main/java/hudson/UDPBroadcastThread.java index c13dea81899991b1d8f1193ac65d0ea7429fa5cc..bb1e3e8965ba005170ca566bf06238f8996ce31c 100644 --- a/core/src/main/java/hudson/UDPBroadcastThread.java +++ b/core/src/main/java/hudson/UDPBroadcastThread.java @@ -24,19 +24,21 @@ package hudson; import hudson.model.Hudson; +import hudson.util.OneShotEvent; import java.io.IOException; -import java.net.InetSocketAddress; -import java.net.SocketAddress; import java.net.BindException; -import java.nio.ByteBuffer; +import java.net.DatagramPacket; +import java.net.InetAddress; +import java.net.MulticastSocket; +import java.net.SocketAddress; +import java.net.UnknownHostException; import java.nio.channels.ClosedByInterruptException; -import java.nio.channels.DatagramChannel; import java.util.logging.Level; import java.util.logging.Logger; /** - * Monitors a UDP broadcast and respond with the location of the Hudson service. + * Monitors a UDP multicast broadcast and respond with the location of the Hudson service. * *

* Useful for auto-discovery of Hudson in the network. @@ -45,51 +47,54 @@ import java.util.logging.Logger; */ public class UDPBroadcastThread extends Thread { private final Hudson hudson; - public UDPBroadcastThread(Hudson hudson) { + + public final OneShotEvent ready = new OneShotEvent(); + private MulticastSocket mcs; + private boolean shutdown; + + public UDPBroadcastThread(Hudson hudson) throws IOException { super("Hudson UDP "+PORT+" monitoring thread"); this.hudson = hudson; + mcs = new MulticastSocket(PORT); } @Override public void run() { try { - DatagramChannel ch = DatagramChannel.open(); - try { - ch.socket().bind(new InetSocketAddress(PORT)); - - ByteBuffer b = ByteBuffer.allocate(2048); - while(true) { - // the only thing that matters here is who sent it, not what was sent. - SocketAddress sender = ch.receive(b); - - // prepare a response - TcpSlaveAgentListener tal = hudson.getTcpSlaveAgentListener(); - - StringBuilder buf = new StringBuilder(""); - tag(buf,"version",Hudson.VERSION); - tag(buf,"url",hudson.getRootUrl()); - tag(buf,"slave-port",tal==null?null:tal.getPort()); - - for (UDPBroadcastFragment f : UDPBroadcastFragment.all()) - f.buildFragment(buf,sender); - - buf.append(""); - - b.clear(); - b.put(buf.toString().getBytes("UTF-8")); - b.flip(); - ch.send(b, sender); - } - } finally { - ch.close(); + mcs.joinGroup(MULTICAST); + ready.signal(); + + while(true) { + byte[] buf = new byte[2048]; + DatagramPacket p = new DatagramPacket(buf,buf.length); + mcs.receive(p); + + SocketAddress sender = p.getSocketAddress(); + + // prepare a response + TcpSlaveAgentListener tal = hudson.getTcpSlaveAgentListener(); + + StringBuilder rsp = new StringBuilder(""); + tag(rsp,"version",Hudson.VERSION); + tag(rsp,"url",hudson.getRootUrl()); + tag(rsp,"slave-port",tal==null?null:tal.getPort()); + + for (UDPBroadcastFragment f : UDPBroadcastFragment.all()) + f.buildFragment(rsp,sender); + + rsp.append(""); + + byte[] response = rsp.toString().getBytes("UTF-8"); + mcs.send(new DatagramPacket(response,response.length,sender)); } } catch (ClosedByInterruptException e) { // shut down } catch (BindException e) { // if we failed to listen to UDP, just silently abandon it, as a stack trace // makes people unnecessarily concerned, for a feature that currently does no good. - LOGGER.log(Level.FINE, "Failed to listen to UDP port "+PORT,e); + LOGGER.log(Level.WARNING, "Failed to listen to UDP port "+PORT,e); } catch (IOException e) { + if (shutdown) return; // forcibly closed LOGGER.log(Level.WARNING, "UDP handling problem",e); } } @@ -100,10 +105,25 @@ public class UDPBroadcastThread extends Thread { } public void shutdown() { + shutdown = true; + mcs.close(); interrupt(); } public static final int PORT = Integer.getInteger("hudson.udp",33848); private static final Logger LOGGER = Logger.getLogger(UDPBroadcastThread.class.getName()); + + /** + * Multicast socket address. + */ + public static InetAddress MULTICAST; + + static { + try { + MULTICAST = InetAddress.getByAddress(new byte[]{(byte)239, (byte)77, (byte)124, (byte)213}); + } catch (UnknownHostException e) { + throw new Error(e); + } + } } diff --git a/core/src/main/java/hudson/Util.java b/core/src/main/java/hudson/Util.java index e8ed8f0c89983fe395cf03a380d8859d1245eb1f..dbd8b9107b22e27725c57886a28561c6716a225a 100644 --- a/core/src/main/java/hudson/Util.java +++ b/core/src/main/java/hudson/Util.java @@ -1,21 +1,52 @@ +/* + * The MIT License + * + * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ package hudson; import hudson.model.TaskListener; import hudson.model.Hudson; -import static hudson.model.Hudson.isWindows; +import static hudson.util.jna.GNUCLibrary.LIBC; + import hudson.util.IOException2; import hudson.util.QuotedStringTokenizer; import hudson.util.VariableResolver; import hudson.Proc.LocalProc; +import hudson.os.PosixAPI; import org.apache.tools.ant.BuildException; import org.apache.tools.ant.Project; import org.apache.tools.ant.types.FileSet; import org.apache.tools.ant.taskdefs.Chmod; import org.apache.tools.ant.taskdefs.Copy; import org.apache.commons.lang.time.FastDateFormat; +import org.apache.commons.io.IOUtils; +import org.jruby.ext.posix.FileStat; +import org.jruby.ext.posix.POSIX; import org.kohsuke.stapler.Stapler; import org.jvnet.animal_sniffer.IgnoreJRERequirement; +import javax.crypto.SecretKey; +import javax.crypto.spec.SecretKeySpec; + import java.io.BufferedReader; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; @@ -30,10 +61,12 @@ import java.io.Writer; import java.io.PrintStream; import java.io.InputStreamReader; import java.io.FileInputStream; +import java.io.UnsupportedEncodingException; import java.net.InetAddress; import java.net.UnknownHostException; import java.net.URI; import java.net.URISyntaxException; +import java.nio.ByteBuffer; import java.nio.CharBuffer; import java.nio.charset.CharacterCodingException; import java.nio.charset.CharsetEncoder; @@ -47,16 +80,23 @@ import java.util.Collection; import java.util.List; import java.util.Locale; import java.util.Map; +import java.util.MissingResourceException; import java.util.ResourceBundle; import java.util.SimpleTimeZone; import java.util.StringTokenizer; import java.util.Arrays; +import java.util.Collections; +import java.util.Set; import java.util.logging.Level; import java.util.logging.Logger; import java.util.regex.Matcher; import java.util.regex.Pattern; import java.nio.charset.Charset; +import com.sun.jna.Native; +import com.sun.jna.Memory; +import com.sun.jna.NativeLong; + /** * Various utility methods that don't have more proper home. * @@ -182,7 +222,12 @@ public class Util { deleteRecursive(child); } - private static void deleteFile(File f) throws IOException { + /** + * Deletes this file (and does not take no for an answer). + * @param f a file to delete + * @throws IOException if it exists but could not be successfully deleted + */ + public static void deleteFile(File f) throws IOException { if (!f.delete()) { if(!f.exists()) // we are trying to delete a file that no longer exists, so this is not an error @@ -219,7 +264,7 @@ public class Util { } /** - * Makes the given file writable. + * Makes the given file writable by any means possible. */ @IgnoreJRERequirement private static void makeWritable(File f) { @@ -240,6 +285,16 @@ public class Util { } catch (NoSuchMethodError e) { // not JDK6 } + + try {// try libc chmod + POSIX posix = PosixAPI.get(); + String path = f.getAbsolutePath(); + FileStat stat = posix.stat(path); + posix.chmod(path, stat.mode()|0200); // u+w + } catch (Throwable t) { + LOGGER.log(Level.FINE,"Failed to chmod(2) "+f,t); + } + } public static void deleteRecursive(File dir) throws IOException { @@ -272,7 +327,7 @@ public class Util { if (name.equals(".") || name.equals("..")) return false; - File fileInCanonicalParent = null; + File fileInCanonicalParent; File parentDir = file.getParentFile(); if ( parentDir == null ) { fileInCanonicalParent = file; @@ -280,7 +335,7 @@ public class Util { fileInCanonicalParent = new File( parentDir.getCanonicalPath(), name ); } return !fileInCanonicalParent.getCanonicalFile().equals( fileInCanonicalParent.getAbsoluteFile() ); - } + } /** * Creates a new temporary directory. @@ -336,14 +391,19 @@ public class Util { } /** - * Gets a human readable mesasge for the given Win32 error code. + * Gets a human readable message for the given Win32 error code. * * @return * null if no such message is available. */ public static String getWin32ErrorMessage(int n) { - ResourceBundle rb = ResourceBundle.getBundle("/hudson/win32errors"); - return rb.getString("error"+n); + try { + ResourceBundle rb = ResourceBundle.getBundle("/hudson/win32errors"); + return rb.getString("error"+n); + } catch (MissingResourceException e) { + LOGGER.log(Level.WARNING,"Failed to find resource bundle",e); + return null; + } } /** @@ -371,6 +431,24 @@ public class Util { out.write(buf,0,len); } + public static void copyStreamAndClose(InputStream in,OutputStream out) throws IOException { + try { + copyStream(in,out); + } finally { + IOUtils.closeQuietly(in); + IOUtils.closeQuietly(out); + } + } + + public static void copyStreamAndClose(Reader in,Writer out) throws IOException { + try { + copyStream(in,out); + } finally { + IOUtils.closeQuietly(in); + IOUtils.closeQuietly(out); + } + } + /** * Tokenizes the text separated by delimiters. * @@ -458,6 +536,26 @@ public class Util { } } + /** + * Converts a string into 128-bit AES key. + * @since 1.308 + */ + public static SecretKey toAes128Key(String s) { + try { + // turn secretKey into 256 bit hash + MessageDigest digest = MessageDigest.getInstance("SHA-256"); + digest.reset(); + digest.update(s.getBytes("UTF-8")); + + // Due to the stupid US export restriction JDK only ships 128bit version. + return new SecretKeySpec(digest.digest(),0,128/8, "AES"); + } catch (NoSuchAlgorithmException e) { + throw new Error(e); + } catch (UnsupportedEncodingException e) { + throw new Error(e); + } + } + public static String toHexString(byte[] data, int start, int len) { StringBuilder buf = new StringBuilder(); for( int i=0; i=10), then we use only that most - * significant unit in the string represenation. If the quantity of the + * significant unit in the string representation. If the quantity of the * most significant unit is small (a single-digit value), then we also * use a secondary, smaller unit for increased precision. * So 13 minutes and 43 seconds returns just "13 minutes", but 3 minutes @@ -545,7 +643,7 @@ public class Util { /** * Get a human readable string representing strings like "xxx days ago", - * which should be used to point to the occurence of an event in the past. + * which should be used to point to the occurrence of an event in the past. */ public static String getPastTimeString(long duration) { return Messages.Util_pastTime(getTimeSpanString(duration)); @@ -554,11 +652,17 @@ public class Util { /** * Combines number and unit, with a plural suffix if needed. + * + * @deprecated + * Use individual localization methods instead. + * See {@link Messages#Util_year(Object)} for an example. + * Deprecated since 2009-06-24, remove method after 2009-12-24. */ public static String combine(long n, String suffix) { String s = Long.toString(n)+' '+suffix; if(n!=1) - s += Messages.Util_countSuffix(); + // Just adding an 's' won't work in most natural languages, even English has exception to the rule (e.g. copy/copies). + s += "s"; return s; } @@ -576,11 +680,13 @@ public class Util { /** * Escapes non-ASCII characters in URL. - * @deprecated Only escapes non-ASCII but leaves other URL-unsafe characters. - * Util.rawEncode should generally be used instead, though be careful to pass only + * + *

+ * Note that this methods only escapes non-ASCII but leaves other URL-unsafe characters, + * such as '#'. + * {@link #rawEncode(String)} should generally be used instead, though be careful to pass only * a single path component to that method (it will encode /, but this method does not). */ - @Deprecated public static String encode(String s) { try { boolean escaped = false; @@ -614,14 +720,29 @@ public class Util { } } + private static final boolean[] uriMap = new boolean[123]; + static { + String raw = + "! $ &'()*+,-. 0123456789 = @ABCDEFGHIJKLMNOPQRSTUVWXYZ _ abcdefghijklmnopqrstuvwxyz"; + // "# % / :;< >? [\]^ ` {|}~ + // ^--so these are encoded + int i; + // Encode control chars and space + for (i = 0; i < 33; i++) uriMap[i] = true; + for (int j = 0; j < raw.length(); i++, j++) + uriMap[i] = (raw.charAt(j) == ' '); + // If we add encodeQuery() just add a 2nd map to encode &+= + // queryMap[38] = queryMap[43] = queryMap[61] = true; + } + /** * Encode a single path component for use in an HTTP URL. * Escapes all non-ASCII, general unsafe (space and "#%<>[\]^`{|}~) - * and HTTP special characters (/;:?) as specified in RFC1738, - * plus backslash (Windows path separator). + * and HTTP special characters (/;:?) as specified in RFC1738. + * (so alphanumeric and !@$&*()-_=+',. are not encoded) * Note that slash(/) is encoded, so the given string should be a * single path component used in constructing a URL. - * Method name inspired by PHP's rawencode. + * Method name inspired by PHP's rawurlencode. */ public static String rawEncode(String s) { boolean escaped = false; @@ -631,8 +752,7 @@ public class Util { char c; for (int i = 0, m = s.length(); i < m; i++) { c = s.charAt(i); - if ((c<64 || c>90) && (c<97 || c>122) && (c<38 || c>57 || c==47) - && c!=61 && c!=36 && c!=33 && c!=95) { + if (c > 122 || uriMap[c]) { if (!escaped) { out = new StringBuilder(i + (m - i) * 3); out.append(s.substring(0, i)); @@ -644,7 +764,9 @@ public class Util { buf.put(0,c); buf.rewind(); try { - for (byte b : enc.encode(buf).array()) { + ByteBuffer bytes = enc.encode(buf); + while (bytes.hasRemaining()) { + byte b = bytes.get(); out.append('%'); out.append(toDigit((b >> 4) & 0xF)); out.append(toDigit(b & 0xF)); @@ -672,6 +794,7 @@ public class Util { * Escapes HTML unsafe characters like <, & to the respective character entities. */ public static String escape(String text) { + if (text==null) return null; StringBuilder buf = new StringBuilder(text.length()+64); for( int i=0; i List fixNull(List l) { + return l!=null ? l : Collections.emptyList(); + } + + public static Set fixNull(Set l) { + return l!=null ? l : Collections.emptySet(); + } + + public static Collection fixNull(Collection l) { + return l!=null ? l : Collections.emptySet(); + } + + public static Iterable fixNull(Iterable l) { + return l!=null ? l : Collections.emptySet(); + } + /** * Cuts all the leading path portion and get just the file name. */ @@ -773,12 +912,12 @@ public class Util { /** * Concatenate multiple strings by inserting a separator. */ - public static String join(Collection strings, String seprator) { + public static String join(Collection strings, String separator) { StringBuilder buf = new StringBuilder(); boolean first=true; - for (String s : strings) { + for (Object s : strings) { if(first) first=false; - else buf.append(seprator); + else buf.append(separator); buf.append(s); } return buf.toString(); @@ -844,24 +983,90 @@ public class Util { * Creates a symlink to baseDir+targetPath at baseDir+symlinkPath. *

* If there's a prior symlink at baseDir+symlinkPath, it will be overwritten. + * + * @param baseDir + * Base directory to resolve the 'symlinkPath' parameter. + * @param targetPath + * The file that the symlink should point to. + * @param symlinkPath + * Where to create a symlink in. */ public static void createSymlink(File baseDir, String targetPath, String symlinkPath, TaskListener listener) throws InterruptedException { - if(!isWindows() && !NO_SYMLINK) { - try { + if(Functions.isWindows() || NO_SYMLINK) return; + + try { + String errmsg = ""; + // if a file or a directory exists here, delete it first. + // try simple delete first (whether exists() or not, as it may be symlink pointing + // to non-existent target), but fallback to "rm -rf" to delete non-empty dir. + File symlinkFile = new File(baseDir, symlinkPath); + if (!symlinkFile.delete() && symlinkFile.exists()) // ignore a failure. new LocalProc(new String[]{"rm","-rf", symlinkPath},new String[0],listener.getLogger(), baseDir).join(); - int r = new LocalProc(new String[]{ + int r; + if (!SYMLINK_ESCAPEHATCH) { + try { + r = LIBC.symlink(targetPath,symlinkFile.getAbsolutePath()); + if (r!=0) { + r = Native.getLastError(); + errmsg = LIBC.strerror(r); + } + } catch (LinkageError e) { + // if JNA is unavailable, fall back. + // we still prefer to try JNA first as PosixAPI supports even smaller platforms. + r = PosixAPI.get().symlink(targetPath,symlinkFile.getAbsolutePath()); + } + } else // escape hatch, until we know that the above works well. + r = new LocalProc(new String[]{ "ln","-s", targetPath, symlinkPath}, new String[0],listener.getLogger(), baseDir).join(); - if(r!=0) - listener.getLogger().println("ln failed: "+r); - } catch (IOException e) { - PrintStream log = listener.getLogger(); - log.println("ln failed"); - Util.displayIOException(e,listener); - e.printStackTrace( log ); + if(r!=0) + listener.getLogger().println(String.format("ln -s %s %s failed: %d %s",targetPath, symlinkFile, r, errmsg)); + } catch (IOException e) { + PrintStream log = listener.getLogger(); + log.printf("ln %s %s failed\n",targetPath, new File(baseDir, symlinkPath)); + Util.displayIOException(e,listener); + e.printStackTrace( log ); + } + } + + /** + * Resolves symlink, if the given file is a symlink. Otherwise return null. + *

+ * If the resolution fails, report an error. + * + * @param listener + * If we rely on an external command to resolve symlink, this is it. + * (TODO: try readlink(1) available on some platforms) + */ + public static String resolveSymlink(File link, TaskListener listener) throws InterruptedException, IOException { + if(Functions.isWindows()) return null; + + String filename = link.getAbsolutePath(); + try { + for (int sz=512; sz < 65536; sz*=2) { + Memory m = new Memory(sz); + int r = LIBC.readlink(filename,m,new NativeLong(sz)); + if (r<0) { + int err = Native.getLastError(); + if (err==22/*EINVAL --- but is this really portable?*/) + return null; // this means it's not a symlink + throw new IOException("Failed to readlink "+link+" error="+ err+" "+ LIBC.strerror(err)); + } + if (r==sz) + continue; // buffer too small + + byte[] buf = new byte[r]; + m.read(0,buf,0,r); + return new String(buf); } + // something is wrong. It can't be this long! + throw new IOException("Symlink too long: "+link); + } catch (LinkageError e) { + // if JNA is unavailable, fall back. + // we still prefer to try JNA first as PosixAPI supports even smaller platforms. + return PosixAPI.get().readlink(filename); } } @@ -872,7 +1077,7 @@ public class Util { * but don't remember it right now. * * @since 1.204 - * @deprecated This method is broken (see ISSUE#1666). It should probably + * @deprecated since 2008-05-13. This method is broken (see ISSUE#1666). It should probably * be removed but I'm not sure if it is considered part of the public API * that needs to be maintained for backwards compatibility. * Use {@link #encode(String)} instead. @@ -917,6 +1122,40 @@ public class Util { } } + /** + * Checks if the public method defined on the base type with the given arguments + * are overridden in the given derived type. + */ + public static boolean isOverridden(Class base, Class derived, String methodName, Class... types) { + // the rewriteHudsonWar method isn't overridden. + try { + return !base.getMethod(methodName, types).equals( + derived.getMethod(methodName,types)); + } catch (NoSuchMethodException e) { + throw new AssertionError(e); + } + } + + /** + * Returns a file name by changing its extension. + * + * @param ext + * For example, ".zip" + */ + public static File changeExtension(File dst, String ext) { + String p = dst.getPath(); + int pos = p.lastIndexOf('.'); + if (pos<0) return new File(p+ext); + else return new File(p.substring(0,pos)+ext); + } + + /** + * Null-safe String intern method. + */ + public static String intern(String s) { + return s==null ? s : s.intern(); + } + public static final FastDateFormat XS_DATETIME_FORMATTER = FastDateFormat.getInstance("yyyy-MM-dd'T'HH:mm:ss'Z'",new SimpleTimeZone(0,"GMT")); // Note: RFC822 dates must not be localized! @@ -929,4 +1168,6 @@ public class Util { * On Unix environment that cannot run "ln", set this to true. */ public static boolean NO_SYMLINK = Boolean.getBoolean(Util.class.getName()+".noSymLink"); + + public static boolean SYMLINK_ESCAPEHATCH = Boolean.getBoolean(Util.class.getName()+".symlinkEscapeHatch"); } diff --git a/core/src/main/java/hudson/WebAppMain.java b/core/src/main/java/hudson/WebAppMain.java index 99e21a3a73521a7c0d5d55cb5a41dabf723b37d2..a28229533c512c8a7fa2855d2f4071bf143244cd 100644 --- a/core/src/main/java/hudson/WebAppMain.java +++ b/core/src/main/java/hudson/WebAppMain.java @@ -128,6 +128,37 @@ public final class WebAppMain implements ServletContextListener { return; } +// JNA is no longer a hard requirement. It's just nice to have. See HUDSON-4820 for more context. +// // make sure JNA works. this can fail if +// // - platform is unsupported +// // - JNA is already loaded in another classloader +// // see http://wiki.hudson-ci.org/display/HUDSON/JNA+is+already+loaded +// // TODO: or shall we instead modify Hudson to work gracefully without JNA? +// try { +// /* +// java.lang.UnsatisfiedLinkError: Native Library /builds/apps/glassfish/domains/hudson-domain/generated/jsp/j2ee-modules/hudson-1.309/loader/com/sun/jna/sunos-sparc/libjnidispatch.so already loaded in another classloader +// at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1743) +// at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1674) +// at java.lang.Runtime.load0(Runtime.java:770) +// at java.lang.System.load(System.java:1005) +// at com.sun.jna.Native.loadNativeLibraryFromJar(Native.java:746) +// at com.sun.jna.Native.loadNativeLibrary(Native.java:680) +// at com.sun.jna.Native.(Native.java:108) +// at hudson.util.jna.GNUCLibrary.(GNUCLibrary.java:86) +// at hudson.Util.createSymlink(Util.java:970) +// at hudson.model.Run.run(Run.java:1174) +// at hudson.matrix.MatrixBuild.run(MatrixBuild.java:149) +// at hudson.model.ResourceController.execute(ResourceController.java:88) +// at hudson.model.Executor.run(Executor.java:123) +// */ +// String.valueOf(Native.POINTER_SIZE); // this meaningless operation forces the classloading and initialization +// } catch (LinkageError e) { +// if (e.getMessage().contains("another classloader")) +// context.setAttribute(APP,new JNADoublyLoaded(e)); +// else +// context.setAttribute(APP,new HudsonFailedToLoad(e)); +// } + // make sure this is servlet 2.4 container or above try { ServletResponse.class.getMethod("setCharacterEncoding",String.class); @@ -168,15 +199,13 @@ public final class WebAppMain implements ServletContextListener { // if this works we are all happy } catch (TransformerFactoryConfigurationError x) { // no it didn't. - Logger logger = Logger.getLogger(WebAppMain.class.getName()); - - logger.log(Level.WARNING, "XSLT not configured correctly. Hudson will try to fix this. See http://issues.apache.org/bugzilla/show_bug.cgi?id=40895 for more details",x); + LOGGER.log(Level.WARNING, "XSLT not configured correctly. Hudson will try to fix this. See http://issues.apache.org/bugzilla/show_bug.cgi?id=40895 for more details",x); System.setProperty(TransformerFactory.class.getName(),"com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl"); try { TransformerFactory.newInstance(); - logger.info("XSLT is set to the JAXP RI in JRE"); + LOGGER.info("XSLT is set to the JAXP RI in JRE"); } catch(TransformerFactoryConfigurationError y) { - logger.log(Level.SEVERE, "Failed to correct the problem."); + LOGGER.log(Level.SEVERE, "Failed to correct the problem."); } } @@ -185,13 +214,10 @@ public final class WebAppMain implements ServletContextListener { context.setAttribute(APP,new HudsonIsLoading()); new Thread("hudson initialization thread") { + @Override public void run() { try { - try { - context.setAttribute(APP,new Hudson(home,context)); - } catch( IOException e ) { - throw new Error(e); - } + context.setAttribute(APP,new Hudson(home,context)); // trigger the loading of changelogs in the background, // but give the system 10 seconds so that the first page @@ -205,10 +231,9 @@ public final class WebAppMain implements ServletContextListener { LOGGER.log(Level.SEVERE, "Failed to initialize Hudson",e); context.setAttribute(APP,new HudsonFailedToLoad(e)); throw e; - } catch (RuntimeException e) { + } catch (Exception e) { LOGGER.log(Level.SEVERE, "Failed to initialize Hudson",e); context.setAttribute(APP,new HudsonFailedToLoad(e)); - throw e; } } }.start(); diff --git a/core/src/main/java/hudson/XmlFile.java b/core/src/main/java/hudson/XmlFile.java index 5a17779dbfde03ece0e98c7fd5d402dfd42f38ed..7594945024b90fea1330cb48605b064fa6c1a468 100644 --- a/core/src/main/java/hudson/XmlFile.java +++ b/core/src/main/java/hudson/XmlFile.java @@ -128,6 +128,8 @@ public final class XmlFile { throw new IOException2("Unable to read "+file,e); } catch(ConversionException e) { throw new IOException2("Unable to read "+file,e); + } catch(Error e) {// mostly reflection errors + throw new IOException2("Unable to read "+file,e); } finally { r.close(); } @@ -138,16 +140,18 @@ public final class XmlFile { * * @return * The unmarshalled object. Usually the same as o, but would be different - * if the XML representation if completely new. + * if the XML representation is completely new. */ public Object unmarshal( Object o ) throws IOException { Reader r = new BufferedReader(new InputStreamReader(new FileInputStream(file),"UTF-8")); try { return xs.unmarshal(new XppReader(r),o); } catch (StreamException e) { - throw new IOException2(e); + throw new IOException2("Unable to read "+file,e); } catch(ConversionException e) { throw new IOException2("Unable to read "+file,e); + } catch(Error e) {// mostly reflection errors + throw new IOException2("Unable to read "+file,e); } finally { r.close(); } @@ -179,6 +183,7 @@ public final class XmlFile { file.getParentFile().mkdirs(); } + @Override public String toString() { return file.toString(); } @@ -232,14 +237,17 @@ public final class XmlFile { try { JAXP.newSAXParser().parse(file,new DefaultHandler() { private Locator loc; + @Override public void setDocumentLocator(Locator locator) { this.loc = locator; } + @Override public void startDocument() throws SAXException { attempt(); } + @Override public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException { attempt(); // if we still haven't found it at the first start element, diff --git a/core/src/main/java/hudson/cli/AbstractBuildRangeCommand.java b/core/src/main/java/hudson/cli/AbstractBuildRangeCommand.java new file mode 100644 index 0000000000000000000000000000000000000000..5e500b2207efaaf4ef21123fcf6e7ff991418197 --- /dev/null +++ b/core/src/main/java/hudson/cli/AbstractBuildRangeCommand.java @@ -0,0 +1,30 @@ +package hudson.cli; + +import hudson.model.AbstractBuild; +import hudson.model.AbstractProject; +import hudson.model.Fingerprint.RangeSet; +import org.kohsuke.args4j.Argument; + +import java.io.IOException; +import java.util.List; + +/** + * {@link CLICommand} that acts on a series of {@link AbstractBuild}s. + * + * @author Kohsuke Kawaguchi + */ +public abstract class AbstractBuildRangeCommand extends CLICommand { + @Argument(metaVar="JOB",usage="Name of the job to build",required=true,index=0) + public AbstractProject job; + + @Argument(metaVar="RANGE",usage="Range of the build records to delete. 'N-M', 'N,M', or 'N'",required=true,index=1) + public String range; + + protected int run() throws Exception { + RangeSet rs = RangeSet.fromString(range,false); + + return act((List)job.getBuilds(rs)); + } + + protected abstract int act(List> builds) throws IOException; +} diff --git a/core/src/main/java/hudson/cli/BuildCommand.java b/core/src/main/java/hudson/cli/BuildCommand.java new file mode 100644 index 0000000000000000000000000000000000000000..a214dd6b3a32c967d2bf541afde81fddae3f3527 --- /dev/null +++ b/core/src/main/java/hudson/cli/BuildCommand.java @@ -0,0 +1,128 @@ +/* + * The MIT License + * + * Copyright (c) 2004-2010, Sun Microsystems, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.cli; + +import hudson.model.AbstractBuild; +import hudson.model.AbstractProject; +import hudson.model.Cause; +import hudson.model.ParametersAction; +import hudson.model.ParameterValue; +import hudson.model.ParametersDefinitionProperty; +import hudson.model.ParameterDefinition; +import hudson.Extension; +import hudson.AbortException; +import hudson.model.Item; +import hudson.util.EditDistance; +import org.kohsuke.args4j.Argument; +import org.kohsuke.args4j.Option; + +import java.util.concurrent.Future; +import java.util.Map; +import java.util.HashMap; +import java.util.List; +import java.util.ArrayList; +import java.util.Map.Entry; +import java.io.PrintStream; + +/** + * Builds a job, and optionally waits until its completion. + * + * @author Kohsuke Kawaguchi + */ +@Extension +public class BuildCommand extends CLICommand { + @Override + public String getShortDescription() { + return "Builds a job, and optionally waits until its completion."; + } + + @Argument(metaVar="JOB",usage="Name of the job to build",required=true) + public AbstractProject job; + + @Option(name="-s",usage="Wait until the completion/abortion of the command") + public boolean sync = false; + + @Option(name="-p",usage="Specify the build parameters in the key=value format.") + public Map parameters = new HashMap(); + + protected int run() throws Exception { + job.checkPermission(Item.BUILD); + + ParametersAction a = null; + if (!parameters.isEmpty()) { + ParametersDefinitionProperty pdp = job.getProperty(ParametersDefinitionProperty.class); + if (pdp==null) + throw new AbortException(job.getFullDisplayName()+" is not parameterized but the -p option was specified"); + + List values = new ArrayList(); + + for (Entry e : parameters.entrySet()) { + String name = e.getKey(); + ParameterDefinition pd = pdp.getParameterDefinition(name); + if (pd==null) + throw new AbortException(String.format("\'%s\' is not a valid parameter. Did you mean %s?", + name, EditDistance.findNearest(name, pdp.getParameterDefinitionNames()))); + values.add(pd.createValue(this,e.getValue())); + } + + a = new ParametersAction(values); + } + + Future f = job.scheduleBuild2(0, new CLICause(), a); + if (!sync) return 0; + + AbstractBuild b = f.get(); // wait for the completion + stdout.println("Completed "+b.getFullDisplayName()+" : "+b.getResult()); + return b.getResult().ordinal; + } + + @Override + protected void printUsageSummary(PrintStream stderr) { + stderr.println( + "Starts a build, and optionally waits for a completion.\n" + + "Aside from general scripting use, this command can be\n" + + "used to invoke another job from within a build of one job.\n" + + "With the -s option, this command changes the exit code based on\n" + + "the outcome of the build (exit code 0 indicates a success.)\n" + ); + } + + // TODO: CLI can authenticate as different users, so should record which user here.. + public static class CLICause extends Cause { + public String getShortDescription() { + return "Started by command line"; + } + + @Override + public boolean equals(Object o) { + return o instanceof CLICause; + } + + @Override + public int hashCode() { + return 7; + } + } +} + diff --git a/core/src/main/java/hudson/cli/CLICommand.java b/core/src/main/java/hudson/cli/CLICommand.java index cf099f07c24ca65f573b5eafc188bc81baa4fcf7..56f44b474d4297b2af37c7c22a681ac126b4fce2 100644 --- a/core/src/main/java/hudson/cli/CLICommand.java +++ b/core/src/main/java/hudson/cli/CLICommand.java @@ -1,7 +1,7 @@ /* * The MIT License * - * Copyright (c) 2004-2009, Sun Microsystems, Inc. + * Copyright (c) 2004-2010, Sun Microsystems, Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -23,21 +23,37 @@ */ package hudson.cli; -import hudson.ExtensionPoint; +import hudson.AbortException; import hudson.Extension; import hudson.ExtensionList; -import hudson.AbortException; -import hudson.remoting.Channel; -import hudson.remoting.Callable; +import hudson.ExtensionPoint; +import hudson.cli.declarative.CLIMethod; +import hudson.ExtensionPoint.LegacyInstancesAreScopedToHudson; +import hudson.cli.declarative.OptionHandlerExtension; import hudson.model.Hudson; -import org.kohsuke.args4j.CmdLineParser; +import hudson.remoting.Callable; +import hudson.remoting.Channel; +import hudson.remoting.ChannelProperty; +import hudson.security.CliAuthenticator; +import hudson.security.SecurityRealm; +import org.acegisecurity.Authentication; +import org.acegisecurity.context.SecurityContext; +import org.acegisecurity.context.SecurityContextHolder; +import org.jvnet.hudson.annotation_indexer.Index; +import org.jvnet.tiger_types.Types; +import org.kohsuke.args4j.ClassParser; import org.kohsuke.args4j.CmdLineException; +import org.kohsuke.args4j.CmdLineParser; +import org.kohsuke.args4j.spi.OptionHandler; -import java.io.PrintStream; -import java.io.InputStream; import java.io.BufferedInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.PrintStream; +import java.lang.reflect.Type; import java.util.List; import java.util.Locale; +import java.util.logging.Logger; /** * Base class for Hudson CLI. @@ -51,9 +67,12 @@ import java.util.Locale; * *

* The Hudson master then picks the right {@link CLICommand} to execute, clone it, and - * calls {@link #main(List, InputStream, PrintStream, PrintStream)} method. + * calls {@link #main(List, Locale, InputStream, PrintStream, PrintStream)} method. * *

Note for CLI command implementor

+ * Start with this document + * to get the general idea of CLI. + * *
    *
  • * Put {@link Extension} on your implementation to have it discovered by Hudson. @@ -61,7 +80,7 @@ import java.util.Locale; *
  • * Use args4j annotation on your implementation to define * options and arguments (however, if you don't like that, you could override - * the {@link #main(List, InputStream, PrintStream, PrintStream)} method directly. + * the {@link #main(List, Locale, InputStream, PrintStream, PrintStream)} method directly. * *
  • * stdin, stdout, stderr are remoted, so proper buffering is necessary for good user experience. @@ -74,7 +93,9 @@ import java.util.Locale; * * @author Kohsuke Kawaguchi * @since 1.302 + * @see CLIMethod */ +@LegacyInstancesAreScopedToHudson public abstract class CLICommand implements ExtensionPoint, Cloneable { /** * Connected to stdout and stderr of the CLI agent that initiated the session. @@ -85,7 +106,7 @@ public abstract class CLICommand implements ExtensionPoint, Cloneable { * (In contrast, calling {@code System.out.println(...)} would print out * the message to the server log file, which is probably not what you want. */ - protected transient PrintStream stdout,stderr; + public transient PrintStream stdout,stderr; /** * Connected to stdin of the CLI agent. @@ -93,13 +114,18 @@ public abstract class CLICommand implements ExtensionPoint, Cloneable { *

    * This input stream is buffered to hide the latency in the remoting. */ - protected transient InputStream stdin; + public transient InputStream stdin; /** * {@link Channel} that represents the CLI JVM. You can use this to * execute {@link Callable} on the CLI JVM, among other things. */ - protected transient Channel channel; + public transient Channel channel; + + /** + * The locale of the client. Messages should be formatted with this resource. + */ + public transient Locale locale; /** @@ -116,6 +142,7 @@ public abstract class CLICommand implements ExtensionPoint, Cloneable { public String getName() { String name = getClass().getName(); name = name.substring(name.lastIndexOf('.')+1); // short name + name = name.substring(name.lastIndexOf('$')+1); if(name.endsWith("Command")) name = name.substring(0,name.length()-7); // trim off the command @@ -130,14 +157,30 @@ public abstract class CLICommand implements ExtensionPoint, Cloneable { */ public abstract String getShortDescription(); - public int main(List args, InputStream stdin, PrintStream stdout, PrintStream stderr) { + public int main(List args, Locale locale, InputStream stdin, PrintStream stdout, PrintStream stderr) { this.stdin = new BufferedInputStream(stdin); this.stdout = stdout; this.stderr = stderr; + this.locale = locale; this.channel = Channel.current(); + registerOptionHandlers(); CmdLineParser p = new CmdLineParser(this); + + // add options from the authenticator + SecurityContext sc = SecurityContextHolder.getContext(); + Authentication old = sc.getAuthentication(); + + CliAuthenticator authenticator = Hudson.getInstance().getSecurityRealm().createCliAuthenticator(this); + new ClassParser().parse(authenticator,p); + try { p.parseArgument(args.toArray(new String[args.size()])); + Authentication auth = authenticator.authenticate(); + if (auth==Hudson.ANONYMOUS) + auth = loadStoredAuthentication(); + sc.setAuthentication(auth); // run the CLI with the right credential + if (!(this instanceof LoginCommand || this instanceof HelpCommand)) + Hudson.getInstance().checkPermission(Hudson.READ); return run(); } catch (CmdLineException e) { stderr.println(e.getMessage()); @@ -150,9 +193,66 @@ public abstract class CLICommand implements ExtensionPoint, Cloneable { } catch (Exception e) { e.printStackTrace(stderr); return -1; + } finally { + sc.setAuthentication(old); // restore + } + } + + /** + * Loads the persisted authentication information from {@link ClientAuthenticationCache}. + */ + protected Authentication loadStoredAuthentication() throws InterruptedException { + try { + return new ClientAuthenticationCache(channel).get(); + } catch (IOException e) { + stderr.println("Failed to access the stored credential"); + e.printStackTrace(stderr); // recover + return Hudson.ANONYMOUS; } } + /** + * Determines if the user authentication is attempted through CLI before running this command. + * + *

    + * If your command doesn't require any authentication whatsoever, and if you don't even want to let the user + * authenticate, then override this method to always return false — doing so will result in all the commands + * running as anonymous user credential. + * + *

    + * Note that even if this method returns true, the user can still skip aut + * + * @param auth + * Always non-null. + * If the underlying transport had already performed authentication, this object is something other than + * {@link Hudson#ANONYMOUS}. + */ + protected boolean shouldPerformAuthentication(Authentication auth) { + return auth==Hudson.ANONYMOUS; + } + + /** + * Returns the identity of the client as determined at the CLI transport level. + * + *

    + * When the CLI connection to the server is tunneled over HTTP, that HTTP connection + * can authenticate the client, just like any other HTTP connections to the server + * can authenticate the client. This method returns that information, if one is available. + * By generalizing it, this method returns the identity obtained at the transport-level authentication. + * + *

    + * For example, imagine if the current {@link SecurityRealm} is doing Kerberos authentication, + * then this method can return a valid identity of the client. + * + *

    + * If the transport doesn't do authentication, this method returns {@link Hudson#ANONYMOUS}. + */ + public Authentication getTransportAuthentication() { + Authentication a = channel.getProperty(TRANSPORT_AUTHENTICATION); + if (a==null) a = Hudson.ANONYMOUS; + return a; + } + /** * Executes the command, and return the exit code. * @@ -169,9 +269,67 @@ public abstract class CLICommand implements ExtensionPoint, Cloneable { protected void printUsage(PrintStream stderr, CmdLineParser p) { stderr.println("java -jar hudson-cli.jar "+getName()+" args..."); + printUsageSummary(stderr); p.printUsage(stderr); } + /** + * Called while producing usage. This is a good method to override + * to render the general description of the command that goes beyond + * a single-line summary. + */ + protected void printUsageSummary(PrintStream stderr) { + stderr.println(getShortDescription()); + } + + /** + * Convenience method for subtypes to obtain the system property of the client. + */ + protected String getClientSystemProperty(String name) throws IOException, InterruptedException { + return channel.call(new GetSystemProperty(name)); + } + + private static final class GetSystemProperty implements Callable { + private final String name; + + private GetSystemProperty(String name) { + this.name = name; + } + + public String call() throws IOException { + return System.getProperty(name); + } + + private static final long serialVersionUID = 1L; + } + + /** + * Creates a clone to be used to execute a command. + */ + protected CLICommand createClone() { + try { + return getClass().newInstance(); + } catch (IllegalAccessException e) { + throw new AssertionError(e); + } catch (InstantiationException e) { + throw new AssertionError(e); + } + } + + /** + * Auto-discovers {@link OptionHandler}s and add them to the given command line parser. + */ + protected void registerOptionHandlers() { + try { + for (Class c : Index.list(OptionHandlerExtension.class,Hudson.getInstance().pluginManager.uberClassLoader,Class.class)) { + Type t = Types.getBaseClass(c, OptionHandler.class); + CmdLineParser.registerHandler(Types.erasure(Types.getTypeArgument(t,0)), c); + } + } catch (IOException e) { + throw new Error(e); + } + } + /** * Returns all the registered {@link CLICommand}s. */ @@ -183,15 +341,32 @@ public abstract class CLICommand implements ExtensionPoint, Cloneable { * Obtains a copy of the command for invocation. */ public static CLICommand clone(String name) { - for (CLICommand cmd : all()) { - if(name.equals(cmd.getName())) { - try { - return (CLICommand)cmd.clone(); - } catch (CloneNotSupportedException e) { - throw new AssertionError(e); - } - } - } + for (CLICommand cmd : all()) + if(name.equals(cmd.getName())) + return cmd.createClone(); return null; } + + private static final Logger LOGGER = Logger.getLogger(CLICommand.class.getName()); + + /** + * Key for {@link Channel#getProperty(Object)} that links to the {@link Authentication} object + * which captures the identity of the client given by the transport layer. + */ + public static final ChannelProperty TRANSPORT_AUTHENTICATION = new ChannelProperty(Authentication.class,"transportAuthentication"); + + private static final ThreadLocal CURRENT_COMMAND = new ThreadLocal(); + + /*package*/ static CLICommand setCurrent(CLICommand cmd) { + CLICommand old = getCurrent(); + CURRENT_COMMAND.set(cmd); + return old; + } + + /** + * If the calling thread is in the middle of executing a CLI command, return it. Otherwise null. + */ + public static CLICommand getCurrent() { + return CURRENT_COMMAND.get(); + } } diff --git a/core/src/main/java/hudson/cli/CliManagerImpl.java b/core/src/main/java/hudson/cli/CliManagerImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..f9b4fdcdad937c6219a5055517d69bfda1e4edbf --- /dev/null +++ b/core/src/main/java/hudson/cli/CliManagerImpl.java @@ -0,0 +1,107 @@ +/* + * The MIT License + * + * Copyright (c) 2004-2009, Sun Microsystems, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.cli; + +import hudson.remoting.Channel; +import hudson.model.Hudson; +import org.apache.commons.discovery.resource.ClassLoaders; +import org.apache.commons.discovery.resource.classes.DiscoverClasses; +import org.apache.commons.discovery.resource.names.DiscoverServiceNames; +import org.apache.commons.discovery.ResourceNameIterator; +import org.apache.commons.discovery.ResourceClassIterator; +import org.kohsuke.args4j.spi.OptionHandler; +import org.kohsuke.args4j.CmdLineParser; +import org.jvnet.tiger_types.Types; + +import java.util.List; +import java.util.Locale; +import java.util.Collections; +import java.io.InputStream; +import java.io.OutputStream; +import java.io.PrintStream; +import java.io.Serializable; + +/** + * {@link CliEntryPoint} implementation exposed to the remote CLI. + * + * @author Kohsuke Kawaguchi + */ +public class CliManagerImpl implements CliEntryPoint, Serializable { + public CliManagerImpl() { + } + + public int main(List args, Locale locale, InputStream stdin, OutputStream stdout, OutputStream stderr) { + // remoting sets the context classloader to the RemoteClassLoader, + // which slows down the classloading. we don't load anything from CLI, + // so counter that effect. + Thread.currentThread().setContextClassLoader(getClass().getClassLoader()); + + PrintStream out = new PrintStream(stdout); + PrintStream err = new PrintStream(stderr); + + String subCmd = args.get(0); + CLICommand cmd = CLICommand.clone(subCmd); + if(cmd!=null) { + final CLICommand old = CLICommand.setCurrent(cmd); + try { + return cmd.main(args.subList(1,args.size()),locale, stdin, out, err); + } finally { + CLICommand.setCurrent(old); + } + } + + err.println("No such command: "+subCmd); + new HelpCommand().main(Collections.emptyList(), locale, stdin, out, err); + return -1; + } + + public boolean hasCommand(String name) { + return CLICommand.clone(name)!=null; + } + + public int protocolVersion() { + return VERSION; + } + + private Object writeReplace() { + return Channel.current().export(CliEntryPoint.class,this); + } + + static { + // register option handlers that are defined + ClassLoaders cls = new ClassLoaders(); + cls.put(Hudson.getInstance().getPluginManager().uberClassLoader); + + ResourceNameIterator servicesIter = + new DiscoverServiceNames(cls).findResourceNames(OptionHandler.class.getName()); + final ResourceClassIterator itr = + new DiscoverClasses(cls).findResourceClasses(servicesIter); + + while(itr.hasNext()) { + Class h = itr.nextResourceClass().loadClass(); + Class c = Types.erasure(Types.getTypeArgument(Types.getBaseClass(h, OptionHandler.class), 0)); + CmdLineParser.registerHandler(c,h); + } + } +} diff --git a/core/src/main/java/hudson/cli/ClientAuthenticationCache.java b/core/src/main/java/hudson/cli/ClientAuthenticationCache.java new file mode 100644 index 0000000000000000000000000000000000000000..03d9ffc15c2c7001250c7886e21b518237062acb --- /dev/null +++ b/core/src/main/java/hudson/cli/ClientAuthenticationCache.java @@ -0,0 +1,126 @@ +package hudson.cli; + +import hudson.FilePath; +import hudson.FilePath.FileCallable; +import hudson.model.Hudson; +import hudson.model.Hudson.MasterComputer; +import hudson.os.PosixAPI; +import hudson.remoting.Callable; +import hudson.remoting.Channel; +import hudson.remoting.VirtualChannel; +import hudson.util.Secret; +import org.acegisecurity.Authentication; +import org.acegisecurity.AuthenticationException; +import org.acegisecurity.providers.UsernamePasswordAuthenticationToken; +import org.acegisecurity.userdetails.UserDetails; +import org.springframework.dao.DataAccessException; + +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.OutputStream; +import java.io.Serializable; +import java.util.Properties; + +/** + * Represents the authentication credential store of the CLI client. + * + *

    + * This object encapsulates a remote manipulation of the credential store. + * We store encrypted user names. + * + * @author Kohsuke Kawaguchi + * @since 1.351 + */ +public class ClientAuthenticationCache implements Serializable { + /** + * Where the store should be placed. + */ + private final FilePath store; + + /** + * Loaded contents of the store. + */ + private final Properties props = new Properties(); + + public ClientAuthenticationCache(Channel channel) throws IOException, InterruptedException { + store = (channel==null ? MasterComputer.localChannel : channel).call(new Callable() { + public FilePath call() throws IOException { + File home = new File(System.getProperty("user.home")); + return new FilePath(new File(home, ".hudson/cli-credentials")); + } + }); + if (store.exists()) { + props.load(store.read()); + } + } + + /** + * Gets the persisted authentication for this Hudson. + * + * @return {@link Hudson#ANONYMOUS} if no such credential is found, or if the stored credential is invalid. + */ + public Authentication get() { + Hudson h = Hudson.getInstance(); + Secret userName = Secret.decrypt(props.getProperty(getPropertyKey())); + if (userName==null) return Hudson.ANONYMOUS; // failed to decrypt + try { + UserDetails u = h.getSecurityRealm().loadUserByUsername(userName.toString()); + return new UsernamePasswordAuthenticationToken(u.getUsername(), u.getPassword(), u.getAuthorities()); + } catch (AuthenticationException e) { + return Hudson.ANONYMOUS; + } catch (DataAccessException e) { + return Hudson.ANONYMOUS; + } + } + + /** + * Computes the key that identifies this Hudson among other Hudsons that the user has a credential for. + */ + private String getPropertyKey() { + String url = Hudson.getInstance().getRootUrl(); + if (url!=null) return url; + return Secret.fromString("key").toString(); + } + + /** + * Persists the specified authentication. + */ + public void set(Authentication a) throws IOException, InterruptedException { + Hudson h = Hudson.getInstance(); + + // make sure that this security realm is capable of retrieving the authentication by name, + // as it's not required. + UserDetails u = h.getSecurityRealm().loadUserByUsername(a.getName()); + props.setProperty(getPropertyKey(), Secret.fromString(u.getUsername()).getEncryptedValue()); + + save(); + } + + /** + * Removes the persisted credential, if there's one. + */ + public void remove() throws IOException, InterruptedException { + if (props.remove(getPropertyKey())!=null) + save(); + } + + private void save() throws IOException, InterruptedException { + store.act(new FileCallable() { + public Void invoke(File f, VirtualChannel channel) throws IOException, InterruptedException { + f.getParentFile().mkdirs(); + + OutputStream os = new FileOutputStream(f); + try { + props.store(os,"Credential store"); + } finally { + os.close(); + } + + // try to protect this file from other users, if we can. + PosixAPI.get().chmod(f.getAbsolutePath(),0600); + return null; + } + }); + } +} diff --git a/core/src/main/java/hudson/cli/CloneableCLICommand.java b/core/src/main/java/hudson/cli/CloneableCLICommand.java new file mode 100644 index 0000000000000000000000000000000000000000..7fb3b96dd35a3841c491e4138f2cfc61c79c798c --- /dev/null +++ b/core/src/main/java/hudson/cli/CloneableCLICommand.java @@ -0,0 +1,42 @@ +/* + * The MIT License + * + * Copyright (c) 2004-2009, Sun Microsystems, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.cli; + +/** + * {@link Cloneable} {@link CLICommand}. + * + * Uses {@link #clone()} instead of "new" to create a copy for exection. + * + * @author Kohsuke Kawaguchi + */ +public abstract class CloneableCLICommand extends CLICommand implements Cloneable { + @Override + protected CLICommand createClone() { + try { + return (CLICommand)clone(); + } catch (CloneNotSupportedException e) { + throw new AssertionError(e); + } + } +} diff --git a/core/src/main/java/hudson/cli/CommandDuringBuild.java b/core/src/main/java/hudson/cli/CommandDuringBuild.java new file mode 100644 index 0000000000000000000000000000000000000000..75542aeacd7612579af33f3c0e8d79783af465d8 --- /dev/null +++ b/core/src/main/java/hudson/cli/CommandDuringBuild.java @@ -0,0 +1,82 @@ +/* + * The MIT License + * + * Copyright (c) 2010, InfraDNA, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +package hudson.cli; + +import hudson.model.Hudson; +import hudson.model.Job; +import hudson.model.Run; +import hudson.remoting.Callable; +import org.kohsuke.args4j.CmdLineException; + +import java.io.IOException; + +/** + * Base class for those commands that are valid only during a build. + * + * @author Kohsuke Kawaguchi + */ +public abstract class CommandDuringBuild extends CLICommand { + /** + * This method makes sense only when called from within the build kicked by Hudson. + * We use the environment variables that Hudson sets to determine the build that is being run. + */ + protected Run getCurrentlyBuilding() throws CmdLineException { + try { + CLICommand c = CLICommand.getCurrent(); + if (c==null) throw new IllegalStateException("Not executing a CLI command"); + String[] envs = c.channel.call(new GetCharacteristicEnvironmentVariables()); + + if (envs[0]==null || envs[1]==null) + throw new CmdLineException("This CLI command works only when invoked from inside a build"); + + Job j = Hudson.getInstance().getItemByFullName(envs[0],Job.class); + if (j==null) throw new CmdLineException("No such job: "+envs[0]); + + try { + Run r = j.getBuildByNumber(Integer.parseInt(envs[1])); + if (r==null) throw new CmdLineException("No such build #"+envs[1]+" in "+envs[0]); + return r; + } catch (NumberFormatException e) { + throw new CmdLineException("Invalid build number: "+envs[1]); + } + } catch (IOException e) { + throw new CmdLineException("Failed to identify the build being executed",e); + } catch (InterruptedException e) { + throw new CmdLineException("Failed to identify the build being executed",e); + } + } + + /** + * Gets the environment variables that points to the build being executed. + */ + private static final class GetCharacteristicEnvironmentVariables implements Callable { + public String[] call() throws IOException { + return new String[] { + System.getenv("JOB_NAME"), + System.getenv("BUILD_NUMBER") + }; + } + } +} diff --git a/core/src/main/java/hudson/cli/CopyJobCommand.java b/core/src/main/java/hudson/cli/CopyJobCommand.java new file mode 100644 index 0000000000000000000000000000000000000000..6564f9b07e43814eb29e8cc09ab09699f3cc183c --- /dev/null +++ b/core/src/main/java/hudson/cli/CopyJobCommand.java @@ -0,0 +1,64 @@ +/* + * The MIT License + * + * Copyright (c) 2004-2010, Sun Microsystems, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.cli; + +import hudson.model.Hudson; +import hudson.model.TopLevelItem; +import hudson.Extension; +import hudson.model.Item; +import org.kohsuke.args4j.Argument; + + +/** + * Copies a job from CLI. + * + * @author Kohsuke Kawaguchi + */ +@Extension +public class CopyJobCommand extends CLICommand { + @Override + public String getShortDescription() { + return "Copies a job"; + } + + @Argument(metaVar="SRC",usage="Name of the job to copy") + public TopLevelItem src; + + @Argument(metaVar="DST",usage="Name of the new job to be created.",index=1) + public String dst; + + protected int run() throws Exception { + Hudson h = Hudson.getInstance(); + h.checkPermission(Item.CREATE); + + if (h.getItem(dst)!=null) { + stderr.println("Job '"+dst+"' already exists"); + return -1; + } + + h.copy(src,dst); + return 0; + } +} + diff --git a/core/src/main/java/hudson/cli/CreateJobCommand.java b/core/src/main/java/hudson/cli/CreateJobCommand.java new file mode 100644 index 0000000000000000000000000000000000000000..3f0c522c02093e2a29f483983a3d68b46248668e --- /dev/null +++ b/core/src/main/java/hudson/cli/CreateJobCommand.java @@ -0,0 +1,60 @@ +/* + * The MIT License + * + * Copyright (c) 2004-2010, Sun Microsystems, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.cli; + +import hudson.model.Hudson; +import hudson.Extension; +import hudson.model.Item; +import org.kohsuke.args4j.Argument; + +/** + * Creates a new job by reading stdin as a configuration XML file. + * + * @author Kohsuke Kawaguchi + */ +@Extension +public class CreateJobCommand extends CLICommand { + @Override + public String getShortDescription() { + return "Creates a new job by reading stdin as a configuration XML file"; + } + + @Argument(metaVar="NAME",usage="Name of the job to create") + public String name; + + protected int run() throws Exception { + Hudson h = Hudson.getInstance(); + h.checkPermission(Item.CREATE); + + if (h.getItem(name)!=null) { + stderr.println("Job '"+name+"' already exists"); + return -1; + } + + h.createProjectFromXML(name,stdin); + return 0; + } +} + + diff --git a/core/src/main/java/hudson/cli/DeleteBuildsCommand.java b/core/src/main/java/hudson/cli/DeleteBuildsCommand.java new file mode 100644 index 0000000000000000000000000000000000000000..eae61b4062c41646cf872182422bcde06b50355d --- /dev/null +++ b/core/src/main/java/hudson/cli/DeleteBuildsCommand.java @@ -0,0 +1,65 @@ +/* + * The MIT License + * + * Copyright (c) 2004-2010, Sun Microsystems, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.cli; + +import hudson.Extension; +import hudson.model.AbstractBuild; +import hudson.model.Run; + +import java.io.IOException; +import java.io.PrintStream; +import java.util.List; + +/** + * Deletes builds records in a bulk. + * + * @author Kohsuke Kawaguchi + */ +@Extension +public class DeleteBuildsCommand extends AbstractBuildRangeCommand { + @Override + public String getShortDescription() { + return "Deletes build record(s)"; + } + + @Override + protected void printUsageSummary(PrintStream stderr) { + stderr.println( + "Delete build records of a specified job, possibly in a bulk. " + ); + } + + @Override + protected int act(List> builds) throws IOException { + job.checkPermission(Run.DELETE); + + for (AbstractBuild build : builds) + build.delete(); + + stdout.println("Deleted "+builds.size()+" builds"); + + return 0; + } + +} diff --git a/core/src/main/java/hudson/cli/GroovyCommand.java b/core/src/main/java/hudson/cli/GroovyCommand.java index f2da82b74294c7db5ae53fe5fb52f47c072df746..8607a3b4bcea370ad66080e2f5773bb1f76499a1 100644 --- a/core/src/main/java/hudson/cli/GroovyCommand.java +++ b/core/src/main/java/hudson/cli/GroovyCommand.java @@ -1,3 +1,26 @@ +/* + * The MIT License + * + * Copyright (c) 2004-2009, Sun Microsystems, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ package hudson.cli; import groovy.lang.GroovyShell; @@ -33,7 +56,7 @@ public class GroovyCommand extends CLICommand implements Serializable { return "Executes the specified Groovy script"; } - @Argument(metaVar="SCRIPT",usage="Script to be executed. File, URL or '-' to represent stdin.") + @Argument(metaVar="SCRIPT",usage="Script to be executed. File, URL or '=' to represent stdin.") public String script; /** @@ -49,7 +72,7 @@ public class GroovyCommand extends CLICommand implements Serializable { Binding binding = new Binding(); binding.setProperty("out",new PrintWriter(stdout,true)); GroovyShell groovy = new GroovyShell(binding); - groovy.run(loadScript(),script,remaining.toArray(new String[remaining.size()])); + groovy.run(loadScript(),"RemoteClass",remaining.toArray(new String[remaining.size()])); return 0; } @@ -58,10 +81,10 @@ public class GroovyCommand extends CLICommand implements Serializable { */ private String loadScript() throws CmdLineException, IOException, InterruptedException { if(script==null) - throw new CmdLineException("No script is specified"); + throw new CmdLineException(null, "No script is specified"); return channel.call(new Callable() { public String call() throws IOException { - if(script.equals("-")) + if(script.equals("=")) return IOUtils.toString(System.in); File f = new File(script); diff --git a/core/src/main/java/hudson/cli/GroovyshCommand.java b/core/src/main/java/hudson/cli/GroovyshCommand.java index 6672fcf5aa8435d299a2ccf777c604baefe18c01..a3703a8d8b0b68fdeabe5b798d187101461577e2 100644 --- a/core/src/main/java/hudson/cli/GroovyshCommand.java +++ b/core/src/main/java/hudson/cli/GroovyshCommand.java @@ -1,11 +1,40 @@ +/* + * The MIT License + * + * Copyright (c) 2004-2010, Sun Microsystems, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ package hudson.cli; import hudson.Extension; import hudson.model.Hudson; +import hudson.remoting.ChannelClosedException; +import groovy.lang.Binding; +import groovy.lang.Closure; import org.codehaus.groovy.tools.shell.Groovysh; import org.codehaus.groovy.tools.shell.IO; +import org.codehaus.groovy.tools.shell.Shell; +import org.codehaus.groovy.tools.shell.util.XmlCommandRegistrar; import java.util.List; +import java.util.Locale; import java.io.PrintStream; import java.io.InputStream; import java.io.BufferedInputStream; @@ -27,20 +56,63 @@ public class GroovyshCommand extends CLICommand { } @Override - public int main(List args, InputStream stdin, PrintStream stdout, PrintStream stderr) { + public int main(List args, Locale locale, InputStream stdin, PrintStream stdout, PrintStream stderr) { // this allows the caller to manipulate the JVM state, so require the admin privilege. Hudson.getInstance().checkPermission(Hudson.ADMINISTER); + // TODO: ^as this class overrides main() (which has authentication stuff), + // how to get ADMIN permission for this command? // this being remote means no jline capability is available System.setProperty("jline.terminal", UnsupportedTerminal.class.getName()); Terminal.resetTerminal(); - Groovysh shell = new Groovysh(new IO(new BufferedInputStream(stdin),stdout,stderr)); - // redirect "println" to the CLI - shell.getInterp().getContext().setProperty("out",new PrintWriter(stdout,true)); + Groovysh shell = createShell(stdin, stdout, stderr); return shell.run(args.toArray(new String[args.size()])); } + protected Groovysh createShell(InputStream stdin, PrintStream stdout, + PrintStream stderr) { + + Binding binding = new Binding(); + // redirect "println" to the CLI + binding.setProperty("out", new PrintWriter(stdout,true)); + binding.setProperty("hudson", hudson.model.Hudson.getInstance()); + + IO io = new IO(new BufferedInputStream(stdin),stdout,stderr); + + final ClassLoader cl = Thread.currentThread().getContextClassLoader(); + Closure registrar = new Closure(null, null) { + public Object doCall(Object[] args) { + assert(args.length == 1); + assert(args[0] instanceof Shell); + + Shell shell = (Shell)args[0]; + XmlCommandRegistrar r = new XmlCommandRegistrar(shell, cl); + r.register(GroovyshCommand.class.getResource("commands.xml")); + + return null; + } + }; + Groovysh shell = new Groovysh(cl, binding, io, registrar); + shell.getImports().add("import hudson.model.*"); + + // defaultErrorHook doesn't re-throw IOException, so ShellRunner in + // Groovysh will keep looping forever if we don't terminate when the + // channel is closed + final Closure originalErrorHook = shell.getErrorHook(); + shell.setErrorHook(new Closure(shell, shell) { + public Object doCall(Object[] args) throws ChannelClosedException { + if (args.length == 1 && args[0] instanceof ChannelClosedException) { + throw (ChannelClosedException)args[0]; + } + + return originalErrorHook.call(args); + } + }); + + return shell; + } + protected int run() { throw new UnsupportedOperationException(); } diff --git a/core/src/main/java/hudson/cli/HelpCommand.java b/core/src/main/java/hudson/cli/HelpCommand.java index d8141fcd68ca2ccbaede662adfa1c02638b757f1..8f87fafc9a62dfc2122f57ed7db463cc6c1b3d05 100644 --- a/core/src/main/java/hudson/cli/HelpCommand.java +++ b/core/src/main/java/hudson/cli/HelpCommand.java @@ -1,6 +1,33 @@ +/* + * The MIT License + * + * Copyright (c) 2004-2010, Sun Microsystems, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ package hudson.cli; import hudson.Extension; +import hudson.model.Hudson; + +import java.util.Map; +import java.util.TreeMap; /** * Show the list of all commands. @@ -15,10 +42,21 @@ public class HelpCommand extends CLICommand { } protected int run() { - for (CLICommand c : CLICommand.all()) { + if (!Hudson.getInstance().hasPermission(Hudson.READ)) { + stderr.println("You must authenticate to access this Hudson.\n" + + "Use --username/--password/--password-file parameters or login command."); + return 0; + } + + Map commands = new TreeMap(); + for (CLICommand c : CLICommand.all()) + commands.put(c.getName(),c); + + for (CLICommand c : commands.values()) { stderr.println(" "+c.getName()); stderr.println(" "+c.getShortDescription()); } + return 0; } } diff --git a/core/src/main/java/hudson/cli/InstallPluginCommand.java b/core/src/main/java/hudson/cli/InstallPluginCommand.java new file mode 100644 index 0000000000000000000000000000000000000000..fac26b54060b3e51fdd147461237cdcdbb898deb --- /dev/null +++ b/core/src/main/java/hudson/cli/InstallPluginCommand.java @@ -0,0 +1,115 @@ +/* + * The MIT License + * + * Copyright (c) 2004-2010, Sun Microsystems, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.cli; + +import hudson.Extension; +import hudson.FilePath; +import hudson.model.Hudson; +import hudson.model.UpdateSite; +import org.kohsuke.args4j.Argument; +import org.kohsuke.args4j.Option; + +import java.io.File; +import java.net.URL; +import java.net.MalformedURLException; +import java.util.List; +import java.util.ArrayList; + +/** + * Installs a plugin either from a file, an URL, or from update center. + * + * @author Kohsuke Kawaguchi + * @since 1.331 + */ +@Extension +public class InstallPluginCommand extends CLICommand { + public String getShortDescription() { + return "Installs a plugin either from a file, an URL, or from update center"; + } + + @Argument(metaVar="SOURCE",required=true,usage="If this points to a local file, that file will be installed. " + + "If this is an URL, Hudson downloads the URL and installs that as a plugin." + + "Otherwise the name is assumed to be the short name of the plugin in the existing update center (like \"findbugs\")," + + "and the plugin will be installed from the update center") + public List sources = new ArrayList(); + + @Option(name="-name",usage="If specified, the plugin will be installed as this short name (whereas normally the name is inferred from the source name automatically.)") + public String name; + + @Option(name="-restart",usage="Restart Hudson upon successful installation") + public boolean restart; + + protected int run() throws Exception { + Hudson h = Hudson.getInstance(); + h.checkPermission(Hudson.ADMINISTER); + + for (String source : sources) { + // is this a file? + FilePath f = new FilePath(channel, source); + if (f.exists()) { + stdout.println("Installing a plugin from local file: "+f); + if (name==null) + name = f.getBaseName(); + f.copyTo(getTargetFile()); + continue; + } + + // is this an URL? + try { + URL u = new URL(source); + stdout.println("Installing a plugin from "+u); + if (name==null) { + name = u.getPath(); + name = name.substring(name.indexOf('/')+1); + name = name.substring(name.indexOf('\\')+1); + int idx = name.lastIndexOf('.'); + if (idx>0) name = name.substring(0,idx); + } + getTargetFile().copyFrom(u); + continue; + } catch (MalformedURLException e) { + // not an URL + } + + // is this a plugin the update center? + UpdateSite.Plugin p = h.getUpdateCenter().getPlugin(source); + if (p!=null) { + stdout.println("Installing "+source+" from update center"); + p.deploy().get(); + continue; + } + + stdout.println(source+" is neither a valid file, URL, nor a plugin artifact name in the update center"); + return 1; + } + + if (restart) + h.restart(); + return 0; // all success + } + + private FilePath getTargetFile() { + return new FilePath(new File(Hudson.getInstance().getPluginManager().rootDir,name+".hpi")); + } +} diff --git a/core/src/main/java/hudson/cli/InstallToolCommand.java b/core/src/main/java/hudson/cli/InstallToolCommand.java new file mode 100644 index 0000000000000000000000000000000000000000..58693b84a914528981adc4e6cdda97a461ce6115 --- /dev/null +++ b/core/src/main/java/hudson/cli/InstallToolCommand.java @@ -0,0 +1,154 @@ +/* + * The MIT License + * + * Copyright (c) 2004-2010, Sun Microsystems, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.cli; + +import hudson.Extension; +import hudson.AbortException; +import hudson.EnvVars; +import hudson.model.Hudson; +import hudson.model.AbstractProject; +import hudson.model.Run; +import hudson.model.Executor; +import hudson.model.Node; +import hudson.model.EnvironmentSpecific; +import hudson.model.Item; +import hudson.remoting.Callable; +import hudson.slaves.NodeSpecific; +import hudson.util.EditDistance; +import hudson.util.StreamTaskListener; +import hudson.tools.ToolDescriptor; +import hudson.tools.ToolInstallation; + +import java.util.List; +import java.util.ArrayList; +import java.io.IOException; + +import org.kohsuke.args4j.Argument; + +/** + * Performs automatic tool installation on demand. + * + * @author Kohsuke Kawaguchi + */ +@Extension +public class InstallToolCommand extends CLICommand { + @Argument(index=0,metaVar="KIND",usage="The type of the tool to install, such as 'Ant'") + public String toolType; + + @Argument(index=1,metaVar="NAME",usage="The name of the tool to install, as you've entered in the Hudson system configuration") + public String toolName; + + public String getShortDescription() { + return "Performs automatic tool installation, and print its location to stdout. Can be only called from inside a build"; + } + + protected int run() throws Exception { + Hudson h = Hudson.getInstance(); + h.checkPermission(Hudson.READ); + + // where is this build running? + BuildIDs id = channel.call(new BuildIDs()); + + if (!id.isComplete()) + throw new AbortException("This command can be only invoked from a build executing inside Hudson"); + + AbstractProject p = Hudson.getInstance().getItemByFullName(id.job, AbstractProject.class); + if (p==null) + throw new AbortException("No such job found: "+id.job); + p.checkPermission(Item.CONFIGURE); + + List toolTypes = new ArrayList(); + for (ToolDescriptor d : ToolInstallation.all()) { + toolTypes.add(d.getDisplayName()); + if (d.getDisplayName().equals(toolType)) { + List toolNames = new ArrayList(); + for (ToolInstallation t : d.getInstallations()) { + toolNames.add(t.getName()); + if (t.getName().equals(toolName)) + return install(t, id, p); + } + + // didn't find the right tool name + error(toolNames, toolName, "name"); + } + } + + // didn't find the tool type + error(toolTypes, toolType, "type"); + + // will never be here + throw new AssertionError(); + } + + private int error(List candidates, String given, String noun) throws AbortException { + if (given ==null) + throw new AbortException("No tool "+ noun +" was specified. Valid values are "+candidates.toString()); + else + throw new AbortException("Unrecognized tool "+noun+". Perhaps you meant '"+ EditDistance.findNearest(given,candidates)+"'?"); + } + + /** + * Performs an installation. + */ + private int install(ToolInstallation t, BuildIDs id, AbstractProject p) throws IOException, InterruptedException { + + Run b = p.getBuildByNumber(Integer.parseInt(id.number)); + if (b==null) + throw new AbortException("No such build: "+id.number); + + Executor exec = b.getExecutor(); + if (exec==null) + throw new AbortException(b.getFullDisplayName()+" is not building"); + + Node node = exec.getOwner().getNode(); + + if (t instanceof NodeSpecific) { + NodeSpecific n = (NodeSpecific) t; + t = (ToolInstallation)n.forNode(node,new StreamTaskListener(stderr)); + } + if (t instanceof EnvironmentSpecific) { + EnvironmentSpecific e = (EnvironmentSpecific) t; + t = (ToolInstallation)e.forEnvironment(EnvVars.getRemote(channel)); + } + stdout.println(t.getHome()); + return 0; + } + + private static final class BuildIDs implements Callable { + String job,number,id; + + public BuildIDs call() throws IOException { + job = System.getenv("JOB_NAME"); + number = System.getenv("BUILD_NUMBER"); + id = System.getenv("BUILD_ID"); + return this; + } + + boolean isComplete() { + return job!=null && number!=null && id!=null; + } + + private static final long serialVersionUID = 1L; + } +} diff --git a/core/src/main/java/hudson/cli/ListChangesCommand.java b/core/src/main/java/hudson/cli/ListChangesCommand.java new file mode 100644 index 0000000000000000000000000000000000000000..93a286ae89db5511c253fe09000d7eade941876f --- /dev/null +++ b/core/src/main/java/hudson/cli/ListChangesCommand.java @@ -0,0 +1,84 @@ +package hudson.cli; + +import hudson.Extension; +import hudson.model.AbstractBuild; +import hudson.scm.ChangeLogSet; +import hudson.scm.ChangeLogSet.Entry; +import hudson.util.QuotedStringTokenizer; +import org.kohsuke.args4j.Option; +import org.kohsuke.stapler.export.Flavor; +import org.kohsuke.stapler.export.Model; +import org.kohsuke.stapler.export.ModelBuilder; + +import java.io.IOException; +import java.io.PrintWriter; +import java.util.List; + +/** + * Retrieves a change list for the specified builds. + * + * @author Kohsuke Kawaguchi + */ +@Extension +public class ListChangesCommand extends AbstractBuildRangeCommand { + @Override + public String getShortDescription() { + return "Dumps the changelog for the specified build(s)"; + } + +// @Override +// protected void printUsageSummary(PrintStream stderr) { +// TODO +// } + + enum Format { + XML, CSV, PLAIN + } + + @Option(name="-format",usage="Controls how the output from this command is printed.") + public Format format = Format.PLAIN; + + @Override + protected int act(List> builds) throws IOException { + // Loading job for this CLI command requires Item.READ permission. + // No other permission check needed. + switch (format) { + case XML: + PrintWriter w = new PrintWriter(stdout); + w.println(""); + for (AbstractBuild build : builds) { + w.println(""); + ChangeLogSet cs = build.getChangeSet(); + Model p = new ModelBuilder().get(cs.getClass()); + p.writeTo(cs,Flavor.XML.createDataWriter(cs,w)); + w.println(""); + } + w.println(""); + w.flush(); + break; + case CSV: + for (AbstractBuild build : builds) { + ChangeLogSet cs = build.getChangeSet(); + for (Entry e : cs) { + stdout.printf("%s,%s\n", + QuotedStringTokenizer.quote(e.getAuthor().getId()), + QuotedStringTokenizer.quote(e.getMsg())); + } + } + break; + case PLAIN: + for (AbstractBuild build : builds) { + ChangeLogSet cs = build.getChangeSet(); + for (Entry e : cs) { + stdout.printf("%s\t%s\n",e.getAuthor(),e.getMsg()); + for (String p : e.getAffectedPaths()) + stdout.println(" "+p); + } + } + break; + } + + return 0; + } + +} diff --git a/core/src/main/java/hudson/cli/LoginCommand.java b/core/src/main/java/hudson/cli/LoginCommand.java new file mode 100644 index 0000000000000000000000000000000000000000..e4c89524ff33834f01b351770aaad8853351746f --- /dev/null +++ b/core/src/main/java/hudson/cli/LoginCommand.java @@ -0,0 +1,42 @@ +package hudson.cli; + +import hudson.Extension; +import hudson.model.Hudson; +import org.acegisecurity.Authentication; +import org.kohsuke.args4j.CmdLineException; + +/** + * Saves the current credential to allow future commands to run without explicit credential information. + * + * @author Kohsuke Kawaguchi + * @since 1.351 + */ +@Extension +public class LoginCommand extends CLICommand { + @Override + public String getShortDescription() { + return "Saves the current credential to allow future commands to run without explicit credential information"; + } + + /** + * If we use the stored authentication for the login command, login becomes no-op, which is clearly not what + * the user has intended. + */ + @Override + protected Authentication loadStoredAuthentication() throws InterruptedException { + return Hudson.ANONYMOUS; + } + + @Override + protected int run() throws Exception { + Authentication a = Hudson.getAuthentication(); + if (a==Hudson.ANONYMOUS) + throw new CmdLineException("No credentials specified."); // this causes CLI to show the command line options. + + ClientAuthenticationCache store = new ClientAuthenticationCache(channel); + store.set(a); + + return 0; + } + +} diff --git a/core/src/main/java/hudson/cli/LogoutCommand.java b/core/src/main/java/hudson/cli/LogoutCommand.java new file mode 100644 index 0000000000000000000000000000000000000000..37e6cb4a672d7f7aca278e48bb959754304d9d0c --- /dev/null +++ b/core/src/main/java/hudson/cli/LogoutCommand.java @@ -0,0 +1,24 @@ +package hudson.cli; + +import hudson.Extension; + +/** + * Deletes the credential stored with the login command. + * + * @author Kohsuke Kawaguchi + * @since 1.351 + */ +@Extension +public class LogoutCommand extends CLICommand { + @Override + public String getShortDescription() { + return "Deletes the credential stored with the login command"; + } + + @Override + protected int run() throws Exception { + ClientAuthenticationCache store = new ClientAuthenticationCache(channel); + store.remove(); + return 0; + } +} diff --git a/core/src/main/java/hudson/cli/MailCommand.java b/core/src/main/java/hudson/cli/MailCommand.java new file mode 100644 index 0000000000000000000000000000000000000000..44a1b8fd1d4851d5c443427cf119c24f04e9ecf4 --- /dev/null +++ b/core/src/main/java/hudson/cli/MailCommand.java @@ -0,0 +1,53 @@ +/* + * The MIT License + * + * Copyright (c) 2004-2010, Sun Microsystems, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.cli; + +import hudson.tasks.Mailer; +import hudson.Extension; +import hudson.model.Hudson; +import hudson.model.Item; + +import javax.mail.internet.MimeMessage; +import javax.mail.Transport; + +/** + * Sends e-mail through Hudson. + * + *

    + * Various platforms have different commands to do this, so on heterogenous platform, doing this via Hudson is easier. + * + * @author Kohsuke Kawaguchi + */ +@Extension +public class MailCommand extends CLICommand { + public String getShortDescription() { + return "Reads stdin and sends that out as an e-mail."; + } + + protected int run() throws Exception { + Hudson.getInstance().checkPermission(Item.CONFIGURE); + Transport.send(new MimeMessage(Mailer.descriptor().createSession(),stdin)); + return 0; + } +} diff --git a/core/src/main/java/hudson/cli/SetBuildResultCommand.java b/core/src/main/java/hudson/cli/SetBuildResultCommand.java new file mode 100644 index 0000000000000000000000000000000000000000..29aa4bf025654ec54eee3304527c2912612babb9 --- /dev/null +++ b/core/src/main/java/hudson/cli/SetBuildResultCommand.java @@ -0,0 +1,55 @@ +/* + * The MIT License + * + * Copyright (c) 2010, InfraDNA, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +package hudson.cli; + +import hudson.Extension; +import hudson.model.Item; +import hudson.model.Result; +import hudson.model.Run; +import org.kohsuke.args4j.Argument; + +/** + * Sets the result of the current build. Works only if invoked from within a build. + * + * @author Kohsuke Kawaguchi + */ +@Extension +public class SetBuildResultCommand extends CommandDuringBuild { + @Argument(metaVar="RESULT",required=true) + public Result result; + + @Override + public String getShortDescription() { + return "Sets the result of the current build. Works only if invoked from within a build."; + } + + @Override + protected int run() throws Exception { + Run r = getCurrentlyBuilding(); + r.getParent().checkPermission(Item.BUILD); + r.setResult(result); + return 0; + } +} diff --git a/core/src/main/java/hudson/cli/VersionCommand.java b/core/src/main/java/hudson/cli/VersionCommand.java index ce735a77f25fe3d97b79b34a9a5e28f25adf547d..fe7aa96121821621d8f99833a264e9884f4ce391 100644 --- a/core/src/main/java/hudson/cli/VersionCommand.java +++ b/core/src/main/java/hudson/cli/VersionCommand.java @@ -1,7 +1,7 @@ /* * The MIT License * - * Copyright (c) 2004-2009, Sun Microsystems, Inc. + * Copyright (c) 2004-2010, Sun Microsystems, Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -39,6 +39,7 @@ public class VersionCommand extends CLICommand { } protected int run() { + // CLICommand.main checks Hudson.READ permission.. no other check needed. stdout.println(Hudson.VERSION); return 0; } diff --git a/core/src/main/java/hudson/cli/declarative/CLIMethod.java b/core/src/main/java/hudson/cli/declarative/CLIMethod.java new file mode 100644 index 0000000000000000000000000000000000000000..bec31d9a7ab056ea82c5258ed34dd1bdb6fcb7ee --- /dev/null +++ b/core/src/main/java/hudson/cli/declarative/CLIMethod.java @@ -0,0 +1,69 @@ +/* + * The MIT License + * + * Copyright (c) 2004-2009, Sun Microsystems, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.cli.declarative; + +import hudson.cli.CLICommand; +import hudson.util.ListBoxModel.Option; +import org.jvnet.hudson.annotation_indexer.Indexed; +import org.kohsuke.args4j.Argument; + +import java.lang.annotation.Documented; +import static java.lang.annotation.ElementType.METHOD; +import java.lang.annotation.Retention; +import static java.lang.annotation.RetentionPolicy.RUNTIME; +import java.lang.annotation.Target; + +/** + * Annotates methods on model objects to expose them as CLI commands. + * + *

    + * You need to have Messages.properties in the same package with the + * CLI.command-name.shortDescription key to describe the command. + * This is used for the same purpose as {@link CLICommand#getShortDescription()}. + * + *

    + * If you put a {@link CLIMethod} on an instance method (as opposed to a static method), + * you need a corresponding {@linkplain CLIResolver CLI resolver method}. + * + *

    + * A CLI method can have its parameters annotated with {@link Option} and {@link Argument}, + * to receive parameter/argument injections. + * + *

    + * A CLI method needs to be public. + * + * @author Kohsuke Kawaguchi + * @see CLICommand + * @since 1.321 + */ +@Indexed +@Retention(RUNTIME) +@Target({METHOD}) +@Documented +public @interface CLIMethod { + /** + * CLI command name. Used as {@link CLICommand#getName()} + */ + String name(); +} diff --git a/core/src/main/java/hudson/cli/declarative/CLIRegisterer.java b/core/src/main/java/hudson/cli/declarative/CLIRegisterer.java new file mode 100644 index 0000000000000000000000000000000000000000..eb3da68bf546d5462f44b8ffad30ce717a99c53a --- /dev/null +++ b/core/src/main/java/hudson/cli/declarative/CLIRegisterer.java @@ -0,0 +1,209 @@ +/* + * The MIT License + * + * Copyright (c) 2004-2010, Sun Microsystems, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.cli.declarative; + +import hudson.Extension; +import hudson.ExtensionComponent; +import hudson.ExtensionFinder; +import hudson.Util; +import hudson.cli.CLICommand; +import hudson.cli.CloneableCLICommand; +import hudson.model.Hudson; +import hudson.remoting.Channel; +import hudson.security.CliAuthenticator; +import org.acegisecurity.Authentication; +import org.acegisecurity.context.SecurityContext; +import org.acegisecurity.context.SecurityContextHolder; +import org.jvnet.hudson.annotation_indexer.Index; +import org.jvnet.localizer.ResourceBundleHolder; +import org.kohsuke.args4j.ClassParser; +import org.kohsuke.args4j.CmdLineParser; +import org.kohsuke.args4j.CmdLineException; + +import java.io.IOException; +import java.io.InputStream; +import java.io.PrintStream; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import java.lang.reflect.Modifier; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.List; +import java.util.Locale; +import java.util.Stack; +import static java.util.logging.Level.SEVERE; +import java.util.logging.Logger; + +/** + * Discover {@link CLIMethod}s and register them as {@link CLICommand} implementations. + * + * @author Kohsuke Kawaguchi + */ +@Extension +public class CLIRegisterer extends ExtensionFinder { + public Collection> find(Class type, Hudson hudson) { + if (type==CLICommand.class) + return (List)discover(hudson); + else + return Collections.emptyList(); + } + + /** + * Finds a resolved method annotated with {@link CLIResolver}. + */ + private Method findResolver(Class type) throws IOException { + List resolvers = Util.filter(Index.list(CLIResolver.class, Hudson.getInstance().getPluginManager().uberClassLoader), Method.class); + for ( ; type!=null; type=type.getSuperclass()) + for (Method m : resolvers) + if (m.getReturnType()==type) + return m; + return null; + } + + private List> discover(final Hudson hudson) { + LOGGER.fine("Listing up @CLIMethod"); + List> r = new ArrayList>(); + + try { + for ( final Method m : Util.filter(Index.list(CLIMethod.class, hudson.getPluginManager().uberClassLoader),Method.class)) { + try { + // command name + final String name = m.getAnnotation(CLIMethod.class).name(); + + final ResourceBundleHolder res = loadMessageBundle(m); + res.format("CLI."+name+".shortDescription"); // make sure we have the resource, to fail early + + r.add(new ExtensionComponent(new CloneableCLICommand() { + @Override + public String getName() { + return name; + } + + public String getShortDescription() { + // format by using the right locale + return res.format("CLI."+name+".shortDescription"); + } + + @Override + public int main(List args, Locale locale, InputStream stdin, PrintStream stdout, PrintStream stderr) { + this.stdout = stdout; + this.stderr = stderr; + this.locale = locale; + this.channel = Channel.current(); + + registerOptionHandlers(); + CmdLineParser parser = new CmdLineParser(null); + try { + SecurityContext sc = SecurityContextHolder.getContext(); + Authentication old = sc.getAuthentication(); + try { + // build up the call sequence + Stack chains = new Stack(); + Method method = m; + while (true) { + chains.push(method); + if (Modifier.isStatic(method.getModifiers())) + break; // the chain is complete. + + // the method in question is an instance method, so we need to resolve the instance by using another resolver + Class type = method.getDeclaringClass(); + method = findResolver(type); + if (method==null) { + stderr.println("Unable to find the resolver method annotated with @CLIResolver for "+type); + return 1; + } + } + + List binders = new ArrayList(); + + while (!chains.isEmpty()) + binders.add(new MethodBinder(chains.pop(),parser)); + + // authentication + CliAuthenticator authenticator = Hudson.getInstance().getSecurityRealm().createCliAuthenticator(this); + new ClassParser().parse(authenticator,parser); + + // fill up all the binders + parser.parseArgument(args); + + Authentication auth = authenticator.authenticate(); + if (auth==Hudson.ANONYMOUS) + auth = loadStoredAuthentication(); + sc.setAuthentication(auth); // run the CLI with the right credential + hudson.checkPermission(Hudson.READ); + + // resolve them + Object instance = null; + for (MethodBinder binder : binders) + instance = binder.call(instance); + + if (instance instanceof Integer) + return (Integer) instance; + else + return 0; + } catch (InvocationTargetException e) { + Throwable t = e.getTargetException(); + if (t instanceof Exception) + throw (Exception) t; + throw e; + } finally { + sc.setAuthentication(old); // restore + } + } catch (CmdLineException e) { + stderr.println(e.getMessage()); + printUsage(stderr,parser); + return 1; + } catch (Exception e) { + e.printStackTrace(stderr); + return 1; + } + } + + protected int run() throws Exception { + throw new UnsupportedOperationException(); + } + })); + } catch (ClassNotFoundException e) { + LOGGER.log(SEVERE,"Failed to process @CLIMethod: "+m,e); + } + } + } catch (IOException e) { + LOGGER.log(SEVERE, "Failed to discvoer @CLIMethod",e); + } + + return r; + } + + /** + * Locates the {@link ResourceBundleHolder} for this CLI method. + */ + private ResourceBundleHolder loadMessageBundle(Method m) throws ClassNotFoundException { + Class c = m.getDeclaringClass(); + Class msg = c.getClassLoader().loadClass(c.getName().substring(0, c.getName().lastIndexOf(".")) + ".Messages"); + return ResourceBundleHolder.get(msg); + } + + private static final Logger LOGGER = Logger.getLogger(CLIRegisterer.class.getName()); +} diff --git a/core/src/main/java/hudson/cli/declarative/CLIResolver.java b/core/src/main/java/hudson/cli/declarative/CLIResolver.java new file mode 100644 index 0000000000000000000000000000000000000000..1c1eff7c492183507b640c30c2370bea1046496c --- /dev/null +++ b/core/src/main/java/hudson/cli/declarative/CLIResolver.java @@ -0,0 +1,71 @@ +/* + * The MIT License + * + * Copyright (c) 2004-2009, Sun Microsystems, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.cli.declarative; + +import hudson.cli.CLICommand; +import hudson.model.Hudson; +import org.jvnet.hudson.annotation_indexer.Indexed; +import org.kohsuke.args4j.CmdLineException; + +import java.lang.annotation.Documented; +import static java.lang.annotation.ElementType.METHOD; +import java.lang.annotation.Retention; +import static java.lang.annotation.RetentionPolicy.RUNTIME; +import java.lang.annotation.Target; + +/** + * Annotates a resolver method that binds a portion of the command line arguments and parameters + * to an instance whose {@link CLIMethod} is invoked for the final processing. + * + *

    + * Hudson uses the return type of the resolver method + * to pick the resolver method to use, of all the resolver methods it discovers. That is, + * if Hudson is looking to find an instance of type T for the current command, it first + * looks for the resolver method whose return type is T, then it checks for the base type of T, + * and so on. + * + *

    + * If the chosen resolver method is an instance method on type S, the "parent resolver" is then + * located to resolve an instance of type 'S'. This process repeats until a static resolver method is discovered + * (since most of Hudson's model objects are anchored to the root {@link Hudson} object, normally that would become + * the top-most resolver method.) + * + *

    + * Parameters of the resolver method receives the same parameter/argument injections that {@link CLIMethod}s receive. + * Parameters and arguments consumed by the resolver will not be visible to {@link CLIMethod}s. + * + *

    + * The resolver method shall never return null — it should instead indicate a failure by throwing + * {@link CmdLineException}. + * + * @author Kohsuke Kawaguchi + * @see CLICommand + * @since 1.321 + */ +@Indexed +@Retention(RUNTIME) +@Target({METHOD}) +@Documented +public @interface CLIResolver { +} diff --git a/core/src/main/java/hudson/cli/declarative/MethodBinder.java b/core/src/main/java/hudson/cli/declarative/MethodBinder.java new file mode 100644 index 0000000000000000000000000000000000000000..5e0b33990b68472d12a40d2fc803a6cc90c553ac --- /dev/null +++ b/core/src/main/java/hudson/cli/declarative/MethodBinder.java @@ -0,0 +1,148 @@ +/* + * The MIT License + * + * Copyright (c) 2004-2009, Sun Microsystems, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.cli.declarative; + +import hudson.util.ReflectionUtils; +import hudson.util.ReflectionUtils.Parameter; +import org.kohsuke.args4j.Argument; +import org.kohsuke.args4j.CmdLineException; +import org.kohsuke.args4j.CmdLineParser; +import org.kohsuke.args4j.Option; +import org.kohsuke.args4j.spi.Setter; +import org.kohsuke.args4j.spi.OptionHandler; + +import java.lang.annotation.Annotation; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import java.util.List; + +/** + * Binds method parameters to CLI arguments and parameters via args4j. + * Once the parser fills in the instance state, {@link #call(Object)} + * can be used to invoke a method. + * + * @author Kohsuke Kawaguchi + */ +class MethodBinder { + + private final Method method; + private final Object[] arguments; + + /** + * @param method + */ + public MethodBinder(Method method, CmdLineParser parser) { + this.method = method; + + List params = ReflectionUtils.getParameters(method); + arguments = new Object[params.size()]; + + // to work in cooperation with earlier arguments, add bias to all the ones that this one defines. + final int bias = parser.getArguments().size(); + + for (final Parameter p : params) { + final int index = p.index(); + + // TODO: collection and map support + Setter setter = new Setter() { + public void addValue(Object value) throws CmdLineException { + arguments[index] = value; + } + + public Class getType() { + return p.type(); + } + + public boolean isMultiValued() { + return false; + } + }; + Option option = p.annotation(Option.class); + if (option!=null) { + parser.addOption(setter,option); + } + Argument arg = p.annotation(Argument.class); + if (arg!=null) { + if (bias>0) arg = new ArgumentImpl(arg,bias); + parser.addArgument(setter,arg); + } + + if (p.type().isPrimitive()) + arguments[index] = ReflectionUtils.getVmDefaultValueForPrimitiveType(p.type()); + } + } + + public Object call(Object instance) throws Exception { + try { + return method.invoke(instance,arguments); + } catch (InvocationTargetException e) { + Throwable t = e.getTargetException(); + if (t instanceof Exception) + throw (Exception) t; + throw e; + } + } + + /** + * {@link Argument} implementation that adds a bias to {@link #index()}. + */ + @SuppressWarnings({"ClassExplicitlyAnnotation"}) + private static final class ArgumentImpl implements Argument { + private final Argument base; + private final int bias; + + private ArgumentImpl(Argument base, int bias) { + this.base = base; + this.bias = bias; + } + + public String usage() { + return base.usage(); + } + + public String metaVar() { + return base.metaVar(); + } + + public boolean required() { + return base.required(); + } + + public Class handler() { + return base.handler(); + } + + public int index() { + return base.index()+bias; + } + + public boolean multiValued() { + return base.multiValued(); + } + + public Class annotationType() { + return base.annotationType(); + } + } +} diff --git a/core/src/main/java/hudson/cli/declarative/OptionHandlerExtension.java b/core/src/main/java/hudson/cli/declarative/OptionHandlerExtension.java new file mode 100644 index 0000000000000000000000000000000000000000..b7a18e305b64c447bc58935e993a530708fce693 --- /dev/null +++ b/core/src/main/java/hudson/cli/declarative/OptionHandlerExtension.java @@ -0,0 +1,47 @@ +/* + * The MIT License + * + * Copyright (c) 2010, InfraDNA, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +package hudson.cli.declarative; + +import org.jvnet.hudson.annotation_indexer.Indexed; +import org.kohsuke.args4j.spi.OptionHandler; + +import java.lang.annotation.Documented; +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +import static java.lang.annotation.ElementType.TYPE; +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +/** + * {@link OptionHandler}s that should be auto-discovered. + * + * @author Kohsuke Kawaguchi + */ +@Indexed +@Retention(RUNTIME) +@Target({TYPE}) +@Documented +public @interface OptionHandlerExtension { +} diff --git a/core/src/main/java/hudson/cli/declarative/package-info.java b/core/src/main/java/hudson/cli/declarative/package-info.java new file mode 100644 index 0000000000000000000000000000000000000000..861df362cbff7b884658830c64a25dc3177c44ba --- /dev/null +++ b/core/src/main/java/hudson/cli/declarative/package-info.java @@ -0,0 +1,28 @@ +/* + * The MIT License + * + * Copyright (c) 2004-2009, Sun Microsystems, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +/** + * Code for supporting declarative CLI commands, which are annotated methods on model objects. + */ +package hudson.cli.declarative; \ No newline at end of file diff --git a/core/src/main/java/hudson/cli/handlers/AbstractProjectOptionHandler.java b/core/src/main/java/hudson/cli/handlers/AbstractProjectOptionHandler.java new file mode 100644 index 0000000000000000000000000000000000000000..e332862a797adf1aa4892a0b3889935aae85d3fa --- /dev/null +++ b/core/src/main/java/hudson/cli/handlers/AbstractProjectOptionHandler.java @@ -0,0 +1,63 @@ +/* + * The MIT License + * + * Copyright (c) 2004-2009, Sun Microsystems, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.cli.handlers; + +import hudson.model.AbstractProject; +import hudson.model.Hudson; +import org.kohsuke.args4j.CmdLineException; +import org.kohsuke.args4j.CmdLineParser; +import org.kohsuke.args4j.OptionDef; +import org.kohsuke.args4j.spi.OptionHandler; +import org.kohsuke.args4j.spi.Parameters; +import org.kohsuke.args4j.spi.Setter; +import org.kohsuke.MetaInfServices; + +/** + * Refer to {@link AbstractProject} by its name. + * + * @author Kohsuke Kawaguchi + */ +@MetaInfServices +public class AbstractProjectOptionHandler extends OptionHandler { + public AbstractProjectOptionHandler(CmdLineParser parser, OptionDef option, Setter setter) { + super(parser, option, setter); + } + + @Override + public int parseArguments(Parameters params) throws CmdLineException { + Hudson h = Hudson.getInstance(); + String src = params.getParameter(0); + + AbstractProject s = h.getItemByFullName(src,AbstractProject.class); + if (s==null) + throw new CmdLineException(owner, "No such job '"+src+"' perhaps you meant "+ AbstractProject.findNearest(src)+"?"); + setter.addValue(s); + return 1; + } + + @Override + public String getDefaultMetaVariable() { + return "JOB"; + } +} diff --git a/core/src/main/java/hudson/cli/handlers/TopLevelItemOptionHandler.java b/core/src/main/java/hudson/cli/handlers/TopLevelItemOptionHandler.java new file mode 100644 index 0000000000000000000000000000000000000000..2bfbe5819991924468be33bafd4af082947a993c --- /dev/null +++ b/core/src/main/java/hudson/cli/handlers/TopLevelItemOptionHandler.java @@ -0,0 +1,41 @@ +package hudson.cli.handlers; + +import hudson.model.AbstractProject; +import hudson.model.Hudson; +import hudson.model.TopLevelItem; +import org.kohsuke.MetaInfServices; +import org.kohsuke.args4j.CmdLineException; +import org.kohsuke.args4j.CmdLineParser; +import org.kohsuke.args4j.OptionDef; +import org.kohsuke.args4j.spi.OptionHandler; +import org.kohsuke.args4j.spi.Parameters; +import org.kohsuke.args4j.spi.Setter; + +/** + * Refers to {@link TopLevelItem} by its name. + * + * @author Kohsuke Kawaguchi + */ +@MetaInfServices +public class TopLevelItemOptionHandler extends OptionHandler { + public TopLevelItemOptionHandler(CmdLineParser parser, OptionDef option, Setter setter) { + super(parser, option, setter); + } + + @Override + public int parseArguments(Parameters params) throws CmdLineException { + Hudson h = Hudson.getInstance(); + String src = params.getParameter(0); + + TopLevelItem s = h.getItem(src); + if (s==null) + throw new CmdLineException(owner, "No such job '"+src+"' perhaps you meant "+ AbstractProject.findNearest(src)+"?"); + setter.addValue(s); + return 1; + } + + @Override + public String getDefaultMetaVariable() { + return "JOB"; + } +} diff --git a/core/src/main/java/hudson/cli/handlers/package-info.java b/core/src/main/java/hudson/cli/handlers/package-info.java new file mode 100644 index 0000000000000000000000000000000000000000..982ac6b4ec4342f526b727c15ceda7d9954ddf8f --- /dev/null +++ b/core/src/main/java/hudson/cli/handlers/package-info.java @@ -0,0 +1,6 @@ +/** + * {@link OptionHandler} implementations for Hudson. + */ +package hudson.cli.handlers; + +import org.kohsuke.args4j.spi.OptionHandler; \ No newline at end of file diff --git a/core/src/main/java/hudson/console/AnnotatedLargeText.java b/core/src/main/java/hudson/console/AnnotatedLargeText.java new file mode 100644 index 0000000000000000000000000000000000000000..79d5df71fb62d431db8dae4a0d0657f3fb603df0 --- /dev/null +++ b/core/src/main/java/hudson/console/AnnotatedLargeText.java @@ -0,0 +1,171 @@ +/* + * The MIT License + * + * Copyright (c) 2004-2010, Sun Microsystems, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.console; + +import com.trilead.ssh2.crypto.Base64; +import hudson.model.Hudson; +import hudson.remoting.ObjectInputStreamEx; +import hudson.util.IOException2; +import hudson.util.Secret; +import hudson.util.TimeUnit2; +import org.apache.commons.io.output.ByteArrayOutputStream; +import org.kohsuke.stapler.Stapler; +import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.framework.io.ByteBuffer; +import org.kohsuke.stapler.framework.io.LargeText; + +import javax.crypto.Cipher; +import javax.crypto.CipherInputStream; +import javax.crypto.CipherOutputStream; +import java.io.ByteArrayInputStream; +import java.io.File; +import java.io.IOException; +import java.io.ObjectInputStream; +import java.io.ObjectOutputStream; +import java.io.OutputStream; +import java.io.Writer; +import java.nio.charset.Charset; +import java.security.GeneralSecurityException; +import java.util.zip.GZIPInputStream; +import java.util.zip.GZIPOutputStream; + +import static java.lang.Math.abs; + +/** + * Extension to {@link LargeText} that handles annotations by {@link ConsoleAnnotator}. + * + *

    + * In addition to run each line through {@link ConsoleAnnotationOutputStream} for adding markup, + * this class persists {@link ConsoleAnnotator} into a byte sequence and send it to the client + * as an HTTP header. The client JavaScript sends it back next time it fetches the following output. + * + *

    + * The serialized {@link ConsoleAnnotator} is encrypted to avoid malicious clients from instantiating + * arbitrary {@link ConsoleAnnotator}s. + * + * @param + * Context type. + * @author Kohsuke Kawaguchi + * @since 1.349 + */ +public class AnnotatedLargeText extends LargeText { + /** + * Can be null. + */ + private T context; + + public AnnotatedLargeText(File file, Charset charset, boolean completed, T context) { + super(file, charset, completed); + this.context = context; + } + + public AnnotatedLargeText(ByteBuffer memory, Charset charset, boolean completed, T context) { + super(memory, charset, completed); + this.context = context; + } + + public void doProgressiveHtml(StaplerRequest req, StaplerResponse rsp) throws IOException { + req.setAttribute("html",true); + doProgressText(req,rsp); + } + + /** + * Aliasing what I think was a wrong name in {@link LargeText} + */ + public void doProgressiveText(StaplerRequest req, StaplerResponse rsp) throws IOException { + doProgressText(req,rsp); + } + + /** + * For reusing code between text/html and text/plain, we run them both through the same code path + * and use this request attribute to differentiate. + */ + private boolean isHtml() { + return Stapler.getCurrentRequest().getAttribute("html")!=null; + } + + @Override + protected void setContentType(StaplerResponse rsp) { + rsp.setContentType(isHtml() ? "text/html;charset=UTF-8" : "text/plain;charset=UTF-8"); + } + + private ConsoleAnnotator createAnnotator(StaplerRequest req) throws IOException { + try { + String base64 = req.getHeader("X-ConsoleAnnotator"); + if (base64!=null) { + Cipher sym = Secret.getCipher("AES"); + sym.init(Cipher.DECRYPT_MODE, Hudson.getInstance().getSecretKeyAsAES128()); + + ObjectInputStream ois = new ObjectInputStreamEx(new GZIPInputStream( + new CipherInputStream(new ByteArrayInputStream(Base64.decode(base64.toCharArray())),sym)), + Hudson.getInstance().pluginManager.uberClassLoader); + long timestamp = ois.readLong(); + if (TimeUnit2.HOURS.toMillis(1) > abs(System.currentTimeMillis()-timestamp)) + // don't deserialize something too old to prevent a replay attack + return (ConsoleAnnotator)ois.readObject(); + } + } catch (GeneralSecurityException e) { + throw new IOException2(e); + } catch (ClassNotFoundException e) { + throw new IOException2(e); + } + // start from scratch + return ConsoleAnnotator.initial(context==null ? null : context.getClass()); + } + + @Override + public long writeLogTo(long start, Writer w) throws IOException { + if (isHtml()) + return writeHtmlTo(start, w); + else + return super.writeLogTo(start,w); + } + + @Override + public long writeLogTo(long start, OutputStream out) throws IOException { + return super.writeLogTo(start, new PlainTextConsoleOutputStream(out)); + } + + public long writeHtmlTo(long start, Writer w) throws IOException { + ConsoleAnnotationOutputStream caw = new ConsoleAnnotationOutputStream( + w, createAnnotator(Stapler.getCurrentRequest()), context, charset); + long r = super.writeLogTo(start,caw); + + try { + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + Cipher sym = Secret.getCipher("AES"); + sym.init(Cipher.ENCRYPT_MODE, Hudson.getInstance().getSecretKeyAsAES128()); + ObjectOutputStream oos = new ObjectOutputStream(new GZIPOutputStream(new CipherOutputStream(baos,sym))); + oos.writeLong(System.currentTimeMillis()); // send timestamp to prevent a replay attack + oos.writeObject(caw.getConsoleAnnotator()); + oos.close(); + Stapler.getCurrentResponse().setHeader("X-ConsoleAnnotator",new String(Base64.encode(baos.toByteArray()))); + } catch (GeneralSecurityException e) { + throw new IOException2(e); + } + return r; + } + +} diff --git a/core/src/main/java/hudson/console/ConsoleAnnotationDescriptor.java b/core/src/main/java/hudson/console/ConsoleAnnotationDescriptor.java new file mode 100644 index 0000000000000000000000000000000000000000..4fe50fba914d2456ccbb431307bf1d873efcb946 --- /dev/null +++ b/core/src/main/java/hudson/console/ConsoleAnnotationDescriptor.java @@ -0,0 +1,94 @@ +/* + * The MIT License + * + * Copyright (c) 2004-2010, Sun Microsystems, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.console; + +import hudson.DescriptorExtensionList; +import hudson.ExtensionPoint; +import hudson.model.Descriptor; +import hudson.model.Hudson; +import hudson.util.TimeUnit2; +import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.WebMethod; + +import javax.servlet.ServletException; +import java.io.IOException; +import java.net.URL; + +/** + * Descriptor for {@link ConsoleNote}. + * + * @author Kohsuke Kawaguchi + * @since 1.349 + */ +public abstract class ConsoleAnnotationDescriptor extends Descriptor> implements ExtensionPoint { + public ConsoleAnnotationDescriptor(Class> clazz) { + super(clazz); + } + + public ConsoleAnnotationDescriptor() { + } + + /** + * {@inheritDoc} + * + * Users use this name to enable/disable annotations. + */ + public abstract String getDisplayName(); + + /** + * Returns true if this descriptor has a JavaScript to be inserted on applicable console page. + */ + public boolean hasScript() { + return hasResource("/script.js") !=null; + } + + /** + * Returns true if this descriptor has a stylesheet to be inserted on applicable console page. + */ + public boolean hasStylesheet() { + return hasResource("/style.css") !=null; + } + + private URL hasResource(String name) { + return clazz.getClassLoader().getResource(clazz.getName().replace('.','/').replace('$','/')+ name); + } + + @WebMethod(name="script.js") + public void doScriptJs(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException { + rsp.serveFile(req, hasResource("/script.js"), TimeUnit2.DAYS.toMillis(1)); + } + + @WebMethod(name="style.css") + public void doStyleCss(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException { + rsp.serveFile(req, hasResource("/style.css"), TimeUnit2.DAYS.toMillis(1)); + } + + /** + * Returns all the registered {@link ConsoleAnnotationDescriptor} descriptors. + */ + public static DescriptorExtensionList,ConsoleAnnotationDescriptor> all() { + return (DescriptorExtensionList)Hudson.getInstance().getDescriptorList(ConsoleNote.class); + } +} diff --git a/core/src/main/java/hudson/console/ConsoleAnnotationOutputStream.java b/core/src/main/java/hudson/console/ConsoleAnnotationOutputStream.java new file mode 100644 index 0000000000000000000000000000000000000000..919e3af0117fb48e9a9788e85dc2ce07d0fbcf36 --- /dev/null +++ b/core/src/main/java/hudson/console/ConsoleAnnotationOutputStream.java @@ -0,0 +1,187 @@ +/* + * The MIT License + * + * Copyright (c) 2004-2010, Sun Microsystems, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.console; + +import hudson.MarkupText; +import org.apache.commons.io.output.ProxyWriter; +import org.kohsuke.stapler.framework.io.WriterOutputStream; + +import java.io.ByteArrayInputStream; +import java.io.DataInputStream; +import java.io.IOException; +import java.io.OutputStream; +import java.io.StringWriter; +import java.io.Writer; +import java.nio.charset.Charset; +import java.util.ArrayList; +import java.util.List; +import java.util.logging.Level; +import java.util.logging.Logger; + +/** + * Used to convert plain text console output (as byte sequence) + embedded annotations into HTML (as char sequence), + * by using {@link ConsoleAnnotator}. + * + * @param + * Context type. + * @author Kohsuke Kawaguchi + * @since 1.349 + */ +public class ConsoleAnnotationOutputStream extends LineTransformationOutputStream { + private final Writer out; + private final T context; + private ConsoleAnnotator ann; + + /** + * Reused buffer that stores char representation of a single line. + */ + private final LineBuffer line = new LineBuffer(256); + /** + * {@link OutputStream} that writes to {@link #line}. + */ + private final WriterOutputStream lineOut; + + /** + * + */ + public ConsoleAnnotationOutputStream(Writer out, ConsoleAnnotator ann, T context, Charset charset) { + this.out = out; + this.ann = ConsoleAnnotator.cast(ann); + this.context = context; + this.lineOut = new WriterOutputStream(line,charset); + } + + public ConsoleAnnotator getConsoleAnnotator() { + return ann; + } + + /** + * Called after we read the whole line of plain text, which is stored in {@link #buf}. + * This method performs annotations and send the result to {@link #out}. + */ + protected void eol(byte[] in, int sz) throws IOException { + line.reset(); + final StringBuffer strBuf = line.getStringBuffer(); + + int next = ConsoleNote.findPreamble(in,0,sz); + + List> annotators=null; + + {// perform byte[]->char[] while figuring out the char positions of the BLOBs + int written = 0; + while (next>=0) { + if (next>written) { + lineOut.write(in,written,next-written); + lineOut.flush(); + written = next; + } else { + assert next==written; + } + + // character position of this annotation in this line + final int charPos = strBuf.length(); + + int rest = sz - next; + ByteArrayInputStream b = new ByteArrayInputStream(in, next, rest); + + try { + final ConsoleNote a = ConsoleNote.readFrom(new DataInputStream(b)); + if (a!=null) { + if (annotators==null) + annotators = new ArrayList>(); + annotators.add(new ConsoleAnnotator() { + public ConsoleAnnotator annotate(T context, MarkupText text) { + return a.annotate(context,text,charPos); + } + }); + } + } catch (IOException e) { + // if we failed to resurrect an annotation, ignore it. + LOGGER.log(Level.FINE,"Failed to resurrect annotation",e); + } catch (ClassNotFoundException e) { + LOGGER.log(Level.FINE,"Failed to resurrect annotation",e); + } + + int bytesUsed = rest - b.available(); // bytes consumed by annotations + written += bytesUsed; + + + next = ConsoleNote.findPreamble(in,written,sz-written); + } + // finish the remaining bytes->chars conversion + lineOut.write(in,written,sz-written); + + if (annotators!=null) { + // aggregate newly retrieved ConsoleAnnotators into the current one. + if (ann!=null) annotators.add(ann); + ann = ConsoleAnnotator.combine(annotators); + } + } + + lineOut.flush(); + MarkupText mt = new MarkupText(strBuf.toString()); + if (ann!=null) + ann = ann.annotate(context,mt); + out.write(mt.toString(true)); // this perform escapes + } + + @Override + public void flush() throws IOException { + out.flush(); + } + + @Override + public void close() throws IOException { + super.close(); + out.close(); + } + + /** + * {@link StringWriter} enhancement that's capable of shrinking the buffer size. + * + *

    + * The problem is that {@link StringBuffer#setLength(int)} doesn't actually release + * the underlying buffer, so for us to truncate the buffer, we need to create a new {@link StringWriter} instance. + */ + private static class LineBuffer extends ProxyWriter { + private LineBuffer(int initialSize) { + super(new StringWriter(initialSize)); + } + + private void reset() { + StringBuffer buf = getStringBuffer(); + if (buf.length()>4096) + out = new StringWriter(256); + else + buf.setLength(0); + } + + private StringBuffer getStringBuffer() { + StringWriter w = (StringWriter)out; + return w.getBuffer(); + } + } + + private static final Logger LOGGER = Logger.getLogger(ConsoleAnnotationOutputStream.class.getName()); +} diff --git a/core/src/main/java/hudson/console/ConsoleAnnotator.java b/core/src/main/java/hudson/console/ConsoleAnnotator.java new file mode 100644 index 0000000000000000000000000000000000000000..22c295d291063dfe9573b70cc53404f3d2987996 --- /dev/null +++ b/core/src/main/java/hudson/console/ConsoleAnnotator.java @@ -0,0 +1,152 @@ +/* + * The MIT License + * + * Copyright (c) 2004-2010, Sun Microsystems, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.console; + +import hudson.MarkupText; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; +import java.util.ListIterator; + +/** + * Annotates one line of console output. + * + *

    + * In Hudson, console output annotation is done line by line, and + * we model this as a state machine — + * the code encapsulates some state, and it uses that to annotate one line (and possibly update the state.) + * + *

    + * A {@link ConsoleAnnotator} instance encapsulates this state, and the {@link #annotate(Object, MarkupText)} + * method is used to annotate the next line based on the current state. The method returns another + * {@link ConsoleAnnotator} instance that represents the altered state for annotating the next line. + * + *

    + * {@link ConsoleAnnotator}s are run when a browser requests console output, and the above-mentioned chain + * invocation is done for each client request separately. Therefore, logically you can think of this process as: + * + *

    + * ConsoleAnnotator ca = ...;
    + * ca.annotate(context,line1).annotate(context,line2)...
    + * 
    + * + *

    + * Because of a browser can request console output incrementally, in addition to above a console annotator + * can be serialized at any point and deserialized back later to continue annotation where it left off. + * + *

    + * {@link ConsoleAnnotator} instances can be created in a few different ways. See {@link ConsoleNote} + * and {@link ConsoleAnnotatorFactory}. + * + * @author Kohsuke Kawaguchi + * @see ConsoleAnnotatorFactory + * @see ConsoleNote + * @since 1.349 + */ +public abstract class ConsoleAnnotator implements Serializable { + /** + * Annotates one line. + * + * @param context + * The object that owns the console output. Never null. + * @param text + * Contains a single line of console output, and defines convenient methods to add markup. + * The callee should put markup into this object. Never null. + * @return + * The {@link ConsoleAnnotator} object that will annotate the next line of the console output. + * To indicate that you are not interested in the following lines, return null. + */ + public abstract ConsoleAnnotator annotate(T context, MarkupText text ); + + /** + * Cast operation that restricts T. + */ + public static ConsoleAnnotator cast(ConsoleAnnotator a) { + return (ConsoleAnnotator)a; + } + + /** + * Bundles all the given {@link ConsoleAnnotator} into a single annotator. + */ + public static ConsoleAnnotator combine(Collection> all) { + switch (all.size()) { + case 0: return null; // none + case 1: return cast(all.iterator().next()); // just one + } + + class Aggregator extends ConsoleAnnotator { + List> list; + + Aggregator(Collection list) { + this.list = new ArrayList>(list); + } + + public ConsoleAnnotator annotate(T context, MarkupText text) { + ListIterator> itr = list.listIterator(); + while (itr.hasNext()) { + ConsoleAnnotator a = itr.next(); + ConsoleAnnotator b = a.annotate(context,text); + if (a!=b) { + if (b==null) itr.remove(); + else itr.set(b); + } + } + + switch (list.size()) { + case 0: return null; // no more annotator left + case 1: return list.get(0); // no point in aggregating + default: return this; + } + } + } + return new Aggregator(all); + } + + /** + * Returns the all {@link ConsoleAnnotator}s for the given context type aggregated into a single + * annotator. + */ + public static ConsoleAnnotator initial(T context) { + return combine(_for(context)); + } + + /** + * List all the console annotators that can work for the specified context type. + */ + public static List> _for(T context) { + List> r = new ArrayList>(); + for (ConsoleAnnotatorFactory f : ConsoleAnnotatorFactory.all()) { + if (f.type().isInstance(context)) { + ConsoleAnnotator ca = f.newInstance(context); + if (ca!=null) + r.add(ca); + } + } + return r; + } + + private static final long serialVersionUID = 1L; +} diff --git a/core/src/main/java/hudson/console/ConsoleAnnotatorFactory.java b/core/src/main/java/hudson/console/ConsoleAnnotatorFactory.java new file mode 100644 index 0000000000000000000000000000000000000000..f6cd420e9c25b440a98232994e5fcee5ef5de24f --- /dev/null +++ b/core/src/main/java/hudson/console/ConsoleAnnotatorFactory.java @@ -0,0 +1,132 @@ +/* + * The MIT License + * + * Copyright (c) 2004-2010, Sun Microsystems, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.console; + +import hudson.Extension; +import hudson.ExtensionList; +import hudson.ExtensionPoint; +import hudson.model.Hudson; +import hudson.model.Run; +import hudson.util.TimeUnit2; +import org.jvnet.tiger_types.Types; +import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.WebMethod; + +import javax.servlet.ServletException; +import java.io.IOException; +import java.lang.reflect.ParameterizedType; +import java.lang.reflect.Type; +import java.net.URL; + +/** + * Entry point to the {@link ConsoleAnnotator} extension point. This class creates a new instance + * of {@link ConsoleAnnotator} that starts a new console annotation session. + * + *

    + * {@link ConsoleAnnotatorFactory}s are used whenever a browser requests console output (as opposed to when + * the console output is being produced — for that see {@link ConsoleNote}.) + * + *

    + * {@link ConsoleAnnotator}s returned by {@link ConsoleAnnotatorFactory} are asked to start from + * an arbitrary line of the output, because typically browsers do not request the entire console output. + * Because of this, {@link ConsoleAnnotatorFactory} is generally suitable for peep-hole local annotation + * that only requires a small contextual information, such as keyword coloring, URL hyperlinking, and so on. + * + *

    + * To register, put @{@link Extension} on your {@link ConsoleAnnotatorFactory} subtype. + * + *

    Behaviour, JavaScript, and CSS

    + *

    + * {@link ConsoleNote} can have associated script.js and style.css (put them + * in the same resource directory that you normally put Jelly scripts), which will be loaded into + * the HTML page whenever the console notes are used. This allows you to use minimal markup in + * code generation, and do the styling in CSS and perform the rest of the interesting work as a CSS behaviour/JavaScript. + * + * @author Kohsuke Kawaguchi + * @since 1.349 + */ +public abstract class ConsoleAnnotatorFactory implements ExtensionPoint { + /** + * Called when a console output page is requested to create a stateful {@link ConsoleAnnotator}. + * + *

    + * This method can be invoked concurrently by multiple threads. + * + * @param context + * The model object that owns the console output, such as {@link Run}. + * This method is only called when the context object if assignable to + * {@linkplain #type() the advertised type}. + * @return + * null if this factory is not going to participate in the annotation of this console. + */ + public abstract ConsoleAnnotator newInstance(T context); + + /** + * For which context type does this annotator work? + */ + public Class type() { + Type type = Types.getBaseClass(getClass(), ConsoleAnnotator.class); + if (type instanceof ParameterizedType) + return Types.erasure(Types.getTypeArgument(type,0)); + else + return Object.class; + } + + /** + * Returns true if this descriptor has a JavaScript to be inserted on applicable console page. + */ + public boolean hasScript() { + return getResource("/script.js") !=null; + } + + public boolean hasStylesheet() { + return getResource("/style.css") !=null; + } + + private URL getResource(String fileName) { + Class c = getClass(); + return c.getClassLoader().getResource(c.getName().replace('.','/').replace('$','/')+ fileName); + } + + /** + * Serves the JavaScript file associated with this console annotator factory. + */ + @WebMethod(name="script.js") + public void doScriptJs(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException { + rsp.serveFile(req, getResource("/script.js"), TimeUnit2.DAYS.toMillis(1)); + } + + @WebMethod(name="style.css") + public void doStyleCss(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException { + rsp.serveFile(req, getResource("/style.css"), TimeUnit2.DAYS.toMillis(1)); + } + + /** + * All the registered instances. + */ + public static ExtensionList all() { + return Hudson.getInstance().getExtensionList(ConsoleAnnotatorFactory.class); + } +} diff --git a/core/src/main/java/hudson/console/ConsoleLogFilter.java b/core/src/main/java/hudson/console/ConsoleLogFilter.java new file mode 100644 index 0000000000000000000000000000000000000000..7aa6025654a12158176654a097670f028b4ef894 --- /dev/null +++ b/core/src/main/java/hudson/console/ConsoleLogFilter.java @@ -0,0 +1,57 @@ +/* + * The MIT License + * + * Copyright 2010 Yahoo! Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +package hudson.console; + +import hudson.ExtensionList; +import hudson.ExtensionPoint; +import hudson.model.AbstractBuild; +import hudson.model.Hudson; + +import java.io.IOException; +import java.io.OutputStream; + +/** + * A hook to allow filtering of information that is written to the console log. + * Unlike {@link ConsoleAnnotator} and {@link ConsoleNote}, this class provides + * direct access to the underlying {@link OutputStream} so it's possible to suppress + * data, which isn't possible from the other interfaces. + * + * @author dty + * @since 1.383 + */ +public abstract class ConsoleLogFilter implements ExtensionPoint { + /** + * Called on the start of each build, giving extensions a chance to intercept + * the data that is written to the log. + */ + public abstract OutputStream decorateLogger(AbstractBuild build, OutputStream logger) throws IOException, InterruptedException; + + /** + * All the registered {@link ConsoleLogFilter}s. + */ + public static ExtensionList all() { + return Hudson.getInstance().getExtensionList(ConsoleLogFilter.class); + } +} diff --git a/core/src/main/java/hudson/console/ConsoleNote.java b/core/src/main/java/hudson/console/ConsoleNote.java new file mode 100644 index 0000000000000000000000000000000000000000..a0450aa59f3390096f1da349ef6fbaa6a4f5a537 --- /dev/null +++ b/core/src/main/java/hudson/console/ConsoleNote.java @@ -0,0 +1,315 @@ +/* + * The MIT License + * + * Copyright (c) 2004-2010, Sun Microsystems, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.console; + +import hudson.CloseProofOutputStream; +import hudson.MarkupText; +import hudson.model.Describable; +import hudson.model.Hudson; +import hudson.model.Run; +import hudson.remoting.ObjectInputStreamEx; +import hudson.util.FlushProofOutputStream; +import hudson.util.IOUtils; +import hudson.util.UnbufferedBase64InputStream; +import org.apache.commons.codec.binary.Base64OutputStream; +import org.apache.commons.io.output.ByteArrayOutputStream; +import org.apache.tools.ant.BuildListener; + +import java.io.ByteArrayInputStream; +import java.io.DataInputStream; +import java.io.DataOutputStream; +import java.io.IOException; +import java.io.ObjectInputStream; +import java.io.ObjectOutputStream; +import java.io.OutputStream; +import java.io.Serializable; +import java.io.StringWriter; +import java.io.Writer; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.List; +import java.util.zip.GZIPInputStream; +import java.util.zip.GZIPOutputStream; + +/** + * Data that hangs off from a console output. + * + *

    + * A {@link ConsoleNote} can be put into a console output while it's being written, and it represents + * a machine readable information about a particular position of the console output. + * + *

    + * When Hudson is reading back a console output for display, a {@link ConsoleNote} is used + * to trigger {@link ConsoleAnnotator}, which in turn uses the information in the note to + * generate markup. In this way, we can overlay richer information on top of the console output. + * + *

    Comparison with {@link ConsoleAnnotatorFactory}

    + *

    + * Compared to {@link ConsoleAnnotatorFactory}, the main advantage of {@link ConsoleNote} is that + * it can be emitted into the output by the producer of the output (or by a filter), which can + * have a much better knowledge about the context of what's being executed. + * + *

      + *
    1. + * For example, when your plugin is about to report an error message, you can emit a {@link ConsoleNote} + * that indicates an error, instead of printing an error message as plain text. The {@link #annotate(Object, MarkupText, int)} + * method will then generate the proper error message, with all the HTML markup that makes error message + * more user friendly. + * + *
    2. + * Or consider annotating output from Ant. A modified {@link BuildListener} can place a {@link ConsoleNote} + * every time a new target execution starts. These notes can be then later used to build the outline + * that shows what targets are executed, hyperlinked to their corresponding locations in the build output. + *
    + * + *

    + * Doing these things by {@link ConsoleAnnotatorFactory} would be a lot harder, as they can only rely + * on the pattern matching of the output. + * + *

    Persistence

    + *

    + * {@link ConsoleNote}s are serialized and gzip compressed into a byte sequence and then embedded into the + * console output text file, with a bit of preamble/postamble to allow tools to ignore them. In this way + * {@link ConsoleNote} always sticks to a particular point in the console output. + * + *

    + * This design allows descendant processes of Hudson to emit {@link ConsoleNote}s. For example, Ant forked + * by a shell forked by Hudson can put an encoded note in its stdout, and Hudson will correctly understands that. + * The preamble and postamble includes a certain ANSI escape sequence designed in such a way to minimize garbage + * if this output is observed by a human being directly. + * + *

    + * Because of this persistence mechanism, {@link ConsoleNote}s need to be serializable, and care should be taken + * to reduce footprint of the notes, if you are putting a lot of notes. Serialization format compatibility + * is also important, although {@link ConsoleNote}s that failed to deserialize will be simply ignored, so the + * worst thing that can happen is that you just lose some notes. + * + *

    Behaviour, JavaScript, and CSS

    + *

    + * {@link ConsoleNote} can have associated script.js and style.css (put them + * in the same resource directory that you normally put Jelly scripts), which will be loaded into + * the HTML page whenever the console notes are used. This allows you to use minimal markup in + * code generation, and do the styling in CSS and perform the rest of the interesting work as a CSS behaviour/JavaScript. + * + * @param + * Contextual model object that this console is associated with, such as {@link Run}. + * + * @author Kohsuke Kawaguchi + * @see ConsoleAnnotationDescriptor + * @since 1.349 + */ +public abstract class ConsoleNote implements Serializable, Describable> { + /** + * When the line of a console output that this annotation is attached is read by someone, + * a new {@link ConsoleNote} is de-serialized and this method is invoked to annotate that line. + * + * @param context + * The object that owns the console output in question. + * @param text + * Represents a line of the console output being annotated. + * @param charPos + * The character position in 'text' where this annotation is attached. + * + * @return + * if non-null value is returned, this annotator will handle the next line. + * this mechanism can be used to annotate multiple lines starting at the annotated position. + */ + public abstract ConsoleAnnotator annotate(T context, MarkupText text, int charPos); + + public ConsoleAnnotationDescriptor getDescriptor() { + return (ConsoleAnnotationDescriptor)Hudson.getInstance().getDescriptorOrDie(getClass()); + } + + /** + * Prints this note into a stream. + * + *

    + * The most typical use of this is {@code n.encodedTo(System.out)} where stdout is connected to Hudson. + * The encoded form doesn't include any new line character to work better in the line-oriented nature + * of {@link ConsoleAnnotator}. + */ + public void encodeTo(OutputStream out) throws IOException { + ByteArrayOutputStream buf = new ByteArrayOutputStream(); + ObjectOutputStream oos = new ObjectOutputStream(new GZIPOutputStream(buf)); + oos.writeObject(this); + oos.close(); + + ByteArrayOutputStream buf2 = new ByteArrayOutputStream(); + + DataOutputStream dos = new DataOutputStream(new Base64OutputStream(buf2,true,-1,null)); + dos.write(PREAMBLE); + dos.writeInt(buf.size()); + buf.writeTo(dos); + dos.write(POSTAMBLE); + dos.close(); + + // atomically write to the final output, to minimize the chance of something else getting in between the output. + // even with this, it is still technically possible to get such a mix-up to occur (for example, + // if Java program is reading stdout/stderr separately and copying them into the same final stream.) + out.write(buf2.toByteArray()); + } + + /** + * Prints this note into a writer. + * + *

    + * Technically, this method only works if the {@link Writer} to {@link OutputStream} + * encoding is ASCII compatible. + */ + public void encodeTo(Writer out) throws IOException { + out.write(PREAMBLE_STR); + ByteArrayOutputStream buf = new ByteArrayOutputStream(); + ObjectOutputStream oos = new ObjectOutputStream(new GZIPOutputStream(buf)); + oos.writeObject(this); + oos.close(); + + ByteArrayOutputStream encoded = new ByteArrayOutputStream(); + DataOutputStream dos = new DataOutputStream(new Base64OutputStream(encoded,true,-1,null)); + dos.writeInt(buf.size()); + buf.writeTo(dos); + dos.close(); + + out.write(encoded.toString()); + + out.write(POSTAMBLE_STR); + } + + /** + * Works like {@link #encodeTo(Writer)} but obtain the result as a string. + */ + public String encode() throws IOException { + StringWriter sw = new StringWriter(); + encodeTo(sw); + return sw.toString(); + } + + /** + * Reads a note back from {@linkplain #encodeTo(OutputStream) its encoded form}. + * + * @param in + * Must point to the beginning of a preamble. + * + * @return null if the encoded form is malformed. + */ + public static ConsoleNote readFrom(DataInputStream in) throws IOException, ClassNotFoundException { + byte[] preamble = new byte[PREAMBLE.length]; + in.readFully(preamble); + if (!Arrays.equals(preamble,PREAMBLE)) + return null; // not a valid preamble + + DataInputStream decoded = new DataInputStream(new UnbufferedBase64InputStream(in)); + int sz = decoded.readInt(); + byte[] buf = new byte[sz]; + decoded.readFully(buf); + + byte[] postamble = new byte[POSTAMBLE.length]; + in.readFully(postamble); + if (!Arrays.equals(postamble,POSTAMBLE)) + return null; // not a valid postamble + + ObjectInputStream ois = new ObjectInputStreamEx( + new GZIPInputStream(new ByteArrayInputStream(buf)), Hudson.getInstance().pluginManager.uberClassLoader); + return (ConsoleNote) ois.readObject(); + } + + /** + * Skips the encoded console note. + */ + public static void skip(DataInputStream in) throws IOException { + byte[] preamble = new byte[PREAMBLE.length]; + in.readFully(preamble); + if (!Arrays.equals(preamble,PREAMBLE)) + return; // not a valid preamble + + DataInputStream decoded = new DataInputStream(new UnbufferedBase64InputStream(in)); + int sz = decoded.readInt(); + IOUtils.skip(decoded,sz); + + byte[] postamble = new byte[POSTAMBLE.length]; + in.readFully(postamble); + } + + private static final long serialVersionUID = 1L; + + public static final String PREAMBLE_STR = "\u001B[8mha:"; + public static final String POSTAMBLE_STR = "\u001B[0m"; + + /** + * Preamble of the encoded form. ANSI escape sequence to stop echo back + * plus a few magic characters. + */ + public static final byte[] PREAMBLE = PREAMBLE_STR.getBytes(); + /** + * Post amble is the ANSI escape sequence that brings back the echo. + */ + public static final byte[] POSTAMBLE = POSTAMBLE_STR.getBytes(); + + /** + * Locates the preamble in the given buffer. + */ + public static int findPreamble(byte[] buf, int start, int len) { + int e = start + len - PREAMBLE.length + 1; + + OUTER: + for (int i=start; i removeNotes(Collection logLines) { + List r = new ArrayList(logLines.size()); + for (String l : logLines) + r.add(removeNotes(l)); + return r; + } + + /** + * Removes the embedded console notes in the given log line. + * + * @since 1.350 + */ + public static String removeNotes(String line) { + while (true) { + int idx = line.indexOf(PREAMBLE_STR); + if (idx<0) return line; + int e = line.indexOf(POSTAMBLE_STR,idx); + if (e<0) return line; + line = line.substring(0,idx)+line.substring(e+POSTAMBLE_STR.length()); + } + } +} diff --git a/core/src/main/java/hudson/console/HudsonExceptionNote.java b/core/src/main/java/hudson/console/HudsonExceptionNote.java new file mode 100644 index 0000000000000000000000000000000000000000..bdc62874f9867eb043d5f4579e8790f84c725400 --- /dev/null +++ b/core/src/main/java/hudson/console/HudsonExceptionNote.java @@ -0,0 +1,101 @@ +package hudson.console; + +import hudson.Extension; +import hudson.MarkupText; + +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +/** + * Placed on the beginning of the exception stack trace produced by Hudson, which in turn produces hyperlinked stack trace. + * + *

    + * Exceptions in the user code (like junit etc) should be handled differently. This is only for exceptions + * that occur inside Hudson. + * + * @author Kohsuke Kawaguchi + * @since 1.349 + */ +public class HudsonExceptionNote extends ConsoleNote { + + @Override + public ConsoleAnnotator annotate(Object context, MarkupText text, int charPos) { + // An exception stack trace looks like this: + // org.acme.FooBarException: message + // at org.acme.Foo.method(Foo.java:123) + // Caused by: java.lang.ClassNotFoundException: + String line = text.getText(); + int end = line.indexOf(':',charPos); + if (end<0) { + if (CLASSNAME.matcher(line.substring(charPos)).matches()) + end = line.length(); + else + return null; // unexpected format. abort. + } + text.addHyperlink(charPos,end,annotateClassName(line.substring(charPos,end))); + + return new ConsoleAnnotator() { + public ConsoleAnnotator annotate(Object context, MarkupText text) { + String line = text.getText(); + + Matcher m = STACK_TRACE_ELEMENT.matcher(line); + if (m.find()) {// allow the match to happen in the middle of a line to cope with prefix. Ant and Maven put them, among many other tools. + text.addHyperlink(m.start()+4,m.end(),annotateMethodName(m.group(1),m.group(2),m.group(3),Integer.parseInt(m.group(4)))); + return this; + } + + int idx = line.indexOf(CAUSED_BY); + if (idx>=0) { + int s = idx + CAUSED_BY.length(); + int e = line.indexOf(':', s); + if (e<0) e = line.length(); + text.addHyperlink(s,e,annotateClassName(line.substring(s,e))); + return this; + } + + if (AND_MORE.matcher(line).matches()) + return this; + + // looks like we are done with the stack trace + return null; + } + }; + } + + // TODO; separate out the annotations and mark up + + private String annotateMethodName(String className, String methodName, String sourceFileName, int lineNumber) { + // for now + return "http://grepcode.com/search/?query="+className+'.'+methodName+"&entity=method"; + } + + private String annotateClassName(String className) { + // for now + return "http://grepcode.com/search?query="+className; + } + + @Extension + public static final class DescriptorImpl extends ConsoleAnnotationDescriptor { + @Override + public String getDisplayName() { + return "Exception Stack Trace"; + } + } + + /** + * Regular expression that represents a valid class name. + */ + private static final String CLASSNAME_PATTERN = "[\\p{L}0-9$_.]+"; + + private static final Pattern CLASSNAME = Pattern.compile(CLASSNAME_PATTERN+"\r?\n?"); + + /** + * Matches to the line like "\tat org.acme.Foo.method(File.java:123)" + * and captures class name, method name, source file name, and line number separately. + */ + private static final Pattern STACK_TRACE_ELEMENT = Pattern.compile("\tat ("+CLASSNAME_PATTERN+")\\.([\\p{L}0-9$_<>]+)\\((\\S+):([0-9]+)\\)"); + + private static final String CAUSED_BY = "Caused by: "; + + private static final Pattern AND_MORE = Pattern.compile("\t... [0-9]+ more"); +} diff --git a/core/src/main/java/hudson/console/HyperlinkNote.java b/core/src/main/java/hudson/console/HyperlinkNote.java new file mode 100644 index 0000000000000000000000000000000000000000..61074f6a832dc04d1119214636d7d11070dcbf6f --- /dev/null +++ b/core/src/main/java/hudson/console/HyperlinkNote.java @@ -0,0 +1,56 @@ +package hudson.console; + +import hudson.Extension; +import hudson.MarkupText; +import hudson.model.Hudson; + +import java.io.IOException; +import java.util.logging.Level; +import java.util.logging.Logger; + +/** + * Turns a text into a hyperlink by specifying the URL separately. + * + * @author Kohsuke Kawaguchi + * @since 1.362 + */ +public class HyperlinkNote extends ConsoleNote { + /** + * If this starts with '/', it's interpreted as a path within the context path. + */ + private final String url; + private final int length; + + public HyperlinkNote(String url, int length) { + this.url = url; + this.length = length; + } + + @Override + public ConsoleAnnotator annotate(Object context, MarkupText text, int charPos) { + String url = this.url; + if (url.startsWith("/")) + url = Hudson.getInstance().getRootUrl()+url.substring(1); + text.addHyperlink(charPos,charPos+length,url); + return null; + } + + public static String encodeTo(String url, String text) { + try { + return new HyperlinkNote(url,text.length()).encode()+text; + } catch (IOException e) { + // impossible, but don't make this a fatal problem + LOGGER.log(Level.WARNING, "Failed to serialize "+HyperlinkNote.class,e); + return text; + } + } + + @Extension + public static final class DescriptorImpl extends ConsoleAnnotationDescriptor { + public String getDisplayName() { + return "Hyperlinks"; + } + } + + private static final Logger LOGGER = Logger.getLogger(HyperlinkNote.class.getName()); +} diff --git a/core/src/main/java/hudson/console/LineTransformationOutputStream.java b/core/src/main/java/hudson/console/LineTransformationOutputStream.java new file mode 100644 index 0000000000000000000000000000000000000000..95bb0baf6989be6e0fc990821aa5e782b8d591ca --- /dev/null +++ b/core/src/main/java/hudson/console/LineTransformationOutputStream.java @@ -0,0 +1,113 @@ +/* + * The MIT License + * + * Copyright (c) 2004-2010, Sun Microsystems, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.console; + +import hudson.util.ByteArrayOutputStream2; + +import java.io.IOException; +import java.io.OutputStream; + +/** + * Filtering {@link OutputStream} that buffers text by line, so that the derived class + * can perform some manipulation based on the contents of the whole line. + * + * TODO: Mac is supposed to be CR-only. This class needs to handle that. + * + * @author Kohsuke Kawaguchi + * @since 1.349 + */ +public abstract class LineTransformationOutputStream extends OutputStream { + private ByteArrayOutputStream2 buf = new ByteArrayOutputStream2(); + + /** + * Called for each end of the line. + * + * @param b + * Contents of the whole line, including the EOL code like CR/LF. + * @param len + * Specifies the length of the valid contents in 'b'. The rest is garbage. + * This is so that the caller doesn't have to allocate an array of the exact size. + */ + protected abstract void eol(byte[] b, int len) throws IOException; + + public void write(int b) throws IOException { + buf.write(b); + if (b==LF) eol(); + } + + private void eol() throws IOException { + eol(buf.getBuffer(),buf.size()); + + // reuse the buffer under normal circumstances, but don't let the line buffer grow unbounded + if (buf.size()>4096) + buf = new ByteArrayOutputStream2(); + else + buf.reset(); + } + + @Override + public void write(byte[] b, int off, int len) throws IOException { + int end = off+len; + + for( int i=off; i0) { + /* + because LargeText cuts output at the line end boundary, this is + possible only for the very end of the console output, if the output ends without NL. + */ + eol(); + } + } + + protected String trimEOL(String line) { + int slen = line.length(); + while (slen>0) { + char ch = line.charAt(slen-1); + if (ch=='\r' || ch=='\n') { + slen--; + continue; + } + break; + } + line = line.substring(0,slen); + return line; + } + + private static final int LF = 0x0A; +} diff --git a/core/src/main/java/hudson/console/PlainTextConsoleOutputStream.java b/core/src/main/java/hudson/console/PlainTextConsoleOutputStream.java new file mode 100644 index 0000000000000000000000000000000000000000..f1afa2fad5ad91447f5588d35edaede9defcab40 --- /dev/null +++ b/core/src/main/java/hudson/console/PlainTextConsoleOutputStream.java @@ -0,0 +1,93 @@ +/* + * The MIT License + * + * Copyright (c) 2010, InfraDNA, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +package hudson.console; + +import java.io.ByteArrayInputStream; +import java.io.DataInputStream; +import java.io.IOException; +import java.io.OutputStream; +import java.util.logging.Logger; + +/** + * Filters out console notes. + * + * @author Kohsuke Kawaguchi + */ +public class PlainTextConsoleOutputStream extends LineTransformationOutputStream { + private final OutputStream out; + + /** + * + */ + public PlainTextConsoleOutputStream(OutputStream out) { + this.out = out; + } + + /** + * Called after we read the whole line of plain text. + */ + protected void eol(byte[] in, int sz) throws IOException { + + int next = ConsoleNote.findPreamble(in,0,sz); + + // perform byte[]->char[] while figuring out the char positions of the BLOBs + int written = 0; + while (next>=0) { + if (next>written) { + out.write(in,written,next-written); + written = next; + } else { + assert next==written; + } + + int rest = sz - next; + ByteArrayInputStream b = new ByteArrayInputStream(in, next, rest); + + ConsoleNote.skip(new DataInputStream(b)); + + int bytesUsed = rest - b.available(); // bytes consumed by annotations + written += bytesUsed; + + + next = ConsoleNote.findPreamble(in,written,sz-written); + } + // finish the remaining bytes->chars conversion + out.write(in,written,sz-written); + } + + @Override + public void flush() throws IOException { + out.flush(); + } + + @Override + public void close() throws IOException { + super.close(); + out.close(); + } + + + private static final Logger LOGGER = Logger.getLogger(ConsoleAnnotationOutputStream.class.getName()); +} diff --git a/core/src/main/java/hudson/console/UrlAnnotator.java b/core/src/main/java/hudson/console/UrlAnnotator.java new file mode 100644 index 0000000000000000000000000000000000000000..40e38dcd3484f5e3fe55451d26fb0912b46150bb --- /dev/null +++ b/core/src/main/java/hudson/console/UrlAnnotator.java @@ -0,0 +1,48 @@ +package hudson.console; + +import hudson.Extension; +import hudson.MarkupText; +import hudson.MarkupText.SubText; + +import java.util.regex.Pattern; + +/** + * Annotates URLs in the console output to hyperlink. + * + * @author Kohsuke Kawaguchi + */ +@Extension +public class UrlAnnotator extends ConsoleAnnotatorFactory { + @Override + public ConsoleAnnotator newInstance(Object context) { + return new UrlConsoleAnnotator(); + } + + private static class UrlConsoleAnnotator extends ConsoleAnnotator { + public ConsoleAnnotator annotate(Object context, MarkupText text) { + for (SubText t : text.findTokens(URL)) { + int prev = t.start() - 1; + char ch = prev>=0 ? text.charAt(prev) : ' '; + int idx = OPEN.indexOf(ch); + if (idx>=0) {// if inside a bracket, exclude the end bracket. + t=t.subText(0,t.getText().indexOf(CLOSE.charAt(idx))); + } + t.href(t.getText()); + } + return this; + } + + private static final long serialVersionUID = 1L; + + /** + * Starts with a word boundary and protocol identifier, + * don't include any whitespace, '<', nor '>'. + * In addition, the last character shouldn't be ',' ':', '"', etc, as often those things show up right next + * to URL in plain text (e.g., test="http://www.example.com/") + */ + private static final Pattern URL = Pattern.compile("\\b(http|https|ftp)://[^\\s<>]+[^\\s<>,:\"'()\\[\\]=]"); + + private static final String OPEN = "'\"()[]<>"; + private static final String CLOSE= "'\")(][><"; + } +} diff --git a/core/src/main/java/hudson/console/package-info.java b/core/src/main/java/hudson/console/package-info.java new file mode 100644 index 0000000000000000000000000000000000000000..e36843b455d3aa20af16ace9054a6b877e036c07 --- /dev/null +++ b/core/src/main/java/hudson/console/package-info.java @@ -0,0 +1,4 @@ +/** + * Beef up the plain text console output by adding HTML markup. + */ +package hudson.console; \ No newline at end of file diff --git a/core/src/main/java/hudson/diagnosis/HudsonHomeDiskUsageChecker.java b/core/src/main/java/hudson/diagnosis/HudsonHomeDiskUsageChecker.java index 472e37aa6cef35b109cf817f8a9458b7a71735b1..5f101d91e5f75d66b5a08d9f507dd524c5ec4490 100644 --- a/core/src/main/java/hudson/diagnosis/HudsonHomeDiskUsageChecker.java +++ b/core/src/main/java/hudson/diagnosis/HudsonHomeDiskUsageChecker.java @@ -56,17 +56,25 @@ public class HudsonHomeDiskUsageChecker extends PeriodicWork { LOGGER.fine("Monitoring disk usage of HUDSON_HOME. total="+total+" free="+free); - // if it's more than 90% full and less than 1GB, activate + + // if it's more than 90% full and less than the minimum, activate // it's AND and not OR so that small Hudson home won't get a warning, // and similarly, if you have a 1TB disk, you don't get a warning when you still have 100GB to go. - HudsonHomeDiskUsageMonitor.get().activated = (total/free>10 && free<1024L*1024*1024); + HudsonHomeDiskUsageMonitor.get().activated = (total/free>10 && free< FREE_SPACE_THRESHOLD); } catch (LinkageError _) { // pre Mustang LOGGER.info("Not on JDK6. Cannot monitor HUDSON_HOME disk usage"); cancel(); - return; } } private static final Logger LOGGER = Logger.getLogger(HudsonHomeDiskUsageChecker.class.getName()); + + /** + * Gets the minimum amount of space to check for, with a default of 1GB + */ + public static long FREE_SPACE_THRESHOLD = Long.getLong( + HudsonHomeDiskUsageChecker.class.getName() + ".freeSpaceThreshold", + 1024L*1024*1024); + } diff --git a/core/src/main/java/hudson/diagnosis/HudsonHomeDiskUsageMonitor.java b/core/src/main/java/hudson/diagnosis/HudsonHomeDiskUsageMonitor.java index f1448d3729fb61b5bc6e09bec9fbbbac386cb76f..ae1f5ea1b1280096e784d57a2aafabe7159b162d 100644 --- a/core/src/main/java/hudson/diagnosis/HudsonHomeDiskUsageMonitor.java +++ b/core/src/main/java/hudson/diagnosis/HudsonHomeDiskUsageMonitor.java @@ -29,8 +29,9 @@ import hudson.model.AbstractModelObject; import hudson.Extension; import hudson.ExtensionPoint; import hudson.ExtensionList; -import org.kohsuke.stapler.StaplerRequest; -import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.HttpResponse; +import org.kohsuke.stapler.HttpResponses; +import org.kohsuke.stapler.QueryParameter; import java.io.IOException; import java.util.List; @@ -58,12 +59,12 @@ public final class HudsonHomeDiskUsageMonitor extends AdministrativeMonitor { /** * Depending on whether the user said "yes" or "no", send him to the right place. */ - public void doAct(StaplerRequest req, StaplerResponse rsp) throws IOException { - if(req.hasParameter("no")) { + public HttpResponse doAct(@QueryParameter String no) throws IOException { + if(no!=null) { disable(true); - rsp.sendRedirect(req.getContextPath()+"/manage"); + return HttpResponses.redirectViaContextPath("/manage"); } else { - rsp.sendRedirect("."); + return HttpResponses.redirectToDot(); } } diff --git a/core/src/main/java/hudson/diagnosis/OldDataMonitor.java b/core/src/main/java/hudson/diagnosis/OldDataMonitor.java new file mode 100644 index 0000000000000000000000000000000000000000..fde286ebb8cba34489c505ec4cd90bbbe680b9c4 --- /dev/null +++ b/core/src/main/java/hudson/diagnosis/OldDataMonitor.java @@ -0,0 +1,285 @@ +/* + * The MIT License + * + * Copyright (c) 2004-2010, Sun Microsystems, Inc., Alan Harder + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.diagnosis; + +import hudson.XmlFile; +import hudson.model.AdministrativeMonitor; +import hudson.model.Hudson; +import hudson.Extension; +import hudson.model.Item; +import hudson.model.Job; +import hudson.model.Run; +import hudson.model.Saveable; +import hudson.model.listeners.ItemListener; +import hudson.model.listeners.RunListener; +import hudson.model.listeners.SaveableListener; +import hudson.util.RobustReflectionConverter; +import hudson.util.VersionNumber; +import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerResponse; +import com.thoughtworks.xstream.converters.UnmarshallingContext; + +import java.io.IOException; +import java.util.Collection; +import java.util.Collections; +import java.util.HashMap; +import java.util.Iterator; +import java.util.Map; +import java.util.TreeSet; +import java.util.logging.Level; +import java.util.logging.Logger; +import org.kohsuke.stapler.HttpRedirect; +import org.kohsuke.stapler.HttpResponse; +import org.kohsuke.stapler.HttpResponses; + +/** + * Tracks whether any data structure changes were corrected when loading XML, + * that could be resaved to migrate that data to the new format. + * + * @author Alan.Harder@Sun.Com + */ +@Extension +public class OldDataMonitor extends AdministrativeMonitor { + private static Logger LOGGER = Logger.getLogger(OldDataMonitor.class.getName()); + + private HashMap data = new HashMap(); + private boolean updating = false; + + public OldDataMonitor() { + super("OldData"); + } + + @Override + public String getDisplayName() { + return Messages.OldDataMonitor_DisplayName(); + } + + public boolean isActivated() { + return !data.isEmpty(); + } + + public synchronized Map getData() { + return Collections.unmodifiableMap(data); + } + + private static void remove(Saveable obj, boolean isDelete) { + OldDataMonitor odm = (OldDataMonitor)Hudson.getInstance().getAdministrativeMonitor("OldData"); + synchronized (odm) { + if (odm.updating) return; // Skip during doUpgrade or doDiscard + odm.data.remove(obj); + if (isDelete && obj instanceof Job) + for (Run r : ((Job)obj).getBuilds()) + odm.data.remove(r); + } + } + + // Listeners to remove data here if resaved or deleted in regular Hudson usage + + @Extension + public static final SaveableListener changeListener = new SaveableListener() { + @Override + public void onChange(Saveable obj, XmlFile file) { + remove(obj, false); + } + }; + + @Extension + public static final ItemListener itemDeleteListener = new ItemListener() { + @Override + public void onDeleted(Item item) { + remove(item, true); + } + }; + + @Extension + public static final RunListener runDeleteListener = new RunListener() { + @Override + public void onDeleted(Run run) { + remove(run, true); + } + }; + + /** + * Inform monitor that some data in a deprecated format has been loaded, + * and converted in-memory to a new structure. + * @param obj Saveable object; calling save() on this object will persist + * the data in its new format to disk. + * @param version Hudson release when the data structure changed. + */ + public static void report(Saveable obj, String version) { + OldDataMonitor odm = (OldDataMonitor)Hudson.getInstance().getAdministrativeMonitor("OldData"); + synchronized (odm) { + try { + VersionRange vr = odm.data.get(obj); + if (vr != null) vr.add(version); + else odm.data.put(obj, new VersionRange(version, null)); + } catch (IllegalArgumentException ex) { + LOGGER.log(Level.WARNING, "Bad parameter given to OldDataMonitor", ex); + } + } + } + + /** + * Inform monitor that some data in a deprecated format has been loaded, during + * XStream unmarshalling when the Saveable containing this object is not available. + * @param context XStream unmarshalling context + * @param version Hudson release when the data structure changed. + */ + public static void report(UnmarshallingContext context, String version) { + RobustReflectionConverter.addErrorInContext(context, new ReportException(version)); + } + + private static class ReportException extends Exception { + private String version; + private ReportException(String version) { + this.version = version; + } + } + + /** + * Inform monitor that some unreadable data was found while loading. + * @param obj Saveable object; calling save() on this object will discard the unreadable data. + * @param errors Exception(s) thrown while loading, regarding the unreadable classes/fields. + */ + public static void report(Saveable obj, Collection errors) { + StringBuilder buf = new StringBuilder(); + int i = 0; + for (Throwable e : errors) { + if (e instanceof ReportException) { + report(obj, ((ReportException)e).version); + } else { + if (++i > 1) buf.append(", "); + buf.append(e.getClass().getSimpleName()).append(": ").append(e.getMessage()); + } + } + if (buf.length() == 0) return; + OldDataMonitor odm = (OldDataMonitor)Hudson.getInstance().getAdministrativeMonitor("OldData"); + synchronized (odm) { + VersionRange vr = odm.data.get(obj); + if (vr != null) vr.extra = buf.toString(); + else odm.data.put(obj, new VersionRange(null, buf.toString())); + } + } + + public static class VersionRange { + private static VersionNumber currentVersion = Hudson.getVersion(); + + VersionNumber min, max; + boolean single = true; + public String extra; + + public VersionRange(String version, String extra) { + min = max = version != null ? new VersionNumber(version) : null; + this.extra = extra; + } + + public void add(String version) { + VersionNumber ver = new VersionNumber(version); + if (min==null) { min = max = ver; } + else { + if (ver.isOlderThan(min)) { min = ver; single = false; } + if (ver.isNewerThan(max)) { max = ver; single = false; } + } + } + + @Override + public String toString() { + return min==null ? "" : min.toString() + (single ? "" : " - " + max.toString()); + } + + /** + * Does this version range contain a version more than the given number of releases ago? + * @param threshold Number of releases + * @return True if the major version# differs or the minor# differs by >= threshold + */ + public boolean isOld(int threshold) { + return currentVersion != null && min != null && (currentVersion.digit(0) > min.digit(0) + || (currentVersion.digit(0) == min.digit(0) + && currentVersion.digit(1) - min.digit(1) >= threshold)); + } + } + + /** + * Sorted list of unique max-versions in the data set. For select list in jelly. + */ + public synchronized Iterator getVersionList() { + TreeSet set = new TreeSet(); + for (VersionRange vr : data.values()) + if (vr.max!=null) set.add(vr.max); + return set.iterator(); + } + + /** + * Depending on whether the user said "yes" or "no", send him to the right place. + */ + public HttpResponse doAct(StaplerRequest req, StaplerResponse rsp) throws IOException { + if (req.hasParameter("no")) { + disable(true); + return HttpResponses.redirectViaContextPath("/manage"); + } else { + return new HttpRedirect("manage"); + } + } + + /** + * Save all or some of the files to persist data in the new forms. + * Remove those items from the data map. + */ + public synchronized HttpResponse doUpgrade(StaplerRequest req, StaplerResponse rsp) throws IOException { + String thruVerParam = req.getParameter("thruVer"); + VersionNumber thruVer = thruVerParam.equals("all") ? null : new VersionNumber(thruVerParam); + updating = true; + for (Iterator> it = data.entrySet().iterator(); it.hasNext();) { + Map.Entry entry = it.next(); + VersionNumber version = entry.getValue().max; + if (version != null && (thruVer == null || !version.isNewerThan(thruVer))) { + entry.getKey().save(); + it.remove(); + } + } + updating = false; + return HttpResponses.forwardToPreviousPage(); + } + + /** + * Save all files containing only unreadable data (no data upgrades), which discards this data. + * Remove those items from the data map. + */ + public synchronized HttpResponse doDiscard(StaplerRequest req, StaplerResponse rsp) throws IOException { + updating = true; + for (Iterator> it = data.entrySet().iterator(); it.hasNext();) { + Map.Entry entry = it.next(); + if (entry.getValue().max == null) { + entry.getKey().save(); + it.remove(); + } + } + updating = false; + return HttpResponses.forwardToPreviousPage(); + } + + public HttpResponse doIndex(StaplerResponse rsp) throws IOException { + return new HttpRedirect("manage"); + } +} diff --git a/core/src/main/java/hudson/diagnosis/ReverseProxySetupMonitor.java b/core/src/main/java/hudson/diagnosis/ReverseProxySetupMonitor.java new file mode 100644 index 0000000000000000000000000000000000000000..faedba567b203717b0efc142975b5ab92af41c40 --- /dev/null +++ b/core/src/main/java/hudson/diagnosis/ReverseProxySetupMonitor.java @@ -0,0 +1,78 @@ +/* + * The MIT License + * + * Copyright (c) 2010, InfraDNA, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.diagnosis; + +import hudson.Extension; +import hudson.model.AdministrativeMonitor; +import hudson.util.FormValidation; +import org.kohsuke.stapler.HttpRedirect; +import org.kohsuke.stapler.HttpResponse; +import org.kohsuke.stapler.HttpResponses; +import org.kohsuke.stapler.QueryParameter; +import org.kohsuke.stapler.WebMethod; + +import java.io.IOException; + +/** + * Looks out for a broken reverse proxy setup that doesn't rewrite the location header correctly. + * + *

    + * Have the JavaScript make an AJAX call, to which we respond with 302 redirect. If the reverse proxy + * is done correctly, this will be handled by {@link #doFoo()}, but otherwise we'll report that as an error. + * Unfortunately, {@code XmlHttpRequest} doesn't expose properties that allow the client-side JavaScript + * to learn the details of the failure, so we have to make do with limited information. + * + * @author Kohsuke Kawaguchi + */ +@Extension +public class ReverseProxySetupMonitor extends AdministrativeMonitor { + @Override + public boolean isActivated() { + // return true to always inject an HTML fragment to perform a test + return true; + } + + public HttpResponse doTest() { + return new HttpRedirect("test-for-reverse-proxy-setup"); + } + + @WebMethod(name="test-for-reverse-proxy-setup") + public FormValidation doFoo() { + return FormValidation.ok(); + } + + /** + * Depending on whether the user said "yes" or "no", send him to the right place. + */ + public HttpResponse doAct(@QueryParameter String no) throws IOException { + if(no!=null) { // dismiss + disable(true); + // of course the irony is that this redirect won't work + return HttpResponses.redirectViaContextPath("/manage"); + } else { + return new HttpRedirect("http://wiki.hudson-ci.org/display/HUDSON/Running+Hudson+behind+Apache#RunningHudsonbehindApache-modproxywithHTTPS"); + } + } +} + diff --git a/core/src/main/java/hudson/fsp/WorkspaceSnapshotSCM.java b/core/src/main/java/hudson/fsp/WorkspaceSnapshotSCM.java index 883c87c09d6af2ab6cf6205fab3447da7e8a442f..2effea0372f6e750b87c08e5a5f03af66051aac8 100644 --- a/core/src/main/java/hudson/fsp/WorkspaceSnapshotSCM.java +++ b/core/src/main/java/hudson/fsp/WorkspaceSnapshotSCM.java @@ -23,9 +23,11 @@ */ package hudson.fsp; +import hudson.scm.PollingResult; import hudson.scm.SCM; import hudson.scm.ChangeLogParser; import hudson.scm.SCMDescriptor; +import hudson.scm.SCMRevisionState; import hudson.model.AbstractProject; import hudson.model.TaskListener; import hudson.model.AbstractBuild; @@ -118,15 +120,12 @@ public class WorkspaceSnapshotSCM extends SCM { return new Snapshot(snapshot,b); } - public boolean pollChanges(AbstractProject project, Launcher launcher, FilePath workspace, TaskListener listener) throws IOException, InterruptedException { - AbstractBuild lastBuild = (AbstractBuild) project.getLastBuild(); - if (lastBuild == null) { - listener.getLogger().println("No existing build. Starting a new one"); - return true; - } - + public SCMRevisionState calcRevisionsFromBuild(AbstractBuild build, Launcher launcher, TaskListener listener) throws IOException, InterruptedException { + return null; + } - return false; + protected PollingResult compareRemoteRevisionWith(AbstractProject project, Launcher launcher, FilePath workspace, TaskListener listener, SCMRevisionState baseline) throws IOException, InterruptedException { + return PollingResult.NO_CHANGES; } public boolean checkout(AbstractBuild build, Launcher launcher, FilePath workspace, BuildListener listener, File changelogFile) throws IOException, InterruptedException { diff --git a/core/src/main/java/hudson/init/InitMilestone.java b/core/src/main/java/hudson/init/InitMilestone.java new file mode 100644 index 0000000000000000000000000000000000000000..0f5c51dba59c55360529aecb7560d925d94a2298 --- /dev/null +++ b/core/src/main/java/hudson/init/InitMilestone.java @@ -0,0 +1,112 @@ +/* + * The MIT License + * + * Copyright (c) 2004-2009, Sun Microsystems, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.init; + +import org.jvnet.hudson.reactor.Executable; +import org.jvnet.hudson.reactor.Milestone; +import org.jvnet.hudson.reactor.TaskBuilder; +import org.jvnet.hudson.reactor.TaskGraphBuilder; + +/** + * Various key milestone in the initialization process of Hudson. + * + *

    + * Plugins can use these milestones to execute their initialization at the right moment + * (in addition to defining their own milestones by implementing {@link Milestone}. + * + *

    + * These milestones are achieve in this order. + * + * @author Kohsuke Kawaguchi + */ +public enum InitMilestone implements Milestone { + /** + * The very first milestone that gets achieved without doing anything. + * + * This is used in {@link Initializer#after()} since annotations cannot have null as the default value. + */ + STARTED("Started initialization"), + + /** + * By this milestone, all plugins metadata are inspected and their dependencies figured out. + */ + PLUGINS_LISTED("Listed all plugins"), + + /** + * By this milestone, all plugin metadata are loaded and its classloader set up. + */ + PLUGINS_PREPARED("Prepared all plugins"), + + /** + * By this milestone, all plugins start executing, all extension points loaded, descriptors instantiated + * and loaded. + * + *

    + * This is a separate milestone from {@link #PLUGINS_PREPARED} since the execution + * of a plugin often involves finding extension point implementations, which in turn + * require all the classes from all the plugins to be loadable. + */ + PLUGINS_STARTED("Started all plugins"), + + /** + * By this milestone, all programmatically constructed extension point implementations + * should be added. + */ + EXTENSIONS_AUGMENTED("Augmented all extensions"), + + /** + * By this milestone, all jobs and their build records are loaded from disk. + */ + JOB_LOADED("Loaded all jobs"), + + /** + * The very last milestone + * + * This is used in {@link Initializer#before()} since annotations cannot have null as the default value. + */ + COMPLETED("Completed initialization"); + + private final String message; + + InitMilestone(String message) { + this.message = message; + } + + /** + * Creates a set of dummy tasks to enforce ordering among {@link InitMilestone}s. + */ + public static TaskBuilder ordering() { + TaskGraphBuilder b = new TaskGraphBuilder(); + InitMilestone[] v = values(); + for (int i=0; i + * Because the act of initializing plugins is a part of the Hudson initialization, + * this extension point cannot be implemented in a plugin. You need to place your jar + * inside {@code WEB-INF/lib} instead. + * + *

    + * To register, put {@link MetaInfServices} on your implementation. + * + * @author Kohsuke Kawaguchi + * @see Hudson#buildReactorListener() + */ +public interface InitReactorListener extends ReactorListener { +} diff --git a/core/src/main/java/hudson/init/InitStrategy.java b/core/src/main/java/hudson/init/InitStrategy.java new file mode 100644 index 0000000000000000000000000000000000000000..ca4aa48fbbd456003d972b65fc8ce027e6136bf7 --- /dev/null +++ b/core/src/main/java/hudson/init/InitStrategy.java @@ -0,0 +1,115 @@ +package hudson.init; + +import org.kohsuke.MetaInfServices; +import org.jvnet.hudson.reactor.Task; + +import java.io.File; +import java.io.FilenameFilter; +import java.io.IOException; +import java.util.List; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.logging.Logger; + +import hudson.PluginManager; +import hudson.util.Service; + +/** + * Strategy pattern of the various key decision making during the Hudson initialization. + * + *

    + * Because the act of initializing plugins is a part of the Hudson initialization, + * this extension point cannot be implemented in a plugin. You need to place your jar + * inside {@code WEB-INF/lib} instead. + * + *

    + * To register, put {@link MetaInfServices} on your implementation. + * + * @author Kohsuke Kawaguchi + */ +public class InitStrategy { + /** + * Returns the list of *.hpi and *.hpl to expand and load. + * + *

    + * Normally we look at {@code $HUDSON_HOME/plugins/*.hpi} and *.hpl. + * + * @return + * never null but can be empty. The list can contain different versions of the same plugin, + * and when that happens, Hudson will ignore all but the first one in the list. + */ + public List listPluginArchives(PluginManager pm) throws IOException { + File[] hpi = pm.rootDir.listFiles(new FilterByExtension(".hpi")); // plugin jar file + File[] hpl = pm.rootDir.listFiles(new FilterByExtension(".hpl")); // linked plugin. for debugging. + if (hpi==null || hpl==null) + throw new IOException("Hudson is unable to create " + pm.rootDir + "\nPerhaps its security privilege is insufficient"); + + List r = new ArrayList(); + + // the ordering makes sure that during the debugging we get proper precedence among duplicates. + // for example, while doing "mvn hpi:run" on a plugin that's bundled with Hudson, we want to the + // *.hpl file to override the bundled hpi file. + getBundledPluginsFromProperty(r); + r.addAll(Arrays.asList(hpl)); + r.addAll(Arrays.asList(hpi)); + + return r; + } + + /** + * Lists up additional bundled plugins from the system property. + * + * For use in the "mvn hudson-dev:run". + * TODO: maven-hpi-plugin should inject its own InitStrategy instead of having this in the core. + */ + protected void getBundledPluginsFromProperty(List r) { + String hplProperty = System.getProperty("hudson.bundled.plugins"); + if (hplProperty != null) { + for (String hplLocation : hplProperty.split(",")) { + File hpl = new File(hplLocation.trim()); + if (hpl.exists()) + r.add(hpl); + else + LOGGER.warning("bundled plugin " + hplLocation + " does not exist"); + } + } + } + + /** + * Selectively skip some of the initialization tasks. + * + * @return + * true to skip the execution. + */ + public boolean skipInitTask(Task task) { + return false; + } + + + /** + * Obtains the instance to be used. + */ + public static InitStrategy get(ClassLoader cl) throws IOException { + List r = Service.loadInstances(cl, InitStrategy.class); + if (r.isEmpty()) return new InitStrategy(); // default + + InitStrategy s = r.get(0); + LOGGER.fine("Using "+s+" as InitStrategy"); + return s; + } + + private static final Logger LOGGER = Logger.getLogger(InitStrategy.class.getName()); + + private static class FilterByExtension implements FilenameFilter { + private final String extension; + + public FilterByExtension(String extension) { + this.extension = extension; + } + + public boolean accept(File dir, String name) { + return name.endsWith(extension) // plugin jar file + || name.endsWith(".hpl"); // linked plugin. for debugging. + } + } +} diff --git a/core/src/main/java/hudson/init/Initializer.java b/core/src/main/java/hudson/init/Initializer.java new file mode 100644 index 0000000000000000000000000000000000000000..5d5bea452693cf801fac93b713845ef8d393c8b8 --- /dev/null +++ b/core/src/main/java/hudson/init/Initializer.java @@ -0,0 +1,100 @@ +/* + * The MIT License + * + * Copyright (c) 2004-2009, Sun Microsystems, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.init; + +import org.jvnet.hudson.annotation_indexer.Indexed; +import org.jvnet.hudson.reactor.Task; + +import java.lang.annotation.Documented; +import static java.lang.annotation.ElementType.METHOD; +import java.lang.annotation.Retention; +import static java.lang.annotation.RetentionPolicy.RUNTIME; +import java.lang.annotation.Target; + +import static hudson.init.InitMilestone.STARTED; +import static hudson.init.InitMilestone.COMPLETED; + +/** + * Placed on static methods to indicate that this method is to be run during the Hudson start up to perform + * some sort of initialization tasks. + * + *

    Example

    + *
    +   @Initializer(after=JOB_LOADED)
    +   public static void init() throws IOException {
    +       ....
    +   }
    + * 
    + * + * @author Kohsuke Kawaguchi + */ +@Indexed +@Documented +@Retention(RUNTIME) +@Target(METHOD) +public @interface Initializer { + /** + * Indicates that the specified milestone is necessary before executing this initializer. + * + *

    + * This has the identical purpose as {@link #requires()}, but it's separated to allow better type-safety + * when using {@link InitMilestone} as a requirement (since enum member definitions need to be constant.) + */ + InitMilestone after() default STARTED; + + /** + * Indicates that this initializer is a necessary step before achieving the specified milestone. + * + *

    + * This has the identical purpose as {@link #attains()}. See {@link #after()} for why there are two things + * to achieve the same goal. + */ + InitMilestone before() default COMPLETED; + + /** + * Indicates the milestones necessary before executing this initializer. + */ + String[] requires() default {}; + + /** + * Indicates the milestones that this initializer contributes to. + * + * A milestone is considered attained if all the initializers that attains the given milestone + * completes. So it works as a kind of join. + */ + String[] attains() default {}; + + /** + * Key in Messages.properties that represents what this task is about. Used for rendering the progress. + * Defaults to "${short class name}.${method Name}". + */ + String displayName() default ""; + + /** + * Should the failure in this task prevent Hudson from starting up? + * + * @see Task#failureIsFatal() + */ + boolean fatal() default true; +} diff --git a/core/src/main/java/hudson/init/InitializerFinder.java b/core/src/main/java/hudson/init/InitializerFinder.java new file mode 100644 index 0000000000000000000000000000000000000000..3203e77eac92ca0845743bcc019edbe9e881d385 --- /dev/null +++ b/core/src/main/java/hudson/init/InitializerFinder.java @@ -0,0 +1,196 @@ +/* + * The MIT License + * + * Copyright (c) 2004-2009, Sun Microsystems, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.init; + +import org.jvnet.hudson.annotation_indexer.Index; +import org.jvnet.hudson.reactor.Milestone; +import org.jvnet.hudson.reactor.Task; +import org.jvnet.hudson.reactor.TaskBuilder; +import org.jvnet.hudson.reactor.MilestoneImpl; +import org.jvnet.hudson.reactor.Reactor; +import org.jvnet.localizer.ResourceBundleHolder; + +import java.io.IOException; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import java.lang.reflect.Modifier; +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashSet; +import java.util.List; +import java.util.Set; +import java.util.logging.Logger; + +import hudson.model.Hudson; + +import static java.util.logging.Level.WARNING; + +/** + * Discovers initialization tasks from {@link Initializer}. + * + * @author Kohsuke Kawaguchi + */ +public class InitializerFinder extends TaskBuilder { + private final ClassLoader cl; + + private final Set discovered = new HashSet(); + + public InitializerFinder(ClassLoader cl) { + this.cl = cl; + } + + public InitializerFinder() { + this(Thread.currentThread().getContextClassLoader()); + } + + public Collection discoverTasks(Reactor session) throws IOException { + List result = new ArrayList(); + for (Method e : Index.list(Initializer.class,cl,Method.class)) { + if (!discovered.add(e)) + continue; // already reported once + + if (!Modifier.isStatic(e.getModifiers())) + throw new IOException(e+" is not a static method"); + + Initializer i = e.getAnnotation(Initializer.class); + if (i==null) continue; // stale index + + result.add(new TaskImpl(i, e)); + } + return result; + } + + /** + * Obtains the display name of the given initialization task + */ + protected String getDisplayNameOf(Method e, Initializer i) { + try { + Class c = e.getDeclaringClass(); + ResourceBundleHolder rb = ResourceBundleHolder.get(c.getClassLoader().loadClass(c.getPackage().getName() + ".Messages")); + + String key = i.displayName(); + if (key.length()==0) return c.getSimpleName()+"."+e.getName(); + return rb.format(key); + } catch (ClassNotFoundException x) { + LOGGER.log(WARNING, "Failed to load "+x.getMessage()+" for "+e.toString(),x); + return ""; + } + } + + /** + * Invokes the given initialization method. + */ + protected void invoke(Method e) { + try { + Class[] pt = e.getParameterTypes(); + Object[] args = new Object[pt.length]; + for (int i=0; i type) { + if (type== Hudson.class) + return Hudson.getInstance(); + throw new IllegalArgumentException("Unable to inject "+type); + } + + /** + * Task implementation. + */ + public class TaskImpl implements Task { + final Collection requires; + final Collection attains; + private final Initializer i; + private final Method e; + + private TaskImpl(Initializer i, Method e) { + this.i = i; + this.e = e; + requires = toMilestones(i.requires(), i.after()); + attains = toMilestones(i.attains(), i.before()); + } + + /** + * {@link Initializer} annotaion on the {@linkplain #getMethod() method} + */ + public Initializer getAnnotation() { + return i; + } + + /** + * Static method that runs the initialization, that this task wraps. + */ + public Method getMethod() { + return e; + } + + public Collection requires() { + return requires; + } + + public Collection attains() { + return attains; + } + + public String getDisplayName() { + return getDisplayNameOf(e, i); + } + + public boolean failureIsFatal() { + return i.fatal(); + } + + public void run(Reactor session) { + invoke(e); + } + + public String toString() { + return e.toString(); + } + + private Collection toMilestones(String[] tokens, InitMilestone m) { + List r = new ArrayList(); + for (String s : tokens) { + try { + r.add(InitMilestone.valueOf(s)); + } catch (IllegalArgumentException x) { + r.add(new MilestoneImpl(s)); + } + } + r.add(m); + return r; + } + } + + private static final Logger LOGGER = Logger.getLogger(InitializerFinder.class.getName()); +} diff --git a/core/src/main/java/hudson/init/impl/GroovyInitScript.java b/core/src/main/java/hudson/init/impl/GroovyInitScript.java new file mode 100644 index 0000000000000000000000000000000000000000..b8d29077150219a73619742285980cdec0b2a9e3 --- /dev/null +++ b/core/src/main/java/hudson/init/impl/GroovyInitScript.java @@ -0,0 +1,65 @@ +/* + * The MIT License + * + * Copyright (c) 2004-2009, Sun Microsystems, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.init.impl; + +import groovy.lang.GroovyCodeSource; +import groovy.lang.GroovyShell; + +import java.io.File; +import java.io.IOException; +import java.net.URL; +import java.util.logging.Logger; + +import hudson.model.Hudson; +import static hudson.init.InitMilestone.JOB_LOADED; +import hudson.init.Initializer; + +/** + * Run the initialization script, if it exists. + * + * @author Kohsuke Kawaguchi + */ +public class GroovyInitScript { + @Initializer(after=JOB_LOADED) + public static void init(Hudson h) throws IOException { + URL bundledInitScript = h.servletContext.getResource("/WEB-INF/init.groovy"); + if (bundledInitScript!=null) { + LOGGER.info("Executing bundled init script: "+bundledInitScript); + execute(new GroovyCodeSource(bundledInitScript)); + } + + File initScript = new File(h.getRootDir(),"init.groovy"); + if(initScript.exists()) { + LOGGER.info("Executing "+initScript); + execute(new GroovyCodeSource(initScript)); + } + } + + private static void execute(GroovyCodeSource initScript) throws IOException { + GroovyShell shell = new GroovyShell(Hudson.getInstance().getPluginManager().uberClassLoader); + shell.evaluate(initScript); + } + + private static final Logger LOGGER = Logger.getLogger(GroovyInitScript.class.getName()); +} diff --git a/core/src/main/java/hudson/init/impl/InitialUserContent.java b/core/src/main/java/hudson/init/impl/InitialUserContent.java new file mode 100644 index 0000000000000000000000000000000000000000..c00e89ca0b1604f143df4c71b67f3974b86be827 --- /dev/null +++ b/core/src/main/java/hudson/init/impl/InitialUserContent.java @@ -0,0 +1,48 @@ +/* + * The MIT License + * + * Copyright (c) 2004-2009, Sun Microsystems, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.init.impl; + +import static hudson.init.InitMilestone.JOB_LOADED; +import hudson.init.Initializer; +import hudson.model.Hudson; +import hudson.model.Messages; +import org.apache.commons.io.FileUtils; + +import java.io.File; +import java.io.IOException; + +/** + * Prepares userContent folder and put a readme if it doesn't exist. + * @author Kohsuke Kawaguchi + */ +public class InitialUserContent { + @Initializer(after=JOB_LOADED) + public static void init(Hudson h) throws IOException { + File userContentDir = new File(h.getRootDir(), "userContent"); + if(!userContentDir.exists()) { + userContentDir.mkdirs(); + FileUtils.writeStringToFile(new File(userContentDir,"readme.txt"), Messages.Hudson_USER_CONTENT_README()); + } + } +} diff --git a/core/src/main/java/hudson/init/package-info.java b/core/src/main/java/hudson/init/package-info.java new file mode 100644 index 0000000000000000000000000000000000000000..b19a2a705e0260408dfc5dddb0c7a3c2ff83a7fc --- /dev/null +++ b/core/src/main/java/hudson/init/package-info.java @@ -0,0 +1,47 @@ +/* + * The MIT License + * + * Copyright (c) 2004-2009, Sun Microsystems, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +/** + * Logic for Hudson startup. + * + *

    + * Hudson's start up is based on the same idea as the modern Unix init mechanism like initng/upstart/SMF. + * It first builds a set of {@link Task}s that are units of the initialization work, and have them declare + * dependencies among themselves. For example, jobs are only loaded after all the plugins are initialized, + * and restoring the build queue requires all the jobs to be loaded. + * + *

    + * Such micro-scopic dependencies are organized into a bigger directed acyclic graph, which is then executed + * via {@link Session}. During execution of the reactor, additional tasks can be discovred and added to + * the DAG. We use this additional indirection to: + * + *

      + *
    1. Perform initialization in parallel where possible. + *
    2. Provide progress report on where we are in the initialization. + *
    3. Collect status of the initialization and their failures. + *
    + */ +package hudson.init; + +import org.jvnet.hudson.reactor.Task; \ No newline at end of file diff --git a/core/src/main/java/hudson/lifecycle/Lifecycle.java b/core/src/main/java/hudson/lifecycle/Lifecycle.java index 2f84e1ce8469ddf565cecca43670b99626234dda..e138a565ffcebe4cb98baeea192a8c14dbf982a5 100644 --- a/core/src/main/java/hudson/lifecycle/Lifecycle.java +++ b/core/src/main/java/hudson/lifecycle/Lifecycle.java @@ -24,6 +24,8 @@ package hudson.lifecycle; import hudson.ExtensionPoint; +import hudson.Functions; +import hudson.Util; import hudson.model.Hudson; import java.io.File; @@ -54,11 +56,12 @@ public abstract class Lifecycle implements ExtensionPoint { */ public synchronized static Lifecycle get() { if(INSTANCE==null) { + Lifecycle instance; String p = System.getProperty("hudson.lifecycle"); if(p!=null) { try { ClassLoader cl = Hudson.getInstance().getPluginManager().uberClassLoader; - INSTANCE = (Lifecycle)cl.loadClass(p).newInstance(); + instance = (Lifecycle)cl.loadClass(p).newInstance(); } catch (InstantiationException e) { InstantiationError x = new InstantiationError(e.getMessage()); x.initCause(e); @@ -73,20 +76,35 @@ public abstract class Lifecycle implements ExtensionPoint { throw x; } } else { - // if run on embedded container, attempt to use UnixEmbeddedContainerLifecycle - if(System.getProperty("executable-war")!=null && !Hudson.isWindows()) { + if(Functions.isWindows()) { + instance = new Lifecycle() { + @Override + public void verifyRestartable() throws RestartNotSupportedException { + throw new RestartNotSupportedException( + "Default Windows lifecycle does not support restart."); + } + }; + } else if (System.getenv("SMF_FMRI")!=null && System.getenv("SMF_RESTARTER")!=null) { + // when we are run by Solaris SMF, these environment variables are set. + instance = new SolarisSMFLifecycle(); + } else { + // if run on Unix, we can do restart try { - INSTANCE = new UnixEmbeddedContainerLifecycle(); - } catch (IOException e) { + instance = new UnixLifecycle(); + } catch (final IOException e) { LOGGER.log(Level.WARNING, "Failed to install embedded lifecycle implementation",e); + instance = new Lifecycle() { + @Override + public void verifyRestartable() throws RestartNotSupportedException { + throw new RestartNotSupportedException( + "Failed to install embedded lifecycle implementation, so cannot restart: " + e, e); + } + }; } } - - // use the default one. final fallback. - if(INSTANCE==null) - INSTANCE = new Lifecycle() { - }; } + assert instance != null; + INSTANCE = instance; } return INSTANCE; @@ -121,7 +139,17 @@ public abstract class Lifecycle implements ExtensionPoint { // but let's be defensive if(dest==null) throw new IOException("hudson.war location is not known."); + // backing up the old hudson.war before it gets lost due to upgrading + // (newly downloaded hudson.war and 'backup' (hudson.war.tmp) are the same files + // unless we are trying to rewrite hudson.war by a backup itself + File bak = new File(dest.getPath() + ".bak"); + if (!by.equals(bak)) + FileUtils.copyFile(dest, bak); + FileUtils.copyFile(by, dest); + // we don't want to keep backup if we are downgrading + if (by.equals(bak)&&bak.exists()) + bak.delete(); } /** @@ -129,17 +157,8 @@ public abstract class Lifecycle implements ExtensionPoint { */ public boolean canRewriteHudsonWar() { // if we don't know where hudson.war is, it's impossible to replace. - return getHudsonWar()!=null; - } - - private boolean isOverridden(String methodName, Class... types) { - // the rewriteHudsonWar method isn't overridden. - try { - return !getClass().getMethod(methodName, types).equals( - Lifecycle.class.getMethod(methodName,types)); - } catch (NoSuchMethodException e) { - throw new AssertionError(e); - } + File f = getHudsonWar(); + return f!=null && f.canWrite(); } /** @@ -161,9 +180,28 @@ public abstract class Lifecycle implements ExtensionPoint { /** * Can the {@link #restart()} method restart Hudson? + * + * @throws RestartNotSupportedException + * If the restart is not supported, throw this exception and explain the cause. + */ + public void verifyRestartable() throws RestartNotSupportedException { + // the rewriteHudsonWar method isn't overridden. + if (!Util.isOverridden(Lifecycle.class,getClass(), "restart")) + throw new RestartNotSupportedException("Restart is not supported in this running mode (" + + getClass().getName() + ")."); + } + + /** + * The same as {@link #verifyRestartable()} except the status is indicated by the return value, + * not by an exception. */ public boolean canRestart() { - return isOverridden("restart"); + try { + verifyRestartable(); + return true; + } catch (RestartNotSupportedException e) { + return false; + } } private static final Logger LOGGER = Logger.getLogger(Lifecycle.class.getName()); diff --git a/core/src/main/java/hudson/lifecycle/RestartNotSupportedException.java b/core/src/main/java/hudson/lifecycle/RestartNotSupportedException.java new file mode 100644 index 0000000000000000000000000000000000000000..08bae8291c06af03f556dbeb8c512ddd6f661bb3 --- /dev/null +++ b/core/src/main/java/hudson/lifecycle/RestartNotSupportedException.java @@ -0,0 +1,16 @@ +package hudson.lifecycle; + +/** + * Indicates that the {@link Lifecycle} doesn't support restart. + * + * @author Kohsuke Kawaguchi + */ +public class RestartNotSupportedException extends Exception { + public RestartNotSupportedException(String reason) { + super(reason); + } + + public RestartNotSupportedException(String reason, Throwable cause) { + super(reason, cause); + } +} diff --git a/core/src/main/java/hudson/lifecycle/SolarisSMFLifecycle.java b/core/src/main/java/hudson/lifecycle/SolarisSMFLifecycle.java index 8251f3a7f0713fbfd9fb6b8459620845deeec5b0..160d06d6c1ffa3797cf80555b2c216e381a95463 100644 --- a/core/src/main/java/hudson/lifecycle/SolarisSMFLifecycle.java +++ b/core/src/main/java/hudson/lifecycle/SolarisSMFLifecycle.java @@ -1,7 +1,7 @@ /* * The MIT License * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi + * Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -23,6 +23,7 @@ */ package hudson.lifecycle; +import hudson.model.Hudson; import java.io.IOException; /** @@ -36,6 +37,9 @@ public class SolarisSMFLifecycle extends Lifecycle { */ @Override public void restart() throws IOException, InterruptedException { + Hudson h = Hudson.getInstance(); + if (h != null) + h.cleanUp(); System.exit(0); } } diff --git a/core/src/main/java/hudson/lifecycle/UnixEmbeddedContainerLifecycle.java b/core/src/main/java/hudson/lifecycle/UnixEmbeddedContainerLifecycle.java deleted file mode 100644 index 7c996a046cd092f88fe577f35db49ccc2cbb1485..0000000000000000000000000000000000000000 --- a/core/src/main/java/hudson/lifecycle/UnixEmbeddedContainerLifecycle.java +++ /dev/null @@ -1,77 +0,0 @@ -/* - * The MIT License - * - * Copyright (c) 2004-2009, Sun Microsystems, Inc. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ -package hudson.lifecycle; - -import com.sun.akuma.JavaVMArguments; -import com.sun.akuma.Daemon; -import com.sun.jna.Native; -import com.sun.jna.StringArray; - -import java.io.IOException; - -import static hudson.util.jna.GNUCLibrary.*; - -/** - * {@link Lifecycle} implementation when Hudson runs on the embedded - * servlet container on Unix. - * - *

    - * Restart by exec to self. - * - * @author Kohsuke Kawaguchi - * @since 1.304 - */ -public class UnixEmbeddedContainerLifecycle extends Lifecycle { - private JavaVMArguments args; - - public UnixEmbeddedContainerLifecycle() throws IOException { - try { - args = JavaVMArguments.current(); - } catch (UnsupportedOperationException e) { - // can't restart - } - } - - @Override - public void restart() throws IOException, InterruptedException { - // close all files upon exec, except stdin, stdout, and stderr - int sz = LIBC.getdtablesize(); - for(int i=3; i + * Restart by exec to self. + * + * @author Kohsuke Kawaguchi + * @since 1.304 + */ +public class UnixLifecycle extends Lifecycle { + private JavaVMArguments args; + private Throwable failedToObtainArgs; + + public UnixLifecycle() throws IOException { + try { + args = JavaVMArguments.current(); + } catch (UnsupportedOperationException e) { + // can't restart + failedToObtainArgs = e; + } catch (LinkageError e) { + // see HUDSON-3875 + failedToObtainArgs = e; + } + } + + @Override + public void restart() throws IOException, InterruptedException { + Hudson h = Hudson.getInstance(); + if (h != null) + h.cleanUp(); + + // close all files upon exec, except stdin, stdout, and stderr + int sz = LIBC.getdtablesize(); + for(int i=3; i, A * Called when the install menu is selected */ public void actionPerformed(ActionEvent e) { - int r = JOptionPane.showConfirmDialog(dialog, - "This will install a slave agent as a Windows service,\n" + - "so that this slave will connect to Hudson as soon as the machine boots.\n" + - "Do you want to proceed with installation?", - Messages.WindowsInstallerLink_DisplayName(), - JOptionPane.OK_CANCEL_OPTION); - if(r!=JOptionPane.OK_OPTION) return; - - if(!DotNet.isInstalled(2,0)) { - JOptionPane.showMessageDialog(dialog,".NET Framework 2.0 or later is required for this feature", - Messages.WindowsInstallerLink_DisplayName(), - JOptionPane.ERROR_MESSAGE); - return; - } + try { + int r = JOptionPane.showConfirmDialog(dialog, + Messages.WindowsSlaveInstaller_ConfirmInstallation(), + Messages.WindowsInstallerLink_DisplayName(), OK_CANCEL_OPTION); + if(r!=JOptionPane.OK_OPTION) return; - final File dir = new File(rootDir); + if(!DotNet.isInstalled(2,0)) { + JOptionPane.showMessageDialog(dialog,Messages.WindowsSlaveInstaller_DotNetRequired(), + Messages.WindowsInstallerLink_DisplayName(), ERROR_MESSAGE); + return; + } + final File dir = new File(rootDir); + if (!dir.exists()) { + JOptionPane.showMessageDialog(dialog,Messages.WindowsSlaveInstaller_RootFsDoesntExist(rootDir), + Messages.WindowsInstallerLink_DisplayName(), ERROR_MESSAGE); + return; + } - try { final File slaveExe = new File(dir, "hudson-slave.exe"); FileUtils.copyURLToFile(getClass().getResource("/windows-service/hudson.exe"), slaveExe); // write out the descriptor - URL jnlp = new URL(engine.getHudsonUrl(),"computer/"+engine.slaveName+"/slave-agent.jnlp"); - String xml = generateSlaveXml(System.getProperty("java.home")+"\\bin\\java.exe", "-jnlpUrl "+jnlp.toExternalForm()); + URL jnlp = new URL(engine.getHudsonUrl(),"computer/"+Util.rawEncode(engine.slaveName)+"/slave-agent.jnlp"); + String xml = generateSlaveXml( + generateServiceId(rootDir), + System.getProperty("java.home")+"\\bin\\java.exe", "-jnlpUrl "+jnlp.toExternalForm()); FileUtils.writeStringToFile(new File(dir, "hudson-slave.xml"),xml,"UTF-8"); // copy slave.jar @@ -127,27 +131,24 @@ public class WindowsSlaveInstaller implements Callable, A // install as a service ByteArrayOutputStream baos = new ByteArrayOutputStream(); StreamTaskListener task = new StreamTaskListener(baos); - r = new LocalLauncher(task).launch(new String[]{slaveExe.getPath(), "install"}, new String[0], task.getLogger(), new FilePath(dir)).join(); + r = new LocalLauncher(task).launch().cmds(slaveExe, "install").stdout(task).pwd(dir).join(); if(r!=0) { JOptionPane.showMessageDialog( - dialog,baos.toString(),"Error", - JOptionPane.ERROR_MESSAGE); + dialog,baos.toString(),"Error", ERROR_MESSAGE); return; } r = JOptionPane.showConfirmDialog(dialog, - "Installation was successful. Would you like to\n" + - "Stop this slave agent and start the newly installed service?", - Messages.WindowsInstallerLink_DisplayName(), - JOptionPane.OK_CANCEL_OPTION); + Messages.WindowsSlaveInstaller_InstallationSuccessful(), + Messages.WindowsInstallerLink_DisplayName(), OK_CANCEL_OPTION); if(r!=JOptionPane.OK_OPTION) return; // let the service start after we close our connection, to avoid conflicts Runtime.getRuntime().addShutdownHook(new Thread("service starter") { public void run() { try { - StreamTaskListener task = new StreamTaskListener(System.out); - int r = new LocalLauncher(task).launch(new String[]{slaveExe.getPath(), "start"}, new String[0], task.getLogger(), new FilePath(dir)).join(); + StreamTaskListener task = StreamTaskListener.fromStdout(); + int r = new LocalLauncher(task).launch().cmds(slaveExe, "start").stdout(task).pwd(dir).join(); task.getLogger().println(r==0?"Successfully started":"start service failed. Exit code="+r); } catch (IOException e) { e.printStackTrace(); @@ -157,17 +158,20 @@ public class WindowsSlaveInstaller implements Callable, A } }); System.exit(0); - } catch (Exception t) { + } catch (Exception t) {// this runs as a JNLP app, so if we let an exeption go, we'll never find out why it failed StringWriter sw = new StringWriter(); t.printStackTrace(new PrintWriter(sw)); - JOptionPane.showMessageDialog( - dialog,sw.toString(),"Error", - JOptionPane.ERROR_MESSAGE); + JOptionPane.showMessageDialog(dialog,sw.toString(),"Error", ERROR_MESSAGE); } } - public static String generateSlaveXml(String java, String args) throws IOException { + public static String generateServiceId(String slaveRoot) throws IOException { + return "hudsonslave-"+slaveRoot.replace(':','_').replace('\\','_').replace('/','_'); + } + + public static String generateSlaveXml(String id, String java, String args) throws IOException { String xml = IOUtils.toString(WindowsSlaveInstaller.class.getResourceAsStream("/windows-service/hudson-slave.xml"), "UTF-8"); + xml = xml.replace("@ID@", id); xml = xml.replace("@JAVA@", java); xml = xml.replace("@ARGS@", args); return xml; diff --git a/core/src/main/java/hudson/logging/LogRecorder.java b/core/src/main/java/hudson/logging/LogRecorder.java index db350bb88b3bf05c3b349baac6ec909b0c09c737..a90d835767a5eb4a3247c9c4ad336f30679cc67a 100644 --- a/core/src/main/java/hudson/logging/LogRecorder.java +++ b/core/src/main/java/hudson/logging/LogRecorder.java @@ -25,10 +25,12 @@ package hudson.logging; import com.thoughtworks.xstream.XStream; import hudson.BulkChange; +import hudson.Util; import hudson.XmlFile; import hudson.model.AbstractModelObject; import hudson.model.Hudson; import hudson.model.Saveable; +import hudson.model.listeners.SaveableListener; import hudson.util.CopyOnWriteList; import hudson.util.RingBufferLogHandler; import hudson.util.XStream2; @@ -42,6 +44,7 @@ import java.io.File; import java.io.IOException; import java.util.List; import java.util.Arrays; +import java.util.Locale; import java.util.logging.Level; import java.util.logging.LogRecord; import java.util.logging.Logger; @@ -95,7 +98,7 @@ public class LogRecorder extends AbstractModelObject implements Saveable { @DataBoundConstructor public Target(String name, String level) { - this(name,Level.parse(level.toUpperCase())); + this(name,Level.parse(level.toUpperCase(Locale.ENGLISH))); } public Level getLevel() { @@ -105,7 +108,8 @@ public class LogRecorder extends AbstractModelObject implements Saveable { public boolean includes(LogRecord r) { if(r.getLevel().intValue() < level) return false; // below the threshold - if(!r.getLoggerName().startsWith(name)) + String logName = r.getLoggerName(); + if(logName==null || !logName.startsWith(name)) return false; // not within this logger String rest = r.getLoggerName().substring(name.length()); @@ -155,12 +159,16 @@ public class LogRecorder extends AbstractModelObject implements Saveable { public synchronized void doConfigSubmit( StaplerRequest req, StaplerResponse rsp ) throws IOException, ServletException { JSONObject src = req.getSubmittedForm(); - String newName = src.getString("name"); + String newName = src.getString("name"), redirect = "."; + XmlFile oldFile = null; if(!name.equals(newName)) { + Hudson.checkGoodName(newName); + oldFile = getConfigFile(); // rename getParent().logRecorders.remove(name); this.name = newName; getParent().logRecorders.put(name,this); + redirect = "../" + Util.rawEncode(newName) + '/'; } List newTargets = req.bindJSONToList(Target.class, src.get("targets")); @@ -169,7 +177,8 @@ public class LogRecorder extends AbstractModelObject implements Saveable { targets.replaceBy(newTargets); save(); - rsp.sendRedirect2("."); + if (oldFile!=null) oldFile.delete(); + rsp.sendRedirect2(redirect); } /** @@ -187,6 +196,7 @@ public class LogRecorder extends AbstractModelObject implements Saveable { public synchronized void save() throws IOException { if(BulkChange.contains(this)) return; getConfigFile().write(this); + SaveableListener.fireOnChange(this, getConfigFile()); } /** @@ -196,6 +206,13 @@ public class LogRecorder extends AbstractModelObject implements Saveable { requirePOST(); getConfigFile().delete(); getParent().logRecorders.remove(name); + // Disable logging for all our targets, + // then reenable all other loggers in case any also log the same targets + for (Target t : targets) + t.getLogger().setLevel(null); + for (LogRecorder log : getParent().logRecorders.values()) + for (Target t : log.targets) + t.enable(); rsp.sendRedirect2(".."); } diff --git a/core/src/main/java/hudson/logging/LogRecorderManager.java b/core/src/main/java/hudson/logging/LogRecorderManager.java index 4761c025131578c2e91adab1cdf27366a585cd24..c2f9748176b2b0f509f0514fc6b8612e37772c04 100644 --- a/core/src/main/java/hudson/logging/LogRecorderManager.java +++ b/core/src/main/java/hudson/logging/LogRecorderManager.java @@ -1,7 +1,7 @@ /* * The MIT License * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi + * Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -25,6 +25,8 @@ package hudson.logging; import hudson.FeedAdapter; import hudson.Functions; +import hudson.init.Initializer; +import static hudson.init.InitMilestone.PLUGINS_PREPARED; import hudson.model.AbstractModelObject; import hudson.model.Hudson; import hudson.model.RSS; @@ -34,16 +36,18 @@ import org.apache.commons.io.filefilter.WildcardFileFilter; import org.kohsuke.stapler.QueryParameter; import org.kohsuke.stapler.StaplerRequest; import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.HttpResponse; +import org.kohsuke.stapler.HttpRedirect; import javax.servlet.ServletException; import java.io.File; import java.io.FileFilter; import java.io.IOException; -import java.text.ParseException; import java.util.ArrayList; import java.util.Calendar; import java.util.GregorianCalendar; import java.util.List; +import java.util.Locale; import java.util.Map; import java.util.logging.Level; import java.util.logging.LogRecord; @@ -61,14 +65,14 @@ public class LogRecorderManager extends AbstractModelObject { public transient final Map logRecorders = new CopyOnWriteMap.Tree(); public String getDisplayName() { - return "log"; + return Messages.LogRecorderManager_DisplayName(); } public String getSearchUrl() { return "/log"; } - public LogRecorder getDynamic(String token, StaplerRequest req, StaplerResponse rsp) { + public LogRecorder getDynamic(String token) { return getLogRecorder(token); } @@ -96,32 +100,27 @@ public class LogRecorderManager extends AbstractModelObject { /** * Creates a new log recorder. */ - public void doNewLogRecorder( StaplerRequest req, StaplerResponse rsp, @QueryParameter String name) throws IOException, ServletException { - try { - Hudson.checkGoodName(name); - } catch (ParseException e) { - sendError(e, req, rsp); - return; - } + public HttpResponse doNewLogRecorder(@QueryParameter String name) { + Hudson.checkGoodName(name); logRecorders.put(name,new LogRecorder(name)); // redirect to the config screen - rsp.sendRedirect2(name+"/configure"); + return new HttpRedirect(name+"/configure"); } /** * Configure the logging level. */ - public void doConfigLogger(StaplerResponse rsp, @QueryParameter String name, @QueryParameter String level) throws IOException { + public HttpResponse doConfigLogger(@QueryParameter String name, @QueryParameter String level) { Hudson.getInstance().checkPermission(Hudson.ADMINISTER); Level lv; if(level.equals("inherit")) lv = null; else - lv = Level.parse(level.toUpperCase()); + lv = Level.parse(level.toUpperCase(Locale.ENGLISH)); Logger.getLogger(name).setLevel(lv); - rsp.sendRedirect2("all"); + return new HttpRedirect("levels"); } /** @@ -175,4 +174,9 @@ public class LogRecorderManager extends AbstractModelObject { } },req,rsp); } + + @Initializer(before=PLUGINS_PREPARED) + public static void init(Hudson h) throws IOException { + h.getLog().load(); + } } diff --git a/core/src/main/java/hudson/matrix/Axis.java b/core/src/main/java/hudson/matrix/Axis.java index 5324081760477c1cb16f3b357abaa42dc06fd5df..cd0a3387e194add2159f738f99bcff7bd26c5bbf 100644 --- a/core/src/main/java/hudson/matrix/Axis.java +++ b/core/src/main/java/hudson/matrix/Axis.java @@ -23,15 +23,22 @@ */ package hudson.matrix; +import hudson.DescriptorExtensionList; +import hudson.ExtensionPoint; import hudson.Util; +import hudson.model.AbstractDescribableImpl; +import hudson.model.Hudson; +import hudson.util.QuotedStringTokenizer; import org.kohsuke.stapler.StaplerRequest; import org.kohsuke.stapler.DataBoundConstructor; import java.util.ArrayList; +import java.util.Collections; import java.util.Enumeration; import java.util.Iterator; import java.util.List; import java.util.Arrays; +import java.util.Map; /** * Configuration axis. @@ -44,15 +51,21 @@ import java.util.Arrays; * * @author Kohsuke Kawaguchi */ -public final class Axis implements Comparable, Iterable { +public class Axis extends AbstractDescribableImpl implements Comparable, Iterable, ExtensionPoint { /** * Name of this axis. * Used as a variable name. + * + * @deprecated as of 1.373 + * Use {@link #getName()} */ public final String name; /** * Possible values for this axis. + * + * @deprecated as of 1.373 + * Use {@link #getValues()} */ public final List values; @@ -73,29 +86,32 @@ public final class Axis implements Comparable, Iterable { * Axis with empty values need to be removed later. */ @DataBoundConstructor - public Axis(String name, String value) { + public Axis(String name, String valueString) { this.name = name; - this.values = new ArrayList(Arrays.asList(Util.tokenize(value))); + this.values = new ArrayList(Arrays.asList(Util.tokenize(valueString))); } /** - * Returns ture if this axis is a system-reserved axis - * that has special treatment. + * Returns true if this axis is a system-reserved axis + * that has used to have af special treatment. + * + * @deprecated as of 1.373 + * System vs user difference are generalized into extension point. */ public boolean isSystem() { - return name.equals("jdk") || name.equals("label"); + return false; } public Iterator iterator() { - return values.iterator(); + return getValues().iterator(); } public int size() { - return values.size(); + return getValues().size(); } public String value(int index) { - return values.get(index); + return getValues().get(index); } /** @@ -113,20 +129,46 @@ public final class Axis implements Comparable, Iterable { return this.name.compareTo(that.name); } + /** + * Name of this axis. + * Used as a variable name. + */ + public String getName() { + return name; + } + + /** + * Possible values for this axis. + */ + public List getValues() { + return Collections.unmodifiableList(values); + } + + @Override + public AxisDescriptor getDescriptor() { + return (AxisDescriptor)super.getDescriptor(); + } + + @Override public String toString() { return new StringBuilder().append(name).append("={").append(Util.join(values,",")).append('}').toString(); } /** * Used for generating the config UI. - * If the axis is big and occupies a lot of space, use NL for separator - * to display multi-line text + * If the axis is big and occupies a lot of space, use newline for separator + * to display multi-line text. */ public String getValueString() { int len=0; for (String value : values) len += value.length(); - return Util.join(values, len>30 ?"\n":" "); + char delim = len>30 ? '\n' : ' '; + // Build string connected with delimiter, quoting as needed + StringBuilder buf = new StringBuilder(len+values.size()*3); + for (String value : values) + buf.append(delim).append(QuotedStringTokenizer.quote(value,"")); + return buf.substring(1); } /** @@ -147,4 +189,33 @@ public final class Axis implements Comparable, Iterable { return null; return new Axis(name,values); } + + /** + * Previously we used to persist {@link Axis}, but now those are divided into subtypes. + * So upon deserialization, resolve to the proper type. + */ + public Object readResolve() { + if (getClass()!=Axis.class) return this; + + if (getName().equals("jdk")) + return new JDKAxis(getValues()); + if (getName().equals("label")) + return new LabelAxis(getName(),getValues()); + return new TextAxis(getName(),getValues()); + } + + /** + * Returns all the registered {@link AxisDescriptor}s. + */ + public static DescriptorExtensionList all() { + return Hudson.getInstance().getDescriptorList(Axis.class); + } + + /** + * Converts the selected value (which is among {@link #values}) and adds that to the given map, + * which serves as the build variables. + */ + public void addBuildVariable(String value, Map map) { + map.put(name,value); + } } diff --git a/core/src/main/java/hudson/matrix/AxisDescriptor.java b/core/src/main/java/hudson/matrix/AxisDescriptor.java new file mode 100644 index 0000000000000000000000000000000000000000..04ae7728fbd7800c8696b7560f96c72fab995c6b --- /dev/null +++ b/core/src/main/java/hudson/matrix/AxisDescriptor.java @@ -0,0 +1,67 @@ +/* + * The MIT License + * + * Copyright (c) 2010, InfraDNA, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.matrix; + +import hudson.Util; +import hudson.model.Descriptor; +import hudson.model.Failure; +import hudson.model.Hudson; +import hudson.util.FormValidation; +import org.kohsuke.stapler.QueryParameter; + +/** + * {@link Descriptor} for {@link Axis} + * + * @author Kohsuke Kawaguchi + */ +public abstract class AxisDescriptor extends Descriptor { + protected AxisDescriptor(Class clazz) { + super(clazz); + } + + protected AxisDescriptor() { + } + + /** + * Return false if the user shouldn't be able to create thie axis from the UI. + */ + public boolean isInstantiable() { + return true; + } + + /** + * Makes sure that the given name is good as a axis name. + */ + public FormValidation doCheckName(@QueryParameter String value) { + if(Util.fixEmpty(value)==null) + return FormValidation.ok(); + + try { + Hudson.checkGoodName(value); + return FormValidation.ok(); + } catch (Failure e) { + return FormValidation.error(e.getMessage()); + } + } +} diff --git a/core/src/main/java/hudson/matrix/AxisList.java b/core/src/main/java/hudson/matrix/AxisList.java index 0fc8ce16615b360832cf46e581a9dd2d903899ac..79f15cfb63e3db15d969ba2240bef3fb35c09bfe 100644 --- a/core/src/main/java/hudson/matrix/AxisList.java +++ b/core/src/main/java/hudson/matrix/AxisList.java @@ -1,7 +1,7 @@ /* * The MIT License * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi + * Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -24,11 +24,12 @@ package hudson.matrix; import com.thoughtworks.xstream.XStream; -import com.thoughtworks.xstream.converters.Converter; +import hudson.Util; import hudson.util.RobustCollectionConverter; import java.util.ArrayList; import java.util.Collection; +import java.util.Collections; import java.util.Iterator; import java.util.Arrays; @@ -41,7 +42,7 @@ public class AxisList extends ArrayList { public AxisList() { } - public AxisList(Collection c) { + public AxisList(Collection c) { super(c); } @@ -57,6 +58,14 @@ public class AxisList extends ArrayList { return null; } + /** + * Creates a subset of the list that only contains the type assignable to the specified type. + */ + public AxisList subList(Class subType) { + return new AxisList(Util.filter(this,subType)); + } + + @Override public boolean add(Axis axis) { return axis!=null && super.add(axis); } @@ -66,6 +75,7 @@ public class AxisList extends ArrayList { */ public Iterable list() { final int[] base = new int[size()]; + if (base.length==0) return Collections.emptyList(); int b = 1; for( int i=size()-1; i>=0; i-- ) { @@ -111,6 +121,7 @@ public class AxisList extends ArrayList { super(xs); } + @Override public boolean canConvert(Class type) { return type==AxisList.class; } diff --git a/core/src/main/java/hudson/matrix/Combination.java b/core/src/main/java/hudson/matrix/Combination.java index d11d41ff852a87851d06d6a6f80fe4724afff8e8..6f4066e5b504fb554c7b03bf80b5a57531b18588 100644 --- a/core/src/main/java/hudson/matrix/Combination.java +++ b/core/src/main/java/hudson/matrix/Combination.java @@ -25,6 +25,7 @@ package hudson.matrix; import hudson.Util; +import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.Collections; @@ -53,7 +54,7 @@ public final class Combination extends TreeMap implements Compara public Combination(AxisList axisList, List values) { for(int i=0; i implements Compara super.put(e.getKey(),e.getValue()); } + public String get(Axis a) { + return get(a.getName()); + } + /** * Obtains the continuous unique index number of this {@link Combination} * in the given {@link AxisList}. @@ -73,7 +78,7 @@ public final class Combination extends TreeMap implements Compara int r = 0; for (Axis a : axis) { r *= a.size(); - r += a.indexOf(get(a.name)); + r += a.indexOf(get(a)); } return r; } @@ -92,7 +97,7 @@ public final class Combination extends TreeMap implements Compara private long toModuloIndex(AxisList axis) { long r = 0; for (Axis a : axis) { - r += a.indexOf(get(a.name)); + r += a.indexOf(get(a)); r *= 31; } return r; @@ -150,12 +155,22 @@ public final class Combination extends TreeMap implements Compara StringBuilder buf = new StringBuilder(); for (Axis a : subset) { if(buf.length()>0) buf.append(','); - buf.append(a.name).append('=').append(get(a.name)); + buf.append(a.getName()).append('=').append(get(a)); } if(buf.length()==0) buf.append("default"); // special case to avoid 0-length name. return buf.toString(); } - + + /** + * Gets the values that correspond to the specified axes, in their order. + */ + public List values(Collection axes) { + List r = new ArrayList(axes.size()); + for (Axis a : axes) + r.add(get(a)); + return r; + } + /** * Converts to the ID string representation: * axisName=value,axisName=value,... @@ -175,6 +190,7 @@ public final class Combination extends TreeMap implements Compara return buf.toString(); } + @Override public String toString() { return toString(',','='); } @@ -217,12 +233,12 @@ public final class Combination extends TreeMap implements Compara Map axisByValue = new HashMap(); for (Axis a : axes) { - for (String v : a.values) { + for (String v : a.getValues()) { Axis old = axisByValue.put(v,a); if(old!=null) { // these two axes have colliding values - nonUniqueAxes.add(old.name); - nonUniqueAxes.add(a.name); + nonUniqueAxes.add(old.getName()); + nonUniqueAxes.add(a.getName()); } } } @@ -239,18 +255,22 @@ public final class Combination extends TreeMap implements Compara } // read-only + @Override public void clear() { throw new UnsupportedOperationException(); } + @Override public void putAll(Map map) { throw new UnsupportedOperationException(); } + @Override public String put(String key, String value) { throw new UnsupportedOperationException(); } + @Override public String remove(Object key) { throw new UnsupportedOperationException(); } diff --git a/core/src/main/java/hudson/matrix/DefaultAxisDescriptor.java b/core/src/main/java/hudson/matrix/DefaultAxisDescriptor.java new file mode 100644 index 0000000000000000000000000000000000000000..96fb461499571fb07e49acd69713dda9d2cbd16a --- /dev/null +++ b/core/src/main/java/hudson/matrix/DefaultAxisDescriptor.java @@ -0,0 +1,48 @@ +/* + * The MIT License + * + * Copyright (c) 2010, InfraDNA, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.matrix; + +import hudson.Extension; + +/** + * {@link AxisDescriptor} for manually entered default axis. + * + * @author Kohsuke Kawaguchi + */ +@Extension +public class DefaultAxisDescriptor extends AxisDescriptor { + public DefaultAxisDescriptor() { + super(Axis.class); + } + + @Override + public String getDisplayName() { + return "Axis"; + } + + @Override + public boolean isInstantiable() { + return false; + } +} diff --git a/core/src/main/java/hudson/matrix/JDKAxis.java b/core/src/main/java/hudson/matrix/JDKAxis.java new file mode 100644 index 0000000000000000000000000000000000000000..6f80871e91a3334f358887d763c4a76111f727e1 --- /dev/null +++ b/core/src/main/java/hudson/matrix/JDKAxis.java @@ -0,0 +1,72 @@ +/* + * The MIT License + * + * Copyright (c) 2010, InfraDNA, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.matrix; + +import hudson.Extension; +import hudson.model.Hudson; +import org.kohsuke.stapler.DataBoundConstructor; + +import java.util.Arrays; +import java.util.List; + +/** + * {@link Axis} that selects available JDKs. + * + * @author Kohsuke Kawaguchi + */ +public class JDKAxis extends Axis { + /** + * JDK axis was used to be stored as a plain "Axis" with the name "jdk", + * so it cannot be configured by any other name. + */ + public JDKAxis(List values) { + super("jdk", values); + } + + @DataBoundConstructor + public JDKAxis(String[] values) { + super("jdk", Arrays.asList(values)); + } + + @Override + public boolean isSystem() { + return true; + } + + @Extension + public static class DescriptorImpl extends AxisDescriptor { + @Override + public String getDisplayName() { + return Messages.JDKAxis_DisplayName(); + } + + /** + * If there's no JDK configured, there's no point in this axis. + */ + @Override + public boolean isInstantiable() { + return !Hudson.getInstance().getJDKs().isEmpty(); + } + } +} diff --git a/core/src/main/java/hudson/matrix/LabelAxis.java b/core/src/main/java/hudson/matrix/LabelAxis.java new file mode 100644 index 0000000000000000000000000000000000000000..d71e8e37e225717dc7410a22b7c8874be6c45e86 --- /dev/null +++ b/core/src/main/java/hudson/matrix/LabelAxis.java @@ -0,0 +1,64 @@ +/* + * The MIT License + * + * Copyright (c) 2010, InfraDNA, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.matrix; + +import hudson.Extension; +import hudson.model.Hudson; +import org.kohsuke.stapler.DataBoundConstructor; + +import java.util.List; + +/** + * {@link Axis} that selects label expressions. + * + * @author Kohsuke Kawaguchi + */ +public class LabelAxis extends Axis { + @DataBoundConstructor + public LabelAxis(String name, List values) { + super(name, values); + } + + @Override + public boolean isSystem() { + return true; + } + + @Extension + public static class DescriptorImpl extends AxisDescriptor { + @Override + public String getDisplayName() { + return Messages.LabelAxis_DisplayName(); + } + + /** + * If there's no distributed build set up, it's pointless to provide this axis. + */ + @Override + public boolean isInstantiable() { + Hudson h = Hudson.getInstance(); + return !h.getNodes().isEmpty() || !h.clouds.isEmpty(); + } + } +} diff --git a/core/src/main/java/hudson/matrix/Layouter.java b/core/src/main/java/hudson/matrix/Layouter.java index 474f3b0045bbdad95341317a19c7a29b8715555f..da01cd06c307a045ea9b9fe96e109922d05fbaee 100644 --- a/core/src/main/java/hudson/matrix/Layouter.java +++ b/core/src/main/java/hudson/matrix/Layouter.java @@ -87,8 +87,11 @@ public abstract class Layouter { z.add(nonTrivialAxes.get(0)); break; case 2: - x.add(nonTrivialAxes.get(0)); - y.add(nonTrivialAxes.get(1)); + // use the longer axis in Y + Axis a = nonTrivialAxes.get(0); + Axis b = nonTrivialAxes.get(1); + x.add(a.size() > b.size() ? b : a); + y.add(a.size() > b.size() ? a : b); break; default: // for size > 3, use x and y, and try to pack y more @@ -111,6 +114,16 @@ public abstract class Layouter { return calc(x,n); } + /** + * Computes the repeat count of n-th X-axis. + */ + public int repeatX(int n) { + int w = 1; + for( n--; n>=0; n-- ) + w *= x.get(n).size(); + return w; + } + /** * Computes the width of n-th Y-axis. */ diff --git a/core/src/main/java/hudson/matrix/LinkedLogRotator.java b/core/src/main/java/hudson/matrix/LinkedLogRotator.java index 8aa421e9cb15e7f6f520a8c86e7ae0e13079b4d8..4f3d62a5d5386bff36bbe86369b5f0e5ad91c0a9 100644 --- a/core/src/main/java/hudson/matrix/LinkedLogRotator.java +++ b/core/src/main/java/hudson/matrix/LinkedLogRotator.java @@ -1,7 +1,7 @@ /* * The MIT License * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi + * Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -40,15 +40,25 @@ import java.io.IOException; * @author Kohsuke Kawaguchi */ final class LinkedLogRotator extends LogRotator { + LinkedLogRotator(int artifactDaysToKeep, int artifactNumToKeep) { + super(-1, -1, artifactDaysToKeep, artifactNumToKeep); + } + + /** + * @deprecated since 1.369 + * Use {@link #LinkedLogRotator(int, int)} + */ LinkedLogRotator() { - super(-1,-1); + super(-1, -1, -1, -1); } @Override public void perform(Job _job) throws IOException, InterruptedException { - // copy it to the array because we'll be deleting builds as we go. + // Let superclass handle clearing artifacts, if configured: + super.perform(_job); MatrixConfiguration job = (MatrixConfiguration) _job; + // copy it to the array because we'll be deleting builds as we go. for( MatrixRun r : job.getBuilds().toArray(new MatrixRun[0]) ) { if(job.getParent().getBuildByNumber(r.getNumber())==null) r.delete(); diff --git a/core/src/main/java/hudson/matrix/MatrixAggregator.java b/core/src/main/java/hudson/matrix/MatrixAggregator.java index e9cb20c6159ee5ff877ec3e87483dfa5caf01ba6..f82a5919ce15feaa83806fdca8b472c3a19d11c1 100644 --- a/core/src/main/java/hudson/matrix/MatrixAggregator.java +++ b/core/src/main/java/hudson/matrix/MatrixAggregator.java @@ -25,8 +25,6 @@ package hudson.matrix; import hudson.ExtensionPoint; import hudson.Launcher; -import hudson.model.Action; -import hudson.model.Build; import hudson.model.BuildListener; import hudson.tasks.BuildStep; import hudson.tasks.Publisher; diff --git a/core/src/main/java/hudson/matrix/MatrixBuild.java b/core/src/main/java/hudson/matrix/MatrixBuild.java index 046502c4381668a123b30e2ce6a140266e4e7159..3d13ad35b289541bdaf6a45a16078417feb9d24b 100644 --- a/core/src/main/java/hudson/matrix/MatrixBuild.java +++ b/core/src/main/java/hudson/matrix/MatrixBuild.java @@ -23,6 +23,7 @@ */ package hudson.matrix; +import hudson.Util; import hudson.model.AbstractBuild; import hudson.model.AbstractProject; import hudson.model.BuildListener; @@ -30,10 +31,13 @@ import hudson.model.Executor; import hudson.model.Fingerprint; import hudson.model.Hudson; import hudson.model.JobProperty; +import hudson.model.Node; import hudson.model.ParametersAction; import hudson.model.Queue; import hudson.model.Result; import hudson.model.Cause.UpstreamCause; +import hudson.slaves.WorkspaceList; +import hudson.slaves.WorkspaceList.Lease; import hudson.tasks.Publisher; import java.io.File; @@ -42,6 +46,7 @@ import java.io.PrintStream; import java.util.ArrayList; import java.util.Calendar; import java.util.Collection; +import java.util.HashSet; import java.util.List; import org.kohsuke.stapler.StaplerRequest; @@ -80,7 +85,15 @@ public class MatrixBuild extends AbstractBuild { public final class RunPtr { public final Combination combination; private RunPtr(Combination c) { this.combination=c; } - public MatrixRun getRun() { return MatrixBuild.this.getRun(combination); } + + public MatrixRun getRun() { + return MatrixBuild.this.getRun(combination); + } + + public String getShortUrl() { + return Util.rawEncode(combination.toString()); + } + public String getTooltip() { MatrixRun r = getRun(); if(r!=null) return r.getIconColor().getDescription(); @@ -92,7 +105,8 @@ public class MatrixBuild extends AbstractBuild { } public Layouter getLayouter() { - return new Layouter(axes) { + // axes can be null if build page is access right when build starts + return axes == null ? null : new Layouter(axes) { protected RunPtr getT(Combination c) { return new RunPtr(c); } @@ -114,11 +128,14 @@ public class MatrixBuild extends AbstractBuild { */ public List getRuns() { List r = new ArrayList(); - for(MatrixConfiguration c : getParent().getItems()) - r.add(c.getBuildByNumber(getNumber())); + for(MatrixConfiguration c : getParent().getItems()) { + MatrixRun b = c.getBuildByNumber(getNumber()); + if (b != null) r.add(b); + } return r; } + @Override public Object getDynamic(String token, StaplerRequest req, StaplerResponse rsp) { try { MatrixRun item = getRun(Combination.fromString(token)); @@ -173,84 +190,59 @@ public class MatrixBuild extends AbstractBuild { axes = p.getAxes(); Collection activeConfigurations = p.getActiveConfigurations(); final int n = getNumber(); + + String touchStoneFilter = p.getTouchStoneCombinationFilter(); + Collection touchStoneConfigurations = new HashSet(); + Collection delayedConfigurations = new HashSet(); + for (MatrixConfiguration c: activeConfigurations) { + if (touchStoneFilter != null && c.getCombination().evalGroovyExpression(p.getAxes(), p.getTouchStoneCombinationFilter())) { + touchStoneConfigurations.add(c); + } else { + delayedConfigurations.add(c); + } + } for (MatrixAggregator a : aggregators) if(!a.startBuild()) return Result.FAILURE; try { - for(MatrixConfiguration c : activeConfigurations) { - logger.println(Messages.MatrixBuild_Triggering(c.getDisplayName())); - ParametersAction parameters = getAction(ParametersAction.class); - if (parameters != null) { - c.scheduleBuild(parameters, new UpstreamCause(MatrixBuild.this)); - } else { - c.scheduleBuild(new UpstreamCause(MatrixBuild.this)); - } - } - - // this occupies an executor unnecessarily. - // it would be nice if this can be placed in a temproary executor. + if(!p.isRunSequentially()) + for(MatrixConfiguration c : touchStoneConfigurations) + scheduleConfigurationBuild(logger, c); Result r = Result.SUCCESS; - for (MatrixConfiguration c : activeConfigurations) { - String whyInQueue = ""; - long startTime = System.currentTimeMillis(); - - // wait for the completion - int appearsCancelledCount = 0; - while(true) { - MatrixRun b = c.getBuildByNumber(n); - - // two ways to get beyond this. one is that the build starts and gets done, - // or the build gets cancelled before it even started. - Result buildResult = null; - if(b!=null && !b.isBuilding()) - buildResult = b.getResult(); - Queue.Item qi = c.getQueueItem(); - if(b==null && qi==null) - appearsCancelledCount++; - else - appearsCancelledCount = 0; - - if(appearsCancelledCount>=5) { - // there's conceivably a race condition in computating b and qi, as their computation - // are not synchronized. There are indeed several reports of Hudson incorrectly assuming - // builds being cancelled. See - // http://www.nabble.com/Master-slave-problem-tt14710987.html and also - // http://www.nabble.com/Anyone-using-AccuRev-plugin--tt21634577.html#a21671389 - // because of this, we really make sure that the build is cancelled by doing this 5 - // times over 5 seconds - logger.println(Messages.MatrixBuild_AppearsCancelled(c.getDisplayName())); - buildResult = Result.ABORTED; - } + for (MatrixConfiguration c : touchStoneConfigurations) { + if(p.isRunSequentially()) + scheduleConfigurationBuild(logger, c); + Result buildResult = waitForCompletion(listener, c); + r = r.combine(buildResult); + } + + if (p.getTouchStoneResultCondition() != null && r.isWorseThan(p.getTouchStoneResultCondition())) { + logger.printf("Touchstone configurations resulted in %s, so aborting...\n", r); + return r; + } + + if(!p.isRunSequentially()) + for(MatrixConfiguration c : delayedConfigurations) + scheduleConfigurationBuild(logger, c); - if(buildResult!=null) { - r = r.combine(buildResult); - if(b!=null) - for (MatrixAggregator a : aggregators) - if(!a.endRun(b)) - return Result.FAILURE; - break; - } else { - if(qi!=null) { - // if the build seems to be stuck in the queue, display why - String why = qi.getWhy(); - if(!why.equals(whyInQueue) && System.currentTimeMillis()-startTime>5000) { - logger.println(c.getDisplayName()+" is still in the queue: "+why); - whyInQueue = why; - } - } - } - Thread.sleep(1000); - } + for (MatrixConfiguration c : delayedConfigurations) { + if(p.isRunSequentially()) + scheduleConfigurationBuild(logger, c); + Result buildResult = waitForCompletion(listener, c); + r = r.combine(buildResult); } return r; } catch( InterruptedException e ) { logger.println("Aborted"); return Result.ABORTED; - } finally { + } catch (AggregatorFailureException e) { + return Result.FAILURE; + } + finally { // if the build was aborted in the middle. Cancel all the configuration builds. Queue q = Hudson.getInstance().getQueue(); synchronized(q) {// avoid micro-locking in q.cancel. @@ -269,10 +261,84 @@ public class MatrixBuild extends AbstractBuild { } } } + + private Result waitForCompletion(BuildListener listener, MatrixConfiguration c) throws InterruptedException, IOException, AggregatorFailureException { + String whyInQueue = ""; + long startTime = System.currentTimeMillis(); + + // wait for the completion + int appearsCancelledCount = 0; + while(true) { + MatrixRun b = c.getBuildByNumber(getNumber()); + + // two ways to get beyond this. one is that the build starts and gets done, + // or the build gets cancelled before it even started. + Result buildResult = null; + if(b!=null && !b.isBuilding()) + buildResult = b.getResult(); + Queue.Item qi = c.getQueueItem(); + if(b==null && qi==null) + appearsCancelledCount++; + else + appearsCancelledCount = 0; + + if(appearsCancelledCount>=5) { + // there's conceivably a race condition in computating b and qi, as their computation + // are not synchronized. There are indeed several reports of Hudson incorrectly assuming + // builds being cancelled. See + // http://www.nabble.com/Master-slave-problem-tt14710987.html and also + // http://www.nabble.com/Anyone-using-AccuRev-plugin--tt21634577.html#a21671389 + // because of this, we really make sure that the build is cancelled by doing this 5 + // times over 5 seconds + listener.getLogger().println(Messages.MatrixBuild_AppearsCancelled(c.getDisplayName())); + buildResult = Result.ABORTED; + } + + if(buildResult!=null) { + for (MatrixAggregator a : aggregators) + if(!a.endRun(b)) + throw new AggregatorFailureException(); + return buildResult; + } + + if(qi!=null) { + // if the build seems to be stuck in the queue, display why + String why = qi.getWhy(); + if(!why.equals(whyInQueue) && System.currentTimeMillis()-startTime>5000) { + listener.getLogger().println(c.getDisplayName()+" is still in the queue: "+why); + whyInQueue = why; + } + } + + Thread.sleep(1000); + } + } + + private void scheduleConfigurationBuild(PrintStream logger, MatrixConfiguration c) { + logger.println(Messages.MatrixBuild_Triggering(c.getDisplayName())); + c.scheduleBuild(getAction(ParametersAction.class), new UpstreamCause(MatrixBuild.this)); + } public void post2(BuildListener listener) throws Exception { for (MatrixAggregator a : aggregators) a.endBuild(); } + + @Override + protected Lease decideWorkspace(Node n, WorkspaceList wsl) throws IOException, InterruptedException { + String customWorkspace = getProject().getCustomWorkspace(); + if (customWorkspace != null) { + // we allow custom workspaces to be concurrently used between jobs. + return Lease.createDummyLease(n.getRootPath().child(getEnvironment(listener).expand(customWorkspace))); + } + return super.decideWorkspace(n,wsl); + } + } + + /** + * A private exception to help maintain the correct control flow after extracting the 'waitForCompletion' method + */ + private static class AggregatorFailureException extends Exception {} + } diff --git a/core/src/main/java/hudson/matrix/MatrixConfiguration.java b/core/src/main/java/hudson/matrix/MatrixConfiguration.java index 64488acb1e5e33ff4a05321aabed13cb33f28cb8..f9409ddce7d761a7fe856b6a04437747ce96f1cb 100644 --- a/core/src/main/java/hudson/matrix/MatrixConfiguration.java +++ b/core/src/main/java/hudson/matrix/MatrixConfiguration.java @@ -1,7 +1,7 @@ /* * The MIT License * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Tom Huybrechts + * Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Tom Huybrechts * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -23,7 +23,7 @@ */ package hudson.matrix; -import hudson.FilePath; +import hudson.Util; import hudson.util.DescribableList; import hudson.model.AbstractBuild; import hudson.model.Cause; @@ -35,10 +35,10 @@ import hudson.model.Item; import hudson.model.ItemGroup; import hudson.model.JDK; import hudson.model.Label; -import hudson.model.Node; import hudson.model.ParametersAction; import hudson.model.Project; import hudson.model.SCMedItem; +import hudson.model.Queue.NonBlockingTask; import hudson.model.Cause.LegacyCodeCause; import hudson.scm.SCM; import hudson.tasks.BuildWrapper; @@ -55,7 +55,7 @@ import java.util.Map; * * @author Kohsuke Kawaguchi */ -public class MatrixConfiguration extends Project implements SCMedItem { +public class MatrixConfiguration extends Project implements SCMedItem, NonBlockingTask { /** * The actual value combination. */ @@ -71,6 +71,7 @@ public class MatrixConfiguration extends Project setCombination(c); } + @Override public void onLoad(ItemGroup parent, String name) throws IOException { // directory name is not a name for us --- it's taken from the combination name super.onLoad(parent, combination.toString()); @@ -117,6 +118,7 @@ public class MatrixConfiguration extends Project return n; } + @Override public int assignBuildNumber() throws IOException { int nb = getNextBuildNumber(); MatrixRun r = getLastBuild(); @@ -130,6 +132,7 @@ public class MatrixConfiguration extends Project return combination.toCompactString(getParent().getAxes()); } + @Override public MatrixProject getParent() { return (MatrixProject)super.getParent(); } @@ -141,18 +144,6 @@ public class MatrixConfiguration extends Project return combination; } - @Override - public FilePath getWorkspace() { - Node node = getLastBuiltOn(); - if(node==null) node = Hudson.getInstance(); - FilePath ws = node.getWorkspaceFor(getParent()); - if(ws==null) return null; - if(useShortWorkspaceName) - return ws.child(digestName); - else - return ws.child(getCombination().toString('/','/')); - } - /** * Since {@link MatrixConfiguration} is always invoked from {@link MatrixRun} * once and just once, there's no point in having a quiet period. @@ -162,6 +153,14 @@ public class MatrixConfiguration extends Project return 0; } + /** + * Inherit the value from the parent. + */ + @Override + public int getScmCheckoutRetryCount() { + return getParent().getScmCheckoutRetryCount(); + } + @Override public boolean isConfigurable() { return false; @@ -183,23 +182,20 @@ public class MatrixConfiguration extends Project return lastBuild; } - @Override - public boolean isFingerprintConfigured() { - // TODO - return false; - } - @Override protected void buildDependencyGraph(DependencyGraph graph) { } + @Override public MatrixConfiguration asProject() { return this; } @Override public Label getAssignedLabel() { - return Hudson.getInstance().getLabel(combination.get("label")); + // combine all the label axes by &&. + String expr = Util.join(combination.values(getParent().getAxes().subList(LabelAxis.class)), "&&"); + return Hudson.getInstance().getLabel(Util.fixEmpty(expr)); } @Override @@ -240,6 +236,11 @@ public class MatrixConfiguration extends Project return getParent().getBuildWrappers(); } + @Override + public DescribableList> getBuildWrappersList() { + return getParent().getBuildWrappersList(); + } + @Override public Publisher getPublisher(Descriptor descriptor) { return getParent().getPublisher(descriptor); @@ -247,20 +248,27 @@ public class MatrixConfiguration extends Project @Override public LogRotator getLogRotator() { - return new LinkedLogRotator(); + LogRotator lr = getParent().getLogRotator(); + return new LinkedLogRotator(lr != null ? lr.getArtifactDaysToKeep() : -1, + lr != null ? lr.getArtifactNumToKeep() : -1); } @Override public SCM getScm() { return getParent().getScm(); } - + + /*package*/ String getDigestName() { + return digestName; + } + /** * JDK cannot be set on {@link MatrixConfiguration} because * it's controlled by {@link MatrixProject}. * @deprecated * Not supported. */ + @Override public void setJDK(JDK jdk) throws IOException { throw new UnsupportedOperationException(); } @@ -269,6 +277,7 @@ public class MatrixConfiguration extends Project * @deprecated * Value is controlled by {@link MatrixProject}. */ + @Override public void setLogRotator(LogRotator logRotator) { throw new UnsupportedOperationException(); } @@ -301,9 +310,13 @@ public class MatrixConfiguration extends Project public boolean scheduleBuild(ParametersAction parameters) { return scheduleBuild(parameters, new LegacyCodeCause()); } - - public boolean scheduleBuild(ParametersAction parameters, Cause c) { - return Hudson.getInstance().getQueue().add(this, getQuietPeriod(), parameters, new CauseAction(c)); - } - + + /** + * + * @param parameters + * Can be null. + */ + public boolean scheduleBuild(ParametersAction parameters, Cause c) { + return Hudson.getInstance().getQueue().schedule(this, getQuietPeriod(), parameters, new CauseAction(c))!=null; + } } diff --git a/core/src/main/java/hudson/matrix/MatrixProject.java b/core/src/main/java/hudson/matrix/MatrixProject.java index c83786fa4d52c5616dc229170085e6c709a52ea5..ecfa6a7f45b30402284d2a3dc6ad7ebfc6f09a68 100644 --- a/core/src/main/java/hudson/matrix/MatrixProject.java +++ b/core/src/main/java/hudson/matrix/MatrixProject.java @@ -24,14 +24,15 @@ package hudson.matrix; import hudson.CopyOnWrite; -import hudson.FilePath; -import hudson.XmlFile; -import hudson.Util; import hudson.Extension; +import hudson.Util; +import hudson.XmlFile; import hudson.model.AbstractProject; import hudson.model.Action; +import hudson.model.BuildableItemWithBuildWrappers; import hudson.model.DependencyGraph; import hudson.model.Descriptor; +import hudson.model.Descriptor.FormException; import hudson.model.Hudson; import hudson.model.Item; import hudson.model.ItemGroup; @@ -39,12 +40,12 @@ import hudson.model.Items; import hudson.model.JDK; import hudson.model.Job; import hudson.model.Label; -import hudson.model.Node; +import hudson.model.Queue.FlyweightTask; +import hudson.model.ResourceController; +import hudson.model.Result; import hudson.model.SCMedItem; import hudson.model.Saveable; import hudson.model.TopLevelItem; -import hudson.model.TopLevelItemDescriptor; -import hudson.model.Descriptor.FormException; import hudson.tasks.BuildStep; import hudson.tasks.BuildStepDescriptor; import hudson.tasks.BuildWrapper; @@ -54,7 +55,13 @@ import hudson.tasks.Publisher; import hudson.triggers.Trigger; import hudson.util.CopyOnWriteMap; import hudson.util.DescribableList; +import net.sf.json.JSONObject; +import org.kohsuke.stapler.HttpResponse; +import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.TokenList; +import javax.servlet.ServletException; import java.io.File; import java.io.FileFilter; import java.io.IOException; @@ -63,21 +70,15 @@ import java.util.Collection; import java.util.Collections; import java.util.HashMap; import java.util.HashSet; -import java.util.Iterator; import java.util.LinkedHashSet; import java.util.List; import java.util.Map; -import java.util.Set; import java.util.Map.Entry; +import java.util.Set; import java.util.logging.Level; import java.util.logging.Logger; -import javax.servlet.ServletException; - -import net.sf.json.JSONObject; - -import org.kohsuke.stapler.StaplerRequest; -import org.kohsuke.stapler.StaplerResponse; +import static hudson.Util.*; /** * {@link Job} that allows you to run multiple different configurations @@ -85,11 +86,9 @@ import org.kohsuke.stapler.StaplerResponse; * * @author Kohsuke Kawaguchi */ -public class MatrixProject extends AbstractProject implements TopLevelItem, SCMedItem, ItemGroup, Saveable { +public class MatrixProject extends AbstractProject implements TopLevelItem, SCMedItem, ItemGroup, Saveable, FlyweightTask, BuildableItemWithBuildWrappers { /** - * Other configuration axes. - * - * This also includes special axis "label" and "jdk" if they are configured. + * Configuration axes. */ private volatile AxisList axes = new AxisList(); @@ -130,6 +129,24 @@ public class MatrixProject extends AbstractProject im @CopyOnWrite private transient /*final*/ Set activeConfigurations = new LinkedHashSet(); + private boolean runSequentially; + + /** + * Filter to select a number of combinations to build first + */ + private String touchStoneCombinationFilter; + + /** + * Required result on the touchstone combinations, in order to + * continue with the rest + */ + private Result touchStoneResultCondition; + + /** + * See {@link #setCustomWorkspace(String)}. + */ + private String customWorkspace; + public MatrixProject(String name) { super(Hudson.getInstance(), name); } @@ -147,18 +164,32 @@ public class MatrixProject extends AbstractProject im save(); } + /** + * If true, {@link MatrixRun}s are run sequentially, instead of running in parallel. + * + * TODO: this should be subsumed by {@link ResourceController}. + */ + public boolean isRunSequentially() { + return runSequentially; + } + + public void setRunSequentially(boolean runSequentially) throws IOException { + this.runSequentially = runSequentially; + save(); + } + /** * Sets the combination filter. * - * @param combinationFilter the combinationFilter to set - */ - public void setCombinationFilter(String combinationFilter) throws IOException { - this.combinationFilter = combinationFilter; - rebuildConfigurations(); - save(); - } - - /** + * @param combinationFilter the combinationFilter to set + */ + public void setCombinationFilter(String combinationFilter) throws IOException { + this.combinationFilter = combinationFilter; + rebuildConfigurations(); + save(); + } + + /** * Obtains the combination filter, used to trim down the size of the matrix. * *

    @@ -169,42 +200,73 @@ public class MatrixProject extends AbstractProject im * Namely, this expression is evaluated for each axis value combination, and only when it evaluates to true, * a corresponding {@link MatrixConfiguration} will be created and built. * - * @return can be null. + * @return can be null. * @since 1.279 - */ - public String getCombinationFilter() { - return combinationFilter; - } - - protected void updateTransientActions() { - synchronized(transientActions) { - super.updateTransientActions(); - - for (BuildStep step : builders) { - Action a = step.getProjectAction(this); - if(a!=null) - transientActions.add(a); - } - for (BuildStep step : publishers) { - Action a = step.getProjectAction(this); - if(a!=null) - transientActions.add(a); - } - for (BuildWrapper step : buildWrappers) { - Action a = step.getProjectAction(this); - if(a!=null) - transientActions.add(a); - } - for (Trigger trigger : triggers) { - Action a = trigger.getProjectAction(); - if(a!=null) - transientActions.add(a); - } - } + */ + public String getCombinationFilter() { + return combinationFilter; + } + + public String getTouchStoneCombinationFilter() { + return touchStoneCombinationFilter; + } + + public void setTouchStoneCombinationFilter( + String touchStoneCombinationFilter) { + this.touchStoneCombinationFilter = touchStoneCombinationFilter; + } + + public Result getTouchStoneResultCondition() { + return touchStoneResultCondition; + } + + public void setTouchStoneResultCondition(Result touchStoneResultCondition) { + this.touchStoneResultCondition = touchStoneResultCondition; + } + + public String getCustomWorkspace() { + return customWorkspace; + } + + /** + * User-specified workspace directory, or null if it's up to Hudson. + * + *

    + * Normally a matrix project uses the workspace location assigned by its parent container, + * but sometimes people have builds that have hard-coded paths. + * + *

    + * This is not {@link File} because it may have to hold a path representation on another OS. + * + *

    + * If this path is relative, it's resolved against {@link Node#getRootPath()} on the node where this workspace + * is prepared. + */ + public void setCustomWorkspace(String customWorkspace) throws IOException { + this.customWorkspace= customWorkspace; + } + + @Override + protected List createTransientActions() { + List r = super.createTransientActions(); + + for (BuildStep step : builders) + r.addAll(step.getProjectActions(this)); + for (BuildStep step : publishers) + r.addAll(step.getProjectActions(this)); + for (BuildWrapper step : buildWrappers) + r.addAll(step.getProjectActions(this)); + for (Trigger trigger : triggers) + r.addAll(trigger.getProjectActions()); + + return r; } /** * Gets the subset of {@link AxisList} that are not system axes. + * + * @deprecated as of 1.373 + * System vs user difference are generalized into extension point. */ public List getUserAxes() { List r = new ArrayList(); @@ -222,6 +284,7 @@ public class MatrixProject extends AbstractProject im }; } + @Override public void onLoad(ItemGroup parent, String name) throws IOException { super.onLoad(parent,name); Collections.sort(axes); // perhaps the file was edited on disk and the sort order might have been broken @@ -231,6 +294,7 @@ public class MatrixProject extends AbstractProject im rebuildConfigurations(); } + @Override public void logRotate() throws IOException, InterruptedException { super.logRotate(); // perform the log rotation of inactive configurations to make sure @@ -278,7 +342,7 @@ public class MatrixProject extends AbstractProject im for (File v : valuesDir) { Map c = new HashMap(combination); - c.put(axis,v.getName()); + c.put(axis,TokenList.decode(v.getName())); try { XmlFile config = Items.getConfigFile(v); @@ -392,14 +456,19 @@ public class MatrixProject extends AbstractProject im return getRootDirFor(child.getCombination()); } + public void onRenamed(MatrixConfiguration item, String oldName, String newName) throws IOException { + throw new UnsupportedOperationException(); + } + public File getRootDirFor(Combination combination) { File f = getConfigurationsDir(); for (Entry e : combination.entrySet()) - f = new File(f,"axis-"+e.getKey()+'/'+e.getValue()); + f = new File(f,"axis-"+e.getKey()+'/'+Util.rawEncode(e.getValue())); f.getParentFile().mkdirs(); return f; } + @Override public Hudson getParent() { return Hudson.getInstance(); } @@ -433,12 +502,9 @@ public class MatrixProject extends AbstractProject im * @return never null */ public Set

    ,R extends AbstractBuild> extends Run implements Queue.Executable { + /** + * Set if we want the blame information to flow from upstream to downstream build. + */ + private static final boolean upstreamCulprits = Boolean.getBoolean("hudson.upstreamCulprits"); + /** * Name of the slave this project was built on. * Null or "" if built by the master. (null happens when we read old record that didn't have this information.) */ private String builtOn; + /** + * The file path on the node that performed a build. Kept as a string since {@link FilePath} is not serializable into XML. + * @since 1.319 + */ + private String workspace; + /** * Version of Hudson that built this. */ @@ -113,7 +133,7 @@ public abstract class AbstractBuild

    ,R extends Abs * @since 1.137 */ private volatile Set culprits; - + /** * During the build this field remembers {@link BuildWrapper.Environment}s created by * {@link BuildWrapper}. This design is bit ugly but forced due to compatibility. @@ -143,7 +163,7 @@ public abstract class AbstractBuild

    ,R extends Abs * null, for example if the slave that this build run no longer exists. */ public Node getBuiltOn() { - if(builtOn==null || builtOn.equals("")) + if (builtOn==null || builtOn.equals("")) return Hudson.getInstance(); else return Hudson.getInstance().getNode(builtOn); @@ -174,6 +194,59 @@ public abstract class AbstractBuild

    ,R extends Abs return Functions.getNearestAncestorUrl(Stapler.getCurrentRequest(),getParent())+'/'; } + /** + * Gets the directory where this build is being built. + * + *

    + * Note to implementors: to control where the workspace is created, override + * {@link AbstractRunner#decideWorkspace(Node,WorkspaceList)}. + * + * @return + * null if the workspace is on a slave that's not connected. Note that once the build is completed, + * the workspace may be used to build something else, so the value returned from this method may + * no longer show a workspace as it was used for this build. + * @since 1.319 + */ + public final FilePath getWorkspace() { + if (workspace==null) return null; + Node n = getBuiltOn(); + if (n==null) return null; + return n.createPath(workspace); + } + + /** + * Normally, a workspace is assigned by {@link Runner}, but this lets you set the workspace in case + * {@link AbstractBuild} is created without a build. + */ + protected void setWorkspace(FilePath ws) { + this.workspace = ws.getRemote(); + } + + /** + * Returns the root directory of the checked-out module. + *

    + * This is usually where pom.xml, build.xml + * and so on exists. + */ + public final FilePath getModuleRoot() { + FilePath ws = getWorkspace(); + if (ws==null) return null; + return getParent().getScm().getModuleRoot(ws,this); + } + + /** + * Returns the root directories of all checked-out modules. + *

    + * Some SCMs support checking out multiple modules into the same workspace. + * In these cases, the returned array will have a length greater than one. + * @return The roots of all modules checked out from the SCM. + */ + public FilePath[] getModuleRoots() { + FilePath ws = getWorkspace(); + if (ws==null) return null; + return getParent().getScm().getModuleRoots(ws,this); + } + /** * List of users who committed a change since the last non-broken build till now. * @@ -186,18 +259,36 @@ public abstract class AbstractBuild

    ,R extends Abs */ @Exported public Set getCulprits() { - if(culprits==null) { + if (culprits==null) { Set r = new HashSet(); - R p = getPreviousBuild(); - if(p !=null && isBuilding() && p.getResult().isWorseThan(Result.UNSTABLE)) { - // we are still building, so this is just the current latest information, - // but we seems to be failing so far, so inherit culprits from the previous build. - // isBuilding() check is to avoid recursion when loading data from old Hudson, which doesn't record - // this information - r.addAll(p.getCulprits()); + R p = getPreviousCompletedBuild(); + if (p !=null && isBuilding()) { + Result pr = p.getResult(); + if (pr!=null && pr.isWorseThan(Result.UNSTABLE)) { + // we are still building, so this is just the current latest information, + // but we seems to be failing so far, so inherit culprits from the previous build. + // isBuilding() check is to avoid recursion when loading data from old Hudson, which doesn't record + // this information + r.addAll(p.getCulprits()); + } } - for( Entry e : getChangeSet() ) + for (Entry e : getChangeSet()) r.add(e.getAuthor()); + + if (upstreamCulprits) { + // If we have dependencies since the last successful build, add their authors to our list + if (getPreviousNotFailedBuild() != null) { + Map depmap = getDependencyChanges(getPreviousNotFailedBuild()); + for (AbstractBuild.DependencyChange dep : depmap.values()) { + for (AbstractBuild b : dep.getBuilds()) { + for (Entry entry : b.getChangeSet()) { + r.add(entry.getAuthor()); + } + } + } + } + } + return r; } @@ -223,7 +314,7 @@ public abstract class AbstractBuild

    ,R extends Abs */ public boolean hasParticipant(User user) { for (ChangeLogSet.Entry e : getChangeSet()) - if(e.getAuthor()==user) + if (e.getAuthor()==user) return true; return false; } @@ -237,13 +328,50 @@ public abstract class AbstractBuild

    ,R extends Abs return hudsonVersion; } - protected abstract class AbstractRunner implements Runner { + @Override + public synchronized void delete() throws IOException { + // Need to check if deleting this build affects lastSuccessful/lastStable symlinks + R lastSuccessful = getProject().getLastSuccessfulBuild(), + lastStable = getProject().getLastStableBuild(); + + super.delete(); + + try { + if (lastSuccessful == this) + updateSymlink("lastSuccessful", getProject().getLastSuccessfulBuild()); + if (lastStable == this) + updateSymlink("lastStable", getProject().getLastStableBuild()); + } catch (InterruptedException ex) { + LOGGER.warning("Interrupted update of lastSuccessful/lastStable symlinks for " + + getProject().getDisplayName()); + // handle it later + Thread.currentThread().interrupt(); + } + } + + private void updateSymlink(String name, AbstractBuild newTarget) throws InterruptedException { + if (newTarget != null) + newTarget.createSymlink(new LogTaskListener(LOGGER, Level.WARNING), name); + else + new File(getProject().getBuildDir(), "../"+name).delete(); + } + + private void createSymlink(TaskListener listener, String name) throws InterruptedException { + Util.createSymlink(getProject().getBuildDir(),"builds/"+getId(),"../"+name,listener); + } + + protected abstract class AbstractRunner extends Runner { /** * Since configuration can be changed while a build is in progress, * create a launcher once and stick to it for the entire build duration. */ protected Launcher launcher; + /** + * Output/progress of this build goes here. + */ + protected BuildListener listener; + /** * Returns the current {@link Node} on which we are buildling. */ @@ -251,43 +379,58 @@ public abstract class AbstractBuild

    ,R extends Abs return Executor.currentExecutor().getOwner().getNode(); } + /** + * Allocates the workspace from {@link WorkspaceList}. + * + * @param n + * Passed in for the convenience. The node where the build is running. + * @param wsl + * Passed in for the convenience. The returned path must be registered to this object. + */ + protected Lease decideWorkspace(Node n, WorkspaceList wsl) throws InterruptedException, IOException { + // TODO: this cast is indicative of abstraction problem + return wsl.allocate(n.getWorkspaceFor((TopLevelItem)getProject())); + } + public Result run(BuildListener listener) throws Exception { Node node = getCurrentNode(); assert builtOn==null; builtOn = node.getNodeName(); hudsonVersion = Hudson.VERSION; + this.listener = listener; launcher = createLauncher(listener); - if(!Hudson.getInstance().getNodes().isEmpty()) - listener.getLogger().println(Messages.AbstractBuild_BuildingRemotely(node.getNodeName())); - - node.getFileSystemProvisioner().prepareWorkspace(AbstractBuild.this,project.getWorkspace(),listener); + if (!Hudson.getInstance().getNodes().isEmpty()) + listener.getLogger().println(node instanceof Hudson ? Messages.AbstractBuild_BuildingOnMaster() : Messages.AbstractBuild_BuildingRemotely(builtOn)); - if(checkout(listener)) - return Result.FAILURE; + final Lease lease = decideWorkspace(node,Computer.currentComputer().getWorkspaceList()); - if(!preBuild(listener,project.getProperties())) - return Result.FAILURE; + try { + workspace = lease.path.getRemote(); + node.getFileSystemProvisioner().prepareWorkspace(AbstractBuild.this,lease.path,listener); - Result result = doRun(listener); + checkout(listener); - // kill run-away processes that are left - // use multiple environment variables so that people can escape this massacre by overriding an environment - // variable for some processes - launcher.kill(getCharacteristicEnvVars()); + if (!preBuild(listener,project.getProperties())) + return Result.FAILURE; - // this is ugly, but for historical reason, if non-null value is returned - // it should become the final result. - if(result==null) result = getResult(); - if(result==null) result = Result.SUCCESS; + Result result = doRun(listener); - if(result.isBetterOrEqualTo(Result.UNSTABLE)) - createSymLink(listener,"lastSuccessful"); + // kill run-away processes that are left + // use multiple environment variables so that people can escape this massacre by overriding an environment + // variable for some processes + launcher.kill(getCharacteristicEnvVars()); - if(result.isBetterOrEqualTo(Result.SUCCESS)) - createSymLink(listener,"lastStable"); + // this is ugly, but for historical reason, if non-null value is returned + // it should become the final result. + if (result==null) result = getResult(); + if (result==null) result = Result.SUCCESS; - return result; + return result; + } finally { + lease.release(); + this.listener = null; + } } /** @@ -295,33 +438,74 @@ public abstract class AbstractBuild

    ,R extends Abs * to decorate the resulting {@link Launcher}. * * @param listener - * Always non-null. Connected to the main build output. + * Always non-null. Connected to the main build output. */ protected Launcher createLauncher(BuildListener listener) throws IOException, InterruptedException { - return getCurrentNode().createLauncher(listener); - } + Launcher l = getCurrentNode().createLauncher(listener); - private void createSymLink(BuildListener listener, String name) throws InterruptedException { - Util.createSymlink(getProject().getBuildDir(),"builds/"+getId(),"../"+name,listener); - } + if (project instanceof BuildableItemWithBuildWrappers) { + BuildableItemWithBuildWrappers biwbw = (BuildableItemWithBuildWrappers) project; + for (BuildWrapper bw : biwbw.getBuildWrappersList()) + l = bw.decorateLauncher(AbstractBuild.this,l,listener); + } - private boolean checkout(BuildListener listener) throws Exception { - // for historical reasons, null in the scm field means CVS, so we need to explicitly set this to something - // in case check out fails and leaves a broken changelog.xml behind. - // see http://www.nabble.com/CVSChangeLogSet.parse-yields-SAXParseExceptions-when-parsing-bad-*AccuRev*-changelog.xml-files-td22213663.html - AbstractBuild.this.scm = new NullChangeLogParser(); + buildEnvironments = new ArrayList(); - if(!project.checkout(AbstractBuild.this,launcher,listener,new File(getRootDir(),"changelog.xml"))) - return true; + for (NodeProperty nodeProperty: Hudson.getInstance().getGlobalNodeProperties()) { + Environment environment = nodeProperty.setUp(AbstractBuild.this, l, listener); + if (environment != null) { + buildEnvironments.add(environment); + } + } - SCM scm = project.getScm(); + for (NodeProperty nodeProperty: Computer.currentComputer().getNode().getNodeProperties()) { + Environment environment = nodeProperty.setUp(AbstractBuild.this, l, listener); + if (environment != null) { + buildEnvironments.add(environment); + } + } - AbstractBuild.this.scm = scm.createChangeLogParser(); - AbstractBuild.this.changeSet = AbstractBuild.this.calcChangeSet(); + return l; + } - for (SCMListener l : Hudson.getInstance().getSCMListeners()) - l.onChangeLogParsed(AbstractBuild.this,listener,changeSet); - return false; + private void checkout(BuildListener listener) throws Exception { + try { + for (int retryCount=project.getScmCheckoutRetryCount(); ; retryCount--) { + // for historical reasons, null in the scm field means CVS, so we need to explicitly set this to something + // in case check out fails and leaves a broken changelog.xml behind. + // see http://www.nabble.com/CVSChangeLogSet.parse-yields-SAXParseExceptions-when-parsing-bad-*AccuRev*-changelog.xml-files-td22213663.html + AbstractBuild.this.scm = new NullChangeLogParser(); + + try { + if (project.checkout(AbstractBuild.this,launcher,listener,new File(getRootDir(),"changelog.xml"))) { + // check out succeeded + SCM scm = project.getScm(); + + AbstractBuild.this.scm = scm.createChangeLogParser(); + AbstractBuild.this.changeSet = AbstractBuild.this.calcChangeSet(); + + for (SCMListener l : Hudson.getInstance().getSCMListeners()) + l.onChangeLogParsed(AbstractBuild.this,listener,changeSet); + return; + } + } catch (AbortException e) { + listener.error(e.getMessage()); + } catch (IOException e) { + // checkout error not yet reported + e.printStackTrace(listener.getLogger()); + } + + if (retryCount == 0) // all attempts failed + throw new RunnerAbortedException(); + + listener.getLogger().println("Retrying after 10 seconds"); + Thread.sleep(10000); + } + } catch (InterruptedException e) { + listener.getLogger().println(Messages.AbstractProject_ScmAborted()); + LOGGER.log(Level.INFO, AbstractBuild.this + " aborted", e); + throw new RunnerAbortedException(); + } } /** @@ -343,21 +527,45 @@ public abstract class AbstractBuild

    ,R extends Abs public final void post(BuildListener listener) throws Exception { try { post2(listener); + + if (result.isBetterOrEqualTo(Result.UNSTABLE)) + createSymlink(listener, "lastSuccessful"); + + if (result.isBetterOrEqualTo(Result.SUCCESS)) + createSymlink(listener, "lastStable"); } finally { // update the culprit list HashSet r = new HashSet(); for (User u : getCulprits()) r.add(u.getId()); culprits = r; + CheckPoint.CULPRITS_DETERMINED.report(); } } public void cleanUp(BuildListener listener) throws Exception { - // default is no-op + BuildTrigger.execute(AbstractBuild.this, listener); + buildEnvironments = null; } + /** + * @deprecated as of 1.356 + * Use {@link #performAllBuildSteps(BuildListener, Map, boolean)} + */ protected final void performAllBuildStep(BuildListener listener, Map buildSteps, boolean phase) throws InterruptedException, IOException { - performAllBuildStep(listener,buildSteps.values(),phase); + performAllBuildSteps(listener,buildSteps.values(),phase); + } + + protected final boolean performAllBuildSteps(BuildListener listener, Map buildSteps, boolean phase) throws InterruptedException, IOException { + return performAllBuildSteps(listener,buildSteps.values(),phase); + } + + /** + * @deprecated as of 1.356 + * Use {@link #performAllBuildSteps(BuildListener, Iterable, boolean)} + */ + protected final void performAllBuildStep(BuildListener listener, Iterable buildSteps, boolean phase) throws InterruptedException, IOException { + performAllBuildSteps(listener,buildSteps,phase); } /** @@ -366,11 +574,33 @@ public abstract class AbstractBuild

    ,R extends Abs * @param phase * true for the post build processing, and false for the final "run after finished" execution. */ - protected final void performAllBuildStep(BuildListener listener, Iterable buildSteps, boolean phase) throws InterruptedException, IOException { - for( BuildStep bs : buildSteps ) { - if( (bs instanceof Publisher && ((Publisher)bs).needsToRunAfterFinalized()) ^ phase) - bs.perform(AbstractBuild.this, launcher, listener); + protected final boolean performAllBuildSteps(BuildListener listener, Iterable buildSteps, boolean phase) throws InterruptedException, IOException { + boolean r = true; + for (BuildStep bs : buildSteps) { + if ((bs instanceof Publisher && ((Publisher)bs).needsToRunAfterFinalized()) ^ phase) + try { + r &= perform(bs,listener); + } catch (Exception e) { + String msg = "Publisher " + bs.getClass().getName() + " aborted due to exception"; + e.printStackTrace(listener.error(msg)); + LOGGER.log(Level.WARNING, msg, e); + setResult(Result.FAILURE); + } + } + return r; + } + + /** + * Calls a build step. + */ + protected final boolean perform(BuildStep bs, BuildListener listener) throws InterruptedException, IOException { + BuildStepMonitor mon; + try { + mon = bs.getRequiredMonitorService(); + } catch (AbstractMethodError e) { + mon = BuildStepMonitor.BUILD; } + return mon.perform(bs, AbstractBuild.this, launcher, listener); } protected final boolean preBuild(BuildListener listener,Map steps) { @@ -382,8 +612,8 @@ public abstract class AbstractBuild

    ,R extends Abs } protected final boolean preBuild(BuildListener listener,Iterable steps) { - for( BuildStep bs : steps ) - if(!bs.prebuild(AbstractBuild.this,listener)) + for (BuildStep bs : steps) + if (!bs.prebuild(AbstractBuild.this,listener)) return false; return true; } @@ -396,17 +626,31 @@ public abstract class AbstractBuild

    ,R extends Abs */ @Exported public ChangeLogSet getChangeSet() { - if(scm==null) - scm = new CVSChangeLogParser(); + if (scm==null) { + // for historical reason, null means CVS. + try { + Class c = Hudson.getInstance().getPluginManager().uberClassLoader.loadClass("hudson.scm.CVSChangeLogParser"); + scm = (ChangeLogParser)c.newInstance(); + } catch (ClassNotFoundException e) { + // if CVS isn't available, fall back to something non-null. + scm = new NullChangeLogParser(); + } catch (InstantiationException e) { + scm = new NullChangeLogParser(); + throw (Error)new InstantiationError().initCause(e); + } catch (IllegalAccessException e) { + scm = new NullChangeLogParser(); + throw (Error)new IllegalAccessError().initCause(e); + } + } - if(changeSet==null) // cached value + if (changeSet==null) // cached value try { changeSet = calcChangeSet(); } finally { // defensive check. if the calculation fails (such as through an exception), // set a dummy value so that it'll work the next time. the exception will // be still reported, giving the plugin developer an opportunity to fix it. - if(changeSet==null) + if (changeSet==null) changeSet=ChangeLogSet.createEmpty(this); } return changeSet; @@ -422,7 +666,7 @@ public abstract class AbstractBuild

    ,R extends Abs private ChangeLogSet calcChangeSet() { File changelogFile = new File(getRootDir(), "changelog.xml"); - if(!changelogFile.exists()) + if (!changelogFile.exists()) return ChangeLogSet.createEmpty(this); try { @@ -438,14 +682,16 @@ public abstract class AbstractBuild

    ,R extends Abs @Override public EnvVars getEnvironment(TaskListener log) throws IOException, InterruptedException { EnvVars env = super.getEnvironment(log); - env.put("WORKSPACE", getProject().getWorkspace().getRemote()); + FilePath ws = getWorkspace(); + if (ws!=null) // if this is done very early on in the build, workspace may not be decided yet. see HUDSON-3997 + env.put("WORKSPACE", ws.getRemote()); // servlet container may have set CLASSPATH in its launch script, // so don't let that inherit to the new child process. // see http://www.nabble.com/Run-Job-with-JDK-1.4.2-tf4468601.html env.put("CLASSPATH",""); JDK jdk = project.getJDK(); - if(jdk != null) { + if (jdk != null) { Computer computer = Computer.currentComputer(); if (computer != null) { // just in case were not in a build jdk = jdk.forNode(computer.getNode(), log); @@ -454,16 +700,15 @@ public abstract class AbstractBuild

    ,R extends Abs } project.getScm().buildEnvVars(this,env); - if(buildEnvironments!=null) - for (Environment e : buildEnvironments) - e.buildEnvVars(env); + if (buildEnvironments!=null) + for (Environment e : buildEnvironments) + e.buildEnvVars(env); + + for (EnvironmentContributingAction a : Util.filter(getActions(),EnvironmentContributingAction.class)) + a.buildEnvVars(this,env); - ParametersAction parameters = getAction(ParametersAction.class); - if (parameters != null) - parameters.buildEnvVars(this,env); - EnvVars.resolve(env); - + return env; } @@ -471,6 +716,36 @@ public abstract class AbstractBuild

    ,R extends Abs return getTimestamp(); } + /** + * Builds up a set of variable names that contain sensitive values that + * should not be exposed. The expection is that this set is populated with + * keys returned by {@link #getBuildVariables()} that should have their + * values masked for display purposes. + * + * @since 1.378 + */ + public Set getSensitiveBuildVariables() { + Set s = new HashSet(); + + ParametersAction parameters = getAction(ParametersAction.class); + if (parameters != null) { + for (ParameterValue p : parameters) { + if (p.isSensitive()) { + s.add(p.getName()); + } + } + } + + // Allow BuildWrappers to determine if any of their data is sensitive + if (project instanceof BuildableItemWithBuildWrappers) { + for (BuildWrapper bw : ((BuildableItemWithBuildWrappers) project).getBuildWrappersList()) { + bw.makeSensitiveBuildVariables(this, s); + } + } + + return s; + } + /** * Provides additional variables and their values to {@link Builder}s. * @@ -490,13 +765,20 @@ public abstract class AbstractBuild

    ,R extends Abs Map r = new HashMap(); ParametersAction parameters = getAction(ParametersAction.class); - if(parameters!=null) { + if (parameters!=null) { // this is a rather round about way of doing this... for (ParameterValue p : parameters) { String v = p.createVariableResolver(this).resolve(p.getName()); - if(v!=null) r.put(p.getName(),v); + if (v!=null) r.put(p.getName(),v); } } + + // allow the BuildWrappers to contribute additional build variables + if (project instanceof BuildableItemWithBuildWrappers) { + for (BuildWrapper bw : ((BuildableItemWithBuildWrappers) project).getBuildWrappersList()) + bw.makeBuildVariables(this,r); + } + return r; } @@ -531,21 +813,21 @@ public abstract class AbstractBuild

    ,R extends Abs // we need to keep this log OUTER: for (AbstractProject p : getParent().getDownstreamProjects()) { - if(!p.isKeepDependencies()) continue; + if (!p.isKeepDependencies()) continue; AbstractBuild fb = p.getFirstBuild(); - if(fb==null) continue; // no active record + if (fb==null) continue; // no active record // is there any active build that depends on us? - for(int i : getDownstreamRelationship(p).listNumbersReverse()) { + for (int i : getDownstreamRelationship(p).listNumbersReverse()) { // TODO: this is essentially a "find intersection between two sparse sequences" // and we should be able to do much better. - if(i b = p.getBuildByNumber(i); - if(b!=null) + if (b!=null) return Messages.AbstractBuild_KeptBecause(b); } } @@ -553,7 +835,6 @@ public abstract class AbstractBuild

    ,R extends Abs return super.getWhyKeepLog(); } - /** * Gets the dependency relationship from this build (as the source) * and that project (as the sink.) @@ -566,13 +847,20 @@ public abstract class AbstractBuild

    ,R extends Abs RangeSet rs = new RangeSet(); FingerprintAction f = getAction(FingerprintAction.class); - if(f==null) return rs; + if (f==null) return rs; // look for fingerprints that point to this build as the source, and merge them all for (Fingerprint e : f.getFingerprints().values()) { - BuildPtr o = e.getOriginal(); - if(o!=null && o.is(this)) + + if (upstreamCulprits) { + // With upstreamCulprits, we allow downstream relationships + // from intermediate jobs rs.add(e.getRangeSet(that)); + } else { + BuildPtr o = e.getOriginal(); + if (o!=null && o.is(this)) + rs.add(e.getRangeSet(that)); + } } return rs; @@ -612,15 +900,24 @@ public abstract class AbstractBuild

    ,R extends Abs */ public int getUpstreamRelationship(AbstractProject that) { FingerprintAction f = getAction(FingerprintAction.class); - if(f==null) return -1; + if (f==null) return -1; int n = -1; // look for fingerprints that point to the given project as the source, and merge them all for (Fingerprint e : f.getFingerprints().values()) { - BuildPtr o = e.getOriginal(); - if(o!=null && o.belongsTo(that)) - n = Math.max(n,o.getNumber()); + if (upstreamCulprits) { + // With upstreamCulprits, we allow upstream relationships + // from intermediate jobs + Fingerprint.RangeSet rangeset = e.getRangeSet(that); + if (!rangeset.isEmpty()) { + n = Math.max(n, rangeset.listNumbersReverse().iterator().next()); + } + } else { + BuildPtr o = e.getOriginal(); + if (o!=null && o.belongsTo(that)) + n = Math.max(n,o.getNumber()); + } } return n; @@ -636,7 +933,7 @@ public abstract class AbstractBuild

    ,R extends Abs */ public AbstractBuild getUpstreamRelationshipBuild(AbstractProject that) { int n = getUpstreamRelationship(that); - if(n==-1) return null; + if (n==-1) return null; return that.getBuildByNumber(n); } @@ -651,12 +948,12 @@ public abstract class AbstractBuild

    ,R extends Abs public Map getDownstreamBuilds() { Map r = new HashMap(); for (AbstractProject p : getParent().getDownstreamProjects()) { - if(p.isFingerprintConfigured()) + if (p.isFingerprintConfigured()) r.put(p,getDownstreamRelationship(p)); } return r; } - + /** * Gets the upstream builds of this build, which are the builds of the * upstream projects whose artifacts feed into this build. @@ -679,7 +976,7 @@ public abstract class AbstractBuild

    ,R extends Abs Map r = new HashMap(); for (AbstractProject p : projects) { int n = getUpstreamRelationship(p); - if(n>=0) + if (n>=0) r.put(p,n); } return r; @@ -689,10 +986,10 @@ public abstract class AbstractBuild

    ,R extends Abs * Gets the changes in the dependency between the given build and this build. */ public Map getDependencyChanges(AbstractBuild from) { - if(from==null) return Collections.emptyMap(); // make it easy to call this from views + if (from==null) return Collections.emptyMap(); // make it easy to call this from views FingerprintAction n = this.getAction(FingerprintAction.class); FingerprintAction o = from.getAction(FingerprintAction.class); - if(n==null || o==null) return Collections.emptyMap(); + if (n==null || o==null) return Collections.emptyMap(); Map ndep = n.getDependencies(); Map odep = o.getDependencies(); @@ -703,7 +1000,7 @@ public abstract class AbstractBuild

    ,R extends Abs AbstractProject p = entry.getKey(); Integer oldNumber = entry.getValue(); Integer newNumber = ndep.get(p); - if(newNumber!=null && oldNumber.compareTo(newNumber)<0) { + if (newNumber!=null && oldNumber.compareTo(newNumber)<0) { r.put(p,new DependencyChange(p,oldNumber,newNumber)); } } @@ -746,16 +1043,16 @@ public abstract class AbstractBuild

    ,R extends Abs * Gets the {@link AbstractBuild} objects (fromId,toId]. *

    * This method returns all such available builds in the ascending order - * of IDs, but due to log rotations, some builds may be already unavailable. + * of IDs, but due to log rotations, some builds may be already unavailable. */ public List getBuilds() { List r = new ArrayList(); AbstractBuild b = (AbstractBuild)project.getNearestBuild(fromId); - if(b!=null && b.getNumber()==fromId) + if (b!=null && b.getNumber()==fromId) b = b.getNextBuild(); // fromId exclusive - while(b!=null && b.getNumber()<=toId) { + while (b!=null && b.getNumber()<=toId) { r.add(b); b = b.getNextBuild(); } @@ -764,23 +1061,24 @@ public abstract class AbstractBuild

    ,R extends Abs } } -// -// -// web methods -// -// + // + // web methods + // + /** * Stops this build if it's still going. * * If we use this/executor/stop URL, it causes 404 if the build is already killed, * as {@link #getExecutor()} returns null. */ - public synchronized void doStop( StaplerRequest req, StaplerResponse rsp ) throws IOException, ServletException { + public synchronized void doStop(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException { Executor e = getExecutor(); - if(e!=null) + if (e!=null) e.doStop(req,rsp); else // nothing is building rsp.forwardToPreviousPage(req); } + + private static final Logger LOGGER = Logger.getLogger(AbstractBuild.class.getName()); } diff --git a/core/src/main/java/hudson/model/AbstractDescribableImpl.java b/core/src/main/java/hudson/model/AbstractDescribableImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..1f101774953a3fde30ddb610f7bb2d1dc4ec8a2c --- /dev/null +++ b/core/src/main/java/hudson/model/AbstractDescribableImpl.java @@ -0,0 +1,35 @@ +/* + * The MIT License + * + * Copyright (c) 2004-2009, Kohsuke Kawaguchi + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.model; + +/** + * Partial default implementation of {@link Describable}. + * + * @author Kohsuke Kawaguchi + */ +public abstract class AbstractDescribableImpl> implements Describable { + public Descriptor getDescriptor() { + return Hudson.getInstance().getDescriptorOrDie(getClass()); + } +} diff --git a/core/src/main/java/hudson/model/AbstractItem.java b/core/src/main/java/hudson/model/AbstractItem.java index 5ce69c65810cb81633021fdf9035efd07b985bc8..8877e40c455795fbc07465a2649ae4bf69962f3e 100644 --- a/core/src/main/java/hudson/model/AbstractItem.java +++ b/core/src/main/java/hudson/model/AbstractItem.java @@ -1,7 +1,8 @@ /* * The MIT License * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Daniel Dyer, Tom Huybrechts + * Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, + * Daniel Dyer, Tom Huybrechts * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -27,11 +28,15 @@ import hudson.XmlFile; import hudson.Util; import hudson.Functions; import hudson.BulkChange; -import hudson.DescriptorExtensionList; -import hudson.util.Iterators; +import hudson.cli.declarative.CLIMethod; +import hudson.cli.declarative.CLIResolver; +import hudson.model.listeners.ItemListener; +import hudson.model.listeners.SaveableListener; import hudson.security.AccessControlled; import hudson.security.Permission; import hudson.security.ACL; +import org.apache.tools.ant.taskdefs.Copy; +import org.apache.tools.ant.types.FileSet; import org.kohsuke.stapler.export.Exported; import org.kohsuke.stapler.export.ExportedBean; @@ -43,9 +48,10 @@ import org.kohsuke.stapler.StaplerRequest; import org.kohsuke.stapler.StaplerResponse; import org.kohsuke.stapler.Stapler; import org.kohsuke.stapler.HttpDeletable; +import org.kohsuke.args4j.Argument; +import org.kohsuke.args4j.CmdLineException; import javax.servlet.ServletException; -import static javax.servlet.http.HttpServletResponse.SC_BAD_REQUEST; /** * Partial default implementation of {@link Item}. @@ -73,6 +79,10 @@ public abstract class AbstractItem extends Actionable implements Item, HttpDelet doSetName(name); } + public void onCreatedFromScratch() { + // noop + } + @Exported(visibility=999) public String getName() { return name; @@ -103,8 +113,9 @@ public abstract class AbstractItem extends Actionable implements Item, HttpDelet /** * Sets the project description HTML. */ - public void setDescription(String description) { + public void setDescription(String description) throws IOException { this.description = description; + save(); } /** @@ -115,6 +126,121 @@ public abstract class AbstractItem extends Actionable implements Item, HttpDelet this.name = name; } + /** + * Renames this item. + * Not all the Items need to support this operation, but if you decide to do so, + * you can use this method. + */ + protected void renameTo(String newName) throws IOException { + // always synchronize from bigger objects first + final ItemGroup parent = getParent(); + synchronized (parent) { + synchronized (this) { + // sanity check + if (newName == null) + throw new IllegalArgumentException("New name is not given"); + + // noop? + if (this.name.equals(newName)) + return; + + Item existing = parent.getItem(newName); + if (existing != null && existing!=this) + // the look up is case insensitive, so we need "existing!=this" + // to allow people to rename "Foo" to "foo", for example. + // see http://www.nabble.com/error-on-renaming-project-tt18061629.html + throw new IllegalArgumentException("Job " + newName + + " already exists"); + + String oldName = this.name; + File oldRoot = this.getRootDir(); + + doSetName(newName); + File newRoot = this.getRootDir(); + + boolean success = false; + + try {// rename data files + boolean interrupted = false; + boolean renamed = false; + + // try to rename the job directory. + // this may fail on Windows due to some other processes + // accessing a file. + // so retry few times before we fall back to copy. + for (int retry = 0; retry < 5; retry++) { + if (oldRoot.renameTo(newRoot)) { + renamed = true; + break; // succeeded + } + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // process the interruption later + interrupted = true; + } + } + + if (interrupted) + Thread.currentThread().interrupt(); + + if (!renamed) { + // failed to rename. it must be that some lengthy + // process is going on + // to prevent a rename operation. So do a copy. Ideally + // we'd like to + // later delete the old copy, but we can't reliably do + // so, as before the VM + // shuts down there might be a new job created under the + // old name. + Copy cp = new Copy(); + cp.setProject(new org.apache.tools.ant.Project()); + cp.setTodir(newRoot); + FileSet src = new FileSet(); + src.setDir(getRootDir()); + cp.addFileset(src); + cp.setOverwrite(true); + cp.setPreserveLastModified(true); + cp.setFailOnError(false); // keep going even if + // there's an error + cp.execute(); + + // try to delete as much as possible + try { + Util.deleteRecursive(oldRoot); + } catch (IOException e) { + // but ignore the error, since we expect that + e.printStackTrace(); + } + } + + success = true; + } finally { + // if failed, back out the rename. + if (!success) + doSetName(oldName); + } + + callOnRenamed(newName, parent, oldName); + + for (ItemListener l : ItemListener.all()) + l.onRenamed(this, oldName, newName); + } + } + } + + /** + * A pointless function to work around what appears to be a HotSpot problem. See HUDSON-5756 and bug 6933067 + * on BugParade for more details. + */ + private void callOnRenamed(String newName, ItemGroup parent, String oldName) throws IOException { + try { + parent.onRenamed(this, oldName, newName); + } catch (AbstractMethodError _) { + // ignore + } + } + /** * Gets all the jobs that this {@link Item} contains as descendants. */ @@ -166,7 +292,7 @@ public abstract class AbstractItem extends Actionable implements Item, HttpDelet } public String getShortUrl() { - return getParent().getUrlChildPrefix()+'/'+getName()+'/'; + return getParent().getUrlChildPrefix()+'/'+Util.rawEncode(getName())+'/'; } public String getSearchUrl() { @@ -178,7 +304,7 @@ public abstract class AbstractItem extends Actionable implements Item, HttpDelet StaplerRequest request = Stapler.getCurrentRequest(); if(request==null) throw new IllegalStateException("Not processing a HTTP request"); - return Util.encode(request.getRootPath()+'/'+getUrl()); + return Util.encode(Hudson.getInstance().getRootUrl()+getUrl()); } /** @@ -215,6 +341,7 @@ public abstract class AbstractItem extends Actionable implements Item, HttpDelet public synchronized void save() throws IOException { if(BulkChange.contains(this)) return; getConfigFile().write(this); + SaveableListener.fireOnChange(this, getConfigFile()); } public final XmlFile getConfigFile() { @@ -233,22 +360,19 @@ public abstract class AbstractItem extends Actionable implements Item, HttpDelet req.setCharacterEncoding("UTF-8"); setDescription(req.getParameter("description")); - save(); rsp.sendRedirect("."); // go to the top page } /** * Deletes this item. */ + @CLIMethod(name="delete-job") public void doDoDelete( StaplerRequest req, StaplerResponse rsp ) throws IOException, ServletException, InterruptedException { checkPermission(DELETE); - if(!"POST".equals(req.getMethod())) { - rsp.setStatus(SC_BAD_REQUEST); - sendError("Delete request has to be POST",req,rsp); - return; - } + requirePOST(); delete(); - rsp.sendRedirect2(req.getContextPath()+"/"+getParent().getUrl()); + if (rsp != null) // null for CLI + rsp.sendRedirect2(req.getContextPath()+"/"+getParent().getUrl()); } public void delete( StaplerRequest req, StaplerResponse rsp ) throws IOException, ServletException { @@ -276,10 +400,23 @@ public abstract class AbstractItem extends Actionable implements Item, HttpDelet * Does the real job of deleting the item. */ protected void performDelete() throws IOException, InterruptedException { + getConfigFile().delete(); Util.deleteRecursive(getRootDir()); } public String toString() { return super.toString()+'['+getFullName()+']'; } + + /** + * Used for CLI binding. + */ + @CLIResolver + public static AbstractItem resolveForCLI( + @Argument(required=true,metaVar="NAME",usage="Job name") String name) throws CmdLineException { + AbstractItem item = Hudson.getInstance().getItemByFullName(name, AbstractItem.class); + if (item==null) + throw new CmdLineException(null,Messages.AbstractItem_NoSuchJobExists(name,AbstractProject.findNearest(name).getFullName())); + return item; + } } diff --git a/core/src/main/java/hudson/model/AbstractModelObject.java b/core/src/main/java/hudson/model/AbstractModelObject.java index 18be06280159e54f4b8f5bd9554bc683cf15af45..26b6eb7ef3ebddfaaae5cf26613d5cdd0c07db76 100644 --- a/core/src/main/java/hudson/model/AbstractModelObject.java +++ b/core/src/main/java/hudson/model/AbstractModelObject.java @@ -76,7 +76,9 @@ public abstract class AbstractModelObject implements SearchableModelObject { * Convenience method to verify that the current request is a POST request. */ protected final void requirePOST() throws ServletException { - String method = Stapler.getCurrentRequest().getMethod(); + StaplerRequest req = Stapler.getCurrentRequest(); + if (req==null) return; // invoked outside the context of servlet + String method = req.getMethod(); if(!method.equalsIgnoreCase("POST")) throw new ServletException("Must be POST, Can't be "+method); } diff --git a/core/src/main/java/hudson/model/AbstractProject.java b/core/src/main/java/hudson/model/AbstractProject.java index d82cfe6066175af5ff36ec60c62f15d2c4a85605..869c2d824502ea63c98332e48106b708867a63c3 100644 --- a/core/src/main/java/hudson/model/AbstractProject.java +++ b/core/src/main/java/hudson/model/AbstractProject.java @@ -1,7 +1,10 @@ /* * The MIT License * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Brian Westrich, Erik Ramfelt, Ertan Deniz, Jean-Baptiste Quenot, Luca Domenico Milanesio, R. Tyler Ballance, Stephen Connolly, Tom Huybrechts, id:cactusman + * Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, + * Brian Westrich, Erik Ramfelt, Ertan Deniz, Jean-Baptiste Quenot, + * Luca Domenico Milanesio, R. Tyler Ballance, Stephen Connolly, Tom Huybrechts, + * id:cactusman, Yahoo! Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -23,40 +26,64 @@ */ package hudson.model; +import java.util.regex.Matcher; +import java.util.regex.Pattern; +import antlr.ANTLRException; import hudson.AbortException; +import hudson.CopyOnWrite; import hudson.FeedAdapter; import hudson.FilePath; import hudson.Launcher; import hudson.Util; +import hudson.cli.declarative.CLIMethod; +import hudson.cli.declarative.CLIResolver; +import hudson.diagnosis.OldDataMonitor; import hudson.model.Cause.LegacyCodeCause; -import hudson.model.Cause.UserCause; import hudson.model.Cause.RemoteCause; +import hudson.model.Cause.UserCause; import hudson.model.Descriptor.FormException; import hudson.model.Fingerprint.RangeSet; +import hudson.model.Queue.Executable; +import hudson.model.Queue.Task; +import hudson.model.queue.SubTask; +import hudson.model.Queue.WaitingItem; import hudson.model.RunMap.Constructor; -import hudson.model.listeners.RunListener; -import hudson.remoting.AsyncFutureImpl; +import hudson.model.labels.LabelAtom; +import hudson.model.labels.LabelExpression; +import hudson.model.queue.CauseOfBlockage; +import hudson.model.queue.SubTaskContributor; import hudson.scm.ChangeLogSet; import hudson.scm.ChangeLogSet.Entry; import hudson.scm.NullSCM; +import hudson.scm.PollingResult; import hudson.scm.SCM; +import hudson.scm.SCMRevisionState; import hudson.scm.SCMS; import hudson.search.SearchIndexBuilder; import hudson.security.Permission; +import hudson.slaves.WorkspaceList; import hudson.tasks.BuildStep; +import hudson.tasks.BuildStepDescriptor; import hudson.tasks.BuildTrigger; +import hudson.tasks.BuildWrapperDescriptor; import hudson.tasks.Mailer; import hudson.tasks.Publisher; -import hudson.tasks.BuildStepDescriptor; -import hudson.tasks.BuildWrapperDescriptor; import hudson.triggers.SCMTrigger; import hudson.triggers.Trigger; import hudson.triggers.TriggerDescriptor; import hudson.util.DescribableList; import hudson.util.EditDistance; +import hudson.util.FormValidation; import hudson.widgets.BuildHistoryWidget; import hudson.widgets.HistoryWidget; import net.sf.json.JSONObject; +import org.kohsuke.args4j.Argument; +import org.kohsuke.args4j.CmdLineException; +import org.kohsuke.stapler.ForwardToView; +import org.kohsuke.stapler.HttpRedirect; +import org.kohsuke.stapler.HttpResponse; +import org.kohsuke.stapler.HttpResponses; +import org.kohsuke.stapler.QueryParameter; import org.kohsuke.stapler.StaplerRequest; import org.kohsuke.stapler.StaplerResponse; import org.kohsuke.stapler.export.Exported; @@ -82,6 +109,9 @@ import java.util.concurrent.Future; import java.util.logging.Level; import java.util.logging.Logger; +import static hudson.scm.PollingResult.*; +import static javax.servlet.http.HttpServletResponse.*; + /** * Base implementation of {@link Job}s that build software. * @@ -99,6 +129,11 @@ public abstract class AbstractProject

    ,R extends A */ private volatile SCM scm = new NullSCM(); + /** + * State returned from {@link SCM#poll(AbstractProject, Launcher, FilePath, TaskListener, SCMRevisionState)}. + */ + private volatile transient SCMRevisionState pollingBaseline = null; + /** * All the builds keyed by their build number. */ @@ -108,6 +143,11 @@ public abstract class AbstractProject

    ,R extends A * The quiet period. Null to delegate to the system default. */ private volatile Integer quietPeriod = null; + + /** + * The retry count. Null to delegate to the system default. + */ + private volatile Integer scmCheckoutRetryCount = null; /** * If this project is configured to be only built on a certain label, @@ -135,6 +175,12 @@ public abstract class AbstractProject

    ,R extends A */ protected volatile boolean disabled; + /** + * True to keep builds of this project in queue when upstream projects are + * building. False by default to keep from breaking existing behavior. + */ + protected volatile boolean blockBuildWhenUpstreamBuilding = false; + /** * Identifies {@link JDK} to be used. * Null if no explicit configuration is required. @@ -148,7 +194,7 @@ public abstract class AbstractProject

    ,R extends A private volatile String jdk; /** - * @deprecated + * @deprecated since 2007-01-29. */ private transient boolean enableRemoteTrigger; @@ -166,7 +212,10 @@ public abstract class AbstractProject

    ,R extends A * We don't want to persist them separately, and these actions * come and go as configuration change, so it's kept separate. */ - protected transient /*final*/ List transientActions = new Vector(); + @CopyOnWrite + protected transient volatile List transientActions = new Vector(); + + private boolean concurrentBuild; protected AbstractProject(ItemGroup parent, String name) { super(parent,name); @@ -178,6 +227,13 @@ public abstract class AbstractProject

    ,R extends A } } + @Override + public void onCreatedFromScratch() { + super.onCreatedFromScratch(); + // solicit initial contributions, especially from TransientProjectActionFactory + updateTransientActions(); + } + @Override public void onLoad(ItemGroup parent, String name) throws IOException { super.onLoad(parent, name); @@ -189,9 +245,13 @@ public abstract class AbstractProject

    ,R extends A } }); - if(triggers==null) + // boolean! Can't tell if xml file contained false.. + if (enableRemoteTrigger) OldDataMonitor.report(this, "1.77"); + if(triggers==null) { // it didn't exist in < 1.28 triggers = new Vector>(); + OldDataMonitor.report(this, "1.28"); + } for (Trigger t : triggers) t.start(this,false); if(scm==null) @@ -202,6 +262,7 @@ public abstract class AbstractProject

    ,R extends A updateTransientActions(); } + @Override protected void performDelete() throws IOException, InterruptedException { // prevent a new build while a delete operation is in progress makeDisabled(true); @@ -215,6 +276,20 @@ public abstract class AbstractProject

    ,R extends A super.performDelete(); } + /** + * Does this project perform concurrent builds? + * @since 1.319 + */ + @Exported + public boolean isConcurrentBuild() { + return Hudson.CONCURRENT_BUILD && concurrentBuild; + } + + public void setConcurrentBuild(boolean b) throws IOException { + concurrentBuild = b; + save(); + } + /** * If this project is configured to be always built on this node, * return that {@link Node}. Otherwise null. @@ -228,6 +303,20 @@ public abstract class AbstractProject

    ,R extends A return Hudson.getInstance().getLabel(assignedNode); } + /** + * Gets the textual representation of the assigned label as it was entered by the user. + */ + public String getAssignedLabelString() { + if (canRoam || assignedNode==null) return null; + try { + LabelExpression.parseExpression(assignedNode); + return assignedNode; + } catch (ANTLRException e) { + // must be old label or host name that includes whitespace or other unsafe chars + return LabelAtom.escape(assignedNode); + } + } + /** * Sets the assigned label. */ @@ -238,11 +327,18 @@ public abstract class AbstractProject

    ,R extends A } else { canRoam = false; if(l==Hudson.getInstance().getSelfLabel()) assignedNode = null; - else assignedNode = l.getName(); + else assignedNode = l.getExpression(); } save(); } + /** + * Assigns this job to the given node. A convenience method over {@link #setAssignedLabel(Label)}. + */ + public void setAssignedNode(Node l) throws IOException { + setAssignedLabel(l.getSelfLabel()); + } + /** * Get the term used in the UI to represent this kind of {@link AbstractProject}. * Must start with a capital letter. @@ -257,7 +353,7 @@ public abstract class AbstractProject

    ,R extends A * * @return the root project value. */ - public AbstractProject getRootProject() { + public AbstractProject getRootProject() { if (this.getParent() instanceof Hudson) { return this; } else { @@ -270,19 +366,86 @@ public abstract class AbstractProject

    ,R extends A * * @return * null if the workspace is on a slave that's not connected. + * @deprecated as of 1.319 + * To support concurrent builds of the same project, this method is moved to {@link AbstractBuild}. + * For backward compatibility, this method returns the right {@link AbstractBuild#getWorkspace()} if called + * from {@link Executor}, and otherwise the workspace of the last build. + * + *

    + * If you are calling this method during a build from an executor, switch it to {@link AbstractBuild#getWorkspace()}. + * If you are calling this method to serve a file from the workspace, doing a form validation, etc., then + * use {@link #getSomeWorkspace()} + */ + public final FilePath getWorkspace() { + AbstractBuild b = getBuildForDeprecatedMethods(); + return b != null ? b.getWorkspace() : null; + + } + + /** + * Various deprecated methods in this class all need the 'current' build. This method returns + * the build suitable for that purpose. + * + * @return An AbstractBuild for deprecated methods to use. + */ + private AbstractBuild getBuildForDeprecatedMethods() { + Executor e = Executor.currentExecutor(); + if(e!=null) { + Executable exe = e.getCurrentExecutable(); + if (exe instanceof AbstractBuild) { + AbstractBuild b = (AbstractBuild) exe; + if(b.getProject()==this) + return b; + } + } + R lb = getLastBuild(); + if(lb!=null) return lb; + return null; + } + + /** + * Gets a workspace for some build of this project. + * + *

    + * This is useful for obtaining a workspace for the purpose of form field validation, where exactly + * which build the workspace belonged is less important. The implementation makes a cursory effort + * to find some workspace. + * + * @return + * null if there's no available workspace. + * @since 1.319 */ - public abstract FilePath getWorkspace(); + public final FilePath getSomeWorkspace() { + R b = getSomeBuildWithWorkspace(); + return b!=null ? b.getWorkspace() : null; + } + + /** + * Gets some build that has a live workspace. + * + * @return null if no such build exists. + */ + public final R getSomeBuildWithWorkspace() { + int cnt=0; + for (R b = getLastBuild(); cnt<5 && b!=null; b=b.getPreviousBuild()) { + FilePath ws = b.getWorkspace(); + if (ws!=null) return b; + } + return null; + } /** * Returns the root directory of the checked-out module. *

    * This is usually where pom.xml, build.xml * and so on exists. + * + * @deprecated as of 1.319 + * See {@link #getWorkspace()} for a migration strategy. */ public FilePath getModuleRoot() { - FilePath ws = getWorkspace(); - if(ws==null) return null; - return getScm().getModuleRoot(ws); + AbstractBuild b = getBuildForDeprecatedMethods(); + return b != null ? b.getModuleRoot() : null; } /** @@ -291,22 +454,43 @@ public abstract class AbstractProject

    ,R extends A * Some SCMs support checking out multiple modules into the same workspace. * In these cases, the returned array will have a length greater than one. * @return The roots of all modules checked out from the SCM. + * + * @deprecated as of 1.319 + * See {@link #getWorkspace()} for a migration strategy. */ public FilePath[] getModuleRoots() { - return getScm().getModuleRoots(getWorkspace()); + AbstractBuild b = getBuildForDeprecatedMethods(); + return b != null ? b.getModuleRoots() : null; } public int getQuietPeriod() { return quietPeriod!=null ? quietPeriod : Hudson.getInstance().getQuietPeriod(); } + + public int getScmCheckoutRetryCount() { + return scmCheckoutRetryCount !=null ? scmCheckoutRetryCount : Hudson.getInstance().getScmCheckoutRetryCount(); + } // ugly name because of EL public boolean getHasCustomQuietPeriod() { return quietPeriod!=null; } - public final boolean isBuildable() { - return !isDisabled(); + /** + * Sets the custom quiet period of this project, or revert to the global default if null is given. + */ + public void setQuietPeriod(Integer seconds) throws IOException { + this.quietPeriod = seconds; + save(); + } + + public boolean hasCustomScmCheckoutRetryCount(){ + return scmCheckoutRetryCount != null; + } + + @Override + public boolean isBuildable() { + return !isDisabled() && !isHoldOffBuildUntilSave(); } /** @@ -317,9 +501,31 @@ public abstract class AbstractProject

    ,R extends A return true; } + public boolean blockBuildWhenUpstreamBuilding() { + return blockBuildWhenUpstreamBuilding; + } + + public void setBlockBuildWhenUpstreamBuilding(boolean b) throws IOException { + blockBuildWhenUpstreamBuilding = b; + save(); + } + public boolean isDisabled() { return disabled; } + + /** + * Validates the retry count Regex + */ + public FormValidation doCheckRetryCount(@QueryParameter String value)throws IOException,ServletException{ + // retry count is optional so this is ok + if(value == null || value.trim().equals("")) + return FormValidation.ok(); + if (!value.matches("[0-9]*")) { + return FormValidation.error("Invalid retry count"); + } + return FormValidation.ok(); + } /** * Marks the build as disabled. @@ -332,6 +538,14 @@ public abstract class AbstractProject

    ,R extends A save(); } + public void disable() throws IOException { + makeDisabled(true); + } + + public void enable() throws IOException { + makeDisabled(false); + } + @Override public BallColor getIconColor() { if(isDisabled()) @@ -340,16 +554,26 @@ public abstract class AbstractProject

    ,R extends A return super.getIconColor(); } + /** + * effectively deprecated. Since using updateTransientActions correctly + * under concurrent environment requires a lock that can too easily cause deadlocks. + * + *

    + * Override {@link #createTransientActions()} instead. + */ protected void updateTransientActions() { - synchronized(transientActions) { - transientActions.clear(); + transientActions = createTransientActions(); + } - for (JobProperty p : properties) { - Action a = p.getJobAction((P)this); - if(a!=null) - transientActions.add(a); - } - } + protected List createTransientActions() { + Vector ta = new Vector(); + + for (JobProperty p : properties) + ta.addAll(p.getJobActions((P)this)); + + for (TransientProjectActionFactory tpaf : TransientProjectActionFactory.all()) + ta.addAll(Util.fixNull(tpaf.createFor(this))); // be defensive against null + return ta; } /** @@ -378,9 +602,11 @@ public abstract class AbstractProject

    ,R extends A } @Override - public void doConfigSubmit( StaplerRequest req, StaplerResponse rsp ) throws IOException, ServletException { + public void doConfigSubmit( StaplerRequest req, StaplerResponse rsp ) throws IOException, ServletException, FormException { super.doConfigSubmit(req,rsp); + updateTransientActions(); + Set upstream = Collections.emptySet(); if(req.getParameter("pseudoUpstreamTrigger")!=null) { upstream = new HashSet(Items.fromNameList(req.getParameter("upstreamProjects"),AbstractProject.class)); @@ -394,6 +620,8 @@ public abstract class AbstractProject

    ,R extends A // or otherwise we could dead-lock for (AbstractProject p : Hudson.getInstance().getAllItems(AbstractProject.class)) { + // Don't consider child projects such as MatrixConfiguration: + if (!p.isConfigurable()) continue; boolean isUpstream = upstream.contains(p); synchronized(p) { // does 'p' include us in its BuildTrigger? @@ -493,10 +721,33 @@ public abstract class AbstractProject

    ,R extends A * @return whether the build was actually scheduled */ public boolean scheduleBuild(int quietPeriod, Cause c, Action... actions) { - if (isDisabled()) - return false; + return scheduleBuild2(quietPeriod,c,actions)!=null; + } + + /** + * Schedules a build of this project, and returns a {@link Future} object + * to wait for the completion of the build. + * + * @param actions + * For the convenience of the caller, this array can contain null, and those will be silently ignored. + */ + public Future scheduleBuild2(int quietPeriod, Cause c, Action... actions) { + return scheduleBuild2(quietPeriod,c,Arrays.asList(actions)); + } + + /** + * Schedules a build of this project, and returns a {@link Future} object + * to wait for the completion of the build. + * + * @param actions + * For the convenience of the caller, this collection can contain null, and those will be silently ignored. + * @since 1.383 + */ + public Future scheduleBuild2(int quietPeriod, Cause c, Collection actions) { + if (!isBuildable()) + return null; - List queueActions = new ArrayList(Arrays.asList(actions)); + List queueActions = new ArrayList(actions); if (isParameterized() && Util.filter(queueActions, ParametersAction.class).isEmpty()) { queueActions.add(new ParametersAction(getDefaultParametersValues())); } @@ -505,10 +756,10 @@ public abstract class AbstractProject

    ,R extends A queueActions.add(new CauseAction(c)); } - return Hudson.getInstance().getQueue().add( - this, - quietPeriod, - queueActions.toArray(new Action[queueActions.size()])); + WaitingItem i = Hudson.getInstance().getQueue().schedule(this, quietPeriod, queueActions); + if(i!=null) + return (Future)i.getFuture(); + return null; } private List getDefaultParametersValues() { @@ -533,16 +784,16 @@ public abstract class AbstractProject

    ,R extends A return defValues; } - /** + /** * Schedules a build, and returns a {@link Future} object * to wait for the completion of the build. * *

    - * Production code shouldn't be using this, but for tests, this is very convenience, so this isn't marked + * Production code shouldn't be using this, but for tests this is very convenient, so this isn't marked * as deprecated. - */ + */ public Future scheduleBuild2(int quietPeriod) { - return scheduleBuild2(quietPeriod, new LegacyCodeCause()); + return scheduleBuild2(quietPeriod, new LegacyCodeCause()); } /** @@ -553,34 +804,6 @@ public abstract class AbstractProject

    ,R extends A return scheduleBuild2(quietPeriod, c, new Action[0]); } - /** - * Schedules a build of this project, and returns a {@link Future} object - * to wait for the completion of the build. - */ - public Future scheduleBuild2(int quietPeriod, Cause c, Action... actions) { - R lastBuild = getLastBuild(); - final int n; - if(lastBuild!=null) n = lastBuild.getNumber(); - else n = -1; - - Future f = new AsyncFutureImpl() { - final RunListener r = new RunListener(AbstractBuild.class) { - public void onFinalized(AbstractBuild r) { - if(r.getProject()==AbstractProject.this && r.getNumber()>n) { - set((R)r); - unregister(); - } - } - }; - - { r.register(); } - }; - - scheduleBuild(quietPeriod, c, actions); - - return f; - } - /** * Schedules a polling of this project. */ @@ -605,14 +828,6 @@ public abstract class AbstractProject

    ,R extends A return Hudson.getInstance().getQueue().getItem(this); } - /** - * Returns true if a build of this project is in progress. - */ - public boolean isBuilding() { - R b = getLastBuild(); - return b!=null && b.isBuilding(); - } - /** * Gets the JDK that this project is configured with, or null. */ @@ -632,10 +847,12 @@ public abstract class AbstractProject

    ,R extends A return authToken; } + @Override public SortedMap _getRuns() { return builds.getView(); } + @Override public void removeRun(R run) { this.builds.remove(run); } @@ -708,8 +925,11 @@ public abstract class AbstractProject

    ,R extends A *

    * Note that this method returns a read-only view of {@link Action}s. * {@link BuildStep}s and others who want to add a project action - * should do so by implementing {@link BuildStep#getProjectAction(AbstractProject)}. + * should do so by implementing {@link BuildStep#getProjectActions(AbstractProject)}. + * + * @see TransientProjectActionFactory */ + @Override public synchronized List getActions() { // add all the transient actions, too List actions = new Vector(super.getActions()); @@ -734,35 +954,105 @@ public abstract class AbstractProject

    ,R extends A return b.getBuiltOn(); } + public Object getSameNodeConstraint() { + return this; // in this way, any member that wants to run with the main guy can nominate the project itself + } + + public final Task getOwnerTask() { + return this; + } + /** * {@inheritDoc} * *

    * A project must be blocked if its own previous build is in progress, - * but derived classes can also check other conditions. + * or if the blockBuildWhenUpstreamBuilding option is true and an upstream + * project is building, but derived classes can also check other conditions. */ public boolean isBuildBlocked() { - return isBuilding(); + return getCauseOfBlockage()!=null; } public String getWhyBlocked() { - AbstractBuild build = getLastBuild(); - Executor e = build.getExecutor(); - String eta=""; - if(e!=null) - eta = Messages.AbstractProject_ETA(e.getEstimatedRemainingTime()); - int lbn = build.getNumber(); - return Messages.AbstractProject_BuildInProgress(lbn,eta); + CauseOfBlockage cb = getCauseOfBlockage(); + return cb!=null ? cb.getShortDescription() : null; } - public final long getEstimatedDuration() { - AbstractBuild b = getLastSuccessfulBuild(); - if(b==null) return -1; + /** + * Blocked because the previous build is already in progress. + */ + public static class BecauseOfBuildInProgress extends CauseOfBlockage { + private final AbstractBuild build; - long duration = b.getDuration(); - if(duration==0) return -1; + public BecauseOfBuildInProgress(AbstractBuild build) { + this.build = build; + } - return duration; + @Override + public String getShortDescription() { + Executor e = build.getExecutor(); + String eta = ""; + if (e != null) + eta = Messages.AbstractProject_ETA(e.getEstimatedRemainingTime()); + int lbn = build.getNumber(); + return Messages.AbstractProject_BuildInProgress(lbn, eta); + } + } + + /** + * Because the upstream build is in progress, and we are configured to wait for that. + */ + public static class BecauseOfUpstreamBuildInProgress extends CauseOfBlockage { + public final AbstractProject up; + + public BecauseOfUpstreamBuildInProgress(AbstractProject up) { + this.up = up; + } + + @Override + public String getShortDescription() { + return Messages.AbstractProject_UpstreamBuildInProgress(up.getName()); + } + } + + public CauseOfBlockage getCauseOfBlockage() { + if (isBuilding() && !isConcurrentBuild()) + return new BecauseOfBuildInProgress(getLastBuild()); + if (blockBuildWhenUpstreamBuilding()) { + AbstractProject bup = getBuildingUpstream(); + if (bup!=null) + return new BecauseOfUpstreamBuildInProgress(bup); + } + return null; + } + + /** + * Returns the project if any of the upstream project (or itself) is either + * building or is in the queue. + *

    + * This means eventually there will be an automatic triggering of + * the given project (provided that all builds went smoothly.) + */ + protected AbstractProject getBuildingUpstream() { + DependencyGraph graph = Hudson.getInstance().getDependencyGraph(); + Set tups = graph.getTransitiveUpstream(this); + tups.add(this); + for (AbstractProject tup : tups) { + if(tup!=this && (tup.isBuilding() || tup.isInQueue())) + return tup; + } + return null; + } + + public List getSubTasks() { + List r = new ArrayList(); + r.add(this); + for (SubTaskContributor euc : SubTaskContributor.all()) + r.addAll(euc.forProject(this)); + for (JobProperty p : properties) + r.addAll(p.getSubTasks()); + return r; } public R createExecutable() throws IOException { @@ -781,6 +1071,15 @@ public abstract class AbstractProject

    ,R extends A /** * Gets the {@link Resource} that represents the workspace of this project. * Useful for locking and mutual exclusion control. + * + * @deprecated as of 1.319 + * Projects no longer have a fixed workspace, ands builds will find an available workspace via + * {@link WorkspaceList} for each build (furthermore, that happens after a build is started.) + * So a {@link Resource} representation for a workspace at the project level no longer makes sense. + * + *

    + * If you need to lock a workspace while you do some computation, see the source code of + * {@link #pollSCMChanges(TaskListener)} for how to obtain a lock of a workspace through {@link WorkspaceList}. */ public Resource getWorkspaceResource() { return new Resource(getFullDisplayName()+" workspace"); @@ -798,7 +1097,6 @@ public abstract class AbstractProject

    ,R extends A resourceLists.add(activity.getResourceList()); } } - resourceLists.add(new ResourceList().w(getWorkspaceResource())); return ResourceList.union(resourceLists); } @@ -810,83 +1108,160 @@ public abstract class AbstractProject

    ,R extends A return Collections.emptySet(); } - public boolean checkout(AbstractBuild build, Launcher launcher, BuildListener listener, File changelogFile) throws IOException { + public boolean checkout(AbstractBuild build, Launcher launcher, BuildListener listener, File changelogFile) throws IOException, InterruptedException { SCM scm = getScm(); if(scm==null) return true; // no SCM - // Acquire lock for SCMTrigger so poll won't run while we checkout/update - SCMTrigger scmt = getTrigger(SCMTrigger.class); - boolean locked = false; - try { - if (scmt!=null) { - scmt.getLock().lockInterruptibly(); - locked = true; + FilePath workspace = build.getWorkspace(); + workspace.mkdirs(); + + boolean r = scm.checkout(build, launcher, workspace, listener, changelogFile); + calcPollingBaseline(build, launcher, listener); + return r; + } + + /** + * Pushes the baseline up to the newly checked out revision. + */ + private void calcPollingBaseline(AbstractBuild build, Launcher launcher, TaskListener listener) throws IOException, InterruptedException { + SCMRevisionState baseline = build.getAction(SCMRevisionState.class); + if (baseline==null) { + try { + baseline = getScm()._calcRevisionsFromBuild(build, launcher, listener); + } catch (AbstractMethodError e) { + baseline = SCMRevisionState.NONE; // pre-1.345 SCM implementations, which doesn't use the baseline in polling } + if (baseline!=null) + build.addAction(baseline); + } + pollingBaseline = baseline; + } - FilePath workspace = getWorkspace(); - workspace.mkdirs(); + /** + * For reasons I don't understand, if I inline this method, AbstractMethodError escapes try/catch block. + */ + private SCMRevisionState safeCalcRevisionsFromBuild(AbstractBuild build, Launcher launcher, TaskListener listener) throws IOException, InterruptedException { + return getScm()._calcRevisionsFromBuild(build, launcher, listener); + } - return scm.checkout(build, launcher, workspace, listener, changelogFile); - } catch (InterruptedException e) { - listener.getLogger().println(Messages.AbstractProject_ScmAborted()); - LOGGER.log(Level.INFO,build.toString()+" aborted",e); - return false; - } finally { - if (locked) - scmt.getLock().unlock(); - } + /** + * Checks if there's any update in SCM, and returns true if any is found. + * + * @deprecated as of 1.346 + * Use {@link #poll(TaskListener)} instead. + */ + public boolean pollSCMChanges( TaskListener listener ) { + return poll(listener).hasChanges(); } /** * Checks if there's any update in SCM, and returns true if any is found. * *

    - * The caller is responsible for coordinating the mutual exclusion between - * a build and polling, as both touches the workspace. + * The implementation is responsible for ensuring mutual exclusion between polling and builds + * if necessary. + * + * @since 1.345 */ - public boolean pollSCMChanges( TaskListener listener ) { + public PollingResult poll( TaskListener listener ) { SCM scm = getScm(); - if(scm==null) { + if (scm==null) { listener.getLogger().println(Messages.AbstractProject_NoSCM()); - return false; + return NO_CHANGES; } - if(isDisabled()) { + if (isDisabled()) { listener.getLogger().println(Messages.AbstractProject_Disabled()); - return false; + return NO_CHANGES; } - try { - FilePath workspace = getWorkspace(); - if (scm.requiresWorkspaceForPolling() && (workspace == null || !workspace.exists())) { - // workspace offline. build now, or nothing will ever be built - Label label = getAssignedLabel(); - if (label != null && label.isSelfLabel()) { - // if the build is fixed on a node, then attempting a build will do us - // no good. We should just wait for the slave to come back. - listener.getLogger().println(Messages.AbstractProject_NoWorkspace()); - return false; + R lb = getLastBuild(); + if (lb==null) { + listener.getLogger().println(Messages.AbstractProject_NoBuilds()); + return isInQueue() ? NO_CHANGES : BUILD_NOW; + } + + if (pollingBaseline==null) { + R success = getLastSuccessfulBuild(); // if we have a persisted baseline, we'll find it by this + for (R r=lb; r!=null; r=r.getPreviousBuild()) { + SCMRevisionState s = r.getAction(SCMRevisionState.class); + if (s!=null) { + pollingBaseline = s; + break; } - if (workspace == null) - listener.getLogger().println(Messages.AbstractProject_WorkspaceOffline()); - else - listener.getLogger().println(Messages.AbstractProject_NoWorkspace()); - listener.getLogger().println(Messages.AbstractProject_NewBuildForWorkspace()); - return true; + if (r==success) break; // searched far enough } + // NOTE-NO-BASELINE: + // if we don't have baseline yet, it means the data is built by old Hudson that doesn't set the baseline + // as action, so we need to compute it. This happens later. + } - Launcher launcher = workspace != null ? workspace.createLauncher(listener) : null; - LOGGER.fine("Polling SCM changes of " + getName()); - return scm.pollChanges(this, launcher, workspace, listener); + try { + if (scm.requiresWorkspaceForPolling()) { + // lock the workspace of the last build + FilePath ws=lb.getWorkspace(); + + if (ws==null || !ws.exists()) { + // workspace offline. build now, or nothing will ever be built + Label label = getAssignedLabel(); + if (label != null && label.isSelfLabel()) { + // if the build is fixed on a node, then attempting a build will do us + // no good. We should just wait for the slave to come back. + listener.getLogger().println(Messages.AbstractProject_NoWorkspace()); + return NO_CHANGES; + } + listener.getLogger().println( ws==null + ? Messages.AbstractProject_WorkspaceOffline() + : Messages.AbstractProject_NoWorkspace()); + if (isInQueue()) { + listener.getLogger().println(Messages.AbstractProject_AwaitingBuildForWorkspace()); + return NO_CHANGES; + } else { + listener.getLogger().println(Messages.AbstractProject_NewBuildForWorkspace()); + return BUILD_NOW; + } + } else { + WorkspaceList l = lb.getBuiltOn().toComputer().getWorkspaceList(); + // if doing non-concurrent build, acquire a workspace in a way that causes builds to block for this workspace. + // this prevents multiple workspaces of the same job --- the behavior of Hudson < 1.319. + // + // OTOH, if a concurrent build is chosen, the user is willing to create a multiple workspace, + // so better throughput is achieved over time (modulo the initial cost of creating that many workspaces) + // by having multiple workspaces + WorkspaceList.Lease lease = l.acquire(ws, !concurrentBuild); + Launcher launcher = ws.createLauncher(listener); + try { + LOGGER.fine("Polling SCM changes of " + getName()); + if (pollingBaseline==null) // see NOTE-NO-BASELINE above + calcPollingBaseline(lb,launcher,listener); + PollingResult r = scm.poll(this, launcher, ws, listener, pollingBaseline); + pollingBaseline = r.remote; + return r; + } finally { + lease.release(); + } + } + } else { + // polling without workspace + LOGGER.fine("Polling SCM changes of " + getName()); + + if (pollingBaseline==null) // see NOTE-NO-BASELINE above + calcPollingBaseline(lb,null,listener); + PollingResult r = scm.poll(this, null, null, listener, pollingBaseline); + pollingBaseline = r.remote; + return r; + } } catch (AbortException e) { + listener.getLogger().println(e.getMessage()); listener.fatalError(Messages.AbstractProject_Aborted()); - return false; + LOGGER.log(Level.FINE, "Polling "+this+" aborted",e); + return NO_CHANGES; } catch (IOException e) { e.printStackTrace(listener.fatalError(e.getMessage())); - return false; + return NO_CHANGES; } catch (InterruptedException e) { e.printStackTrace(listener.fatalError(Messages.AbstractProject_PollingABorted())); - return false; + return NO_CHANGES; } } @@ -902,12 +1277,14 @@ public abstract class AbstractProject

    ,R extends A return false; } + @Exported public SCM getScm() { return scm; } - public void setScm(SCM scm) { + public void setScm(SCM scm) throws IOException { this.scm = scm; + save(); } /** @@ -934,6 +1311,7 @@ public abstract class AbstractProject

    ,R extends A // add collection.add(item); save(); + updateTransientActions(); } protected final synchronized > @@ -943,6 +1321,7 @@ public abstract class AbstractProject

    ,R extends A // found it collection.remove(i); save(); + updateTransientActions(); return; } } @@ -1066,9 +1445,10 @@ public abstract class AbstractProject

    ,R extends A */ protected abstract void buildDependencyGraph(DependencyGraph graph); + @Override protected SearchIndexBuilder makeSearchIndex() { SearchIndexBuilder sib = super.makeSearchIndex(); - if(isBuildable() && Hudson.isAdmin()) + if(isBuildable() && hasPermission(Hudson.ADMINISTER)) sib.add("build","build"); return sib; } @@ -1100,6 +1480,17 @@ public abstract class AbstractProject

    ,R extends A return; } + if (!isBuildable()) + throw HttpResponses.error(SC_INTERNAL_SERVER_ERROR,new IOException(getFullName()+" is not buildable")); + + Hudson.getInstance().getQueue().schedule(this, getDelay(req), getBuildCause(req)); + rsp.forwardToPreviousPage(req); + } + + /** + * Computes the build cause, using RemoteCause or UserCause as appropriate. + */ + /*package*/ CauseAction getBuildCause(StaplerRequest req) { Cause cause; if (authToken != null && authToken.getToken() != null && req.getParameter("token") != null) { // Optional additional cause text when starting via token @@ -1108,37 +1499,36 @@ public abstract class AbstractProject

    ,R extends A } else { cause = new UserCause(); } + return new CauseAction(cause); + } + /** + * Computes the delay by taking the default value and the override in the request parameter into the account. + */ + public int getDelay(StaplerRequest req) throws ServletException { String delay = req.getParameter("delay"); - if (delay!=null) { - if (!isDisabled()) { - try { - // TODO: more unit handling - if(delay.endsWith("sec")) delay=delay.substring(0,delay.length()-3); - if(delay.endsWith("secs")) delay=delay.substring(0,delay.length()-4); - Hudson.getInstance().getQueue().add(this, Integer.parseInt(delay), - new CauseAction(cause)); - } catch (NumberFormatException e) { - throw new ServletException("Invalid delay parameter value: "+delay); - } - } - } else { - scheduleBuild(cause); + if (delay==null) return getQuietPeriod(); + + try { + // TODO: more unit handling + if(delay.endsWith("sec")) delay=delay.substring(0,delay.length()-3); + if(delay.endsWith("secs")) delay=delay.substring(0,delay.length()-4); + return Integer.parseInt(delay); + } catch (NumberFormatException e) { + throw new ServletException("Invalid delay parameter value: "+delay); } - rsp.forwardToPreviousPage(req); } /** * Supports build trigger with parameters via an HTTP GET or POST. * Currently only String parameters are supported. */ - public void doBuildWithParameters(StaplerRequest req, StaplerResponse rsp) throws IOException { + public void doBuildWithParameters(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException { BuildAuthorizationToken.checkPermission(this, authToken, req, rsp); ParametersDefinitionProperty pp = getProperty(ParametersDefinitionProperty.class); if (pp != null) { pp.buildWithParameters(req,rsp); - return; } else { throw new IllegalStateException("This build is not parameterized!"); } @@ -1176,18 +1566,21 @@ public abstract class AbstractProject

    ,R extends A } else { quietPeriod = null; } + if(req.getParameter("hasCustomScmCheckoutRetryCount")!=null) { + scmCheckoutRetryCount = Integer.parseInt(req.getParameter("scmCheckoutRetryCount")); + } else { + scmCheckoutRetryCount = null; + } + blockBuildWhenUpstreamBuilding = req.getParameter("blockBuildWhenUpstreamBuilding")!=null; if(req.getParameter("hasSlaveAffinity")!=null) { - canRoam = false; - assignedNode = req.getParameter("slave"); - if(assignedNode !=null) { - if(Hudson.getInstance().getLabel(assignedNode).isEmpty()) - assignedNode = null; // no such label - } + assignedNode = Util.fixEmptyAndTrim(req.getParameter("_.assignedLabelString")); } else { - canRoam = true; assignedNode = null; } + canRoam = assignedNode==null; + + concurrentBuild = req.getSubmittedForm().has("concurrentBuild"); authToken = BuildAuthorizationToken.create(req); @@ -1198,8 +1591,6 @@ public abstract class AbstractProject

    ,R extends A triggers = buildDescribable(req, Trigger.for_(this)); for (Trigger t : triggers) t.start(this,true); - - updateTransientActions(); } /** @@ -1216,9 +1607,9 @@ public abstract class AbstractProject

    ,R extends A JSONObject data = req.getSubmittedForm(); List r = new Vector(); for (Descriptor d : descriptors) { - String name = d.getJsonSafeClassName(); - if (req.getParameter(name) != null) { - T instance = d.newInstance(req, data.getJSONObject(name)); + String safeName = d.getJsonSafeClassName(); + if (req.getParameter(safeName) != null) { + T instance = d.newInstance(req, data.getJSONObject(safeName)); r.add(instance); } } @@ -1228,9 +1619,9 @@ public abstract class AbstractProject

    ,R extends A /** * Serves the workspace files. */ - public void doWs( StaplerRequest req, StaplerResponse rsp ) throws IOException, ServletException, InterruptedException { + public DirectoryBrowserSupport doWs( StaplerRequest req, StaplerResponse rsp ) throws IOException, ServletException, InterruptedException { checkPermission(AbstractProject.WORKSPACE); - FilePath ws = getWorkspace(); + FilePath ws = getSomeWorkspace(); if ((ws == null) || (!ws.exists())) { // if there's no workspace, report a nice error message // Would be good if when asked for *plain*, do something else! @@ -1238,31 +1629,42 @@ public abstract class AbstractProject

    ,R extends A // Not critical; client can just check if content type is not text/plain, // which also serves to detect old versions of Hudson. req.getView(this,"noWorkspace.jelly").forward(req,rsp); + return null; } else { - new DirectoryBrowserSupport(this,getDisplayName()+" workspace").serveFile(req, rsp, ws, "folder.gif", true); + return new DirectoryBrowserSupport(this, ws, getDisplayName()+" workspace", "folder.gif", true); } } /** * Wipes out the workspace. */ - public void doDoWipeOutWorkspace(StaplerResponse rsp) throws IOException, InterruptedException { + public HttpResponse doDoWipeOutWorkspace() throws IOException, ServletException, InterruptedException { checkPermission(BUILD); - getWorkspace().deleteRecursive(); - rsp.sendRedirect2("."); + R b = getSomeBuildWithWorkspace(); + FilePath ws = b!=null ? b.getWorkspace() : null; + if (ws!=null && getScm().processWorkspaceBeforeDeletion(this, ws, b.getBuiltOn())) { + ws.deleteRecursive(); + return new HttpRedirect("."); + } else { + // If we get here, that means the SCM blocked the workspace deletion. + return new ForwardToView(this,"wipeOutWorkspaceBlocked.jelly"); + } } - public void doDisable(StaplerResponse rsp) throws IOException, ServletException { + @CLIMethod(name="disable-job") + public HttpResponse doDisable() throws IOException, ServletException { requirePOST(); checkPermission(CONFIGURE); makeDisabled(true); - rsp.sendRedirect2("."); + return new HttpRedirect("."); } - public void doEnable(StaplerResponse rsp) throws IOException, ServletException { + @CLIMethod(name="enable-job") + public HttpResponse doEnable() throws IOException, ServletException { + requirePOST(); checkPermission(CONFIGURE); makeDisabled(false); - rsp.sendRedirect2("."); + return new HttpRedirect("."); } /** @@ -1355,6 +1757,77 @@ public abstract class AbstractProject

    ,R extends A public boolean isApplicable(Descriptor descriptor) { return true; } + + public FormValidation doCheckAssignedLabelString(@QueryParameter String value) { + if (Util.fixEmpty(value)==null) + return FormValidation.ok(); // nothing typed yet + try { + Label.parseExpression(value); + } catch (ANTLRException e) { + return FormValidation.error(e,"Invalid boolean expression: "+e.getMessage()); + } + // TODO: if there's an atom in the expression that is empty, report it + if (Hudson.getInstance().getLabel(value).isEmpty()) + return FormValidation.warning("There's no slave/cloud that matches this assignment"); + return FormValidation.ok(); + } + + public AutoCompletionCandidates doAutoCompleteAssignedLabelString(@QueryParameter String value) { + AutoCompletionCandidates c = new AutoCompletionCandidates(); + Set

    ,R extends A * Permission to abort a build. For now, let's make it the same as {@link #BUILD} */ public static final Permission ABORT = BUILD; + + /** + * Used for CLI binding. + */ + @CLIResolver + public static AbstractProject resolveForCLI( + @Argument(required=true,metaVar="NAME",usage="Job name") String name) throws CmdLineException { + AbstractProject item = Hudson.getInstance().getItemByFullName(name, AbstractProject.class); + if (item==null) + throw new CmdLineException(null,Messages.AbstractItem_NoSuchJobExists(name,AbstractProject.findNearest(name).getFullName())); + return item; + } } - diff --git a/core/src/main/java/hudson/model/Action.java b/core/src/main/java/hudson/model/Action.java index 276608b9b0ca2449a9a266816b0779e076fc5f8f..9683ef712655a0256d14a87bc885e6d090649751 100644 --- a/core/src/main/java/hudson/model/Action.java +++ b/core/src/main/java/hudson/model/Action.java @@ -26,9 +26,18 @@ package hudson.model; import hudson.tasks.test.TestResultProjectAction; /** - * Object that contributes an item to the left hand side menu - * of a {@link ModelObject} - * (for example to {@link Project}, {@link Build}, and etc.) + * Object that contributes additional information, behaviors, and UIs to {@link ModelObject} + * (more specifically {@link Actionable} objects, which most interesting {@link ModelObject}s are.) + * + *

    + * {@link Action}s added to a model object creates additional URL subspace under the parent model object, + * through which it can interact with users. {@link Action}s are also capable of exposing themselves + * to the left hand side menu of a {@link ModelObject} (for example to {@link Project}, {@link Build}, and etc.) + * + *

    + * Some actions use the latter without the former (for example, to add a link to an external website), + * while others do the former without the latter (for example, to just draw some graphs in floatingBox.jelly), + * and still some others do both. * *

    * If an action has a view named floatingBox.jelly, diff --git a/core/src/main/java/hudson/model/AdministrativeMonitor.java b/core/src/main/java/hudson/model/AdministrativeMonitor.java index e36989dc9934eededdaa1560b14c44b60a9da171..5b04ed0edd868c681fd23c145c9b4e1e58435d5b 100644 --- a/core/src/main/java/hudson/model/AdministrativeMonitor.java +++ b/core/src/main/java/hudson/model/AdministrativeMonitor.java @@ -43,7 +43,7 @@ import org.kohsuke.stapler.StaplerResponse; *

    How to implement?

    *

    * Plugins who wish to contribute such notifications can implement this - * class and put to {@link Extension} to register it to Hudson. + * class and put {@link Extension} on it to register it to Hudson. * *

    * Once installed, it's the implementor's responsibility to perform diff --git a/core/src/main/java/hudson/model/AllView.java b/core/src/main/java/hudson/model/AllView.java index f4f2bb2bcac443003e9d4198d1d5eb4fb8e4724e..03b6eaa4de4eb20f10bf6b2ec54644569b498cbc 100644 --- a/core/src/main/java/hudson/model/AllView.java +++ b/core/src/main/java/hudson/model/AllView.java @@ -1,7 +1,7 @@ /* * The MIT License * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi + * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Tom Huybrechts * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -24,6 +24,7 @@ package hudson.model; import org.kohsuke.stapler.DataBoundConstructor; +import org.kohsuke.stapler.Stapler; import org.kohsuke.stapler.StaplerRequest; import org.kohsuke.stapler.StaplerResponse; @@ -46,11 +47,21 @@ public class AllView extends View { super(name); } + public AllView(String name, ViewGroup owner) { + this(name); + this.owner = owner; + } + @Override public String getDescription() { return Hudson.getInstance().getDescription(); } + @Override + public boolean isEditable() { + return false; + } + @Override public boolean contains(TopLevelItem item) { return true; @@ -67,6 +78,15 @@ public class AllView extends View { return Hudson.getInstance().getItems(); } + @Override + public synchronized void doSubmitDescription( StaplerRequest req, StaplerResponse rsp ) throws IOException, ServletException { + checkPermission(Hudson.ADMINISTER); + + req.setCharacterEncoding("UTF-8"); + Hudson.getInstance().setSystemMessage(req.getParameter("description")); + rsp.sendRedirect("."); + } + @Override public String getPostConstructLandingPage() { return ""; // there's no configuration page @@ -86,7 +106,7 @@ public class AllView extends View { public static final class DescriptorImpl extends ViewDescriptor { @Override public boolean isInstantiable() { - for (View v : Hudson.getInstance().getViews()) + for (View v : Stapler.getCurrentRequest().findAncestorObject(ViewGroup.class).getViews()) if(v instanceof AllView) return false; return true; diff --git a/core/src/main/java/hudson/model/Api.java b/core/src/main/java/hudson/model/Api.java index 63f73317f975f54f3c9c07435b87a8469b7b1166..053b8228ef4417cce6f5e40d5c67a7ca634d5219 100644 --- a/core/src/main/java/hudson/model/Api.java +++ b/core/src/main/java/hudson/model/Api.java @@ -1,7 +1,7 @@ /* * The MIT License * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi + * Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -40,6 +40,7 @@ import javax.servlet.ServletException; import javax.servlet.http.HttpServletResponse; import javax.xml.transform.stream.StreamResult; import java.io.IOException; +import java.io.OutputStream; import java.io.StringReader; import java.io.StringWriter; import java.util.List; @@ -109,48 +110,58 @@ public class Api extends AbstractModelObject { } } } - - List list = dom.selectNodes(xpath); - if (wrapper!=null) { - Element root = DocumentFactory.getInstance().createElement(wrapper); - for (Object o : list) { - if (o instanceof String) { - root.addText(o.toString()); - } else { - root.add(((org.dom4j.Node)o).detach()); + + if(xpath==null) { + result = dom; + } else { + List list = dom.selectNodes(xpath); + if (wrapper!=null) { + Element root = DocumentFactory.getInstance().createElement(wrapper); + for (Object o : list) { + if (o instanceof String) { + root.addText(o.toString()); + } else { + root.add(((org.dom4j.Node)o).detach()); + } } + result = root; + } else if (list.isEmpty()) { + rsp.setStatus(HttpServletResponse.SC_NOT_FOUND); + rsp.getWriter().print(Messages.Api_NoXPathMatch(xpath)); + return; + } else if (list.size() > 1) { + rsp.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); + rsp.getWriter().print(Messages.Api_MultipleMatch(xpath,list.size())); + return; + } else { + result = list.get(0); } - result = root; - } else if (list.isEmpty()) { - rsp.setStatus(HttpServletResponse.SC_NOT_FOUND); - rsp.getWriter().print(Messages.Api_NoXPathMatch(xpath)); - return; - } else if (list.size() > 1) { - rsp.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); - rsp.getWriter().print(Messages.Api_MultipleMatch(xpath,list.size())); - return; - } else { - result = list.get(0); } + } catch (DocumentException e) { throw new IOException2(e); } - if(result instanceof CharacterData) { - rsp.setContentType("text/plain"); - rsp.getWriter().print(((CharacterData)result).getText()); - return; - } + OutputStream o = rsp.getCompressedOutputStream(req); + try { + if(result instanceof CharacterData) { + rsp.setContentType("text/plain;charset=UTF-8"); + o.write(((CharacterData)result).getText().getBytes("UTF-8")); + return; + } - if(result instanceof String || result instanceof Number || result instanceof Boolean) { - rsp.setContentType("text/plain"); - rsp.getWriter().print(result.toString()); - return; - } + if(result instanceof String || result instanceof Number || result instanceof Boolean) { + rsp.setContentType("text/plain;charset=UTF-8"); + o.write(result.toString().getBytes("UTF-8")); + return; + } - // otherwise XML - rsp.setContentType("application/xml;charset=UTF-8"); - new XMLWriter(rsp.getWriter()).write(result); + // otherwise XML + rsp.setContentType("application/xml;charset=UTF-8"); + new XMLWriter(o).write(result); + } finally { + o.close(); + } } /** diff --git a/core/src/main/java/hudson/model/AsyncPeriodicWork.java b/core/src/main/java/hudson/model/AsyncPeriodicWork.java index cb85abc5cd76d9bb67273c8d39c24ab2bd89911c..be84e3772773ade99aaa4603947feefce2be9039 100644 --- a/core/src/main/java/hudson/model/AsyncPeriodicWork.java +++ b/core/src/main/java/hudson/model/AsyncPeriodicWork.java @@ -1,16 +1,13 @@ package hudson.model; -import hudson.util.StreamTaskListener; -import hudson.util.NullStream; import hudson.security.ACL; +import hudson.util.StreamTaskListener; +import org.acegisecurity.context.SecurityContextHolder; import java.io.File; -import java.io.FileNotFoundException; import java.io.IOException; import java.util.logging.Level; -import org.acegisecurity.context.SecurityContextHolder; - /** * {@link PeriodicWork} that takes a long time to run. * @@ -57,7 +54,7 @@ public abstract class AsyncPeriodicWork extends PeriodicWork { } catch (InterruptedException e) { e.printStackTrace(l.fatalError("aborted")); } finally { - l.close(); + l.closeQuietly(); } logger.log(Level.INFO, "Finished "+name+". "+ @@ -73,8 +70,8 @@ public abstract class AsyncPeriodicWork extends PeriodicWork { protected StreamTaskListener createListener() { try { return new StreamTaskListener(getLogFile()); - } catch (FileNotFoundException e) { - return new StreamTaskListener(new NullStream()); + } catch (IOException e) { + throw new Error(e); } } diff --git a/core/src/main/java/hudson/model/AutoCompletionCandidates.java b/core/src/main/java/hudson/model/AutoCompletionCandidates.java new file mode 100644 index 0000000000000000000000000000000000000000..10888d20944b0600b02c2f71d0ec0c4ea358be9e --- /dev/null +++ b/core/src/main/java/hudson/model/AutoCompletionCandidates.java @@ -0,0 +1,66 @@ +/* + * The MIT License + * + * Copyright (c) 2010, InfraDNA, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +package hudson.model; + +import hudson.search.Search; +import org.kohsuke.stapler.HttpResponse; +import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.export.Flavor; + +import javax.servlet.ServletException; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +/** + * Data representation of the auto-completion candidates. + *

    + * This object should be returned from your doAutoCompleteXYZ methods. + * + * @author Kohsuke Kawaguchi + */ +public class AutoCompletionCandidates implements HttpResponse { + private final List values = new ArrayList(); + + public AutoCompletionCandidates add(String v) { + values.add(v); + return this; + } + + public AutoCompletionCandidates add(String... v) { + values.addAll(Arrays.asList(v)); + return this; + } + + public void generateResponse(StaplerRequest req, StaplerResponse rsp, Object o) throws IOException, ServletException { + Search.Result r = new Search.Result(); + for (String value : values) { + r.suggestions.add(new hudson.search.Search.Item(value)); + } + rsp.serveExposedBean(req,r, Flavor.JSON); + } +} diff --git a/core/src/main/java/hudson/model/BallColor.java b/core/src/main/java/hudson/model/BallColor.java index f36db55eb686b28da9066021c8747f67e0283ef8..98ff3c4adb73c1e0f0ed8647c5583a3974f7f42f 100644 --- a/core/src/main/java/hudson/model/BallColor.java +++ b/core/src/main/java/hudson/model/BallColor.java @@ -23,9 +23,11 @@ */ package hudson.model; +import hudson.util.ColorPalette; import org.jvnet.localizer.LocaleProvider; import org.jvnet.localizer.Localizable; +import java.awt.*; import java.util.Locale; /** @@ -36,7 +38,7 @@ import java.util.Locale; * {@link #ordinal()} is the sort order. * *

    - * Note that mutiple {@link BallColor} instances may map to the same + * Note that multiple {@link BallColor} instances may map to the same * RGB color, to avoid the rainbow effect. * *

    Historical Note

    @@ -49,26 +51,28 @@ import java.util.Locale; * @author Kohsuke Kawaguchi */ public enum BallColor { - RED("red",Messages._BallColor_Failed()), - RED_ANIME("red_anime",Messages._BallColor_InProgress()), - YELLOW("yellow",Messages._BallColor_Unstable()), - YELLOW_ANIME("yellow_anime",Messages._BallColor_InProgress()), - BLUE("blue",Messages._BallColor_Success()), - BLUE_ANIME("blue_anime",Messages._BallColor_InProgress()), + RED("red",Messages._BallColor_Failed(), ColorPalette.RED), + RED_ANIME("red_anime",Messages._BallColor_InProgress(), ColorPalette.RED), + YELLOW("yellow",Messages._BallColor_Unstable(), ColorPalette.YELLOW), + YELLOW_ANIME("yellow_anime",Messages._BallColor_InProgress(), ColorPalette.YELLOW), + BLUE("blue",Messages._BallColor_Success(), ColorPalette.BLUE), + BLUE_ANIME("blue_anime",Messages._BallColor_InProgress(), ColorPalette.BLUE), // for historical reasons they are called grey. - GREY("grey",Messages._BallColor_Pending()), - GREY_ANIME("grey_anime",Messages._BallColor_InProgress()), + GREY("grey",Messages._BallColor_Pending(), ColorPalette.GREY), + GREY_ANIME("grey_anime",Messages._BallColor_InProgress(), ColorPalette.GREY), - DISABLED("grey",Messages._BallColor_Disabled()), - DISABLED_ANIME("grey_anime",Messages._BallColor_InProgress()), - ABORTED("grey",Messages._BallColor_Aborted()), - ABORTED_ANIME("grey_anime",Messages._BallColor_InProgress()), + DISABLED("grey",Messages._BallColor_Disabled(), ColorPalette.GREY), + DISABLED_ANIME("grey_anime",Messages._BallColor_InProgress(), ColorPalette.GREY), + ABORTED("grey",Messages._BallColor_Aborted(), ColorPalette.GREY), + ABORTED_ANIME("grey_anime",Messages._BallColor_InProgress(), ColorPalette.GREY), ; private final Localizable description; private final String image; + private final Color baseColor; - BallColor(String image, Localizable description) { + BallColor(String image, Localizable description, Color baseColor) { + this.baseColor = baseColor; // name() is not usable in the constructor, so I have to repeat the name twice // in the constants definition. this.image = image+".gif"; @@ -89,9 +93,24 @@ public enum BallColor { return description.toString(LocaleProvider.getLocale()); } + /** + * Gets the RGB color of this color. Animation effect is not reflected to this value. + */ + public Color getBaseColor() { + return baseColor; + } + + /** + * Returns the {@link #getBaseColor()} in the "#RRGGBB" format. + */ + public String getHtmlBaseColor() { + return String.format("#%06X",baseColor.getRGB()&0xFFFFFF); + } + /** * Also used as a final name. */ + @Override public String toString() { return name().toLowerCase(Locale.ENGLISH); } @@ -100,15 +119,22 @@ public enum BallColor { * Gets the animated version. */ public BallColor anime() { - if(name().endsWith("_ANIME")) return this; - else return valueOf(name()+"_ANIME"); + if(isAnimated()) return this; + else return valueOf(name()+"_ANIME"); } /** * Gets the unanimated version. */ public BallColor noAnime() { - if(name().endsWith("_ANIME")) return valueOf(name().substring(0,name().length()-6)); - else return this; + if(isAnimated()) return valueOf(name().substring(0,name().length()-6)); + else return this; + } + + /** + * True if the icon is animated. + */ + public boolean isAnimated() { + return name().endsWith("_ANIME"); } } diff --git a/core/src/main/java/hudson/model/BooleanParameterDefinition.java b/core/src/main/java/hudson/model/BooleanParameterDefinition.java index 3e7e4538681a3dbf358ca743a11b90952a0f7d65..301863ea599d05e3fb62def8e5d4f9c915266509 100755 --- a/core/src/main/java/hudson/model/BooleanParameterDefinition.java +++ b/core/src/main/java/hudson/model/BooleanParameterDefinition.java @@ -1,62 +1,78 @@ -package hudson.model; - -import org.kohsuke.stapler.StaplerRequest; -import org.kohsuke.stapler.DataBoundConstructor; -import net.sf.json.JSONObject; -import hudson.Extension; - -/** - * @author huybrechts - */ -public class BooleanParameterDefinition extends ParameterDefinition { - private final boolean defaultValue; - - @DataBoundConstructor - public BooleanParameterDefinition(String name, boolean defaultValue, String description) { - super(name, description); - this.defaultValue = defaultValue; - } - - public boolean isDefaultValue() { - return defaultValue; - } - - @Override - public ParameterValue createValue(StaplerRequest req, JSONObject jo) { - BooleanParameterValue value = req.bindJSON(BooleanParameterValue.class, jo); - value.setDescription(getDescription()); - return value; - } - - @Override - public ParameterValue createValue(StaplerRequest req) { - String[] value = req.getParameterValues(getName()); - if (value == null) { - return getDefaultParameterValue(); - } else if (value.length != 1) { - throw new IllegalArgumentException("Illegal number of parameter values for " + getName() + ": " + value.length); - } else { - boolean booleanValue = Boolean.parseBoolean(value[0]); - return new BooleanParameterValue(getName(), booleanValue, getDescription()); - } - } - - @Override - public BooleanParameterValue getDefaultParameterValue() { - return new BooleanParameterValue(getName(), defaultValue, getDescription()); - } - - @Extension - public static class DescriptorImpl extends ParameterDescriptor { - @Override - public String getDisplayName() { - return Messages.BooleanParameterDefinition_DisplayName(); - } - - @Override - public String getHelpFile() { - return "/help/parameter/boolean.html"; - } - } - -} +/* + * The MIT License + * + * Copyright (c) 2004-2009, Sun Microsystems, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.model; + +import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.DataBoundConstructor; +import net.sf.json.JSONObject; +import hudson.Extension; + +/** + * {@link ParameterDefinition} that is either 'true' or 'false'. + * + * @author huybrechts + */ +public class BooleanParameterDefinition extends SimpleParameterDefinition { + private final boolean defaultValue; + + @DataBoundConstructor + public BooleanParameterDefinition(String name, boolean defaultValue, String description) { + super(name, description); + this.defaultValue = defaultValue; + } + + public boolean isDefaultValue() { + return defaultValue; + } + + @Override + public ParameterValue createValue(StaplerRequest req, JSONObject jo) { + BooleanParameterValue value = req.bindJSON(BooleanParameterValue.class, jo); + value.setDescription(getDescription()); + return value; + } + + public ParameterValue createValue(String value) { + return new BooleanParameterValue(getName(),Boolean.valueOf(value),getDescription()); + } + + @Override + public BooleanParameterValue getDefaultParameterValue() { + return new BooleanParameterValue(getName(), defaultValue, getDescription()); + } + + @Extension + public static class DescriptorImpl extends ParameterDescriptor { + @Override + public String getDisplayName() { + return Messages.BooleanParameterDefinition_DisplayName(); + } + + @Override + public String getHelpFile() { + return "/help/parameter/boolean.html"; + } + } + +} diff --git a/core/src/main/java/hudson/model/BooleanParameterValue.java b/core/src/main/java/hudson/model/BooleanParameterValue.java index 6334dc9dc7fd498f41c46274dd173d37ea37bba0..f03caa935ee5bbb68c24389655e5779df90bccaa 100755 --- a/core/src/main/java/hudson/model/BooleanParameterValue.java +++ b/core/src/main/java/hudson/model/BooleanParameterValue.java @@ -23,18 +23,19 @@ */ package hudson.model; +import hudson.EnvVars; import org.kohsuke.stapler.DataBoundConstructor; import org.kohsuke.stapler.export.Exported; -import java.util.Map; +import java.util.Locale; import hudson.util.VariableResolver; /** - * {@link hudson.model.ParameterValue} created from {@link hudson.model.StringParameterDefinition}. + * {@link ParameterValue} created from {@link BooleanParameterDefinition}. */ public class BooleanParameterValue extends ParameterValue { - @Exported(visibility=3) + @Exported(visibility=4) public final boolean value; @DataBoundConstructor @@ -51,8 +52,9 @@ public class BooleanParameterValue extends ParameterValue { * Exposes the name/value as an environment variable. */ @Override - public void buildEnvVars(AbstractBuild build, Map env) { - env.put(name.toUpperCase(),Boolean.toString(value)); + public void buildEnvVars(AbstractBuild build, EnvVars env) { + env.put(name,Boolean.toString(value)); + env.put(name.toUpperCase(Locale.ENGLISH),Boolean.toString(value)); // backward compatibility pre 1.345 } @Override diff --git a/core/src/main/java/hudson/model/Build.java b/core/src/main/java/hudson/model/Build.java index 5ee349c63c00ab4fe8618abfb6a8bff6b352031d..50c05d2852a3c3420b3835917e0abc4764442190 100644 --- a/core/src/main/java/hudson/model/Build.java +++ b/core/src/main/java/hudson/model/Build.java @@ -23,13 +23,11 @@ */ package hudson.model; -import hudson.Launcher; -import hudson.slaves.NodeProperty; import hudson.tasks.BuildStep; -import hudson.tasks.BuildTrigger; import hudson.tasks.BuildWrapper; import hudson.tasks.Builder; -import hudson.triggers.SCMTrigger; +import hudson.tasks.Recorder; +import hudson.tasks.Notifier; import java.io.File; import java.io.IOException; @@ -37,22 +35,51 @@ import java.util.ArrayList; import java.util.Calendar; import java.util.Collection; import java.util.List; -import java.util.concurrent.locks.ReentrantLock; import java.util.logging.Logger; +import static hudson.model.Result.FAILURE; + /** * A build of a {@link Project}. * + *

    Steps of a build

    + *

    + * Roughly speaking, a {@link Build} goes through the following stages: + * + *

    + *
    SCM checkout + *
    Hudson decides which directory to use for a build, then the source code is checked out + * + *
    Pre-build steps + *
    Everyone gets their {@link BuildStep#prebuild(AbstractBuild, BuildListener)} invoked + * to indicate that the build is starting + * + *
    Build wrapper set up + *
    {@link BuildWrapper#setUp(AbstractBuild, Launcher, BuildListener)} is invoked. This is normally + * to prepare an environment for the build. + * + *
    Builder runs + *
    {@link Builder#perform(AbstractBuild, Launcher, BuildListener)} is invoked. This is where + * things that are useful to users happen, like calling Ant, Make, etc. + * + *
    Recorder runs + *
    {@link Recorder#perform(AbstractBuild, Launcher, BuildListener)} is invoked. This is normally + * to record the output from the build, such as test results. + * + *
    Notifier runs + *
    {@link Notifier#perform(AbstractBuild, Launcher, BuildListener)} is invoked. This is normally + * to send out notifications, based on the results determined so far. + *
    + * + *

    + * And beyond that, the build is considered complete, and from then on {@link Build} object is there to + * keep the record of what happened in this build. + * * @author Kohsuke Kawaguchi */ public abstract class Build

    ,B extends Build> extends AbstractBuild { - /** - * If the build required a lock, remember it so that we can release it. - */ - private transient ReentrantLock buildLock; - /** * Creates a new build. */ @@ -71,37 +98,6 @@ public abstract class Build

    ,B extends Build> super(project,buildDir); } - @Override - protected void onStartBuilding() { - super.onStartBuilding(); - SCMTrigger t = (SCMTrigger)project.getTriggers().get(Hudson.getInstance().getDescriptorByType(SCMTrigger.DescriptorImpl.class)); - if(t!=null) { - // acquire the lock - buildLock = t.getLock(); - synchronized(buildLock) { - try { - if(buildLock.isLocked()) { - long time = System.currentTimeMillis(); - LOGGER.info("Waiting for the polling of "+getParent()+" to complete"); - buildLock.lockInterruptibly(); - LOGGER.info("Polling completed. Waited "+(System.currentTimeMillis()-time)+"ms"); - } else - buildLock.lockInterruptibly(); - } catch (InterruptedException e) { - // handle the interrupt later - Thread.currentThread().interrupt(); - } - } - } - } - - @Override - protected void onEndBuilding() { - super.onEndBuilding(); - if(buildLock!=null) - buildLock.unlock(); - } - // // // actions @@ -109,48 +105,39 @@ public abstract class Build

    ,B extends Build> // @Override public void run() { - run(new RunnerImpl()); + run(createRunner()); + } + + protected Runner createRunner() { + return new RunnerImpl(); } protected class RunnerImpl extends AbstractRunner { protected Result doRun(BuildListener listener) throws Exception { if(!preBuild(listener,project.getBuilders())) - return Result.FAILURE; + return FAILURE; if(!preBuild(listener,project.getPublishers())) - return Result.FAILURE; + return FAILURE; - buildEnvironments = new ArrayList(); + Result r = null; try { List wrappers = new ArrayList(project.getBuildWrappers().values()); - for (NodeProperty nodeProperty: Hudson.getInstance().getGlobalNodeProperties()) { - Environment environment = nodeProperty.setUp(Build.this, launcher, listener); - if (environment != null) { - buildEnvironments.add(environment); - } - } - - for (NodeProperty nodeProperty: Computer.currentComputer().getNode().getNodeProperties()) { - Environment environment = nodeProperty.setUp(Build.this, launcher, listener); - if (environment != null) { - buildEnvironments.add(environment); - } - } - ParametersAction parameters = getAction(ParametersAction.class); if (parameters != null) parameters.createBuildWrappers(Build.this,wrappers); for( BuildWrapper w : wrappers ) { - Environment e = w.setUp((AbstractBuild)Build.this, launcher, listener); + Environment e = w.setUp((AbstractBuild)Build.this, launcher, listener); if(e==null) - return Result.FAILURE; + return (r = FAILURE); buildEnvironments.add(e); } if(!build(listener,project.getBuilders())) - return Result.FAILURE; + r = FAILURE; } finally { + if (r != null) setResult(r); // tear down in reverse order boolean failed=false; for( int i=buildEnvironments.size()-1; i>=0; i-- ) { @@ -158,41 +145,31 @@ public abstract class Build

    ,B extends Build> failed=true; } } - buildEnvironments = null; // WARNING The return in the finally clause will trump any return before - if (failed) return Result.FAILURE; + if (failed) return FAILURE; } - return null; - } - - /** - * Decorates the {@link Launcher} - */ - @Override - protected Launcher createLauncher(BuildListener listener) throws IOException, InterruptedException { - Launcher l = super.createLauncher(listener); - - for(BuildWrapper bw : project.getBuildWrappers().values()) - l = bw.decorateLauncher(Build.this,l,listener); - - return l; + return r; } public void post2(BuildListener listener) throws IOException, InterruptedException { - performAllBuildStep(listener, project.getPublishers(),true); - performAllBuildStep(listener, project.getProperties(),true); + if (!performAllBuildSteps(listener, project.getPublishers(), true)) + setResult(FAILURE); + if (!performAllBuildSteps(listener, project.getProperties(), true)) + setResult(FAILURE); } + @Override public void cleanUp(BuildListener listener) throws Exception { - performAllBuildStep(listener, project.getPublishers(),false); - performAllBuildStep(listener, project.getProperties(),false); - BuildTrigger.execute(Build.this,listener, project.getPublishersList().get(BuildTrigger.class)); + // at this point it's too late to mark the build as a failure, so ignore return value. + performAllBuildSteps(listener, project.getPublishers(), false); + performAllBuildSteps(listener, project.getProperties(), false); + super.cleanUp(listener); } private boolean build(BuildListener listener, Collection steps) throws IOException, InterruptedException { for( BuildStep bs : steps ) - if(!bs.perform(Build.this, launcher, listener)) + if(!perform(bs,listener)) return false; return true; } diff --git a/core/src/main/java/hudson/model/BuildAuthorizationToken.java b/core/src/main/java/hudson/model/BuildAuthorizationToken.java index 0350ad859af961cc88c30e675f2f195cfa4127e4..2af173ca7ed0914bbf57cb966bea26eaebe1804b 100644 --- a/core/src/main/java/hudson/model/BuildAuthorizationToken.java +++ b/core/src/main/java/hudson/model/BuildAuthorizationToken.java @@ -23,7 +23,7 @@ */ package hudson.model; -import com.thoughtworks.xstream.converters.basic.AbstractBasicConverter; +import com.thoughtworks.xstream.converters.basic.AbstractSingleValueConverter; import hudson.Util; import hudson.security.ACL; import org.kohsuke.stapler.StaplerRequest; @@ -36,7 +36,7 @@ import java.io.IOException; * * @author Kohsuke Kawaguchi * @see BuildableItem - * @deprecated + * @deprecated 2008-07-20 * Use {@link ACL} and {@link AbstractProject#BUILD}. This code is only here * for the backward compatibility. */ @@ -75,16 +75,17 @@ public final class BuildAuthorizationToken { return token; } - public static final class ConverterImpl extends AbstractBasicConverter { + public static final class ConverterImpl extends AbstractSingleValueConverter { public boolean canConvert(Class type) { return type== BuildAuthorizationToken.class; } - protected Object fromString(String str) { + public Object fromString(String str) { return new BuildAuthorizationToken(str); } - protected String toString(Object obj) { + @Override + public String toString(Object obj) { return ((BuildAuthorizationToken)obj).token; } } diff --git a/core/src/main/java/hudson/model/BuildListener.java b/core/src/main/java/hudson/model/BuildListener.java index 867a32d0b6c8cc09b77330c31290450322bc3888..ed668463de9c4bbc4d6050df6d031bfa6eacfeac 100644 --- a/core/src/main/java/hudson/model/BuildListener.java +++ b/core/src/main/java/hudson/model/BuildListener.java @@ -34,6 +34,9 @@ public interface BuildListener extends TaskListener { /** * Called when a build is started. + * + * @param causes + * Causes that started a build. See {@link Run#getCauses()}. */ void started(List causes); diff --git a/core/src/main/java/hudson/model/BuildTimelineWidget.java b/core/src/main/java/hudson/model/BuildTimelineWidget.java new file mode 100644 index 0000000000000000000000000000000000000000..ca1e226893dec7f421129ef420f92bf791ddb46c --- /dev/null +++ b/core/src/main/java/hudson/model/BuildTimelineWidget.java @@ -0,0 +1,78 @@ +/* + * The MIT License + * + * Copyright (c) 2010, InfraDNA, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.model; + +import hudson.util.RunList; +import org.kohsuke.stapler.QueryParameter; +import org.kohsuke.stapler.StaplerRequest; +import org.koshuke.stapler.simile.timeline.Event; +import org.koshuke.stapler.simile.timeline.TimelineEventList; + +import java.io.IOException; +import java.util.Date; + +/** + * UI widget for showing the SMILE timeline control. + * + *

    + * Return this from your "getTimeline" method. + * + * @author Kohsuke Kawaguchi + * @since 1.372 + */ +public class BuildTimelineWidget { + protected final RunList builds; + + public BuildTimelineWidget(RunList builds) { + this.builds = builds; + } + + public Run getFirstBuild() { + return builds.getFirstBuild(); + } + + public Run getLastBuild() { + return builds.getLastBuild(); + } + + public TimelineEventList doData(StaplerRequest req, @QueryParameter long min, @QueryParameter long max) throws IOException { + TimelineEventList result = new TimelineEventList(); + for (Run r : builds.byTimestamp(min,max)) { + Event e = new Event(); + e.start = r.getTime(); + e.end = new Date(r.timestamp+r.getDuration()); + e.title = r.getFullDisplayName(); + // what to put in the description? + // e.description = "Longish description of event "+r.getFullDisplayName(); + // e.durationEvent = true; + e.link = req.getContextPath()+'/'+r.getUrl(); + BallColor c = r.getIconColor(); + e.color = String.format("#%06X",c.getBaseColor().darker().getRGB()&0xFFFFFF); + e.classname = "event-"+c.noAnime().toString()+" " + (c.isAnimated()?"animated":""); + result.add(e); + } + return result; + } + +} diff --git a/core/src/main/java/hudson/model/BuildableItemWithBuildWrappers.java b/core/src/main/java/hudson/model/BuildableItemWithBuildWrappers.java new file mode 100644 index 0000000000000000000000000000000000000000..36b75a41fe4f3d8478615530a374ba5e47988603 --- /dev/null +++ b/core/src/main/java/hudson/model/BuildableItemWithBuildWrappers.java @@ -0,0 +1,32 @@ +package hudson.model; + +import hudson.tasks.BuildWrapper; +import hudson.util.DescribableList; + +/** + * {@link AbstractProject} that has associated {@link BuildWrapper}s. + * + * @author Kohsuke Kawaguchi + * @since 1.335 + */ +public interface BuildableItemWithBuildWrappers extends BuildableItem { + /** + * {@link BuildableItemWithBuildWrappers} needs to be an instance of + * {@link AbstractProject}. + * + *

    + * This method must be always implemented as {@code (AbstractProject)this}, but + * defining this method emphasizes the fact that this cast must be doable. + */ + AbstractProject asProject(); + + /** + * {@link BuildWrapper}s associated with this {@link AbstractProject}. + * + * @return + * can be empty but never null. This list is live, and changes to it will be reflected + * to the project configuration. + */ + DescribableList> getBuildWrappersList(); +} + diff --git a/core/src/main/java/hudson/model/Cause.java b/core/src/main/java/hudson/model/Cause.java index cfd6c1a5320128bf53c851f228a6e5ef801516ce..d296f27dffc29d2e9f871cbf4e03384098d7a21d 100644 --- a/core/src/main/java/hudson/model/Cause.java +++ b/core/src/main/java/hudson/model/Cause.java @@ -1,7 +1,7 @@ /* * The MIT License * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Michael B. Donohue, Seiji Sogabe + * Copyright (c) 2004-2010, Sun Microsystems, Inc., Michael B. Donohue, Seiji Sogabe * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -24,98 +24,191 @@ package hudson.model; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; -import org.kohsuke.stapler.Stapler; +import hudson.console.HyperlinkNote; +import hudson.diagnosis.OldDataMonitor; +import hudson.util.XStream2; import org.kohsuke.stapler.export.Exported; import org.kohsuke.stapler.export.ExportedBean; +import com.thoughtworks.xstream.converters.UnmarshallingContext; /** * Cause object base class. This class hierarchy is used to keep track of why - * a given build was started. The Cause object is connected to a build via the - * CauseAction object. + * a given build was started. This object encapsulates the UI rendering of the cause, + * as well as providing more useful information in respective subypes. + * + * The Cause object is connected to a build via the {@link CauseAction} object. + * + *

    Views

    + *
    + *
    description.jelly + *
    Renders the cause to HTML. By default, it puts the short description. + *
    * * @author Michael Donohue + * @see Run#getCauses() + * @see Queue.Item#getCauses() */ @ExportedBean public abstract class Cause { - @Exported(visibility=3) - abstract public String getShortDescription(); - - public static class LegacyCodeCause extends Cause { - private StackTraceElement [] stackTrace; - public LegacyCodeCause() { - stackTrace = new Exception().getStackTrace(); - } - - @Override - public String getShortDescription() { - return Messages.Cause_LegacyCodeCause_ShortDescription(); - } - } - - public static class UpstreamCause extends Cause { - private String upstreamProject, upstreamUrl; - private int upstreamBuild; - @Deprecated - private transient Cause upstreamCause; - private List upstreamCauses = new ArrayList(); - - // for backward bytecode compatibility - public UpstreamCause(AbstractBuild up) { - this((Run)up); - } - - public UpstreamCause(Run up) { - upstreamBuild = up.getNumber(); - upstreamProject = up.getParent().getName(); - upstreamUrl = up.getParent().getUrl(); - CauseAction ca = up.getAction(CauseAction.class); - upstreamCauses = ca == null ? null : ca.getCauses(); - } + /** + * One-line human-readable text of the cause. + * + *

    + * By default, this method is used to render HTML as well. + */ + @Exported(visibility=3) + public abstract String getShortDescription(); + + /** + * Called when the cause is registered to {@link AbstractBuild}. + * + * @param build + * never null + * @since 1.376 + */ + public void onAddedTo(AbstractBuild build) {} + + /** + * Report a line to the listener about this cause. + * @since 1.362 + */ + public void print(TaskListener listener) { + listener.getLogger().println(getShortDescription()); + } + + /** + * Fall back implementation when no other type is available. + * @deprecated since 2009-02-08 + */ + public static class LegacyCodeCause extends Cause { + private StackTraceElement [] stackTrace; + public LegacyCodeCause() { + stackTrace = new Exception().getStackTrace(); + } + + @Override + public String getShortDescription() { + return Messages.Cause_LegacyCodeCause_ShortDescription(); + } + } + + /** + * A build is triggered by the completion of another build (AKA upstream build.) + */ + public static class UpstreamCause extends Cause { + private String upstreamProject, upstreamUrl; + private int upstreamBuild; + /** + * @deprecated since 2009-02-28 + */ + @Deprecated + private transient Cause upstreamCause; + private List upstreamCauses; + + /** + * @deprecated since 2009-02-28 + */ + // for backward bytecode compatibility + public UpstreamCause(AbstractBuild up) { + this((Run)up); + } + + public UpstreamCause(Run up) { + upstreamBuild = up.getNumber(); + upstreamProject = up.getParent().getFullName(); + upstreamUrl = up.getParent().getUrl(); + upstreamCauses = new ArrayList(up.getCauses()); + } + + /** + * Returns true if this cause points to a build in the specified job. + */ + public boolean pointsTo(Job j) { + return j.getFullName().equals(upstreamProject); + } + + /** + * Returns true if this cause points to the specified build. + */ + public boolean pointsTo(Run r) { + return r.getNumber()==upstreamBuild && pointsTo(r.getParent()); + } + @Exported(visibility=3) public String getUpstreamProject() { return upstreamProject; } + @Exported(visibility=3) public int getUpstreamBuild() { return upstreamBuild; } + @Exported(visibility=3) public String getUpstreamUrl() { return upstreamUrl; } - - @Override - public String getShortDescription() { - return Messages.Cause_UpstreamCause_ShortDescription(upstreamProject, upstreamBuild); - } - - private Object readResolve() { - if(upstreamCause != null) { - if(upstreamCauses == null) upstreamCauses = new ArrayList(); - upstreamCauses.add(upstreamCause); - upstreamCause=null; - } - return this; - } - } - - public static class UserCause extends Cause { - private String authenticationName; - public UserCause() { - this.authenticationName = Hudson.getAuthentication().getName(); - } - + + @Override + public String getShortDescription() { + return Messages.Cause_UpstreamCause_ShortDescription(upstreamProject, upstreamBuild); + } + + @Override + public void print(TaskListener listener) { + listener.getLogger().println( + Messages.Cause_UpstreamCause_ShortDescription( + HyperlinkNote.encodeTo('/'+upstreamUrl, upstreamProject), + HyperlinkNote.encodeTo('/'+upstreamUrl+upstreamBuild, Integer.toString(upstreamBuild))) + ); + } + + public static class ConverterImpl extends XStream2.PassthruConverter { + public ConverterImpl(XStream2 xstream) { super(xstream); } + @Override protected void callback(UpstreamCause uc, UnmarshallingContext context) { + if (uc.upstreamCause != null) { + if (uc.upstreamCauses == null) uc.upstreamCauses = new ArrayList(); + uc.upstreamCauses.add(uc.upstreamCause); + uc.upstreamCause = null; + OldDataMonitor.report(context, "1.288"); + } + } + } + } + + /** + * A build is started by an user action. + */ + public static class UserCause extends Cause { + private String authenticationName; + public UserCause() { + this.authenticationName = Hudson.getAuthentication().getName(); + } + + @Exported(visibility=3) public String getUserName() { return authenticationName; } - @Override - public String getShortDescription() { - return Messages.Cause_UserCause_ShortDescription(authenticationName); - } - } + @Override + public String getShortDescription() { + return Messages.Cause_UserCause_ShortDescription(authenticationName); + } + + @Override + public boolean equals(Object o) { + return o instanceof UserCause && Arrays.equals(new Object[] {authenticationName}, + new Object[] {((UserCause)o).authenticationName}); + } + + @Override + public int hashCode() { + return 295 + (this.authenticationName != null ? this.authenticationName.hashCode() : 0); + } + } public static class RemoteCause extends Cause { private String addr; @@ -134,5 +227,19 @@ public abstract class Cause { return Messages.Cause_RemoteCause_ShortDescription(addr); } } + + @Override + public boolean equals(Object o) { + return o instanceof RemoteCause && Arrays.equals(new Object[] {addr, note}, + new Object[] {((RemoteCause)o).addr, ((RemoteCause)o).note}); + } + + @Override + public int hashCode() { + int hash = 5; + hash = 83 * hash + (this.addr != null ? this.addr.hashCode() : 0); + hash = 83 * hash + (this.note != null ? this.note.hashCode() : 0); + return hash; + } } } diff --git a/core/src/main/java/hudson/model/CauseAction.java b/core/src/main/java/hudson/model/CauseAction.java index b35f1d8c1ea5a2b811ea93d960b3f7a1cc0db25d..af2b9f6bc224bf21006d8be73a9df658a3e2587b 100644 --- a/core/src/main/java/hudson/model/CauseAction.java +++ b/core/src/main/java/hudson/model/CauseAction.java @@ -1,7 +1,7 @@ /* * The MIT License * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Michael B. Donohue + * Copyright (c) 2004-2010, Sun Microsystems, Inc., Michael B. Donohue * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -23,21 +23,29 @@ */ package hudson.model; +import hudson.diagnosis.OldDataMonitor; import hudson.model.Queue.Task; +import hudson.model.queue.FoldableAction; +import hudson.util.XStream2; +import org.kohsuke.stapler.export.Exported; +import org.kohsuke.stapler.export.ExportedBean; +import com.thoughtworks.xstream.converters.UnmarshallingContext; import java.util.ArrayList; +import java.util.LinkedHashMap; import java.util.List; - -import org.kohsuke.stapler.export.Exported; -import org.kohsuke.stapler.export.ExportedBean; +import java.util.Map; @ExportedBean -public class CauseAction implements FoldableAction { - @Deprecated - // there can be multiple causes, so this is deprecated - private transient Cause cause; +public class CauseAction implements FoldableAction, RunAction { + /** + * @deprecated since 2009-02-28 + */ + @Deprecated + // there can be multiple causes, so this is deprecated + private transient Cause cause; - private List causes = new ArrayList(); + private List causes = new ArrayList(); @Exported(visibility=2) public List getCauses() { @@ -65,6 +73,19 @@ public class CauseAction implements FoldableAction { return "cause"; } + /** + * Get list of causes with duplicates combined into counters. + * @return Map of Cause to number of occurrences of that Cause + */ + public Map getCauseCounts() { + Map result = new LinkedHashMap(); + for (Cause c : causes) { + Integer i = result.get(c); + result.put(c, i == null ? 1 : i.intValue() + 1); + } + return result; + } + /** * @deprecated as of 1.288 * but left here for backward compatibility. @@ -74,23 +95,45 @@ public class CauseAction implements FoldableAction { return causes.get(0).getShortDescription(); } - public void foldIntoExisting(Task t, List actions) { - for(Action action : actions) { - if(action instanceof CauseAction) { - this.causes.addAll(((CauseAction)action).causes); - return; - } - } - // no CauseAction found, so add a copy of this one - actions.add(new CauseAction(this)); - } - - private Object readResolve() { - // if we are being read in from an older version - if(cause != null) { - if(causes == null) causes=new ArrayList(); - causes.add(cause); - } - return this; - } + public void onLoad() { + // noop + } + + public void onBuildComplete() { + // noop + } + + /** + * When hooked up to build, notify {@link Cause}s. + */ + public void onAttached(Run owner) { + if (owner instanceof AbstractBuild) {// this should be always true but being defensive here + AbstractBuild b = (AbstractBuild) owner; + for (Cause c : causes) { + c.onAddedTo(b); + } + } + } + + public void foldIntoExisting(hudson.model.Queue.Item item, Task owner, List otherActions) { + CauseAction existing = item.getAction(CauseAction.class); + if (existing!=null) { + existing.causes.addAll(this.causes); + return; + } + // no CauseAction found, so add a copy of this one + item.getActions().add(new CauseAction(this)); + } + + public static class ConverterImpl extends XStream2.PassthruConverter { + public ConverterImpl(XStream2 xstream) { super(xstream); } + @Override protected void callback(CauseAction ca, UnmarshallingContext context) { + // if we are being read in from an older version + if (ca.cause != null) { + if (ca.causes == null) ca.causes = new ArrayList(); + ca.causes.add(ca.cause); + OldDataMonitor.report(context, "1.288"); + } + } + } } diff --git a/core/src/main/java/hudson/model/CheckPoint.java b/core/src/main/java/hudson/model/CheckPoint.java new file mode 100644 index 0000000000000000000000000000000000000000..1e95667c75e4f54b08b581e661f1982b0227c247 --- /dev/null +++ b/core/src/main/java/hudson/model/CheckPoint.java @@ -0,0 +1,162 @@ +/* + * The MIT License + * + * Copyright (c) 2004-2009, Sun Microsystems, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.model; + +import hudson.tasks.BuildStep; +import hudson.tasks.Recorder; +import hudson.tasks.Builder; +import hudson.tasks.junit.JUnitResultArchiver; +import hudson.scm.SCM; + +/** + * Provides a mechanism for synchronizing build executions in the face of concurrent builds. + * + *

    + * At certain points of a build, {@link BuildStep}s and other extension points often need + * to refer to what happened in its earlier build. For example, a {@link SCM} check out + * can run concurrently, but the changelog computation requires that the check out of the + * earlier build has completed. Or if Hudson is sending out an e-mail, he needs to know + * the result of the previous build, so that he can decide an e-mail is necessary or not. + * + *

    + * Check pointing is a primitive mechanism to provide this sort of synchronization. + * These methods can be only invoked from {@link Executor} threads. + * + *

    + * Each {@link CheckPoint} instance represents unique check points. {@link CheckPoint} + * instances are normally created as a static instance, because two builds of the same project + * needs to refer to the same check point instance for synchronization to happen properly. + * + *

    + * This class defines a few well-known check point instances. plugins can define + * their additional check points for their own use. + * + *

    Example

    + *

    + * {@link JUnitResultArchiver} provides a good example of how a {@link Recorder} can + * depend on its earlier result. + * + * @author Kohsuke Kawaguchi + * @see BuildStep#getRequiredMonitorService() + * @since 1.319 + */ +public final class CheckPoint { + private final Object identity; + private final String internalName; + + /** + * For advanced uses. Creates a check point that uses the given object as its identity. + */ + public CheckPoint(String internalName, Object identity) { + this.internalName = internalName; + this.identity = identity; + } + + /** + * @param internalName + * Name of this check point that's used in the logging, stack traces, debug messages, and so on. + * This is not displayed to users. No need for i18n. + */ + public CheckPoint(String internalName) { + this(internalName, new Object()); + } + + @Override + public boolean equals(Object that) { + if (that == null || getClass() != that.getClass()) return false; + return identity== ((CheckPoint) that).identity; + } + + @Override + public int hashCode() { + return identity.hashCode(); + } + + @Override + public String toString() { + return "Check point "+internalName; + } + + /** + * Records that the execution of the build has reached to a check point, idenified + * by the given identifier. + * + *

    + * If the successive builds are {@linkplain #block() waiting for this check point}, + * they'll be released. + * + *

    + * This method can be only called from an {@link Executor} thread. + */ + public void report() { + Run.reportCheckpoint(this); + } + + /** + * Waits until the previous build in progress reaches a check point, identified + * by the given identifier, or until the current executor becomes the youngest build in progress. + * + *

    + * Note that "previous build in progress" should be interpreted as "previous (build in progress)" instead of + * "(previous build) if it's in progress". This makes a difference around builds that are aborted or + * failed very early without reporting the check points. Imagine the following time sequence: + * + *

      + *
    1. Build #1, #2, and #3 happens around the same time + *
    2. Build #3 waits for check point {@link JUnitResultArchiver} + *
    3. Build #2 aborts before getting to that check point + *
    4. Build #1 finally checks in {@link JUnitResultArchiver} + *
    + * + *

    + * Using this method, build #3 correctly waits until the step 4. Because of this behavior, + * the {@link #report()}/{@link #block()} pair can normally + * be used without a try/finally block. + * + *

    + * This method can be only called from an {@link Executor} thread. + * + * @throws InterruptedException + * If the build (represented by the calling executor thread) is aborted while it's waiting. + */ + public void block() throws InterruptedException { + Run.waitForCheckpoint(this); + } + + /** + * {@link CheckPoint} that indicates that {@link AbstractBuild#getCulprits()} is computed. + */ + public static final CheckPoint CULPRITS_DETERMINED = new CheckPoint("CULPRITS_DETERMINED"); + /** + * {@link CheckPoint} that indicates that the build is completed. + * ({@link AbstractBuild#isBuilding()}==false) + */ + public static final CheckPoint COMPLETED = new CheckPoint("COMPLETED"); + /** + * {@link CheckPoint} that indicates that the build has finished executing the "main" portion + * ({@link Builder}s in case of {@link FreeStyleProject}) and now moving on to the post-build + * steps. + */ + public static final CheckPoint MAIN_COMPLETED = new CheckPoint("MAIN_COMPLETED"); +} diff --git a/core/src/main/java/hudson/model/ChoiceParameterDefinition.java b/core/src/main/java/hudson/model/ChoiceParameterDefinition.java index 2fc5bc44a3935b6c5056b98c9003d2722a425841..82271214781c3213f4822b2dfa19551810d17b74 100755 --- a/core/src/main/java/hudson/model/ChoiceParameterDefinition.java +++ b/core/src/main/java/hudson/model/ChoiceParameterDefinition.java @@ -1,95 +1,82 @@ -package hudson.model; - -import org.kohsuke.stapler.StaplerRequest; -import org.kohsuke.stapler.DataBoundConstructor; -import org.apache.commons.lang.StringUtils; -import net.sf.json.JSONObject; -import hudson.Extension; - -import java.util.ArrayList; -import java.util.List; -import java.util.Arrays; - -/** - * @author huybrechts - */ -public class ChoiceParameterDefinition extends ParameterDefinition { - private final List choices; - - @DataBoundConstructor - public ChoiceParameterDefinition(String name, String choices, String description) { - super(name, description); - this.choices = Arrays.asList(choices.split("\\r?\\n")); - if (choices.length()==0) { - throw new IllegalArgumentException("No choices found"); - } - } - - public ChoiceParameterDefinition(String name, String[] choices, String description) { - super(name, description); - this.choices = new ArrayList(Arrays.asList(choices)); - if (this.choices.isEmpty()) { - throw new IllegalArgumentException("No choices found"); - } - } - - public List getChoices() { - return choices; - } - - public String getChoicesText() { - return StringUtils.join(choices, "\n"); - } - - @Override - public StringParameterValue getDefaultParameterValue() { - return new StringParameterValue(getName(), choices.get(0), getDescription()); - } - - - private void checkValue(StringParameterValue value) { - if (!choices.contains(value.value)) { - throw new IllegalArgumentException("Illegal choice: " + value.value); - } - } - - @Override - public ParameterValue createValue(StaplerRequest req, JSONObject jo) { - StringParameterValue value = req.bindJSON(StringParameterValue.class, jo); - value.setDescription(getDescription()); - - checkValue(value); - - return value; - } - - @Override - public ParameterValue createValue(StaplerRequest req) { - StringParameterValue result; - String[] value = req.getParameterValues(getName()); - if (value == null) { - result = getDefaultParameterValue(); - } else if (value.length != 1) { - throw new IllegalArgumentException("Illegal number of parameter values for " + getName() + ": " + value.length); - } else { - result = new StringParameterValue(getName(), value[0], getDescription()); - } - checkValue(result); - return result; - - } - - @Extension - public static class DescriptorImpl extends ParameterDescriptor { - @Override - public String getDisplayName() { - return Messages.ChoiceParameterDefinition_DisplayName(); - } - - @Override - public String getHelpFile() { - return "/help/parameter/choice.html"; - } - } - +package hudson.model; + +import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.DataBoundConstructor; +import org.kohsuke.stapler.export.Exported; +import org.apache.commons.lang.StringUtils; +import net.sf.json.JSONObject; +import hudson.Extension; + +import java.util.ArrayList; +import java.util.List; +import java.util.Arrays; + +/** + * @author huybrechts + */ +public class ChoiceParameterDefinition extends SimpleParameterDefinition { + private final List choices; + + @DataBoundConstructor + public ChoiceParameterDefinition(String name, String choices, String description) { + super(name, description); + this.choices = Arrays.asList(choices.split("\\r?\\n")); + if (choices.length()==0) { + throw new IllegalArgumentException("No choices found"); + } + } + + public ChoiceParameterDefinition(String name, String[] choices, String description) { + super(name, description); + this.choices = new ArrayList(Arrays.asList(choices)); + if (this.choices.isEmpty()) { + throw new IllegalArgumentException("No choices found"); + } + } + + @Exported + public List getChoices() { + return choices; + } + + public String getChoicesText() { + return StringUtils.join(choices, "\n"); + } + + @Override + public StringParameterValue getDefaultParameterValue() { + return new StringParameterValue(getName(), choices.get(0), getDescription()); + } + + + private StringParameterValue checkValue(StringParameterValue value) { + if (!choices.contains(value.value)) + throw new IllegalArgumentException("Illegal choice: " + value.value); + return value; + } + + @Override + public ParameterValue createValue(StaplerRequest req, JSONObject jo) { + StringParameterValue value = req.bindJSON(StringParameterValue.class, jo); + value.setDescription(getDescription()); + return checkValue(value); + } + + public StringParameterValue createValue(String value) { + return checkValue(new StringParameterValue(getName(), value, getDescription())); + } + + @Extension + public static class DescriptorImpl extends ParameterDescriptor { + @Override + public String getDisplayName() { + return Messages.ChoiceParameterDefinition_DisplayName(); + } + + @Override + public String getHelpFile() { + return "/help/parameter/choice.html"; + } + } + } \ No newline at end of file diff --git a/core/src/main/java/hudson/model/Computer.java b/core/src/main/java/hudson/model/Computer.java index e6b75bd66ffecae6b59893b3d14e8f1cdb862d2d..f5b77f11cbdfd14049691be22339f250c4673a91 100644 --- a/core/src/main/java/hudson/model/Computer.java +++ b/core/src/main/java/hudson/model/Computer.java @@ -1,7 +1,8 @@ /* * The MIT License * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Red Hat, Inc., Seiji Sogabe, Stephen Connolly, Thomas J. Black, Tom Huybrechts + * Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, + * Red Hat, Inc., Seiji Sogabe, Stephen Connolly, Thomas J. Black, Tom Huybrechts * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -25,7 +26,10 @@ package hudson.model; import hudson.EnvVars; import hudson.Util; +import hudson.cli.declarative.CLIMethod; +import hudson.console.AnnotatedLargeText; import hudson.model.Descriptor.FormException; +import hudson.model.queue.WorkUnit; import hudson.node_monitors.NodeMonitor; import hudson.remoting.Channel; import hudson.remoting.VirtualChannel; @@ -36,6 +40,9 @@ import hudson.security.Permission; import hudson.security.PermissionGroup; import hudson.slaves.ComputerLauncher; import hudson.slaves.RetentionStrategy; +import hudson.slaves.WorkspaceList; +import hudson.slaves.OfflineCause; +import hudson.slaves.OfflineCause.ByCLI; import hudson.tasks.BuildWrapper; import hudson.tasks.Publisher; import hudson.util.DaemonThreadFactory; @@ -45,8 +52,13 @@ import hudson.util.RunList; import hudson.util.Futures; import org.kohsuke.stapler.StaplerRequest; import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.QueryParameter; +import org.kohsuke.stapler.HttpResponses; +import org.kohsuke.stapler.HttpResponse; +import org.kohsuke.stapler.HttpRedirect; import org.kohsuke.stapler.export.Exported; import org.kohsuke.stapler.export.ExportedBean; +import org.kohsuke.args4j.Option; import javax.servlet.ServletException; import java.io.File; @@ -62,6 +74,7 @@ import java.util.concurrent.CopyOnWriteArrayList; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.Future; +import java.util.concurrent.ExecutionException; import java.util.logging.LogRecord; import java.util.logging.Level; import java.util.logging.Logger; @@ -98,9 +111,18 @@ import java.net.Inet4Address; public /*transient*/ abstract class Computer extends Actionable implements AccessControlled, ExecutorListener { private final CopyOnWriteArrayList executors = new CopyOnWriteArrayList(); + // TODO: + private final CopyOnWriteArrayList oneOffExecutors = new CopyOnWriteArrayList(); private int numExecutors; + /** + * Contains info about reason behind computer being offline. + */ + protected volatile OfflineCause offlineCause; + + private long connectTime = 0; + /** * True if Hudson shouldn't start new builds on this node. */ @@ -112,6 +134,14 @@ public /*transient*/ abstract class Computer extends Actionable implements Acces */ protected String nodeName; + /** + * @see #getHostName() + */ + private volatile String cachedHostName; + private volatile boolean hostNameCached; + + private final WorkspaceList workspaceList = new WorkspaceList(); + public Computer(Node node) { assert node.getNumExecutors()!=0 : "Computer created with 0 executors"; setNode(node); @@ -124,6 +154,13 @@ public /*transient*/ abstract class Computer extends Actionable implements Acces return new File(Hudson.getInstance().getRootDir(),"slave-"+nodeName+".log"); } + /** + * Gets the object that coordinates the workspace allocation on this computer. + */ + public WorkspaceList getWorkspaceList() { + return workspaceList; + } + /** * Gets the string representation of the slave log. */ @@ -131,6 +168,13 @@ public /*transient*/ abstract class Computer extends Actionable implements Acces return Util.loadFile(getLogFile()); } + /** + * Used to URL-bind {@link AnnotatedLargeText}. + */ + public AnnotatedLargeText getLogText() { + return new AnnotatedLargeText(getLogFile(), Charset.defaultCharset(), false, this); + } + public ACL getACL() { return Hudson.getInstance().getAuthorizationStrategy().getACL(this); } @@ -143,6 +187,18 @@ public /*transient*/ abstract class Computer extends Actionable implements Acces return getACL().hasPermission(permission); } + /** + * If the computer was offline (either temporarily or not), + * this method will return the cause. + * + * @return + * null if the system was put offline without given a cause. + */ + @Exported + public OfflineCause getOfflineCause() { + return offlineCause; + } + /** * Gets the channel that can be used to run a program on this computer. * @@ -170,7 +226,7 @@ public /*transient*/ abstract class Computer extends Actionable implements Acces public abstract void doLaunchSlaveAgent( StaplerRequest req, StaplerResponse rsp ) throws IOException, ServletException; /** - * @deprecated Use {@link #connect(boolean)} + * @deprecated since 2009-01-06. Use {@link #connect(boolean)} */ public final void launch() { connect(true); @@ -196,19 +252,111 @@ public /*transient*/ abstract class Computer extends Actionable implements Acces * both a successful completion and a non-successful completion (such distinction typically doesn't * make much sense because as soon as {@link Computer} is connected it can be disconnected by some other threads.) */ - public abstract Future connect(boolean forceReconnect); + public final Future connect(boolean forceReconnect) { + connectTime = System.currentTimeMillis(); + return _connect(forceReconnect); + } + + /** + * Allows implementing-classes to provide an implementation for the connect method. + * + *

    + * If already connected or if this computer doesn't support proactive launching, no-op. + * This method may return immediately + * while the launch operation happens asynchronously. + * + * @see #disconnect() + * + * @param forceReconnect + * If true and a connect activity is already in progress, it will be cancelled and + * the new one will be started. If false, and a connect activity is already in progress, this method + * will do nothing and just return the pending connection operation. + * @return + * A {@link Future} representing pending completion of the task. The 'completion' includes + * both a successful completion and a non-successful completion (such distinction typically doesn't + * make much sense because as soon as {@link Computer} is connected it can be disconnected by some other threads.) + */ + protected abstract Future _connect(boolean forceReconnect); + + /** + * CLI command to reconnect this node. + */ + @CLIMethod(name="connect-node") + public void cliConnect(@Option(name="-f",usage="Cancel any currently pending connect operation and retry from scratch") boolean force) throws ExecutionException, InterruptedException { + checkPermission(Hudson.ADMINISTER); + connect(force).get(); + } + /** + * Gets the time (since epoch) when this computer connected. + * + * @return The time in ms since epoch when this computer last connected. + */ + public final long getConnectTime() { + return connectTime; + } + /** * Disconnect this computer. * * If this is the master, no-op. This method may return immediately * while the launch operation happens asynchronously. * + * @param cause + * Object that identifies the reason the node was disconnected. + * * @return * {@link Future} to track the asynchronous disconnect operation. * @see #connect(boolean) + * @since 1.320 + */ + public Future disconnect(OfflineCause cause) { + offlineCause = cause; + if (Util.isOverridden(Computer.class,getClass(),"disconnect")) + return disconnect(); // legacy subtypes that extend disconnect(). + + connectTime=0; + return Futures.precomputed(null); + } + + /** + * Equivalent to {@code disconnect(null)} + * + * @deprecated as of 1.320. + * Use {@link #disconnect(OfflineCause)} and specify the cause. */ - public Future disconnect() { return Futures.precomputed(null); } + public Future disconnect() { + if (Util.isOverridden(Computer.class,getClass(),"disconnect",OfflineCause.class)) + // if the subtype already derives disconnect(OfflineCause), delegate to it + return disconnect(null); + + connectTime=0; + return Futures.precomputed(null); + } + + /** + * CLI command to disconnects this node. + */ + @CLIMethod(name="disconnect-node") + public void cliDisconnect(@Option(name="-m",usage="Record the note about why you are disconnecting this node") String cause) throws ExecutionException, InterruptedException { + checkPermission(Hudson.ADMINISTER); + disconnect(new ByCLI(cause)).get(); + } + + /** + * CLI command to mark the node offline. + */ + @CLIMethod(name="offline-node") + public void cliOffline(@Option(name="-m",usage="Record the note about why you are disconnecting this node") String cause) throws ExecutionException, InterruptedException { + checkPermission(Hudson.ADMINISTER); + setTemporarilyOffline(true,new ByCLI(cause)); + } + + @CLIMethod(name="online-node") + public void cliOnline() throws ExecutionException, InterruptedException { + checkPermission(Hudson.ADMINISTER); + setTemporarilyOffline(false,null); + } /** * Number of {@link Executor}s that are configured for this computer. @@ -232,6 +380,10 @@ public /*transient*/ abstract class Computer extends Actionable implements Acces /** * Returns the {@link Node} that this computer represents. + * + * @return + * null if the configuration has changed and the node is removed, yet the corresponding {@link Computer} + * is not yet gone. */ public Node getNode() { if(nodeName==null) @@ -239,10 +391,15 @@ public /*transient*/ abstract class Computer extends Actionable implements Acces return Hudson.getInstance().getNode(nodeName); } + @Exported public LoadStatistics getLoadStatistics() { return getNode().getSelfLabel().loadStatistics; } + public BuildTimelineWidget getTimeline() { + return new BuildTimelineWidget(getBuilds()); + } + /** * {@inheritDoc} */ @@ -290,7 +447,8 @@ public /*transient*/ abstract class Computer extends Actionable implements Acces /** * Returns true if this computer is supposed to be launched via JNLP. - * @deprecated see {@linkplain #isLaunchSupported()} and {@linkplain ComputerLauncher} + * @deprecated since 2008-05-18. + * See {@linkplain #isLaunchSupported()} and {@linkplain ComputerLauncher} */ @Exported @Deprecated @@ -328,7 +486,24 @@ public /*transient*/ abstract class Computer extends Actionable implements Acces return temporarilyOffline; } + /** + * @deprecated as of 1.320. + * Use {@link #setTemporarilyOffline(boolean, OfflineCause)} + */ public void setTemporarilyOffline(boolean temporarilyOffline) { + setTemporarilyOffline(temporarilyOffline,null); + } + + /** + * Marks the computer as temporarily offline. This retains the underlying + * {@link Channel} connection, but prevent builds from executing. + * + * @param cause + * If the first argument is true, specify the reason why the node is being put + * offline. + */ + public void setTemporarilyOffline(boolean temporarilyOffline, OfflineCause cause) { + offlineCause = temporarilyOffline ? cause : null; this.temporarilyOffline = temporarilyOffline; Hudson.getInstance().getQueue().scheduleMaintenance(); } @@ -406,8 +581,11 @@ public /*transient*/ abstract class Computer extends Actionable implements Acces e.interrupt(); } else { // if the number is increased, add new ones - while(executors.size() getOneOffExecutors() { + return new ArrayList(oneOffExecutors); + } + + /** + * Returns true if all the executors of this computer are idle. */ @Exported public final boolean isIdle() { + if (!oneOffExecutors.isEmpty()) + return false; for (Executor e : executors) if(!e.isIdle()) return false; @@ -466,6 +660,9 @@ public /*transient*/ abstract class Computer extends Actionable implements Acces */ public final long getIdleStartMilliseconds() { long firstIdle = Long.MIN_VALUE; + for (Executor e : oneOffExecutors) { + firstIdle = Math.max(firstIdle, e.getIdleStartMilliseconds()); + } for (Executor e : executors) { firstIdle = Math.max(firstIdle, e.getIdleStartMilliseconds()); } @@ -563,7 +760,7 @@ public /*transient*/ abstract class Computer extends Actionable implements Acces * *

    * Since it's possible that the slave is not reachable from the master (it may be behind a firewall, - * connecting to master via JNLP), in which case this method returns null. + * connecting to master via JNLP), this method may return null. * * It's surprisingly tricky for a machine to know a name that other systems can get to, * especially between things like DNS search suffix, the hosts file, and YP. @@ -572,22 +769,62 @@ public /*transient*/ abstract class Computer extends Actionable implements Acces * So the technique here is to compute possible interfaces and names on the slave, * then try to ping them from the master, and pick the one that worked. * + *

    + * The computation may take some time, so it employs caching to make the successive lookups faster. + * * @since 1.300 + * @return + * null if the host name cannot be computed (for example because this computer is offline, + * because the slave is behind the firewall, etc.) */ public String getHostName() throws IOException, InterruptedException { - for( String address : getChannel().call(new ListPossibleNames())) { + if(hostNameCached) + // in the worst case we end up having multiple threads computing the host name simultaneously, but that's not harmful, just wasteful. + return cachedHostName; + + VirtualChannel channel = getChannel(); + if(channel==null) return null; // can't compute right now + + for( String address : channel.call(new ListPossibleNames())) { try { InetAddress ia = InetAddress.getByName(address); - if(ia.isReachable(500) && ia instanceof Inet4Address) - return ia.getCanonicalHostName(); + if(!(ia instanceof Inet4Address)) { + LOGGER.fine(address+" is not an IPv4 address"); + continue; + } + if(!ComputerPinger.checkIsReachable(ia, 3)) { + LOGGER.fine(address+" didn't respond to ping"); + continue; + } + cachedHostName = ia.getCanonicalHostName(); + hostNameCached = true; + return cachedHostName; } catch (IOException e) { // if a given name fails to parse on this host, we get this error LOGGER.log(Level.FINE, "Failed to parse "+address,e); } } + + // allow the administrator to manually specify the host name as a fallback. HUDSON-5373 + cachedHostName = channel.call(new GetFallbackName()); + + hostNameCached = true; return null; } + /** + * Starts executing a fly-weight task. + */ + /*package*/ final void startFlyWeightTask(WorkUnit p) { + OneOffExecutor e = new OneOffExecutor(this, p); + e.start(); + oneOffExecutors.add(e); + } + + /*package*/ final void remove(OneOffExecutor e) { + oneOffExecutors.remove(e); + } + private static class ListPossibleNames implements Callable,IOException> { public List call() throws IOException { List names = new ArrayList(); @@ -595,11 +832,21 @@ public /*transient*/ abstract class Computer extends Actionable implements Acces Enumeration nis = NetworkInterface.getNetworkInterfaces(); while (nis.hasMoreElements()) { NetworkInterface ni = nis.nextElement(); + LOGGER.fine("Listing up IP addresses for "+ni.getDisplayName()); Enumeration e = ni.getInetAddresses(); while (e.hasMoreElements()) { InetAddress ia = e.nextElement(); - if(ia.isLoopbackAddress()) continue; - if(!(ia instanceof Inet4Address)) continue; + if(ia.isLoopbackAddress()) { + LOGGER.fine(ia+" is a loopback address"); + continue; + } + + if(!(ia instanceof Inet4Address)) { + LOGGER.fine(ia+" is not an IPv4 address"); + continue; + } + + LOGGER.fine(ia+" is a viable candidate"); names.add(ia.getHostAddress()); } } @@ -608,6 +855,13 @@ public /*transient*/ abstract class Computer extends Actionable implements Acces private static final long serialVersionUID = 1L; } + private static class GetFallbackName implements Callable { + public String call() throws IOException { + return System.getProperty("host.name"); + } + private static final long serialVersionUID = 1L; + } + public static final ExecutorService threadPoolForRemoting = Executors.newCachedThreadPool(new ExceptionCatchingThreadFactory(new DaemonThreadFactory())); // @@ -626,11 +880,18 @@ public /*transient*/ abstract class Computer extends Actionable implements Acces runs.newBuilds(), Run.FEED_ADAPTER, req, rsp ); } - public void doToggleOffline( StaplerRequest req, StaplerResponse rsp ) throws IOException, ServletException { + public HttpResponse doToggleOffline(@QueryParameter String offlineMessage) throws IOException, ServletException { checkPermission(Hudson.ADMINISTER); - - setTemporarilyOffline(!temporarilyOffline); - rsp.forwardToPreviousPage(req); + if(!temporarilyOffline) { + offlineMessage = Util.fixEmptyAndTrim(offlineMessage); + setTemporarilyOffline(!temporarilyOffline, + OfflineCause.create(hudson.slaves.Messages._SlaveComputer_DisconnectedBy( + Hudson.getAuthentication().getName(), + offlineMessage!=null ? " : " + offlineMessage : ""))); + } else { + setTemporarilyOffline(!temporarilyOffline,null); + } + return HttpResponses.redirectToDot(); } public Api getApi() { @@ -647,12 +908,17 @@ public /*transient*/ abstract class Computer extends Actionable implements Acces rsp.setContentType("text/plain"); rsp.setCharacterEncoding("UTF-8"); PrintWriter w = new PrintWriter(rsp.getCompressedWriter(req)); - w.println("Master to slave"); - ((Channel)getChannel()).dumpExportTable(w); - w.flush(); // flush here once so that even if the dump from the slave fails, the client gets some useful info - - w.println("\n\n\nSlave to master"); - w.print(getChannel().call(new DumpExportTableTask())); + VirtualChannel vc = getChannel(); + if (vc instanceof Channel) { + w.println("Master to slave"); + ((Channel)vc).dumpExportTable(w); + w.flush(); // flush here once so that even if the dump from the slave fails, the client gets some useful info + + w.println("\n\n\nSlave to master"); + w.print(vc.call(new DumpExportTableTask())); + } else { + w.println(Messages.Computer_BadChannel()); + } w.close(); } @@ -702,48 +968,46 @@ public /*transient*/ abstract class Computer extends Actionable implements Acces /** * Accepts the update to the node configuration. */ - public void doConfigSubmit( StaplerRequest req, StaplerResponse rsp ) throws IOException, ServletException { - try { - checkPermission(Hudson.ADMINISTER); // TODO: new permission? - - final Hudson app = Hudson.getInstance(); - - Node result = getNode().getDescriptor().newInstance(req, req.getSubmittedForm()); - - // replace the old Node object by the new one - synchronized (app) { - List nodes = new ArrayList(app.getNodes()); - int i = nodes.indexOf(getNode()); - if(i<0) { - sendError("This slave appears to be removed while you were editing the configuration",req,rsp); - return; - } - - nodes.set(i,result); - app.setNodes(nodes); + public void doConfigSubmit( StaplerRequest req, StaplerResponse rsp ) throws IOException, ServletException, FormException { + checkPermission(CONFIGURE); + req.setCharacterEncoding("UTF-8"); + + final Hudson app = Hudson.getInstance(); + + Node result = getNode().getDescriptor().newInstance(req, req.getSubmittedForm()); + + // replace the old Node object by the new one + synchronized (app) { + List nodes = new ArrayList(app.getNodes()); + int i = nodes.indexOf(getNode()); + if(i<0) { + sendError("This slave appears to be removed while you were editing the configuration",req,rsp); + return; } - // take the user back to the slave top page. - rsp.sendRedirect2("../"+result.getNodeName()+'/'); - } catch (FormException e) { - sendError(e,req,rsp); + nodes.set(i,result); + app.setNodes(nodes); } + + // take the user back to the slave top page. + rsp.sendRedirect2("../"+result.getNodeName()+'/'); } /** * Really deletes the slave. */ - public void doDoDelete(StaplerResponse rsp) throws IOException { + @CLIMethod(name="delete-node") + public HttpResponse doDoDelete() throws IOException { checkPermission(DELETE); Hudson.getInstance().removeNode(getNode()); - rsp.sendRedirect(".."); + return new HttpRedirect(".."); } /** * Handles incremental log. */ public void doProgressiveLog( StaplerRequest req, StaplerResponse rsp) throws IOException { - new org.kohsuke.stapler.framework.io.LargeText(getLogFile(),false).doProgressText(req,rsp); + getLogText().doProgressText(req,rsp); } /** diff --git a/core/src/main/java/hudson/model/ComputerPinger.java b/core/src/main/java/hudson/model/ComputerPinger.java new file mode 100644 index 0000000000000000000000000000000000000000..57ea2385a16713d7016d25f8597ec971eb35f4b4 --- /dev/null +++ b/core/src/main/java/hudson/model/ComputerPinger.java @@ -0,0 +1,65 @@ +package hudson.model; + +import hudson.Extension; +import hudson.ExtensionList; +import hudson.ExtensionPoint; + +import java.io.IOException; +import java.net.InetAddress; +import java.util.logging.Logger; + +/** + * A way to see if a computer is reachable. + * + * @since 1.378 + */ +public abstract class ComputerPinger implements ExtensionPoint { + /** + * Is the specified address reachable? + * + * @param ia The address to check. + * @param timeout Timeout in seconds. + */ + public abstract boolean isReachable(InetAddress ia, int timeout) throws IOException; + + /** + * Get all registered instances. + */ + public static ExtensionList all() { + return Hudson.getInstance().getExtensionList(ComputerPinger.class); + } + + /** + * Is this computer reachable via the given address? + * + * @param ia The address to check. + * @param timeout Timeout in seconds. + */ + public static boolean checkIsReachable(InetAddress ia, int timeout) throws IOException { + for (ComputerPinger pinger : ComputerPinger.all()) { + try { + if (pinger.isReachable(ia, timeout)) { + return true; + } + } catch (IOException e) { + LOGGER.fine("Error checking reachability with " + pinger + ": " + e.getMessage()); + } + } + + return false; + } + + /** + * Default pinger - use Java built-in functionality. This doesn't always work, + * a host may be reachable even if this returns false. + */ + @Extension + public static class BuiltInComputerPinger extends ComputerPinger { + @Override + public boolean isReachable(InetAddress ia, int timeout) throws IOException { + return ia.isReachable(timeout * 1000); + } + } + + private static final Logger LOGGER = Logger.getLogger(ComputerPinger.class.getName()); +} diff --git a/core/src/main/java/hudson/model/ComputerSet.java b/core/src/main/java/hudson/model/ComputerSet.java index 809c213281dc06e875cf7ce49bec4d6e43c0a9e5..4d3f59d21894cee8fd998847ddcd935194666da5 100644 --- a/core/src/main/java/hudson/model/ComputerSet.java +++ b/core/src/main/java/hudson/model/ComputerSet.java @@ -28,6 +28,7 @@ import hudson.DescriptorExtensionList; import hudson.Util; import hudson.XmlFile; import hudson.model.Descriptor.FormException; +import hudson.model.listeners.SaveableListener; import hudson.node_monitors.NodeMonitor; import hudson.slaves.NodeDescriptor; import hudson.util.DescribableList; @@ -42,13 +43,10 @@ import javax.servlet.ServletException; import static javax.servlet.http.HttpServletResponse.SC_BAD_REQUEST; import java.io.File; import java.io.IOException; -import java.text.ParseException; import java.util.AbstractList; import java.util.List; import java.util.Map; import java.util.HashMap; -import java.util.TreeMap; -import java.util.Comparator; import java.util.logging.Level; import java.util.logging.Logger; @@ -67,6 +65,7 @@ public final class ComputerSet extends AbstractModelObject { private static final Saveable MONITORS_OWNER = new Saveable() { public void save() throws IOException { getConfigFile().write(monitors); + SaveableListener.fireOnChange(this, getConfigFile()); } }; @@ -75,7 +74,7 @@ public final class ComputerSet extends AbstractModelObject { @Exported public String getDisplayName() { - return "nodes"; + return Messages.ComputerSet_DisplayName(); } /** @@ -207,20 +206,14 @@ public final class ComputerSet extends AbstractModelObject { * First check point in creating a new slave. */ public synchronized void doCreateItem( StaplerRequest req, StaplerResponse rsp, - @QueryParameter("name") String name, @QueryParameter("mode") String mode, - @QueryParameter("from") String from ) throws IOException, ServletException { + @QueryParameter String name, @QueryParameter String mode, + @QueryParameter String from ) throws IOException, ServletException { final Hudson app = Hudson.getInstance(); app.checkPermission(Hudson.ADMINISTER); // TODO: new permission? - try { - checkName(name); - } catch (ParseException e) { - rsp.setStatus(SC_BAD_REQUEST); - sendError(e,req,rsp); - return; - } - if(mode!=null && mode.equals("copy")) { + name = checkName(name); + Node src = app.getNode(from); if(src==null) { rsp.setStatus(SC_BAD_REQUEST); @@ -235,6 +228,7 @@ public final class ComputerSet extends AbstractModelObject { String xml = Hudson.XSTREAM.toXML(src); Node result = (Node)Hudson.XSTREAM.fromXML(xml); result.setNodeName(name); + result.holdOffLaunchUntilSave = true; app.addNode(result); @@ -247,8 +241,8 @@ public final class ComputerSet extends AbstractModelObject { return; } - req.setAttribute("descriptor", NodeDescriptor.all().find(mode)); - req.getView(this,"_new.jelly").forward(req,rsp); + NodeDescriptor d = NodeDescriptor.all().find(mode); + d.handleNewNodePage(this,name,req,rsp); } } @@ -256,40 +250,35 @@ public final class ComputerSet extends AbstractModelObject { * Really creates a new slave. */ public synchronized void doDoCreateItem( StaplerRequest req, StaplerResponse rsp, - @QueryParameter("name") String name, - @QueryParameter("type") String type ) throws IOException, ServletException { - try { - final Hudson app = Hudson.getInstance(); - app.checkPermission(Hudson.ADMINISTER); // TODO: new permission? - checkName(name); + @QueryParameter String name, + @QueryParameter String type ) throws IOException, ServletException, FormException { + final Hudson app = Hudson.getInstance(); + app.checkPermission(Hudson.ADMINISTER); // TODO: new permission? + checkName(name); - Node result = NodeDescriptor.all().find(type).newInstance(req, req.getSubmittedForm()); - app.addNode(result); + Node result = NodeDescriptor.all().find(type).newInstance(req, req.getSubmittedForm()); + app.addNode(result); - // take the user back to the slave list top page - rsp.sendRedirect2("."); - } catch (ParseException e) { - rsp.setStatus(SC_BAD_REQUEST); - sendError(e,req,rsp); - } catch (FormException e) { - sendError(e,req,rsp); - } + // take the user back to the slave list top page + rsp.sendRedirect2("."); } /** * Makes sure that the given name is good as a slave name. + * @return trimmed name if valid; throws ParseException if not */ - private void checkName(String name) throws ParseException { + public String checkName(String name) throws Failure { if(name==null) - throw new ParseException("Query parameter 'name' is required",0); + throw new Failure("Query parameter 'name' is required"); name = name.trim(); Hudson.checkGoodName(name); if(Hudson.getInstance().getNode(name)!=null) - throw new ParseException(Messages.ComputerSet_SlaveAlreadyExists(name),0); + throw new Failure(Messages.ComputerSet_SlaveAlreadyExists(name)); // looks good + return name; } /** @@ -304,7 +293,7 @@ public final class ComputerSet extends AbstractModelObject { try { checkName(value); return FormValidation.ok(); - } catch (ParseException e) { + } catch (Failure e) { return FormValidation.error(e.getMessage()); } } @@ -312,7 +301,7 @@ public final class ComputerSet extends AbstractModelObject { /** * Accepts submission from the configuration page. */ - public final synchronized void doConfigSubmit( StaplerRequest req, StaplerResponse rsp ) throws IOException, ServletException { + public synchronized void doConfigSubmit( StaplerRequest req, StaplerResponse rsp ) throws IOException, ServletException, FormException { BulkChange bc = new BulkChange(MONITORS_OWNER); try { Hudson.getInstance().checkPermission(Hudson.ADMINISTER); @@ -326,8 +315,6 @@ public final class ComputerSet extends AbstractModelObject { monitors.add(i); } rsp.sendRedirect2("."); - } catch (FormException e) { - sendError(e,req,rsp); } finally { bc.commit(); } diff --git a/core/src/main/java/hudson/model/DependencyGraph.java b/core/src/main/java/hudson/model/DependencyGraph.java index fa9cd6dfc1cab867e27008d986453dac8e5e851f..430a8ac07326086609150a8add51dee0ba226ba6 100644 --- a/core/src/main/java/hudson/model/DependencyGraph.java +++ b/core/src/main/java/hudson/model/DependencyGraph.java @@ -1,7 +1,8 @@ /* * The MIT License * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Martin Eigenbrodt + * Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, + * Martin Eigenbrodt. Seiji Sogabe, Alan Harder * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -23,6 +24,10 @@ */ package hudson.model; +import hudson.security.ACL; +import hudson.security.NotSerilizableSecurityContext; +import org.acegisecurity.context.SecurityContext; +import org.acegisecurity.context.SecurityContextHolder; import org.kohsuke.stapler.StaplerRequest; import org.kohsuke.stapler.StaplerResponse; import org.kohsuke.graph_layouter.Layout; @@ -36,12 +41,14 @@ import java.util.Collection; import java.util.Collections; import java.util.Comparator; import java.util.HashMap; +import java.util.HashSet; +import java.util.LinkedHashSet; import java.util.List; +import java.util.ListIterator; import java.util.Map; +import java.util.Map.Entry; import java.util.Set; -import java.util.HashSet; import java.util.Stack; -import java.util.Map.Entry; import java.io.IOException; import java.awt.Dimension; import java.awt.Font; @@ -75,10 +82,10 @@ import java.awt.image.BufferedImage; * @see Hudson#getDependencyGraph() * @author Kohsuke Kawaguchi */ -public final class DependencyGraph implements Comparator { +public final class DependencyGraph implements Comparator { - private Map> forward = new HashMap>(); - private Map> backward = new HashMap>(); + private Map> forward = new HashMap>(); + private Map> backward = new HashMap>(); private boolean built; @@ -86,13 +93,23 @@ public final class DependencyGraph implements Comparator { * Builds the dependency graph. */ public DependencyGraph() { - for( AbstractProject p : Hudson.getInstance().getAllItems(AbstractProject.class) ) - p.buildDependencyGraph(this); - - forward = finalize(forward); - backward = finalize(backward); - - built = true; + // Set full privileges while computing to avoid missing any projects the current user cannot see. + // Use setContext (NOT getContext().setAuthentication()) so we don't affect concurrent threads for same HttpSession. + SecurityContext saveCtx = SecurityContextHolder.getContext(); + try { + NotSerilizableSecurityContext system = new NotSerilizableSecurityContext(); + system.setAuthentication(ACL.SYSTEM); + SecurityContextHolder.setContext(system); + for( AbstractProject p : Hudson.getInstance().getAllItems(AbstractProject.class) ) + p.buildDependencyGraph(this); + + forward = finalize(forward); + backward = finalize(backward); + + built = true; + } finally { + SecurityContextHolder.setContext(saveCtx); + } } /** @@ -110,7 +127,7 @@ public final class DependencyGraph implements Comparator { * can be empty but never null. */ public List getDownstream(AbstractProject p) { - return get(forward,p); + return get(forward,p,false); } /** @@ -120,32 +137,68 @@ public final class DependencyGraph implements Comparator { * can be empty but never null. */ public List getUpstream(AbstractProject p) { + return get(backward,p,true); + } + + private List get(Map> map, AbstractProject src, boolean up) { + List v = map.get(src); + if(v==null) return Collections.emptyList(); + List result = new ArrayList(v.size()); + for (Dependency d : v) result.add(up ? d.getUpstreamProject() : d.getDownstreamProject()); + return result; + } + + /** + * @since 1.341 + */ + public List getDownstreamDependencies(AbstractProject p) { + return get(forward,p); + } + + /** + * @since 1.341 + */ + public List getUpstreamDependencies(AbstractProject p) { return get(backward,p); } - private List get(Map> map, AbstractProject src) { - List v = map.get(src); - if(v!=null) return v; + private List get(Map> map, AbstractProject src) { + List v = map.get(src); + if(v!=null) return Collections.unmodifiableList(v); else return Collections.emptyList(); } /** - * Called during the dependency graph build phase to add a dependency edge. + * @deprecated since 1.341; use {@link #addDependency(Dependency)} */ + @Deprecated public void addDependency(AbstractProject upstream, AbstractProject downstream) { + addDependency(new Dependency(upstream,downstream)); + } + + /** + * Called during the dependency graph build phase to add a dependency edge. + */ + public void addDependency(Dependency dep) { if(built) throw new IllegalStateException(); - if(upstream==downstream) - return; - add(forward,upstream,downstream); - add(backward,downstream,upstream); + add(forward,dep.getUpstreamProject(),dep); + add(backward,dep.getDownstreamProject(),dep); } + /** + * @deprecated since 1.341 + */ + @Deprecated public void addDependency(AbstractProject upstream, Collection downstream) { for (AbstractProject p : downstream) addDependency(upstream,p); } + /** + * @deprecated since 1.341 + */ + @Deprecated public void addDependency(Collection upstream, AbstractProject downstream) { for (AbstractProject p : upstream) addDependency(p,downstream); @@ -191,17 +244,17 @@ public final class DependencyGraph implements Comparator { * Gets all the direct and indirect upstream dependencies of the given project. */ public Set getTransitiveUpstream(AbstractProject src) { - return getTransitive(backward,src); + return getTransitive(backward,src,true); } /** * Gets all the direct and indirect downstream dependencies of the given project. */ public Set getTransitiveDownstream(AbstractProject src) { - return getTransitive(forward,src); + return getTransitive(forward,src,false); } - private Set getTransitive(Map> direction, AbstractProject src) { + private Set getTransitive(Map> direction, AbstractProject src, boolean up) { Set visited = new HashSet(); Stack queue = new Stack(); @@ -210,7 +263,7 @@ public final class DependencyGraph implements Comparator { while(!queue.isEmpty()) { AbstractProject p = queue.pop(); - for (AbstractProject child : get(direction,p)) { + for (AbstractProject child : get(direction,p,up)) { if(visited.add(child)) queue.add(child); } @@ -219,18 +272,26 @@ public final class DependencyGraph implements Comparator { return visited; } - private void add(Map> map, AbstractProject src, AbstractProject dst) { - List set = map.get(src); + private void add(Map> map, AbstractProject key, Dependency dep) { + List set = map.get(key); if(set==null) { - set = new ArrayList(); - map.put(src,set); + set = new ArrayList(); + map.put(key,set); } - if(!set.contains(dst)) - set.add(dst); + for (ListIterator it = set.listIterator(); it.hasNext();) { + DependencyGroup d = it.next(); + // Check for existing edge that connects the same two projects: + if (d.getUpstreamProject()==dep.getUpstreamProject() && d.getDownstreamProject()==dep.getDownstreamProject()) { + d.add(dep); + return; + } + } + // Otherwise add to list: + set.add(new DependencyGroup(dep)); } - private Map> finalize(Map> m) { - for (Entry> e : m.entrySet()) { + private Map> finalize(Map> m) { + for (Entry> e : m.entrySet()) { Collections.sort( e.getValue(), NAME_COMPARATOR ); e.setValue( Collections.unmodifiableList(e.getValue()) ); } @@ -241,6 +302,8 @@ public final class DependencyGraph implements Comparator { * Experimental visualization of project dependencies. */ public void doGraph( StaplerRequest req, StaplerResponse rsp ) throws IOException { + // Require admin permission for now (avoid exposing project names with restricted permissions) + Hudson.getInstance().checkPermission(Hudson.ADMINISTER); try { // creates a dummy graphics just so that we can measure font metrics @@ -328,9 +391,10 @@ public final class DependencyGraph implements Comparator { private static final int MARGIN = 4; - private static final Comparator NAME_COMPARATOR = new Comparator() { - public int compare(AbstractProject lhs, AbstractProject rhs) { - return lhs.getName().compareTo(rhs.getName()); + private static final Comparator NAME_COMPARATOR = new Comparator() { + public int compare(Dependency lhs, Dependency rhs) { + int cmp = lhs.getUpstreamProject().getName().compareTo(rhs.getUpstreamProject().getName()); + return cmp != 0 ? cmp : lhs.getDownstreamProject().getName().compareTo(rhs.getDownstreamProject().getName()); } }; @@ -348,4 +412,93 @@ public final class DependencyGraph implements Comparator { if (o2sdownstreams.contains(o1)) return -1; else return 0; } } + + /** + * Represents an edge in the dependency graph. + * @since 1.341 + */ + public static class Dependency { + private AbstractProject upstream, downstream; + + public Dependency(AbstractProject upstream, AbstractProject downstream) { + this.upstream = upstream; + this.downstream = downstream; + } + + public AbstractProject getUpstreamProject() { + return upstream; + } + + public AbstractProject getDownstreamProject() { + return downstream; + } + + /** + * Decide whether build should be triggered and provide any Actions for the build. + * Default implementation always returns true (for backward compatibility), and + * adds no Actions. Subclasses may override to control how/if the build is triggered. + * @param build Build of upstream project that just completed + * @param listener For any error/log output + * @param actions Add Actions for the triggered build to this list; never null + * @return True to trigger a build of the downstream project + */ + public boolean shouldTriggerBuild(AbstractBuild build, TaskListener listener, + List actions) { + return true; + } + + /** + * Does this method point to itself? + */ + public boolean pointsItself() { + return upstream==downstream; + } + + @Override + public boolean equals(Object obj) { + if (obj == null) return false; + if (getClass() != obj.getClass()) return false; + + final Dependency that = (Dependency) obj; + return this.upstream == that.upstream || this.downstream == that.downstream; + } + + @Override + public int hashCode() { + int hash = 7; + hash = 23 * hash + this.upstream.hashCode(); + hash = 23 * hash + this.downstream.hashCode(); + return hash; + } + } + + /** + * Collect multiple dependencies between the same two projects. + */ + private static class DependencyGroup extends Dependency { + private Set group = new LinkedHashSet(); + + DependencyGroup(Dependency first) { + super(first.getUpstreamProject(), first.getDownstreamProject()); + group.add(first); + } + + void add(Dependency next) { + group.add(next); + } + + @Override + public boolean shouldTriggerBuild(AbstractBuild build, TaskListener listener, + List actions) { + List check = new ArrayList(); + for (Dependency d : group) { + if (d.shouldTriggerBuild(build, listener, check)) { + actions.addAll(check); + return true; + } else + check.clear(); + } + return false; + } + } } diff --git a/core/src/main/java/hudson/model/Descriptor.java b/core/src/main/java/hudson/model/Descriptor.java index 805e0f66fb926ada7924760ec4741737e2d78507..396ae5af4d20309082474a56802c74bf47cc67ab 100644 --- a/core/src/main/java/hudson/model/Descriptor.java +++ b/core/src/main/java/hudson/model/Descriptor.java @@ -1,7 +1,7 @@ /* * The MIT License * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi + * Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -23,22 +23,23 @@ */ package hudson.model; +import hudson.RelativePath; import hudson.XmlFile; import hudson.BulkChange; import hudson.Util; import static hudson.Util.singleQuote; -import hudson.scm.CVSSCM; +import hudson.diagnosis.OldDataMonitor; +import hudson.model.listeners.SaveableListener; +import hudson.util.ReflectionUtils; +import hudson.util.ReflectionUtils.Parameter; +import hudson.views.ListViewColumn; import net.sf.json.JSONArray; import net.sf.json.JSONObject; -import org.kohsuke.stapler.StaplerRequest; -import org.kohsuke.stapler.Stapler; -import org.kohsuke.stapler.StaplerResponse; -import org.kohsuke.stapler.Ancestor; +import org.kohsuke.stapler.*; import org.springframework.util.StringUtils; import org.jvnet.tiger_types.Types; import org.apache.commons.io.IOUtils; -import javax.servlet.http.HttpServletRequest; import static javax.servlet.http.HttpServletResponse.SC_NOT_FOUND; import javax.servlet.ServletException; import javax.servlet.RequestDispatcher; @@ -77,21 +78,20 @@ import java.beans.Introspector; * configuration/extensibility mechanism. * *

    - * For example, Take the CVS support as an example, which is implemented - * in {@link CVSSCM} class. Whenever a job is configured with CVS, a new - * {@link CVSSCM} instance is created with the per-job configuration + * Take the list view support as an example, which is implemented + * in {@link ListView} class. Whenever a new view is created, a new + * {@link ListView} instance is created with the configuration * information. This instance gets serialized to XML, and this instance - * will be called to perform CVS operations for that job. This is the job + * will be called to render the view page. This is the job * of {@link Describable} — each instance represents a specific - * configuration of the CVS support (branch, CVSROOT, etc.) + * configuration of a view (what projects are in it, regular expression, etc.) * *

    - * For Hudson to create such configured {@link CVSSCM} instance, Hudson - * needs another object that captures the metadata of {@link CVSSCM}, - * and that is what a {@link Descriptor} is for. {@link CVSSCM} class + * For Hudson to create such configured {@link ListView} instance, Hudson + * needs another object that captures the metadata of {@link ListView}, + * and that is what a {@link Descriptor} is for. {@link ListView} class * has a singleton descriptor, and this descriptor helps render - * the configuration form, remember system-wide configuration (such as - * where cvs.exe is), and works as a factory. + * the configuration form, remember system-wide configuration, and works as a factory. * *

    * {@link Descriptor} also usually have its associated views. @@ -118,7 +118,7 @@ public abstract class Descriptor> implements Saveable { * Going forward Hudson simply persists all the non-transient fields * of {@link Descriptor}, just like others, so this is pointless. * - * @deprecated + * @deprecated since 2006-11-16 */ @Deprecated private transient Map properties; @@ -128,12 +128,12 @@ public abstract class Descriptor> implements Saveable { */ public transient final Class clazz; - private transient final Map checkMethods = new ConcurrentHashMap(); + private transient final Map checkMethods = new ConcurrentHashMap(); /** - * Lazily computed list of properties on {@link #clazz}. + * Lazily computed list of properties on {@link #clazz} and on the descriptor itself. */ - private transient volatile Map propertyTypes; + private transient volatile Map propertyTypes,globalPropertyTypes; /** * Represents a readable property on {@link Describable}. @@ -188,12 +188,11 @@ public abstract class Descriptor> implements Saveable { * Returns {@link Descriptor} whose 'clazz' is the same as {@link #getItemType() the item type}. */ public Descriptor getItemTypeDescriptor() { - Class itemType = getItemType(); - for( Descriptor d : Hudson.getInstance().getExtensionList(Descriptor.class) ) - if(d.clazz==itemType) - return d; - return null; + return Hudson.getInstance().getDescriptor(getItemType()); + } + public Descriptor getItemTypeDescriptorOrDie() { + return Hudson.getInstance().getDescriptorOrDie(getItemType()); } } @@ -225,6 +224,18 @@ public abstract class Descriptor> implements Saveable { if(!t.isAssignableFrom(clazz)) throw new AssertionError("Outer class "+clazz+" of "+getClass()+" is not assignable to "+t+". Perhaps wrong outer class?"); } + + // detect a type error. this Descriptor is supposed to be returned from getDescriptor(), so make sure its type match up. + // this prevents a bug like http://www.nabble.com/Creating-a-new-parameter-Type-%3A-Masked-Parameter-td24786554.html + try { + Method getd = clazz.getMethod("getDescriptor"); + if(!getd.getReturnType().isAssignableFrom(getClass())) { + throw new AssertionError(getClass()+" must be assignable to "+getd.getReturnType()); + } + } catch (NoSuchMethodException e) { + throw new AssertionError(getClass()+" is missing getDescriptor method."); + } + } /** @@ -232,55 +243,183 @@ public abstract class Descriptor> implements Saveable { */ public abstract String getDisplayName(); + /** + * Gets the URL that this Descriptor is bound to, relative to the nearest {@link DescriptorByNameOwner}. + * Since {@link Hudson} is a {@link DescriptorByNameOwner}, there's always one such ancestor to any request. + */ + public String getDescriptorUrl() { + return "descriptorByName/"+clazz.getName(); + } + + private String getCurrentDescriptorByNameUrl() { + StaplerRequest req = Stapler.getCurrentRequest(); + Ancestor a = req.findAncestor(DescriptorByNameOwner.class); + return a.getUrl(); + } + /** * If the field "xyz" of a {@link Describable} has the corresponding "doCheckXyz" method, * return the form-field validation string. Otherwise null. *

    - * This method is used to hook up the form validation method to + * This method is used to hook up the form validation method to the corresponding HTML input element. */ public String getCheckUrl(String fieldName) { - String capitalizedFieldName = StringUtils.capitalize(fieldName); - - Method method = checkMethods.get(fieldName); + String method = checkMethods.get(fieldName); if(method==null) { - method = NONE; - String methodName = "doCheck"+ capitalizedFieldName; - for( Method m : getClass().getMethods() ) { - if(m.getName().equals(methodName)) { - method = m; - break; - } - } + method = calcCheckUrl(fieldName); checkMethods.put(fieldName,method); } - if(method==NONE) + if (method.equals(NONE)) // == would do, but it makes IDE flag a warning return null; - StaplerRequest req = Stapler.getCurrentRequest(); - Ancestor a = req.findAncestor(DescriptorByNameOwner.class); + // put this under the right contextual umbrella. // a is always non-null because we already have Hudson as the sentinel - return singleQuote(a.getUrl()+"/descriptorByName/"+clazz.getName()+"/check"+capitalizedFieldName+"?value=")+"+toValue(this)"; + return singleQuote(getCurrentDescriptorByNameUrl()+'/')+'+'+method; + } + + private String calcCheckUrl(String fieldName) { + String capitalizedFieldName = StringUtils.capitalize(fieldName); + + Method method = ReflectionUtils.getPublicMethodNamed(getClass(),"doCheck"+ capitalizedFieldName); + + if(method==null) + return NONE; + + return singleQuote(getDescriptorUrl() +"/check"+capitalizedFieldName) + buildParameterList(method, new StringBuilder()).append(".toString()"); } /** - * Obtains the property type of the given field of {@link #clazz} + * Builds query parameter line by figuring out what should be submitted */ - public PropertyType getPropertyType(String field) { - if(propertyTypes ==null) { - Map r = new HashMap(); - for (Field f : clazz.getFields()) - r.put(f.getName(),new PropertyType(f)); + private StringBuilder buildParameterList(Method method, StringBuilder query) { + for (Parameter p : ReflectionUtils.getParameters(method)) { + QueryParameter qp = p.annotation(QueryParameter.class); + if (qp!=null) { + String name = qp.value(); + if (name.length()==0) name = p.name(); + if (name==null || name.length()==0) + continue; // unknown parameter name. we'll report the error when the form is submitted. + + RelativePath rp = p.annotation(RelativePath.class); + if (rp!=null) + name = rp.value()+'/'+name; + + if (query.length()==0) query.append("+qs(this)"); + + if (name.equals("value")) { + // The special 'value' parameter binds to the the current field + query.append(".addThis()"); + } else { + query.append(".nearBy('"+name+"')"); + } + continue; + } - for (Method m : clazz.getMethods()) - if(m.getName().startsWith("get")) - r.put(Introspector.decapitalize(m.getName().substring(3)),new PropertyType(m)); + Method m = ReflectionUtils.getPublicMethodNamed(p.type(), "fromStapler"); + if (m!=null) buildParameterList(m,query); + } + return query; + } - propertyTypes = r; + /** + * Computes the list of other form fields that the given field depends on, via the doFillXyzItems method, + * and sets that as the 'fillDependsOn' attribute. Also computes the URL of the doFillXyzItems and + * sets that as the 'fillUrl' attribute. + */ + public void calcFillSettings(String field, Map attributes) { + String capitalizedFieldName = StringUtils.capitalize(field); + String methodName = "doFill" + capitalizedFieldName + "Items"; + Method method = ReflectionUtils.getPublicMethodNamed(getClass(), methodName); + if(method==null) + throw new IllegalStateException(String.format("%s doesn't have the %s method for filling a drop-down list", getClass(), methodName)); + + // build query parameter line by figuring out what should be submitted + List depends = buildFillDependencies(method, new ArrayList()); + + if (!depends.isEmpty()) + attributes.put("fillDependsOn",Util.join(depends," ")); + attributes.put("fillUrl", String.format("%s/%s/fill%sItems", getCurrentDescriptorByNameUrl(), getDescriptorUrl(), capitalizedFieldName)); + } + + private List buildFillDependencies(Method method, List depends) { + for (Parameter p : ReflectionUtils.getParameters(method)) { + QueryParameter qp = p.annotation(QueryParameter.class); + if (qp!=null) { + String name = qp.value(); + if (name.length()==0) name = p.name(); + if (name==null || name.length()==0) + continue; // unknown parameter name. we'll report the error when the form is submitted. + + RelativePath rp = p.annotation(RelativePath.class); + if (rp!=null) + name = rp.value()+'/'+name; + + depends.add(name); + continue; + } + + Method m = ReflectionUtils.getPublicMethodNamed(p.type(), "fromStapler"); + if (m!=null) + buildFillDependencies(m,depends); } + return depends; + } + + /** + * Computes the auto-completion setting + */ + public void calcAutoCompleteSettings(String field, Map attributes) { + String capitalizedFieldName = StringUtils.capitalize(field); + String methodName = "doAutoComplete" + capitalizedFieldName; + Method method = ReflectionUtils.getPublicMethodNamed(getClass(), methodName); + if(method==null) + return; // no auto-completion + + attributes.put("autoCompleteUrl", String.format("%s/%s/autoComplete%s", getCurrentDescriptorByNameUrl(), getDescriptorUrl(), capitalizedFieldName)); + } + + /** + * Used by Jelly to abstract away the handlign of global.jelly vs config.jelly databinding difference. + */ + public PropertyType getPropertyType(Object instance, String field) { + // in global.jelly, instance==descriptor + return instance==this ? getGlobalPropertyType(field) : getPropertyType(field); + } + + /** + * Obtains the property type of the given field of {@link #clazz} + */ + public PropertyType getPropertyType(String field) { + if(propertyTypes==null) + propertyTypes = buildPropertyTypes(clazz); return propertyTypes.get(field); } + /** + * Obtains the property type of the given field of this descriptor. + */ + public PropertyType getGlobalPropertyType(String field) { + if(globalPropertyTypes==null) + globalPropertyTypes = buildPropertyTypes(getClass()); + return globalPropertyTypes.get(field); + } + + /** + * Given the class, list up its {@link PropertyType}s from its public fields/getters. + */ + private Map buildPropertyTypes(Class clazz) { + Map r = new HashMap(); + for (Field f : clazz.getFields()) + r.put(f.getName(),new PropertyType(f)); + + for (Method m : clazz.getMethods()) + if(m.getName().startsWith("get")) + r.put(Introspector.decapitalize(m.getName().substring(3)),new PropertyType(m)); + + return r; + } + /** * Gets the class name nicely escaped to be usable as a key in the structured form submission. */ @@ -312,11 +451,20 @@ public abstract class Descriptor> implements Saveable { *

    * ... which performs the databinding on the constructor of {@link #clazz}. * + *

    + * For some types of {@link Describable}, such as {@link ListViewColumn}, this method + * can be invoked with null request object for historical reason. Such design is considered + * broken, but due to the compatibility reasons we cannot fix it. Because of this, the + * default implementation gracefully handles null request, but the contract of the method + * still is "request is always non-null." Extension points that need to define the "default instance" + * semantics should define a descriptor subtype and add the no-arg newInstance method. + * * @param req - * Always non-null. This object includes represents the entire submisison. + * Always non-null (see note above.) This object includes represents the entire submission. * @param formData * The JSON object that captures the configuration data for this {@link Descriptor}. * See http://hudson.gotdns.com/wiki/display/HUDSON/Structured+Form+Submission + * Always non-null. * * @throws FormException * Signals a problem in the submitted form. @@ -329,14 +477,37 @@ public abstract class Descriptor> implements Saveable { if(!Modifier.isAbstract(m.getDeclaringClass().getModifiers())) { // this class overrides newInstance(StaplerRequest). // maintain the backward compatible behavior - return newInstance(req); + return verifyNewInstance(newInstance(req)); } else { + if (req==null) { + // yes, req is supposed to be always non-null, but see the note above + return verifyNewInstance(clazz.newInstance()); + } + // new behavior as of 1.206 - return req.bindJSON(clazz,formData); + return verifyNewInstance(req.bindJSON(clazz,formData)); } } catch (NoSuchMethodException e) { throw new AssertionError(e); // impossible + } catch (InstantiationException e) { + throw new Error("Failed to instantiate "+clazz+" from "+formData,e); + } catch (IllegalAccessException e) { + throw new Error("Failed to instantiate "+clazz+" from "+formData,e); + } catch (RuntimeException e) { + throw new RuntimeException("Failed to instantiate "+clazz+" from "+formData,e); + } + } + + /** + * Look out for a typical error a plugin developer makes. + * See http://hudson.361315.n4.nabble.com/Help-Hint-needed-Post-build-action-doesn-t-stay-activated-td2308833.html + */ + private T verifyNewInstance(T t) { + if (t!=null && t.getDescriptor()!=this) { + // TODO: should this be a fatal error? + LOGGER.warning("Father of "+ t+" and its getDescriptor() points to two different instances. Probably malplaced @Extension. See http://hudson.361315.n4.nabble.com/Help-Hint-needed-Post-build-action-doesn-t-stay-activated-td2308833.html"); } + return t; } /** @@ -400,12 +571,10 @@ public abstract class Descriptor> implements Saveable { } /** - * @deprecated - * As of 1.64. Use {@link #configure(StaplerRequest)}. + * Checks if the type represented by this descriptor is a subtype of the given type. */ - @Deprecated - public boolean configure( HttpServletRequest req ) throws FormException { - return true; + public final boolean isSubTypeOf(Class type) { + return type.isAssignableFrom(clazz); } /** @@ -413,8 +582,7 @@ public abstract class Descriptor> implements Saveable { * As of 1.239, use {@link #configure(StaplerRequest, JSONObject)}. */ public boolean configure( StaplerRequest req ) throws FormException { - // compatibility - return configure( (HttpServletRequest) req ); + return true; } /** @@ -438,22 +606,26 @@ public abstract class Descriptor> implements Saveable { } public String getGlobalConfigPage() { - return getViewPage(clazz, "global.jelly"); + return getViewPage(clazz, "global.jelly",null); } - protected final String getViewPage(Class clazz, String pageName) { + private String getViewPage(Class clazz, String pageName, String defaultValue) { while(clazz!=Object.class) { String name = clazz.getName().replace('.', '/').replace('$', '/') + "/" + pageName; if(clazz.getClassLoader().getResource(name)!=null) return '/'+name; clazz = clazz.getSuperclass(); } + return defaultValue; + } + + protected final String getViewPage(Class clazz, String pageName) { // We didn't find the configuration page. // Either this is non-fatal, in which case it doesn't matter what string we return so long as // it doesn't exist. // Or this error is fatal, in which case we want the developer to see what page he's missing. // so we put the page name. - return pageName; + return getViewPage(clazz,pageName,pageName); } @@ -464,6 +636,7 @@ public abstract class Descriptor> implements Saveable { if(BulkChange.contains(this)) return; try { getConfigFile().write(this); + SaveableListener.fireOnChange(this, getConfigFile()); } catch (IOException e) { LOGGER.log(Level.WARNING, "Failed to save "+getConfigFile(),e); } @@ -483,27 +656,12 @@ public abstract class Descriptor> implements Saveable { return; try { - Object o = file.unmarshal(this); - if(o instanceof Map) { - // legacy format - @SuppressWarnings("unchecked") - Map _o = (Map) o; - convert(_o); - save(); // convert to the new format - } + file.unmarshal(this); } catch (IOException e) { LOGGER.log(Level.WARNING, "Failed to load "+file, e); } } - /** - * {@link Descriptor}s that has existed <= 1.61 needs to - * be able to read in the old configuration in a property bag - * and reflect that into the new layout. - */ - protected void convert(Map oldPropertyBag) { - } - private XmlFile getConfigFile() { return new XmlFile(new File(Hudson.getInstance().getRootDir(),clazz.getName()+".xml")); } @@ -539,7 +697,7 @@ public abstract class Descriptor> implements Saveable { private InputStream getHelpStream(Class c, String suffix) { Locale locale = Stapler.getCurrentRequest().getLocale(); - String base = c.getName().replace('.', '/') + "/help"+suffix; + String base = c.getName().replace('.', '/').replace('$','/') + "/help"+suffix; ClassLoader cl = c.getClassLoader(); if(cl==null) return null; @@ -627,7 +785,7 @@ public abstract class Descriptor> implements Saveable { return find(Hudson.getInstance().getExtensionList(Descriptor.class),className); } - public static final class FormException extends Exception { + public static final class FormException extends Exception implements HttpResponse { private final String formField; public FormException(String message, String formField) { @@ -651,6 +809,11 @@ public abstract class Descriptor> implements Saveable { public String getFormField() { return formField; } + + public void generateResponse(StaplerRequest req, StaplerResponse rsp, Object node) throws IOException, ServletException { + // for now, we can't really use the field name that caused the problem. + new Failure(getMessage()).generateResponse(req,rsp,node); + } } private static final Logger LOGGER = Logger.getLogger(Descriptor.class.getName()); @@ -658,13 +821,11 @@ public abstract class Descriptor> implements Saveable { /** * Used in {@link #checkMethods} to indicate that there's no check method. */ - private static final Method NONE; + private static final String NONE = "\u0000"; - static { - try { - NONE = Object.class.getMethod("toString"); - } catch (NoSuchMethodException e) { - throw new AssertionError(); - } + private Object readResolve() { + if (properties!=null) + OldDataMonitor.report(this, "1.62"); + return this; } -} \ No newline at end of file +} diff --git a/core/src/main/java/hudson/model/DescriptorByNameOwner.java b/core/src/main/java/hudson/model/DescriptorByNameOwner.java index 75954c65f3c7f785eeeaa9beb3df78b7d2700e2a..98aacc0330c2d6d586d120439b35f78492821737 100644 --- a/core/src/main/java/hudson/model/DescriptorByNameOwner.java +++ b/core/src/main/java/hudson/model/DescriptorByNameOwner.java @@ -1,3 +1,26 @@ +/* + * The MIT License + * + * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ package hudson.model; /** diff --git a/core/src/main/java/hudson/model/DirectoryBrowserSupport.java b/core/src/main/java/hudson/model/DirectoryBrowserSupport.java index cf5ee04a7865ac5356f78cb9e012687f4e868192..7e1fdee56e6aedf88fb01f3bc27b25b8d4b7654a 100644 --- a/core/src/main/java/hudson/model/DirectoryBrowserSupport.java +++ b/core/src/main/java/hudson/model/DirectoryBrowserSupport.java @@ -1,7 +1,7 @@ /* * The MIT License * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Erik Ramfelt + * Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Erik Ramfelt * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -69,14 +69,7 @@ public final class DirectoryBrowserSupport implements HttpResponse { private final FilePath base; private final String icon; private final boolean serveDirIndex; - - /** - * @deprecated - * Use {@link #DirectoryBrowserSupport(ModelObject, String)} - */ - public DirectoryBrowserSupport(ModelObject owner) { - this(owner,owner.getDisplayName()); - } + private String indexFileName = "index.html"; /** * @deprecated as of 1.297 @@ -115,6 +108,15 @@ public final class DirectoryBrowserSupport implements HttpResponse { } } + /** + * If the directory is requested but the directory listing is disabled, a file of this name + * is served. By default it's "index.html". + * @since 1.312 + */ + public void setIndexFileName(String fileName) { + this.indexFileName = fileName; + } + /** * Serves a file from the file system (Maps the URL to a directory in a file system.) * @@ -127,7 +129,7 @@ public final class DirectoryBrowserSupport implements HttpResponse { * Instead of calling this method explicitly, just return the {@link DirectoryBrowserSupport} object * from the {@code doXYZ} method and let Stapler generate a response for you. */ - public final void serveFile(StaplerRequest req, StaplerResponse rsp, FilePath root, String icon, boolean serveDirIndex) throws IOException, ServletException, InterruptedException { + public void serveFile(StaplerRequest req, StaplerResponse rsp, FilePath root, String icon, boolean serveDirIndex) throws IOException, ServletException, InterruptedException { // handle form submission String pattern = req.getParameter("pattern"); if(pattern==null) @@ -189,7 +191,7 @@ public final class DirectoryBrowserSupport implements HttpResponse { if(baseFile.isDirectory()) { if(zip) { rsp.setContentType("application/zip"); - baseFile.createZipArchive(rsp.getOutputStream(),rest); + baseFile.zip(rsp.getOutputStream(),rest); return; } if (plain) { @@ -245,7 +247,7 @@ public final class DirectoryBrowserSupport implements HttpResponse { // convert a directory service request to a single file service request by serving // 'index.html' - baseFile = baseFile.child("index.html"); + baseFile = baseFile.child(indexFileName); } //serve a single file @@ -286,11 +288,11 @@ public final class DirectoryBrowserSupport implements HttpResponse { } private static final class ContentInfo implements FileCallable { - int contentLength; + long contentLength; long lastModified; public ContentInfo invoke(File f, VirtualChannel channel) throws IOException { - contentLength = (int) f.length(); + contentLength = f.length(); lastModified = f.lastModified(); return this; } diff --git a/core/src/main/java/hudson/model/DownloadService.java b/core/src/main/java/hudson/model/DownloadService.java index a67f91434435eec154eea2e4361f77079ae7e89e..98817a388b5376c31988a66b657ef27887bda11a 100644 --- a/core/src/main/java/hudson/model/DownloadService.java +++ b/core/src/main/java/hudson/model/DownloadService.java @@ -1,11 +1,35 @@ +/* + * The MIT License + * + * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ package hudson.model; import hudson.Extension; import hudson.ExtensionList; import hudson.ExtensionPoint; +import hudson.util.IOUtils; import hudson.util.QuotedStringTokenizer; import hudson.util.TextFile; -import org.kohsuke.stapler.QueryParameter; +import hudson.util.TimeUnit2; import org.kohsuke.stapler.Stapler; import java.io.File; @@ -13,6 +37,8 @@ import java.io.IOException; import java.util.logging.Logger; import net.sf.json.JSONObject; +import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerResponse; /** * Service for plugins to periodically retrieve update data files @@ -34,12 +60,16 @@ public class DownloadService extends PageDecorator { * Builds up an HTML fragment that starts all the download jobs. */ public String generateFragment() { + if (neverUpdate) return ""; + StringBuilder buf = new StringBuilder(); if(Hudson.getInstance().hasPermission(Hudson.READ)) { long now = System.currentTimeMillis(); for (Downloadable d : Downloadable.all()) { - if(d.getDue()downloadService.download(") + if(d.getDue()") + .append("Behaviour.addLoadEvent(function() {") + .append(" downloadService.download(") .append(QuotedStringTokenizer.quote(d.getId())) .append(',') .append(QuotedStringTokenizer.quote(d.getUrl())) @@ -48,7 +78,10 @@ public class DownloadService extends PageDecorator { .append(',') .append(QuotedStringTokenizer.quote(Stapler.getCurrentRequest().getContextPath()+'/'+getUrl()+"/byId/"+d.getId()+"/postBack")) .append(',') - .append("null);"); + .append("null);") + .append("});") + .append(""); + d.lastAttempt = now; } } } @@ -70,16 +103,17 @@ public class DownloadService extends PageDecorator { * Represents a periodically updated JSON data file obtained from a remote URL. * *

    - * This meachanism is one of the basis of the update center, which involves in fetching + * This mechanism is one of the basis of the update center, which involves fetching * up-to-date data file. * * @since 1.305 */ - public static abstract class Downloadable implements ExtensionPoint { + public static class Downloadable implements ExtensionPoint { private final String id; private final String url; private final long interval; private volatile long due=0; + private volatile long lastAttempt=Long.MIN_VALUE; /** * @@ -91,12 +125,27 @@ public class DownloadService extends PageDecorator { * For security and privacy reasons, we don't allow the retrieval * from random locations. */ - protected Downloadable(String id, String url, long interval) { + public Downloadable(String id, String url, long interval) { this.id = id; this.url = url; this.interval = interval; } + /** + * Uses the class name as an ID. + */ + public Downloadable(Class id) { + this(id.getName().replace('$','.')); + } + + public Downloadable(String id) { + this(id,id+".json"); + } + + public Downloadable(String id, String url) { + this(id,url,TimeUnit2.DAYS.toMillis(1)); + } + public String getId() { return id; } @@ -105,7 +154,7 @@ public class DownloadService extends PageDecorator { * URL to download. */ public String getUrl() { - return Hudson.getInstance().getUpdateCenter().getUrl()+url; + return Hudson.getInstance().getUpdateCenter().getDefaultBaseUrl()+"updates/"+url; } /** @@ -151,13 +200,14 @@ public class DownloadService extends PageDecorator { /** * This is where the browser sends us the data. */ - public void doPostBack(@QueryParameter String json) throws IOException { + public void doPostBack(StaplerRequest req, StaplerResponse rsp) throws IOException { long dataTimestamp = System.currentTimeMillis(); TextFile df = getDataFile(); - df.write(json); + df.write(IOUtils.toString(req.getInputStream(),"UTF-8")); df.file.setLastModified(dataTimestamp); due = dataTimestamp+getInterval(); LOGGER.info("Obtained the updated data file for "+id); + rsp.setContentType("text/plain"); // So browser won't try to parse response } /** @@ -167,6 +217,20 @@ public class DownloadService extends PageDecorator { return Hudson.getInstance().getExtensionList(Downloadable.class); } + /** + * Returns the {@link Downloadable} that has the given ID. + */ + public static Downloadable get(String id) { + for (Downloadable d : all()) { + if(d.id.equals(id)) + return d; + } + return null; + } + private static final Logger LOGGER = Logger.getLogger(Downloadable.class.getName()); } + + public static boolean neverUpdate = Boolean.getBoolean(DownloadService.class.getName()+".never"); } + diff --git a/core/src/main/java/hudson/model/Environment.java b/core/src/main/java/hudson/model/Environment.java index 1ac45d3a1bd01a90a310ce3b2a2b023e0abb20cb..713642e5cd433f35b9b1dfa9517924b361ea6034 100644 --- a/core/src/main/java/hudson/model/Environment.java +++ b/core/src/main/java/hudson/model/Environment.java @@ -1,105 +1,105 @@ -/* - * The MIT License - * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Tom Huybrechts - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ -package hudson.model; - -import hudson.tasks.Builder; -import hudson.EnvVars; - -import java.io.IOException; -import java.util.Map; - -/** - * Represents some resources that are set up for the duration of a build - * to be torn down when the build is over. - * - *

    - * This is often used to run a parallel server necessary during a build, - * such as an application server, a database reserved for the build, - * X server for performing UI tests, etc. - * - *

    - * By having a plugin that does this, instead of asking each build script to do this, - * we can simplify the build script. {@link Environment} abstraction also gives - * you guaranteed "tear down" phase, so that such resource won't keep running forever. - * - * @since 1.286 - */ -public abstract class Environment { - /** - * Adds environmental variables for the builds to the given map. - * - *

    - * If the {@link Environment} object wants to pass in information to the - * build that runs, it can do so by exporting additional environment - * variables to the map. - * - *

    - * When this method is invoked, the map already contains the current - * "planned export" list. - * - * @param env - * never null. This really should have been typed as {@link EnvVars} - * but by the time we realized it it was too late. - */ - public void buildEnvVars(Map env) { - // no-op by default - } - - /** - * Runs after the {@link Builder} completes, and performs a tear down. - * - *

    - * This method is invoked even when the build failed, so that the clean up - * operation can be performed regardless of the build result (for example, - * you'll want to stop application server even if a build fails.) - * - * @param build - * The same {@link Build} object given to the set up method. - * @param listener - * The same {@link BuildListener} object given to the set up - * method. - * @return true if the build can continue, false if there was an error and - * the build needs to be aborted. - * @throws IOException - * terminates the build abnormally. Hudson will handle the - * exception and reports a nice error message. - */ - public boolean tearDown(AbstractBuild build, BuildListener listener) - throws IOException, InterruptedException { - return true; - } - - /** - * Creates {@link Environment} implementation that just sets the variables as given in the parameter. - */ - public static Environment create(final EnvVars envVars) { - return new Environment() { - @Override - public void buildEnvVars(Map env) { - env.putAll(envVars); - } - }; - } - +/* + * The MIT License + * + * Copyright (c) 2004-2009, Sun Microsystems, Inc., Tom Huybrechts + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.model; + +import hudson.tasks.Builder; +import hudson.EnvVars; + +import java.io.IOException; +import java.util.Map; + +/** + * Represents some resources that are set up for the duration of a build + * to be torn down when the build is over. + * + *

    + * This is often used to run a parallel server necessary during a build, + * such as an application server, a database reserved for the build, + * X server for performing UI tests, etc. + * + *

    + * By having a plugin that does this, instead of asking each build script to do this, + * we can simplify the build script. {@link Environment} abstraction also gives + * you guaranteed "tear down" phase, so that such resource won't keep running forever. + * + * @since 1.286 + */ +public abstract class Environment { + /** + * Adds environmental variables for the builds to the given map. + * + *

    + * If the {@link Environment} object wants to pass in information to the + * build that runs, it can do so by exporting additional environment + * variables to the map. + * + *

    + * When this method is invoked, the map already contains the current + * "planned export" list. + * + * @param env + * never null. This really should have been typed as {@link EnvVars} + * but by the time we realized it it was too late. + */ + public void buildEnvVars(Map env) { + // no-op by default + } + + /** + * Runs after the {@link Builder} completes, and performs a tear down. + * + *

    + * This method is invoked even when the build failed, so that the clean up + * operation can be performed regardless of the build result (for example, + * you'll want to stop application server even if a build fails.) + * + * @param build + * The same {@link Build} object given to the set up method. + * @param listener + * The same {@link BuildListener} object given to the set up + * method. + * @return true if the build can continue, false if there was an error and + * the build needs to be aborted. + * @throws IOException + * terminates the build abnormally. Hudson will handle the + * exception and reports a nice error message. + */ + public boolean tearDown(AbstractBuild build, BuildListener listener) + throws IOException, InterruptedException { + return true; + } + + /** + * Creates {@link Environment} implementation that just sets the variables as given in the parameter. + */ + public static Environment create(final EnvVars envVars) { + return new Environment() { + @Override + public void buildEnvVars(Map env) { + env.putAll(envVars); + } + }; + } + } \ No newline at end of file diff --git a/core/src/main/java/hudson/model/EnvironmentContributingAction.java b/core/src/main/java/hudson/model/EnvironmentContributingAction.java new file mode 100644 index 0000000000000000000000000000000000000000..369a7a9f57eee81b612010ef5685f1f25f52b262 --- /dev/null +++ b/core/src/main/java/hudson/model/EnvironmentContributingAction.java @@ -0,0 +1,52 @@ +/* + * The MIT License + * + * Copyright (c) 2004-2009, Sun Microsystems, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.model; + +import hudson.EnvVars; +import hudson.tasks.Builder; +import hudson.tasks.BuildWrapper; + +/** + * {@link Action} that contributes environment variables during a build. + * + * @author Kohsuke Kawaguchi + * @since 1.318 + * @see AbstractBuild#getEnvironment(TaskListener) + * @see BuildWrapper + */ +public interface EnvironmentContributingAction extends Action { + /** + * Called by {@link AbstractBuild} to allow plugins to contribute environment variables. + * + *

    + * For example, your {@link Builder} can add an {@link EnvironmentContributingAction} so that + * the rest of the builders or publishers see some behavior changes. + * + * @param build + * The calling build. Never null. + * @param env + * Evironment variables should be added to this map. + */ + public void buildEnvVars(AbstractBuild build, EnvVars env); +} diff --git a/core/src/main/java/hudson/model/EnvironmentSpecific.java b/core/src/main/java/hudson/model/EnvironmentSpecific.java index e57c9bfb2c7f572cc376af844a072e59f6c5c0e5..32663e721491cebf1ba248e17a9392bba9849577 100644 --- a/core/src/main/java/hudson/model/EnvironmentSpecific.java +++ b/core/src/main/java/hudson/model/EnvironmentSpecific.java @@ -1,44 +1,44 @@ -/* - * The MIT License - * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Tom Huybrechts - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ -package hudson.model; - -import hudson.EnvVars; -import hudson.slaves.NodeSpecific; - -/** - * Represents any concept that can be adapted for a certain environment. - * - * Mainly for documentation purposes. - * - * @since 1.286 - * @param - * Concrete type that represents the thing that can be adapted. - * @see NodeSpecific - */ -public interface EnvironmentSpecific> { - /** - * Returns a specialized copy of T for functioning in the given environment. - */ - T forEnvironment(EnvVars environment); -} +/* + * The MIT License + * + * Copyright (c) 2004-2009, Sun Microsystems, Inc., Tom Huybrechts + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.model; + +import hudson.EnvVars; +import hudson.slaves.NodeSpecific; + +/** + * Represents any concept that can be adapted for a certain environment. + * + * Mainly for documentation purposes. + * + * @since 1.286 + * @param + * Concrete type that represents the thing that can be adapted. + * @see NodeSpecific + */ +public interface EnvironmentSpecific> { + /** + * Returns a specialized copy of T for functioning in the given environment. + */ + T forEnvironment(EnvVars environment); +} diff --git a/core/src/main/java/hudson/model/Executor.java b/core/src/main/java/hudson/model/Executor.java index 4c77c34c70e4d98b4ea7c1da20e3bc08f21080a0..58b5d02561705c43aa38bfb9622622c0c8172019 100644 --- a/core/src/main/java/hudson/model/Executor.java +++ b/core/src/main/java/hudson/model/Executor.java @@ -23,8 +23,14 @@ */ package hudson.model; +import hudson.model.Queue.Executable; import hudson.Util; +import hudson.FilePath; +import hudson.model.queue.SubTask; +import hudson.model.queue.Tasks; +import hudson.model.queue.WorkUnit; import hudson.util.TimeUnit2; +import hudson.util.InterceptingProxy; import hudson.security.ACL; import org.kohsuke.stapler.StaplerRequest; import org.kohsuke.stapler.StaplerResponse; @@ -36,7 +42,9 @@ import javax.servlet.ServletException; import java.io.IOException; import java.util.logging.Logger; import java.util.logging.Level; -import java.util.concurrent.TimeUnit; +import java.lang.reflect.Method; + +import static hudson.model.queue.Executables.*; /** @@ -46,7 +54,7 @@ import java.util.concurrent.TimeUnit; */ @ExportedBean public class Executor extends Thread implements ModelObject { - private final Computer owner; + protected final Computer owner; private final Queue queue; private long startTime; @@ -64,25 +72,27 @@ public class Executor extends Thread implements ModelObject { */ private volatile Queue.Executable executable; + private volatile WorkUnit workUnit; + private Throwable causeOfDeath; - public Executor(Computer owner) { - super("Executor #"+owner.getExecutors().size()+" for "+owner.getDisplayName()); + public Executor(Computer owner, int n) { + super("Executor #"+n+" for "+owner.getDisplayName()); this.owner = owner; this.queue = Hudson.getInstance().getQueue(); - this.number = owner.getExecutors().size(); - start(); + this.number = n; } + @Override public void run() { // run as the system user. see ACL.SYSTEM for more discussion about why this is somewhat broken SecurityContextHolder.getContext().setAuthentication(ACL.SYSTEM); try { finishTime = System.currentTimeMillis(); - while(true) { - if(Hudson.getInstance() == null || Hudson.getInstance().isTerminating()) - return; + while(shouldRun()) { + executable = null; + workUnit = null; synchronized(owner) { if(owner.getNumExecutors()=100) num=99; return num; } @@ -228,8 +289,8 @@ public class Executor extends Thread implements ModelObject { Queue.Executable e = executable; if(e==null) return false; - long elapsed = System.currentTimeMillis() - startTime; - long d = e.getParent().getEstimatedDuration(); + long elapsed = getElapsedTime(); + long d = getEstimatedDurationFor(e); if(d>=0) { // if it's taking 10 times longer than ETA, consider it stuck return d*10 < elapsed; @@ -239,6 +300,20 @@ public class Executor extends Thread implements ModelObject { } } + public long getElapsedTime() { + return System.currentTimeMillis() - startTime; + } + + /** + * Gets the string that says how long since this build has started. + * + * @return + * string like "3 minutes" "1 day" etc. + */ + public String getTimestampString() { + return Util.getPastTimeString(getElapsedTime()); + } + /** * Computes a human-readable text that shows the expected remaining time * until the build completes. @@ -247,10 +322,10 @@ public class Executor extends Thread implements ModelObject { Queue.Executable e = executable; if(e==null) return Messages.Executor_NotAvailable(); - long d = e.getParent().getEstimatedDuration(); + long d = getEstimatedDurationFor(e); if(d<0) return Messages.Executor_NotAvailable(); - long eta = d-(System.currentTimeMillis()-startTime); + long eta = d-getElapsedTime(); if(eta<=0) return Messages.Executor_NotAvailable(); return Util.getTimeSpanString(eta); @@ -264,10 +339,10 @@ public class Executor extends Thread implements ModelObject { Queue.Executable e = executable; if(e==null) return -1; - long d = e.getParent().getEstimatedDuration(); + long d = getEstimatedDurationFor(e); if(d<0) return -1; - long eta = d-(System.currentTimeMillis()-startTime); + long eta = d-getElapsedTime(); if(eta<=0) return -1; return eta; @@ -279,7 +354,7 @@ public class Executor extends Thread implements ModelObject { public void doStop( StaplerRequest req, StaplerResponse rsp ) throws IOException, ServletException { Queue.Executable e = executable; if(e!=null) { - e.getParent().checkAbortPermission(); + Tasks.getOwnerTaskOf(getParentOf(e)).checkAbortPermission(); interrupt(); } rsp.forwardToPreviousPage(req); @@ -290,7 +365,7 @@ public class Executor extends Thread implements ModelObject { */ public boolean hasStopPermission() { Queue.Executable e = executable; - return e!=null && e.getParent().hasAbortPermission(); + return e!=null && Tasks.getOwnerTaskOf(getParentOf(e)).hasAbortPermission(); } public Computer getOwner() { @@ -302,9 +377,9 @@ public class Executor extends Thread implements ModelObject { */ public long getIdleStartMilliseconds() { if (isIdle()) - return finishTime; + return Math.max(finishTime, owner.getConnectTime()); else { - return Math.max(startTime + Math.max(0, executable.getParent().getEstimatedDuration()), + return Math.max(startTime + Math.max(0, getEstimatedDurationFor(executable)), System.currentTimeMillis() + 15000); } } @@ -316,14 +391,52 @@ public class Executor extends Thread implements ModelObject { return new Api(this); } + /** + * Creates a proxy object that executes the callee in the context that impersonates + * this executor. Useful to export an object to a remote channel. + */ + public T newImpersonatingProxy(Class type, T core) { + return new InterceptingProxy() { + protected Object call(Object o, Method m, Object[] args) throws Throwable { + final Executor old = IMPERSONATION.get(); + IMPERSONATION.set(Executor.this); + try { + return m.invoke(o,args); + } finally { + IMPERSONATION.set(old); + } + } + }.wrap(type,core); + } + /** * Returns the executor of the current thread or null if current thread is not an executor. */ public static Executor currentExecutor() { Thread t = Thread.currentThread(); - return t instanceof Executor ? (Executor)t : null; + if (t instanceof Executor) return (Executor) t; + return IMPERSONATION.get(); + } + + /** + * Returns the estimated duration for the executable. + * Protects against {@link AbstractMethodError}s if the {@link Executable} implementation + * was compiled against Hudson < 1.383 + */ + public static long getEstimatedDurationFor(Executable e) { + try { + return e.getEstimatedDuration(); + } catch (AbstractMethodError error) { + return e.getParent().getEstimatedDuration(); + } } + /** + * Mechanism to allow threads (in particular the channel request handling threads) to + * run on behalf of {@link Executor}. + */ + private static final ThreadLocal IMPERSONATION = new ThreadLocal(); + private static final Logger LOGGER = Logger.getLogger(Executor.class.getName()); } diff --git a/core/src/main/java/hudson/model/ExternalJob.java b/core/src/main/java/hudson/model/ExternalJob.java index 1fae1ecef9e8074caa8dbe1f8e9ec151b8321309..876b443c027859025329d21ed3600ad3bd832089 100644 --- a/core/src/main/java/hudson/model/ExternalJob.java +++ b/core/src/main/java/hudson/model/ExternalJob.java @@ -32,7 +32,6 @@ import javax.servlet.ServletException; import javax.servlet.http.HttpServletResponse; import java.io.File; import java.io.IOException; -import java.util.logging.Logger; /** * Job that runs outside Hudson whose result is submitted to Hudson @@ -89,7 +88,7 @@ public class ExternalJob extends ViewJob implements Top /** * Used to check if this is an external job and ready to accept a build result. */ - public void doAcceptBuildResult( StaplerRequest req, StaplerResponse rsp ) throws IOException, ServletException { + public void doAcceptBuildResult(StaplerResponse rsp) throws IOException, ServletException { rsp.setStatus(HttpServletResponse.SC_OK); } @@ -103,9 +102,6 @@ public class ExternalJob extends ViewJob implements Top rsp.setStatus(HttpServletResponse.SC_OK); } - - private static final Logger logger = Logger.getLogger(ExternalJob.class.getName()); - public TopLevelItemDescriptor getDescriptor() { return DESCRIPTOR; } diff --git a/core/src/main/java/hudson/model/ExternalRun.java b/core/src/main/java/hudson/model/ExternalRun.java index bf9d98d821b6ed069729107165cdbe05b94ffde3..0b7fabdd503257ac8bd5dfdcb2b60cc8ca5fd172 100644 --- a/core/src/main/java/hudson/model/ExternalRun.java +++ b/core/src/main/java/hudson/model/ExternalRun.java @@ -26,14 +26,18 @@ package hudson.model; import hudson.Proc; import hudson.util.DecodingStream; import hudson.util.DualOutputStream; -import org.xmlpull.mxp1.MXParser; -import org.xmlpull.v1.XmlPullParser; +import org.jvnet.animal_sniffer.IgnoreJRERequirement; +import javax.xml.stream.XMLInputFactory; +import javax.xml.stream.XMLStreamException; +import javax.xml.stream.XMLStreamReader; import java.io.File; import java.io.IOException; import java.io.PrintStream; import java.io.Reader; +import static javax.xml.stream.XMLStreamConstants.*; + /** * {@link Run} for {@link ExternalJob}. * @@ -89,30 +93,47 @@ public class ExternalRun extends Run { * * */ + @SuppressWarnings({"Since15"}) + @IgnoreJRERequirement public void acceptRemoteSubmission(final Reader in) throws IOException { final long[] duration = new long[1]; run(new Runner() { + private String elementText(XMLStreamReader r) throws XMLStreamException { + StringBuilder buf = new StringBuilder(); + while(true) { + int type = r.next(); + if(type== CHARACTERS || type== CDATA) + buf.append(r.getTextCharacters(), r.getTextStart(), r.getTextLength()); + else + return buf.toString(); + } + } + public Result run(BuildListener listener) throws Exception { PrintStream logger = new PrintStream(new DecodingStream(listener.getLogger())); - XmlPullParser xpp = new MXParser(); - xpp.setInput(in); - xpp.nextTag(); // get to the - xpp.nextTag(); // get to the - while(xpp.nextToken()!=XmlPullParser.END_TAG) { - int type = xpp.getEventType(); - if(type==XmlPullParser.TEXT - || type==XmlPullParser.CDSECT) - logger.print(xpp.getText()); + XMLInputFactory xif = XMLInputFactory.newInstance(); + XMLStreamReader p = xif.createXMLStreamReader(in); + + p.nextTag(); // get to the + p.nextTag(); // get to the + + charset=p.getAttributeValue(null,"content-encoding"); + while(p.next()!= END_ELEMENT) { + int type = p.getEventType(); + if(type== CHARACTERS || type== CDATA) + logger.print(p.getText()); } - xpp.nextTag(); // get to + p.nextTag(); // get to + + - Result r = Integer.parseInt(xpp.nextText())==0?Result.SUCCESS:Result.FAILURE; + Result r = Integer.parseInt(elementText(p))==0?Result.SUCCESS:Result.FAILURE; - xpp.nextTag(); // get to (optional) - if(xpp.getEventType()==XmlPullParser.START_TAG - && xpp.getName().equals("duration")) { - duration[0] = Long.parseLong(xpp.nextText()); + p.nextTag(); // get to (optional) + if(p.getEventType()== START_ELEMENT + && p.getLocalName().equals("duration")) { + duration[0] = Long.parseLong(elementText(p)); } return r; diff --git a/core/src/main/java/hudson/model/Failure.java b/core/src/main/java/hudson/model/Failure.java new file mode 100644 index 0000000000000000000000000000000000000000..86fad48c6f64e2932b1053dfd2abda833b0364c4 --- /dev/null +++ b/core/src/main/java/hudson/model/Failure.java @@ -0,0 +1,65 @@ +/* + * The MIT License + * + * Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.model; + +import org.kohsuke.stapler.HttpResponse; +import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerResponse; + +import javax.servlet.ServletException; +import java.io.IOException; + +/** + * Represents an error induced by user, encountered during HTTP request processing. + * + *

    + * The error page is rendered into HTML, but without a stack trace. So only use + * this exception when the error condition is anticipated by the program, and where + * we nor users don't need to see the stack trace to figure out the root cause. + * + * @author Kohsuke Kawaguchi + * @since 1.321 + */ +public class Failure extends RuntimeException implements HttpResponse { + private final boolean pre; + + public Failure(String message) { + this(message,false); + } + + public Failure(String message, boolean pre) { + super(message); + this.pre = pre; + } + + public void generateResponse(StaplerRequest req, StaplerResponse rsp, Object node) throws IOException, ServletException { + req.setAttribute("message",getMessage()); + if(pre) + req.setAttribute("pre",true); + if (node instanceof AbstractItem) // Maintain ancestors + rsp.forward(Hudson.getInstance(), ((AbstractItem)node).getUrl() + "error", req); + else + rsp.forward(node instanceof AbstractModelObject ? node : Hudson.getInstance() ,"error", req); + } +} diff --git a/core/src/main/java/hudson/model/FileParameterDefinition.java b/core/src/main/java/hudson/model/FileParameterDefinition.java index 6943a5ac9b9225c69110e4b3ae96af5b44b1e48c..0f0876b39d8f5259748d51b09bc2c6e7a99cdf0a 100644 --- a/core/src/main/java/hudson/model/FileParameterDefinition.java +++ b/core/src/main/java/hudson/model/FileParameterDefinition.java @@ -27,6 +27,11 @@ import net.sf.json.JSONObject; import org.kohsuke.stapler.DataBoundConstructor; import org.kohsuke.stapler.StaplerRequest; import hudson.Extension; +import hudson.FilePath; +import hudson.cli.CLICommand; + +import java.io.IOException; +import java.io.File; /** * {@link ParameterDefinition} for doing file upload. @@ -66,4 +71,17 @@ public class FileParameterDefinition extends ParameterDefinition { public ParameterValue createValue(StaplerRequest req) { throw new UnsupportedOperationException(); } + + @Override + public ParameterValue createValue(CLICommand command, String value) throws IOException, InterruptedException { + // capture the file to the server + FilePath src = new FilePath(command.channel,value); + File local = File.createTempFile("hudson","parameter"); + src.copyTo(new FilePath(local)); + + FileParameterValue p = new FileParameterValue(getName(), local, src.getName()); + p.setDescription(getDescription()); + p.setLocation(getName()); + return p; + } } diff --git a/core/src/main/java/hudson/model/FileParameterValue.java b/core/src/main/java/hudson/model/FileParameterValue.java index f1a3adcb9e9b01693d423cca014f79a0b89c75f0..76a35483dd5412e7ac1be446021b6e981d8b83f8 100644 --- a/core/src/main/java/hudson/model/FileParameterValue.java +++ b/core/src/main/java/hudson/model/FileParameterValue.java @@ -1,18 +1,18 @@ /* * The MIT License - * + * * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi - * + * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: - * + * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. - * + * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -24,12 +24,26 @@ package hudson.model; import org.kohsuke.stapler.DataBoundConstructor; +import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerResponse; import org.apache.commons.fileupload.FileItem; import org.apache.commons.fileupload.disk.DiskFileItem; +import org.apache.commons.lang.StringUtils; +import org.apache.commons.io.FilenameUtils; +import org.apache.commons.io.IOUtils; + import hudson.tasks.BuildWrapper; import hudson.Launcher; +import hudson.FilePath; import java.io.IOException; +import java.io.File; +import java.io.InputStream; +import java.io.UnsupportedEncodingException; +import java.io.OutputStream; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import javax.servlet.ServletException; /** * {@link ParameterValue} for {@link FileParameterDefinition}. @@ -45,16 +59,26 @@ import java.io.IOException; public class FileParameterValue extends ParameterValue { private FileItem file; + /** + * The name of the originally uploaded file. + */ + private final String originalFileName; + private String location; @DataBoundConstructor public FileParameterValue(String name, FileItem file) { - this(name, file, null); + this(name, file, FilenameUtils.getName(file.getName())); + } + + public FileParameterValue(String name, File file, String originalFileName) { + this(name, new FileItemImpl(file), originalFileName); } - public FileParameterValue(String name, FileItem file, String description) { - super(name, description); - assert file!=null; + + private FileParameterValue(String name, FileItem file, String originalFileName) { + super(name); this.file = file; + this.originalFileName = originalFileName; } // post initialization hook @@ -62,12 +86,30 @@ public class FileParameterValue extends ParameterValue { this.location = location; } + /** + * Get the name of the originally uploaded file. If this + * {@link FileParameterValue} was created prior to 1.362, this method will + * return {@code null}. + * + * @return the name of the originally uploaded file + */ + public String getOriginalFileName() { + return originalFileName; + } + + @Override public BuildWrapper createBuildWrapper(AbstractBuild build) { return new BuildWrapper() { + @Override public Environment setUp(AbstractBuild build, Launcher launcher, BuildListener listener) throws IOException, InterruptedException { - listener.getLogger().println("Copying file to "+location); - build.getProject().getWorkspace().child(location).copyFrom(file); - file = null; + if (!StringUtils.isEmpty(file.getName())) { + listener.getLogger().println("Copying file to "+location); + FilePath locationFilePath = build.getWorkspace().child(location); + locationFilePath.getParent().mkdirs(); + locationFilePath.copyFrom(file); + file = null; + locationFilePath.copyTo(new FilePath(getLocationUnderBuild(build))); + } return new Environment() {}; } }; @@ -101,5 +143,113 @@ public class FileParameterValue extends ParameterValue { return false; return true; } - + + @Override + public String getShortDescription() { + return "(FileParameterValue) " + getName() + "='" + originalFileName + "'"; + } + + /** + * Serve this file parameter in response to a {@link StaplerRequest}. + * + * @param request + * @param response + * @throws ServletException + * @throws IOException + */ + public void doDynamic(StaplerRequest request, StaplerResponse response) throws ServletException, IOException { + if (("/" + originalFileName).equals(request.getRestOfPath())) { + AbstractBuild build = (AbstractBuild)request.findAncestor(AbstractBuild.class).getObject(); + File fileParameter = getLocationUnderBuild(build); + if (fileParameter.isFile()) { + response.serveFile(request, fileParameter.toURI().toURL()); + } + } + } + + /** + * Get the location under the build directory to store the file parameter. + * + * @param build the build + * @return the location to store the file parameter + */ + private File getLocationUnderBuild(AbstractBuild build) { + return new File(build.getRootDir(), "fileParameters/" + location); + } + + /** + * Default implementation from {@link File}. + */ + public static final class FileItemImpl implements FileItem { + private final File file; + + public FileItemImpl(File file) { + if (file == null) { + throw new NullPointerException("file"); + } + this.file = file; + } + + public InputStream getInputStream() throws IOException { + return new FileInputStream(file); + } + + public String getContentType() { + return null; + } + + public String getName() { + return file.getName(); + } + + public boolean isInMemory() { + return false; + } + + public long getSize() { + return file.length(); + } + + public byte[] get() { + try { + return IOUtils.toByteArray(new FileInputStream(file)); + } catch (IOException e) { + throw new Error(e); + } + } + + public String getString(String encoding) throws UnsupportedEncodingException { + return new String(get(), encoding); + } + + public String getString() { + return new String(get()); + } + + public void write(File to) throws Exception { + new FilePath(file).copyTo(new FilePath(to)); + } + + public void delete() { + file.delete(); + } + + public String getFieldName() { + return null; + } + + public void setFieldName(String name) { + } + + public boolean isFormField() { + return false; + } + + public void setFormField(boolean state) { + } + + public OutputStream getOutputStream() throws IOException { + return new FileOutputStream(file); + } + } } diff --git a/core/src/main/java/hudson/model/Fingerprint.java b/core/src/main/java/hudson/model/Fingerprint.java index 90d9d83e4d95774f063c657ac99de760a337a174..6b6a1be843324b34e87f5d60da1b1d24c6978f69 100644 --- a/core/src/main/java/hudson/model/Fingerprint.java +++ b/core/src/main/java/hudson/model/Fingerprint.java @@ -33,6 +33,7 @@ import com.thoughtworks.xstream.io.HierarchicalStreamWriter; import hudson.Util; import hudson.XmlFile; import hudson.BulkChange; +import hudson.model.listeners.SaveableListener; import hudson.util.HexBinaryConverter; import hudson.util.Iterators; import hudson.util.XStream2; @@ -213,6 +214,7 @@ public class Fingerprint implements ModelObject, Saveable { return this.end==that.start; } + @Override public String toString() { return "["+start+","+end+")"; } @@ -400,8 +402,9 @@ public class Fingerprint implements ModelObject, Saveable { this.ranges.addAll(that.ranges.subList(rhs,that.ranges.size())); } + @Override public synchronized String toString() { - StringBuffer buf = new StringBuffer(); + StringBuilder buf = new StringBuilder(); for (Range r : ranges) { if(buf.length()>0) buf.append(','); buf.append(r); @@ -444,6 +447,33 @@ public class Fingerprint implements ModelObject, Saveable { return ranges.get(ranges.size() - 1).isSmallerThan(n); } + /** + * Parses a {@link RangeSet} from a string like "1-3,5,7-9" + */ + public static RangeSet fromString(String list, boolean skipError) { + RangeSet rs = new RangeSet(); + for (String s : Util.tokenize(list,",")) { + s = s.trim(); + // s is either single number or range "x-y". + // note that the end range is inclusive in this notation, but not in the Range class + try { + if(s.contains("-")) { + String[] tokens = Util.tokenize(s,"-"); + rs.ranges.add(new Range(Integer.parseInt(tokens[0]),Integer.parseInt(tokens[1])+1)); + } else { + int n = Integer.parseInt(s); + rs.ranges.add(new Range(n,n+1)); + } + } catch (NumberFormatException e) { + if (!skipError) + throw new IllegalArgumentException("Unable to parse "+list); + // ignore malformed text + + } + } + return rs; + } + static final class ConverterImpl implements Converter { private final Converter collectionConv; // used to convert ArrayList in it @@ -479,24 +509,7 @@ public class Fingerprint implements ModelObject, Saveable { */ return new RangeSet((List)(collectionConv.unmarshal(reader,context))); } else { - RangeSet rs = new RangeSet(); - for (String s : Util.tokenize(reader.getValue(),",")) { - s = s.trim(); - // s is either single number or range "x-y". - // note that the end range is inclusive in this notation, but not in the Range class - try { - if(s.contains("-")) { - String[] tokens = Util.tokenize(s,"-"); - rs.ranges.add(new Range(Integer.parseInt(tokens[0]),Integer.parseInt(tokens[1])+1)); - } else { - int n = Integer.parseInt(s); - rs.ranges.add(new Range(n,n+1)); - } - } catch (NumberFormatException e) { - // ignore malformed text - } - } - return rs; + return RangeSet.fromString(reader.getValue(),true); } } } @@ -689,6 +702,7 @@ public class Fingerprint implements ModelObject, Saveable { File file = getFingerprintFile(md5sum); getConfigFile(file).write(this); + SaveableListener.fireOnChange(this, getConfigFile(file)); if(logger.isLoggable(Level.FINE)) logger.fine("Saving fingerprint "+file+" took "+(System.currentTimeMillis()-start)+"ms"); @@ -758,7 +772,8 @@ public class Fingerprint implements ModelObject, Saveable { XSTREAM.alias("ranges",RangeSet.class); XSTREAM.registerConverter(new HexBinaryConverter(),10); XSTREAM.registerConverter(new RangeSet.ConverterImpl( - new CollectionConverter(XSTREAM.getClassMapper()) { + new CollectionConverter(XSTREAM.getMapper()) { + @Override protected Object createCollection(Class type) { return new ArrayList(); } diff --git a/core/src/main/java/hudson/model/FingerprintMap.java b/core/src/main/java/hudson/model/FingerprintMap.java index 92e015c1ce96330da8e16824622bff64b6a9db43..f7fa95930c35baa8b405a3f309edfe52767c0b6c 100644 --- a/core/src/main/java/hudson/model/FingerprintMap.java +++ b/core/src/main/java/hudson/model/FingerprintMap.java @@ -1,7 +1,7 @@ /* * The MIT License * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi + * Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -24,10 +24,12 @@ package hudson.model; import hudson.Util; +import hudson.diagnosis.OldDataMonitor; import hudson.util.KeyedDataStorage; import java.io.File; import java.io.IOException; +import java.util.Locale; import java.util.concurrent.ConcurrentHashMap; /** @@ -44,7 +46,7 @@ import java.util.concurrent.ConcurrentHashMap; public final class FingerprintMap extends KeyedDataStorage { /** - * @deprecated + * @deprecated since 2007-03-26. * Some old version of Hudson incorrectly serialized this information to the disk. * So we need this field to be here for such configuration to be read correctly. * This field is otherwise no longer in use. @@ -55,7 +57,7 @@ public final class FingerprintMap extends KeyedDataStorage actions); -} diff --git a/core/src/main/java/hudson/model/FreeStyleBuild.java b/core/src/main/java/hudson/model/FreeStyleBuild.java index 1fb3a97cffc1dbb098c1991cd4f3b9931bf705c6..fdec9c0b15c30e6da9bc5884758e1f3dc0130626 100644 --- a/core/src/main/java/hudson/model/FreeStyleBuild.java +++ b/core/src/main/java/hudson/model/FreeStyleBuild.java @@ -23,6 +23,9 @@ */ package hudson.model; +import hudson.slaves.WorkspaceList; +import hudson.slaves.WorkspaceList.Lease; + import java.io.IOException; import java.io.File; @@ -37,4 +40,20 @@ public class FreeStyleBuild extends Build { public FreeStyleBuild(FreeStyleProject project, File buildDir) throws IOException { super(project, buildDir); } + + @Override + public void run() { + run(new RunnerImpl()); + } + + protected class RunnerImpl extends Build.RunnerImpl { + @Override + protected Lease decideWorkspace(Node n, WorkspaceList wsl) throws IOException, InterruptedException { + String customWorkspace = getProject().getCustomWorkspace(); + if (customWorkspace != null) + // we allow custom workspaces to be concurrently used between jobs. + return Lease.createDummyLease(n.getRootPath().child(getEnvironment(listener).expand(customWorkspace))); + return super.decideWorkspace(n,wsl); + } + } } diff --git a/core/src/main/java/hudson/model/FreeStyleProject.java b/core/src/main/java/hudson/model/FreeStyleProject.java index d13a25bc2e9a2c903e1bd677abf5f8b7024bdfc8..d61ab39c978107be6aae08797c76f35df27bc20c 100644 --- a/core/src/main/java/hudson/model/FreeStyleProject.java +++ b/core/src/main/java/hudson/model/FreeStyleProject.java @@ -23,7 +23,6 @@ */ package hudson.model; -import hudson.FilePath; import hudson.Extension; import java.io.File; @@ -41,16 +40,7 @@ import javax.servlet.ServletException; */ public class FreeStyleProject extends Project implements TopLevelItem { /** - * User-specified workspace directory, or null if it's up to Hudson. - * - *

    - * Normally a free-style project uses the workspace location assigned by its parent container, - * but sometimes people have builds that have hard-coded paths (which can be only built in - * certain locations. see http://www.nabble.com/Customize-Workspace-directory-tt17194310.html for - * one such discussion.) - * - *

    - * This is not {@link File} because it may have to hold a path representation on another OS. + * See {@link #setCustomWorkspace(String)}. * * @since 1.216 */ @@ -74,15 +64,30 @@ public class FreeStyleProject extends Project i return customWorkspace; } - @Override - public FilePath getWorkspace() { - Node node = getLastBuiltOn(); - if(node==null) node = getParent(); - if(customWorkspace!=null) - return node.createPath(customWorkspace); - return node.getWorkspaceFor(this); + /** + * User-specified workspace directory, or null if it's up to Hudson. + * + *

    + * Normally a free-style project uses the workspace location assigned by its parent container, + * but sometimes people have builds that have hard-coded paths (which can be only built in + * certain locations. see http://www.nabble.com/Customize-Workspace-directory-tt17194310.html for + * one such discussion.) + * + *

    + * This is not {@link File} because it may have to hold a path representation on another OS. + * + *

    + * If this path is relative, it's resolved against {@link Node#getRootPath()} on the node where this workspace + * is prepared. + * + * @since 1.320 + */ + public void setCustomWorkspace(String customWorkspace) throws IOException { + this.customWorkspace= customWorkspace; + save(); } + @Override protected void submit(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException, Descriptor.FormException { if(req.hasParameter("customWorkspace")) customWorkspace = req.getParameter("customWorkspace.directory"); @@ -96,7 +101,7 @@ public class FreeStyleProject extends Project i return DESCRIPTOR; } - @Extension + @Extension(ordinal=1000) public static final DescriptorImpl DESCRIPTOR = new DescriptorImpl(); public static final class DescriptorImpl extends AbstractProjectDescriptor { diff --git a/core/src/main/java/hudson/model/FullDuplexHttpChannel.java b/core/src/main/java/hudson/model/FullDuplexHttpChannel.java index 2eb8fa4e250e64ee400188245347104532988610..95cc687fd257fa4f3dec539e6bdc1d69dd85fdc6 100644 --- a/core/src/main/java/hudson/model/FullDuplexHttpChannel.java +++ b/core/src/main/java/hudson/model/FullDuplexHttpChannel.java @@ -28,14 +28,11 @@ import hudson.remoting.PingThread; import hudson.remoting.Channel.Mode; import hudson.util.ChunkedOutputStream; import hudson.util.ChunkedInputStream; -import org.apache.commons.io.IOUtils; import org.kohsuke.stapler.StaplerRequest; import org.kohsuke.stapler.StaplerResponse; import javax.servlet.http.HttpServletResponse; import java.io.IOException; -import java.io.PipedInputStream; -import java.io.PipedOutputStream; import java.io.InputStream; import java.io.OutputStream; import java.util.UUID; @@ -49,11 +46,13 @@ import java.util.logging.Logger; abstract class FullDuplexHttpChannel { private Channel channel; - private final PipedOutputStream pipe = new PipedOutputStream(); + private InputStream upload; private final UUID uuid; private final boolean restricted; + private boolean completed; + public FullDuplexHttpChannel(UUID uuid, boolean restricted) throws IOException { this.uuid = uuid; this.restricted = restricted; @@ -65,7 +64,7 @@ abstract class FullDuplexHttpChannel { *

    * If this connection is lost, we'll abort the channel. */ - public void download(StaplerRequest req, StaplerResponse rsp) throws InterruptedException, IOException { + public synchronized void download(StaplerRequest req, StaplerResponse rsp) throws InterruptedException, IOException { rsp.setStatus(HttpServletResponse.SC_OK); // server->client channel. @@ -74,27 +73,41 @@ abstract class FullDuplexHttpChannel { OutputStream out = rsp.getOutputStream(); if (DIY_CHUNKING) out = new ChunkedOutputStream(out); - channel = new Channel("HTTP full-duplex channel " + uuid, - Computer.threadPoolForRemoting, Mode.BINARY, new PipedInputStream(pipe), out, null, restricted); - - // so that we can detect dead clients, periodically send something - PingThread ping = new PingThread(channel) { - @Override - protected void onDead() { - LOGGER.info("Duplex-HTTP session " + uuid + " is terminated"); - // this will cause the channel to abort and subsequently clean up - try { - pipe.close(); - } catch (IOException e) { - // this can never happen - throw new AssertionError(e); + // send something out so that the client will see the HTTP headers + out.write("Starting HTTP duplex channel".getBytes()); + out.flush(); + + // wait until we have the other channel + while(upload==null) + wait(); + + try { + channel = new Channel("HTTP full-duplex channel " + uuid, + Computer.threadPoolForRemoting, Mode.BINARY, upload, out, null, restricted); + + // so that we can detect dead clients, periodically send something + PingThread ping = new PingThread(channel) { + @Override + protected void onDead() { + LOGGER.info("Duplex-HTTP session " + uuid + " is terminated"); + // this will cause the channel to abort and subsequently clean up + try { + upload.close(); + } catch (IOException e) { + // this can never happen + throw new AssertionError(e); + } } - } - }; - ping.start(); - main(channel); - channel.join(); - ping.interrupt(); + }; + ping.start(); + main(channel); + channel.join(); + ping.interrupt(); + } finally { + // publish that we are done + completed=true; + notify(); + } } protected abstract void main(Channel channel) throws IOException, InterruptedException; @@ -102,11 +115,18 @@ abstract class FullDuplexHttpChannel { /** * This is where we receive inputs from the client. */ - public void upload(StaplerRequest req, StaplerResponse rsp) throws InterruptedException, IOException { + public synchronized void upload(StaplerRequest req, StaplerResponse rsp) throws InterruptedException, IOException { rsp.setStatus(HttpServletResponse.SC_OK); InputStream in = req.getInputStream(); if(DIY_CHUNKING) in = new ChunkedInputStream(in); - IOUtils.copy(in,pipe); + + // publish the upload channel + upload = in; + notify(); + + // wait until we are done + while (!completed) + wait(); } public Channel getChannel() { diff --git a/core/src/main/java/hudson/model/HealthReport.java b/core/src/main/java/hudson/model/HealthReport.java index 92db6a02a21a3385f96357653a74cee918e17d4c..fca902371c37803d6965af9490b5a5a7a573ba61 100644 --- a/core/src/main/java/hudson/model/HealthReport.java +++ b/core/src/main/java/hudson/model/HealthReport.java @@ -1,7 +1,7 @@ /* * The MIT License * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Stephen Connolly + * Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Stephen Connolly * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -23,13 +23,14 @@ */ package hudson.model; +import com.thoughtworks.xstream.converters.UnmarshallingContext; +import hudson.diagnosis.OldDataMonitor; +import hudson.util.XStream2; import org.jvnet.localizer.Localizable; -import org.jvnet.localizer.ResourceBundleHolder; import org.kohsuke.stapler.export.Exported; import org.kohsuke.stapler.export.ExportedBean; import java.io.*; -import java.lang.reflect.Field; import java.util.Collections; import java.util.List; import java.util.Locale; @@ -44,11 +45,12 @@ import java.util.Locale; @ExportedBean(defaultVisibility = 2) // this is always exported as a part of Job and never on its own, so start with 2. public class HealthReport implements Serializable, Comparable { + // These are now 0-20, 21-40, 41-60, 61-80, 81+ but filenames unchanged for compatibility private static final String HEALTH_OVER_80 = "health-80plus.gif"; - private static final String HEALTH_60_TO_79 = "health-60to79.gif"; - private static final String HEALTH_40_TO_59 = "health-40to59.gif"; - private static final String HEALTH_20_TO_39 = "health-20to39.gif"; - private static final String HEALTH_0_TO_19 = "health-00to19.gif"; + private static final String HEALTH_61_TO_80 = "health-60to79.gif"; + private static final String HEALTH_41_TO_60 = "health-40to59.gif"; + private static final String HEALTH_21_TO_40 = "health-20to39.gif"; + private static final String HEALTH_0_TO_20 = "health-00to19.gif"; private static final String HEALTH_UNKNOWN = "empty.gif"; /** @@ -69,7 +71,7 @@ public class HealthReport implements Serializable, Comparable { /** * Recover the health icon's tool-tip when deserializing. * - * @deprecated use {@link #localizibleDescription} + * @deprecated since 2008-10-18. Use {@link #localizibleDescription} */ @Deprecated private transient String description; @@ -92,7 +94,8 @@ public class HealthReport implements Serializable, Comparable { * When calculating the url to display for absolute paths, the getIconUrl(String) method * will replace /32x32/ in the path with the appropriate size. * @param description The health icon's tool-tip. - * @deprecated use {@link #HealthReport(int, String, org.jvnet.localizer.Localizable)} + * @deprecated since 2008-10-18. + * Use {@link #HealthReport(int, String, org.jvnet.localizer.Localizable)} */ @Deprecated public HealthReport(int score, String iconUrl, String description) { @@ -116,14 +119,14 @@ public class HealthReport implements Serializable, Comparable { public HealthReport(int score, String iconUrl, Localizable description) { this.score = score; if (iconUrl == null) { - if (score < 20) { - this.iconUrl = HEALTH_0_TO_19; - } else if (score < 40) { - this.iconUrl = HEALTH_20_TO_39; - } else if (score < 60) { - this.iconUrl = HEALTH_40_TO_59; - } else if (score < 80) { - this.iconUrl = HEALTH_60_TO_79; + if (score <= 20) { + this.iconUrl = HEALTH_0_TO_20; + } else if (score <= 40) { + this.iconUrl = HEALTH_21_TO_40; + } else if (score <= 60) { + this.iconUrl = HEALTH_41_TO_60; + } else if (score <= 80) { + this.iconUrl = HEALTH_61_TO_80; } else { this.iconUrl = HEALTH_OVER_80; } @@ -139,7 +142,8 @@ public class HealthReport implements Serializable, Comparable { * * @param score The percentage health score (from 0 to 100 inclusive). * @param description The health icon's tool-tip. - * @deprecated use {@link #HealthReport(int, org.jvnet.localizer.Localizable)} + * @deprecated since 2008-10-18. + * Use {@link #HealthReport(int, org.jvnet.localizer.Localizable)} */ @Deprecated public HealthReport(int score, String description) { @@ -160,7 +164,7 @@ public class HealthReport implements Serializable, Comparable { * Create a new HealthReport. */ public HealthReport() { - this(100, HEALTH_UNKNOWN, ""); + this(100, HEALTH_UNKNOWN, Messages._HealthReport_EmptyString()); } /** @@ -303,15 +307,16 @@ public class HealthReport implements Serializable, Comparable { /** * Fix deserialization of older data. - * - * @return this. */ - private Object readResolve() { - // If we are being read back in from an older version - if (localizibleDescription == null) { - localizibleDescription = new NonLocalizable(description == null ? "" : description); + public static class ConverterImpl extends XStream2.PassthruConverter { + public ConverterImpl(XStream2 xstream) { super(xstream); } + @Override protected void callback(HealthReport hr, UnmarshallingContext context) { + // If we are being read back in from an older version + if (hr.localizibleDescription == null) { + hr.localizibleDescription = new NonLocalizable(hr.description == null ? "" : hr.description); + OldDataMonitor.report(context, "1.256"); + } } - return this; } /** @@ -338,7 +343,7 @@ public class HealthReport implements Serializable, Comparable { */ @Override public String toString(Locale locale) { - return nonLocalizable; //To change body of overridden methods use File | Settings | File Templates. + return nonLocalizable; } /** @@ -346,8 +351,7 @@ public class HealthReport implements Serializable, Comparable { */ @Override public String toString() { - return nonLocalizable; //To change body of overridden methods use File | Settings | File Templates. + return nonLocalizable; } } - } diff --git a/core/src/main/java/hudson/model/Hudson.java b/core/src/main/java/hudson/model/Hudson.java index c9b42af2dff95da229392318d79fcadec62cb57a..ea844812c7a27f79411a2330a039820002f3a20c 100644 --- a/core/src/main/java/hudson/model/Hudson.java +++ b/core/src/main/java/hudson/model/Hudson.java @@ -1,7 +1,9 @@ -/* + /* * The MIT License * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Erik Ramfelt, Koichi Fujikawa, Red Hat, Inc., Seiji Sogabe, Stephen Connolly, Tom Huybrechts + * Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, + * Erik Ramfelt, Koichi Fujikawa, Red Hat, Inc., Seiji Sogabe, + * Stephen Connolly, Tom Huybrechts, Yahoo! Inc., Alan Harder * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -23,46 +25,54 @@ */ package hudson.model; +import antlr.ANTLRException; import com.thoughtworks.xstream.XStream; import hudson.BulkChange; +import hudson.DNSMultiCast; +import hudson.DescriptorExtensionList; +import hudson.Extension; +import hudson.ExtensionList; +import hudson.ExtensionListView; +import hudson.ExtensionPoint; import hudson.FilePath; import hudson.Functions; import hudson.Launcher; import hudson.Launcher.LocalLauncher; +import hudson.LocalPluginManager; +import hudson.Lookup; import hudson.Plugin; import hudson.PluginManager; import hudson.PluginWrapper; import hudson.ProxyConfiguration; import hudson.StructuredForm; import hudson.TcpSlaveAgentListener; +import hudson.UDPBroadcastThread; import hudson.Util; import static hudson.Util.fixEmpty; +import static hudson.Util.fixNull; import hudson.WebAppMain; import hudson.XmlFile; -import hudson.UDPBroadcastThread; -import hudson.ExtensionList; -import hudson.ExtensionPoint; -import hudson.DescriptorExtensionList; -import hudson.ExtensionListView; -import hudson.Extension; -import hudson.cli.CliEntryPoint; import hudson.cli.CLICommand; -import hudson.cli.HelpCommand; -import hudson.logging.LogRecorderManager; +import hudson.cli.CliEntryPoint; +import hudson.cli.CliManagerImpl; +import hudson.cli.declarative.CLIMethod; +import hudson.cli.declarative.CLIResolver; +import hudson.init.InitMilestone; +import hudson.init.InitReactorListener; +import hudson.init.InitStrategy; import hudson.lifecycle.Lifecycle; +import hudson.logging.LogRecorderManager; +import hudson.lifecycle.RestartNotSupportedException; import hudson.model.Descriptor.FormException; +import hudson.model.labels.LabelAtom; import hudson.model.listeners.ItemListener; -import hudson.model.listeners.JobListener; -import hudson.model.listeners.JobListener.JobListenerAdapter; import hudson.model.listeners.SCMListener; +import hudson.model.listeners.SaveableListener; +import hudson.remoting.Channel; import hudson.remoting.LocalChannel; import hudson.remoting.VirtualChannel; -import hudson.remoting.Channel; -import hudson.scm.CVSSCM; import hudson.scm.RepositoryBrowser; import hudson.scm.SCM; -import hudson.scm.SCMDescriptor; -import hudson.scm.SubversionSCM; import hudson.search.CollectionSearchIndex; import hudson.search.SearchIndexBuilder; import hudson.security.ACL; @@ -76,89 +86,113 @@ import hudson.security.Permission; import hudson.security.PermissionGroup; import hudson.security.SecurityMode; import hudson.security.SecurityRealm; -import hudson.slaves.ComputerListener; -import hudson.slaves.NodeProperty; -import hudson.slaves.NodePropertyDescriptor; -import hudson.slaves.RetentionStrategy; -import hudson.slaves.NodeList; +import hudson.security.csrf.CrumbIssuer; import hudson.slaves.Cloud; +import hudson.slaves.ComputerListener; import hudson.slaves.DumbSlave; import hudson.slaves.NodeDescriptor; +import hudson.slaves.NodeList; +import hudson.slaves.NodeProperty; +import hudson.slaves.NodePropertyDescriptor; import hudson.slaves.NodeProvisioner; +import hudson.slaves.OfflineCause; +import hudson.slaves.RetentionStrategy; import hudson.tasks.BuildWrapper; import hudson.tasks.Builder; -import hudson.tasks.DynamicLabeler; -import hudson.tasks.LabelFinder; import hudson.tasks.Mailer; import hudson.tasks.Publisher; import hudson.triggers.Trigger; import hudson.triggers.TriggerDescriptor; +import hudson.util.AdministrativeError; import hudson.util.CaseInsensitiveComparator; import hudson.util.ClockDifference; import hudson.util.CopyOnWriteList; import hudson.util.CopyOnWriteMap; import hudson.util.DaemonThreadFactory; +import hudson.util.DescribableList; +import hudson.util.FormValidation; +import hudson.util.Futures; import hudson.util.HudsonIsLoading; +import hudson.util.HudsonIsRestarting; +import hudson.util.Iterators; +import hudson.util.Memoizer; import hudson.util.MultipartFormDataParser; import hudson.util.RemotingDiagnostics; +import hudson.util.StreamTaskListener; import hudson.util.TextFile; -import hudson.util.XStream2; -import hudson.util.HudsonIsRestarting; -import hudson.util.DescribableList; -import hudson.util.Futures; -import hudson.util.Memoizer; -import hudson.util.Iterators; -import hudson.util.FormValidation; import hudson.util.VersionNumber; +import hudson.util.XStream2; +import hudson.util.Service; +import hudson.util.IOUtils; +import hudson.views.DefaultMyViewsTabBar; +import hudson.views.DefaultViewsTabBar; +import hudson.views.MyViewsTabBar; +import hudson.views.ViewsTabBar; import hudson.widgets.Widget; import net.sf.json.JSONObject; -import org.acegisecurity.*; +import org.acegisecurity.AccessDeniedException; +import org.acegisecurity.AcegiSecurityException; +import org.acegisecurity.Authentication; +import org.acegisecurity.GrantedAuthority; +import org.acegisecurity.GrantedAuthorityImpl; import org.acegisecurity.context.SecurityContextHolder; import org.acegisecurity.providers.anonymous.AnonymousAuthenticationToken; import org.acegisecurity.ui.AbstractProcessingFilter; -import static org.acegisecurity.ui.rememberme.TokenBasedRememberMeServices.ACEGI_SECURITY_HASHED_REMEMBER_ME_COOKIE_KEY; -import org.apache.commons.logging.LogFactory; -import org.apache.commons.jelly.Script; import org.apache.commons.jelly.JellyException; -import org.apache.commons.io.FileUtils; +import org.apache.commons.jelly.Script; +import org.apache.commons.logging.LogFactory; +import org.jvnet.hudson.reactor.Executable; +import org.jvnet.hudson.reactor.ReactorException; +import org.jvnet.hudson.reactor.Task; +import org.jvnet.hudson.reactor.TaskBuilder; +import org.jvnet.hudson.reactor.TaskGraphBuilder; +import org.jvnet.hudson.reactor.Milestone; +import org.jvnet.hudson.reactor.Reactor; +import org.jvnet.hudson.reactor.ReactorListener; +import org.jvnet.hudson.reactor.TaskGraphBuilder.Handle; +import org.kohsuke.args4j.Argument; +import org.kohsuke.args4j.Option; +import org.kohsuke.stapler.Ancestor; +import org.kohsuke.stapler.HttpRedirect; +import org.kohsuke.stapler.HttpResponse; +import org.kohsuke.stapler.HttpResponses; import org.kohsuke.stapler.MetaClass; +import org.kohsuke.stapler.QueryParameter; import org.kohsuke.stapler.Stapler; +import org.kohsuke.stapler.StaplerFallback; import org.kohsuke.stapler.StaplerProxy; import org.kohsuke.stapler.StaplerRequest; import org.kohsuke.stapler.StaplerResponse; -import org.kohsuke.stapler.StaplerFallback; import org.kohsuke.stapler.WebApp; -import org.kohsuke.stapler.QueryParameter; -import org.kohsuke.stapler.jelly.JellyClassLoaderTearOff; -import org.kohsuke.stapler.jelly.JellyRequestDispatcher; -import org.kohsuke.stapler.framework.adjunct.AdjunctManager; import org.kohsuke.stapler.export.Exported; import org.kohsuke.stapler.export.ExportedBean; +import org.kohsuke.stapler.framework.adjunct.AdjunctManager; +import org.kohsuke.stapler.jelly.JellyClassLoaderTearOff; +import org.kohsuke.stapler.jelly.JellyRequestDispatcher; import org.xml.sax.InputSource; +import javax.crypto.SecretKey; +import javax.servlet.RequestDispatcher; import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.http.Cookie; -import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; + +import static hudson.init.InitMilestone.*; import static javax.servlet.http.HttpServletResponse.SC_BAD_REQUEST; import static javax.servlet.http.HttpServletResponse.SC_NOT_FOUND; -import javax.servlet.http.HttpSession; import java.io.File; import java.io.FileFilter; -import java.io.FileInputStream; -import java.io.FileOutputStream; import java.io.IOException; -import java.io.PrintWriter; import java.io.InputStream; -import java.io.Serializable; -import java.io.PrintStream; -import java.io.OutputStream; +import java.io.PrintWriter; +import java.net.BindException; import java.net.URL; +import java.nio.charset.Charset; import java.security.SecureRandom; +import java.text.Collator; import java.text.NumberFormat; import java.text.ParseException; -import java.text.Collator; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; @@ -168,35 +202,32 @@ import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; import java.util.List; +import java.util.Locale; import java.util.Map; import java.util.Map.Entry; +import java.util.Properties; import java.util.Set; import java.util.Stack; import java.util.StringTokenizer; import java.util.Timer; import java.util.TreeSet; -import java.util.Properties; import java.util.UUID; -import java.util.Locale; -import java.util.concurrent.Callable; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.CopyOnWriteArrayList; +import java.util.concurrent.CopyOnWriteArraySet; import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; import java.util.concurrent.Future; +import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; -import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.TimeoutException; -import java.util.concurrent.CopyOnWriteArraySet; import java.util.logging.Level; +import static java.util.logging.Level.SEVERE; import java.util.logging.LogRecord; import java.util.logging.Logger; import java.util.regex.Pattern; -import java.nio.charset.Charset; -import javax.servlet.RequestDispatcher; - -import groovy.lang.GroovyShell; /** * Root object of the system. @@ -207,6 +238,11 @@ import groovy.lang.GroovyShell; public final class Hudson extends Node implements ItemGroup, StaplerProxy, StaplerFallback, ViewGroup, AccessControlled, DescriptorByNameOwner { private transient final Queue queue; + /** + * Stores various objects scoped to {@link Hudson}. + */ + public transient final Lookup lookup = new Lookup(); + /** * {@link Computer}s in this Hudson system. Read-only. */ @@ -283,6 +319,11 @@ public final class Hudson extends Node implements ItemGroup, Stapl */ public transient final File root; + /** + * Where are we in the initialization? + */ + private transient volatile InitMilestone initLevel = InitMilestone.STARTED; + /** * All {@link Item}s keyed by their {@link Item#getName() name}s. */ @@ -300,6 +341,16 @@ public final class Hudson extends Node implements ItemGroup, Stapl private transient volatile DependencyGraph dependencyGraph; + /** + * Currently active Views tab bar. + */ + private volatile ViewsTabBar viewsTabBar = new DefaultViewsTabBar(); + + /** + * Currently active My Views tab bar. + */ + private volatile MyViewsTabBar myViewsTabBar = new DefaultMyViewsTabBar(); + /** * All {@link ExtensionList} keyed by their {@link ExtensionList#extensionType}. */ @@ -314,7 +365,7 @@ public final class Hudson extends Node implements ItemGroup, Stapl */ private transient final Memoizer descriptorLists = new Memoizer() { public DescriptorExtensionList compute(Class key) { - return DescriptorExtensionList.create(Hudson.this,key); + return DescriptorExtensionList.createDescriptorList(Hudson.this,key); } }; @@ -331,6 +382,14 @@ public final class Hudson extends Node implements ItemGroup, Stapl public CloudList() {// needed for XStream deserialization } + public Cloud getByName(String name) { + for (Cloud c : this) + if (c.name.equals(name)) + return c; + return null; + } + + @Override protected void onModified() throws IOException { super.onModified(); Hudson.getInstance().trimLabels(); @@ -356,6 +415,11 @@ public final class Hudson extends Node implements ItemGroup, Stapl * This is {@link Integer} so that we can initialize it to '5' for upgrading users. */ /*package*/ Integer quietPeriod; + + /** + * Global default for {@link AbstractProject#getScmCheckoutRetryCount()} + */ + /*package*/ int scmCheckoutRetryCount; /** * {@link View}s. @@ -381,6 +445,8 @@ public final class Hudson extends Node implements ItemGroup, Stapl private transient UDPBroadcastThread udpBroadcastThread; + private transient DNSMultiCast dnsMultiCast; + /** * List of registered {@link ItemListener}s. * @deprecated as of 1.286 @@ -409,17 +475,21 @@ public final class Hudson extends Node implements ItemGroup, Stapl */ private String label=""; + /** + * {@link hudson.security.csrf.CrumbIssuer} + */ + private volatile CrumbIssuer crumbIssuer; + /** * All labels known to Hudson. This allows us to reuse the same label instances * as much as possible, even though that's not a strict requirement. */ private transient final ConcurrentHashMap labels = new ConcurrentHashMap(); - private transient volatile Set

    + * At this point plugins are not loaded yet, so we fall back to the META-INF/services look up to discover implementations. + * As such there's no way for plugins to participate into this process. + */ + private ReactorListener buildReactorListener() throws IOException { + List r = (List) Service.loadInstances(Thread.currentThread().getContextClassLoader(), InitReactorListener.class); + r.add(new ReactorListener() { + final Level level = Level.parse(System.getProperty(Hudson.class.getName()+".initLogLevel","FINE")); + public void onTaskStarted(Task t) { + LOGGER.log(level,"Started "+t.getDisplayName()); + } + + public void onTaskCompleted(Task t) { + LOGGER.log(level,"Completed "+t.getDisplayName()); + } + + public void onTaskFailed(Task t, Throwable err, boolean fatal) { + LOGGER.log(SEVERE, "Failed "+t.getDisplayName(),err); + } + + public void onAttained(Milestone milestone) { + Level lv = level; + String s = "Attained "+milestone.toString(); + if (milestone instanceof InitMilestone) { + lv = Level.INFO; // noteworthy milestones --- at least while we debug problems further + initLevel = (InitMilestone)milestone; + s = initLevel.toString(); + } + LOGGER.log(lv,s); + } + }); + return new ReactorListener.Aggregator(r); + } + public TcpSlaveAgentListener getTcpSlaveAgentListener() { return tcpSlaveAgentListener; } @@ -624,7 +772,7 @@ public final class Hudson extends Node implements ItemGroup, Stapl * * @deprecated */ - @Deprecated + @Deprecated @Override public String getNodeName() { return ""; } @@ -634,7 +782,7 @@ public final class Hudson extends Node implements ItemGroup, Stapl } public String getNodeDescription() { - return "the master Hudson node"; + return Messages.Hudson_NodeDescription(); } @Exported @@ -666,7 +814,7 @@ public final class Hudson extends Node implements ItemGroup, Stapl /** * Does this {@link View} has any associated user information recorded? */ - public final boolean hasPeople() { + public boolean hasPeople() { return View.People.isApplicable(items.values()); } @@ -683,6 +831,14 @@ public final class Hudson extends Node implements ItemGroup, Stapl return secretKey; } + /** + * Gets {@linkplain #getSecretKey() the secret key} as a key for AES-128. + * @since 1.308 + */ + public SecretKey getSecretKeyAsAES128() { + return Util.toAes128Key(secretKey); + } + /** * Gets the SCM descriptor by name. Primarily used for making them web-visible. */ @@ -748,7 +904,7 @@ public final class Hudson extends Node implements ItemGroup, Stapl * this just doesn't scale. * * @param className - * Either fully qualified class name (recommended) or the short name. + * Either fully qualified class name (recommended) or the short name of a {@link Describable} subtype. */ public Descriptor getDescriptor(String className) { // legacy descriptors that are reigstered manually doesn't show up in getExtensionList, so check them explicitly. @@ -782,6 +938,19 @@ public final class Hudson extends Node implements ItemGroup, Stapl return null; } + /** + * Works just like {@link #getDescriptor(Class)} but don't take no for an answer. + * + * @throws AssertionError + * If the descriptor is missing. + * @since 1.326 + */ + public Descriptor getDescriptorOrDie(Class type) { + Descriptor d = getDescriptor(type); + if (d==null) throw new AssertionError(type+" is missing its descriptor"); + return d; + } + /** * Gets the {@link Descriptor} instance in the current Hudson by its type. */ @@ -812,26 +981,6 @@ public final class Hudson extends Node implements ItemGroup, Stapl return null; } - /** - * Adds a new {@link JobListener}. - * - * @deprecated - * Use {@code getJobListeners().add(l)} instead. - */ - public void addListener(JobListener l) { - itemListeners.add(new JobListenerAdapter(l)); - } - - /** - * Deletes an existing {@link JobListener}. - * - * @deprecated - * Use {@code getJobListeners().remove(l)} instead. - */ - public boolean removeListener(JobListener l ) { - return itemListeners.remove(new JobListenerAdapter(l)); - } - /** * Gets all the installed {@link ItemListener}s. * @@ -959,6 +1108,8 @@ public final class Hudson extends Node implements ItemGroup, Stapl } } getQueue().scheduleMaintenance(); + for (ComputerListener cl : ComputerListener.all()) + cl.onConfigurationChange(); } private void updateComputer(Node n, Map byNameMap, Set used) { @@ -969,13 +1120,15 @@ public final class Hudson extends Node implements ItemGroup, Stapl } else { if(n.getNumExecutors()>0) { computers.put(n,c=n.createComputer()); - RetentionStrategy retentionStrategy = c.getRetentionStrategy(); - if (retentionStrategy != null) { - // if there is a retention strategy, it is responsible for deciding to start the computer - retentionStrategy.start(c); - } else { - // we should never get here, but just in case, we'll fall back to the legacy behaviour - c.connect(true); + if (!n.holdOffLaunchUntilSave && AUTOMATIC_SLAVE_LAUNCH) { + RetentionStrategy retentionStrategy = c.getRetentionStrategy(); + if (retentionStrategy != null) { + // if there is a retention strategy, it is responsible for deciding to start the computer + retentionStrategy.start(c); + } else { + // we should never get here, but just in case, we'll fall back to the legacy behaviour + c.connect(true); + } } } } @@ -1009,8 +1162,8 @@ public final class Hudson extends Node implements ItemGroup, Stapl * implementation for it affects the GUI. * *

    - * To register an {@link Action}, write code like - * {@code Hudson.getInstance().getActions().add(...)} + * To register an {@link Action}, implement {@link RootAction} extension point, or write code like + * {@code Hudson.getInstance().getActions().add(...)}. * * @return * Live list where the changes can be made. Can be empty but never null. @@ -1072,13 +1225,8 @@ public final class Hudson extends Node implements ItemGroup, Stapl ItemGroup parent = q.pop(); for (Item i : parent.getItems()) { if(type.isInstance(i)) { - if (i instanceof AccessControlled) { - if (((AccessControlled)i).hasPermission(Item.READ)) - r.add(type.cast(i)); - } - else { - r.add(type.cast(i)); - } + if (i.hasPermission(Item.READ)) + r.add(type.cast(i)); } if(i instanceof ItemGroup) q.push((ItemGroup)i); @@ -1124,6 +1272,12 @@ public final class Hudson extends Node implements ItemGroup, Stapl if(v.getViewName().equals(name)) return v; } + if (name != null && !name.equals(primaryView)) { + // Fallback to subview of primary view if it is a ViewGroup + View pv = getPrimaryView(); + if (pv instanceof ViewGroup) + return ((ViewGroup)pv).getView(name); + } return null; } @@ -1138,16 +1292,29 @@ public final class Hudson extends Node implements ItemGroup, Stapl } public void addView(View v) throws IOException { + v.owner = this; views.add(v); save(); } + public boolean canDelete(View view) { + return !view.isDefault(); // Cannot delete primary view + } + public synchronized void deleteView(View view) throws IOException { - if(views.size()<=1) - throw new IllegalStateException(); + if (views.size() <= 1) + throw new IllegalStateException("Cannot delete last view"); views.remove(view); save(); } + + public ViewsTabBar getViewsTabBar() { + return viewsTabBar; + } + + public MyViewsTabBar getMyViewsTabBar() { + return myViewsTabBar; + } /** * Returns true if the current running Hudson is upgraded from a version earlier than the specified version. @@ -1192,12 +1359,13 @@ public final class Hudson extends Node implements ItemGroup, Stapl return computers.get(n); } - public Computer getComputer(String name) { + @CLIResolver + public Computer getComputer(@Argument(required=true,metaVar="NAME",usage="Node name") String name) { if(name.equals("(master)")) name = ""; for (Computer c : computers.values()) { - if(c.getNode().getNodeName().equals(name)) + if(c.getName().equals(name)) return c; } return null; @@ -1211,20 +1379,45 @@ public final class Hudson extends Node implements ItemGroup, Stapl return new ComputerSet(); } + /** * Gets the label that exists on this system by the name. * - * @return null if no such label exists. + * @return null if name is null. + * @see Label#parseExpression(String) (String) */ - public Label getLabel(String name) { - if(name==null) return null; + public Label getLabel(String expr) { + if(expr==null) return null; while(true) { - Label l = labels.get(name); + Label l = labels.get(expr); if(l!=null) return l; // non-existent - labels.putIfAbsent(name,new Label(name)); + try { + labels.putIfAbsent(expr,Label.parseExpression(expr)); + } catch (ANTLRException e) { + // laxly accept it as a single label atom for backward compatibility + return getLabelAtom(expr); + } + } + } + + /** + * Returns the label atom of the given name. + */ + public LabelAtom getLabelAtom(String name) { + if (name==null) return null; + + while(true) { + Label l = labels.get(name); + if(l!=null) + return (LabelAtom)l; + + // non-existent + LabelAtom la = new LabelAtom(name); + if (labels.putIfAbsent(name, la)==null) + la.load(); } } @@ -1240,10 +1433,20 @@ public final class Hudson extends Node implements ItemGroup, Stapl return r; } + public Set getLabelAtoms() { + Set r = new TreeSet(); + for (Label l : labels.values()) { + if(!l.isEmpty() && l instanceof LabelAtom) + r.add((LabelAtom)l); + } + return r; + } + public Queue getQueue() { return queue; } + @Override public String getDisplayName() { return Messages.Hudson_DisplayName(); } @@ -1288,7 +1491,7 @@ public final class Hudson extends Node implements ItemGroup, Stapl * Gets the slave node of the give name, hooked under this Hudson. */ public Node getNode(String name) { - for (Node s : getSlaves()) { + for (Node s : getNodes()) { if(s.getNodeName().equals(name)) return s; } @@ -1299,10 +1502,7 @@ public final class Hudson extends Node implements ItemGroup, Stapl * Gets a {@link Cloud} by {@link Cloud#name its name}, or null. */ public Cloud getCloud(String name) { - for (Cloud nf : clouds) - if(nf.name.equals(name)) - return nf; - return null; + return clouds.getByName(name); } /** @@ -1335,8 +1535,10 @@ public final class Hudson extends Node implements ItemGroup, Stapl * Adds one more {@link Node} to Hudson. */ public synchronized void addNode(Node n) throws IOException { + if(n==null) throw new IllegalArgumentException(); ArrayList nl = new ArrayList(this.slaves); - nl.add(n); + if(!nl.contains(n)) // defensive check + nl.add(n); setNodes(nl); } @@ -1344,7 +1546,9 @@ public final class Hudson extends Node implements ItemGroup, Stapl * Removes a {@link Node} from Hudson. */ public synchronized void removeNode(Node n) throws IOException { - n.toComputer().disconnect(); + Computer c = n.toComputer(); + if (c!=null) + c.disconnect(OfflineCause.create(Messages._Hudson_NodeBeingRemoved())); ArrayList nl = new ArrayList(this.slaves); nl.remove(n); @@ -1405,8 +1609,17 @@ public final class Hudson extends Node implements ItemGroup, Stapl throw new UnsupportedOperationException(); } + @Override + public boolean isInstantiable() { + return false; + } + + public FormValidation doCheckNumExecutors(@QueryParameter String value) { + return FormValidation.validateNonNegativeInteger(value); + } + // to route /descriptor/FQCN/xxx to getDescriptor(FQCN).xxx - public Object getDynamic(String token, StaplerRequest req, StaplerResponse rsp) { + public Object getDynamic(String token) { return Hudson.getInstance().getDescriptor(token); } } @@ -1417,6 +1630,15 @@ public final class Hudson extends Node implements ItemGroup, Stapl public int getQuietPeriod() { return quietPeriod!=null ? quietPeriod : 5; } + + /** + * Gets the global SCM check out retry count. + */ + public int getScmCheckoutRetryCount() { + return scmCheckoutRetryCount; + } + + /** * @deprecated @@ -1427,6 +1649,7 @@ public final class Hudson extends Node implements ItemGroup, Stapl return ""; } + @Override public String getSearchUrl() { return ""; } @@ -1476,14 +1699,10 @@ public final class Hudson extends Node implements ItemGroup, Stapl * such as "http://localhost/hudson/". * *

    - * Also note that when serving user requests from HTTP, you should always use - * {@link HttpServletRequest} to determine the full URL, instead of using this - * (this is because one host may have multiple names, and {@link HttpServletRequest} - * accurately represents what the current user used.) - * - *

    - * This information is rather only meant to be useful for sending out messages - * via non-HTTP channels, like SMTP or IRC, with a link back to Hudson website. + * This method first tries to use the manually configured value, then + * fall back to {@link StaplerRequest#getRootPath()}. + * It is done in this order so that it can work correctly even in the face + * of a reverse proxy. * * @return * This method returns null if this parameter is not configured by the user. @@ -1519,7 +1738,7 @@ public final class Hudson extends Node implements ItemGroup, Stapl public String getRootUrlFromRequest() { StaplerRequest req = Stapler.getCurrentRequest(); StringBuilder buf = new StringBuilder(); - buf.append("http://"); + buf.append(req.getScheme()+"://"); buf.append(req.getServerName()); if(req.getServerPort()!=80) buf.append(':').append(req.getServerPort()); @@ -1532,13 +1751,14 @@ public final class Hudson extends Node implements ItemGroup, Stapl } public FilePath getWorkspaceFor(TopLevelItem item) { - return new FilePath(new File(item.getRootDir(),"workspace")); + return new FilePath(new File(item.getRootDir(), WORKSPACE_DIRNAME)); } public FilePath getRootPath() { return new FilePath(getRootDir()); } + @Override public FilePath createPath(String absolutePath) { return new FilePath((VirtualChannel)null,absolutePath); } @@ -1560,10 +1780,20 @@ public final class Hudson extends Node implements ItemGroup, Stapl * A convenience method to check if there's some security * restrictions in place. */ + @Exported public boolean isUseSecurity() { return securityRealm!=SecurityRealm.NO_AUTHENTICATION || authorizationStrategy!=AuthorizationStrategy.UNSECURED; } + /** + * If true, all the POST requests to Hudson would have to have crumb in it to protect + * Hudson from CSRF vulnerabilities. + */ + @Exported + public boolean isUseCrumbs() { + return crumbIssuer!=null; + } + /** * Returns the constant that captures the three basic security modes * in Hudson. @@ -1633,6 +1863,15 @@ public final class Hudson extends Node implements ItemGroup, Stapl return extensionLists.get(extensionType); } + /** + * Used to bind {@link ExtensionList}s to URLs. + * + * @since 1.349 + */ + public ExtensionList getExtensionList(String extensionType) throws ClassNotFoundException { + return getExtensionList(pluginManager.uberClassLoader.loadClass(extensionType)); + } + /** * Returns {@link ExtensionList} that retains the discovered {@link Descriptor} instances for the given * kind of {@link Describable}. @@ -1650,6 +1889,7 @@ public final class Hudson extends Node implements ItemGroup, Stapl * * @see AuthorizationStrategy#getRootACL() */ + @Override public ACL getACL() { return authorizationStrategy.getRootACL(); } @@ -1680,6 +1920,17 @@ public final class Hudson extends Node implements ItemGroup, Stapl return terminating; } + /** + * Gets the initialization milestone that we've already reached. + * + * @return + * {@link InitMilestone#STARTED} even if the initialization hasn't been started, so that this method + * never returns null. + */ + public InitMilestone getInitLevel() { + return initLevel; + } + public void setNumExecutors(int n) throws IOException { this.numExecutors = n; save(); @@ -1699,9 +1950,12 @@ public final class Hudson extends Node implements ItemGroup, Stapl * Used only for mapping jobs to URL in a case-insensitive fashion. */ public TopLevelItem getJobCaseInsensitive(String name) { + String match = Functions.toEmailSafeString(name); for (Entry e : items.entrySet()) { - if(Functions.toEmailSafeString(e.getKey()).equalsIgnoreCase(Functions.toEmailSafeString(name))) - return e.getValue(); + if(Functions.toEmailSafeString(e.getKey()).equalsIgnoreCase(match)) { + TopLevelItem item = e.getValue(); + return item.hasPermission(Item.READ) ? item : null; + } } return null; } @@ -1713,11 +1967,8 @@ public final class Hudson extends Node implements ItemGroup, Stapl */ public TopLevelItem getItem(String name) { TopLevelItem item = items.get(name); - if (item instanceof AccessControlled) { - if (!((AccessControlled) item).hasPermission(Item.READ)) { - return null; - } - } + if (item==null || !item.hasPermission(Item.READ)) + return null; return item; } @@ -1742,6 +1993,8 @@ public final class Hudson extends Node implements ItemGroup, Stapl StringTokenizer tokens = new StringTokenizer(fullName,"/"); ItemGroup parent = this; + if(!tokens.hasMoreTokens()) return null; // for example, empty full name. + while(true) { Item item = parent.getItem(tokens.nextToken()); if(!tokens.hasMoreTokens()) { @@ -1779,8 +2032,21 @@ public final class Hudson extends Node implements ItemGroup, Stapl * if the project of the given name already exists. */ public synchronized TopLevelItem createProject( TopLevelItemDescriptor type, String name ) throws IOException { + return createProject(type, name, true); + } + + /** + * Creates a new job. + * @param type Descriptor for job type + * @param name Name for job + * @param notify Whether to fire onCreated method for all ItemListeners + * @throws IllegalArgumentException + * if a project of the give name already exists. + */ + public synchronized TopLevelItem createProject( TopLevelItemDescriptor type, String name, boolean notify ) + throws IOException { if(items.containsKey(name)) - throw new IllegalArgumentException(); + throw new IllegalArgumentException("Project of the name "+name+" already exists"); TopLevelItem item; try { @@ -1788,9 +2054,13 @@ public final class Hudson extends Node implements ItemGroup, Stapl } catch (Exception e) { throw new IllegalArgumentException(e); } - + item.onCreatedFromScratch(); item.save(); items.put(name,item); + + if (notify) + ItemListener.fireOnCreated(item); + return item; } @@ -1824,7 +2094,7 @@ public final class Hudson extends Node implements ItemGroup, Stapl * Called by {@link Job#renameTo(String)} to update relevant data structure. * assumed to be synchronized on Hudson by the caller. */ - /*package*/ void onRenamed(TopLevelItem job, String oldName, String newName) throws IOException { + public void onRenamed(TopLevelItem job, String oldName, String newName) throws IOException { items.remove(oldName); items.put(newName,job); @@ -1868,71 +2138,19 @@ public final class Hudson extends Node implements ItemGroup, Stapl } public String getLabelString() { - return Util.fixNull(label).trim(); - } - - public Set

    - * See https://bugzilla.mozilla.org/show_bug.cgi?id=89419 - */ - public void doNocacheImages( StaplerRequest req, StaplerResponse rsp ) throws IOException { - String path = req.getRestOfPath(); - - if(path.length()==0) - path = "/"; - - if(path.indexOf("..")!=-1 || path.length()<1) { - // don't serve anything other than files in the artifacts dir - rsp.sendError(SC_BAD_REQUEST); - return; - } - - File f = new File(req.getServletContext().getRealPath("/images"),path.substring(1)); - if(!f.exists()) { - rsp.sendError(SC_NOT_FOUND); - return; - } - - if(f.isDirectory()) { - // listing not allowed - rsp.sendError(HttpServletResponse.SC_FORBIDDEN); - return; - } - - FileInputStream in = new FileInputStream(f); - // serve the file - String contentType = req.getServletContext().getMimeType(f.getPath()); - rsp.setContentType(contentType); - rsp.setContentLength((int)f.length()); - Util.copyStream(in,rsp.getOutputStream()); - in.close(); - } - /** * For debugging. Expose URL to perform GC. */ public void doGc(StaplerResponse rsp) throws IOException { + checkPermission(Hudson.ADMINISTER); System.gc(); rsp.setStatus(HttpServletResponse.SC_OK); rsp.setContentType("text/plain"); @@ -2652,52 +2875,16 @@ public final class Hudson extends Node implements ItemGroup, Stapl } /** - * {@link CliEntryPoint} implementation exposed to the remote CLI. + * Simulates OutOfMemoryError. + * Useful to make sure OutOfMemoryHeapDump setting. */ - private final class CliManager implements CliEntryPoint, Serializable { - /** - * CLI should be executed under this credential. - */ - private final Authentication auth; - - private CliManager(Authentication auth) { - this.auth = auth; - } - - public int main(List args, Locale locale, InputStream stdin, OutputStream stdout, OutputStream stderr) { - // remoting sets the context classloader to the RemoteClassLoader, - // which slows down the classloading. we don't load anything from CLI, - // so couner that effect. - Thread.currentThread().setContextClassLoader(getClass().getClassLoader()); - - PrintStream out = new PrintStream(stdout); - PrintStream err = new PrintStream(stderr); - - String subCmd = args.get(0); - CLICommand cmd = CLICommand.clone(subCmd); - if(cmd!=null) { - Authentication old = SecurityContextHolder.getContext().getAuthentication(); - SecurityContextHolder.getContext().setAuthentication(auth); - try { - // execute the command, do so with the originator of the request as the principal - return cmd.main(args.subList(1,args.size()),stdin, out, err); - } finally { - SecurityContextHolder.getContext().setAuthentication(old); - } - } - - err.println("No such command: "+subCmd); - new HelpCommand().main(Collections.emptyList(), stdin, out, err); - return -1; - } - - public int protocolVersion() { - return VERSION; - } + public void doSimulateOutOfMemory() throws IOException { + checkPermission(ADMINISTER); - private Object writeReplace() { - return Channel.current().export(CliEntryPoint.class,this); - } + System.out.println("Creating artificial OutOfMemoryError situation"); + List args = new ArrayList(); + while (true) + args.add(new byte[1024*1024]); } private transient final Map duplexChannels = new HashMap(); @@ -2706,22 +2893,26 @@ public final class Hudson extends Node implements ItemGroup, Stapl * Handles HTTP requests for duplex channels for CLI. */ public void doCli(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException, InterruptedException { - checkPermission(READ); - if(!"POST".equals(Stapler.getCurrentRequest().getMethod())) { + if (!"POST".equals(req.getMethod())) { // for GET request, serve _cli.jelly, assuming this is a browser + checkPermission(READ); req.getView(this,"_cli.jelly").forward(req,rsp); return; } + // do not require any permission to establish a CLI connection + // the actual authentication for the connecting Channel is done by CLICommand + UUID uuid = UUID.fromString(req.getHeader("Session")); rsp.setHeader("Hudson-Duplex",""); // set the header so that the client would know - final Authentication auth = getAuthentication(); FullDuplexHttpChannel server; if(req.getHeader("Side").equals("download")) { duplexChannels.put(uuid,server=new FullDuplexHttpChannel(uuid, !hasPermission(ADMINISTER)) { protected void main(Channel channel) throws IOException, InterruptedException { - channel.setProperty(CliEntryPoint.class.getName(),new CliManager(auth)); + // capture the identity given by the transport, since this can be useful for SecurityRealm.createCliAuthenticator() + channel.setProperty(CLICommand.TRANSPORT_AUTHENTICATION,getAuthentication()); + channel.setProperty(CliEntryPoint.class.getName(),new CliManagerImpl()); } }); try { @@ -2746,25 +2937,61 @@ public final class Hudson extends Node implements ItemGroup, Stapl * * This first replaces "app" to {@link HudsonIsRestarting} */ - public void doRestart(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException { + @CLIMethod(name="restart") + public void doRestart(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException, RestartNotSupportedException { checkPermission(ADMINISTER); - if(Stapler.getCurrentRequest().getMethod().equals("GET")) { + if (req != null && req.getMethod().equals("GET")) { req.getView(this,"_restart.jelly").forward(req,rsp); return; } + restart(); + + if (rsp != null) // null for CLI + rsp.sendRedirect2("."); + } + + /** + * Queues up a restart of Hudson for when there are no builds running, if we can. + * + * This first replaces "app" to {@link HudsonIsRestarting} + * + * @since 1.332 + */ + @CLIMethod(name="safe-restart") + public void doSafeRestart(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException, RestartNotSupportedException { + checkPermission(ADMINISTER); + if (req != null && req.getMethod().equals("GET")) { + req.getView(this,"_safeRestart.jelly").forward(req,rsp); + return; + } + + safeRestart(); + + if (rsp != null) // null for CLI + rsp.sendRedirect2("."); + } + + /** + * Performs a restart. + */ + public void restart() throws RestartNotSupportedException { final Lifecycle lifecycle = Lifecycle.get(); - if(!lifecycle.canRestart()) - sendError("Restart is not supported in this running mode.",req,rsp); + lifecycle.verifyRestartable(); // verify that Hudson is restartable servletContext.setAttribute("app",new HudsonIsRestarting()); - rsp.sendRedirect2("."); new Thread("restart thread") { + final String exitUser = getAuthentication().getName(); @Override public void run() { try { + SecurityContextHolder.getContext().setAuthentication(ACL.SYSTEM); + // give some time for the browser to load the "reloading" page Thread.sleep(5000); + LOGGER.severe(String.format("Restarting VM as requested by %s",exitUser)); + for (RestartListener listener : RestartListener.all()) + listener.onRestart(); lifecycle.restart(); } catch (InterruptedException e) { LOGGER.log(Level.WARNING, "Failed to restart Hudson",e); @@ -2775,6 +3002,48 @@ public final class Hudson extends Node implements ItemGroup, Stapl }.start(); } + /** + * Queues up a restart to be performed once there are no builds currently running. + * @since 1.332 + */ + public void safeRestart() throws RestartNotSupportedException { + final Lifecycle lifecycle = Lifecycle.get(); + lifecycle.verifyRestartable(); // verify that Hudson is restartable + // Quiet down so that we won't launch new builds. + isQuietingDown = true; + + new Thread("safe-restart thread") { + final String exitUser = getAuthentication().getName(); + @Override + public void run() { + try { + SecurityContextHolder.getContext().setAuthentication(ACL.SYSTEM); + + // Wait 'til we have no active executors. + doQuietDown(true, 0); + + // Make sure isQuietingDown is still true. + if (isQuietingDown) { + servletContext.setAttribute("app",new HudsonIsRestarting()); + // give some time for the browser to load the "reloading" page + LOGGER.info("Restart in 10 seconds"); + Thread.sleep(10000); + LOGGER.severe(String.format("Restarting VM as requested by %s",exitUser)); + for (RestartListener listener : RestartListener.all()) + listener.onRestart(); + lifecycle.restart(); + } else { + LOGGER.info("Safe-restart mode cancelled"); + } + } catch (InterruptedException e) { + LOGGER.log(Level.WARNING, "Failed to restart Hudson",e); + } catch (IOException e) { + LOGGER.log(Level.WARNING, "Failed to restart Hudson",e); + } + } + }.start(); + } + /** * Shutdown the system. * @since 1.161 @@ -2782,7 +3051,7 @@ public final class Hudson extends Node implements ItemGroup, Stapl public void doExit( StaplerRequest req, StaplerResponse rsp ) throws IOException { checkPermission(ADMINISTER); LOGGER.severe(String.format("Shutting down VM as requested by %s from %s", - getAuthentication(), req.getRemoteAddr())); + getAuthentication().getName(), req.getRemoteAddr())); rsp.setStatus(HttpServletResponse.SC_OK); rsp.setContentType("text/plain"); PrintWriter w = rsp.getWriter(); @@ -2792,6 +3061,45 @@ public final class Hudson extends Node implements ItemGroup, Stapl System.exit(0); } + + /** + * Shutdown the system safely. + * @since 1.332 + */ + public void doSafeExit( StaplerRequest req, StaplerResponse rsp ) throws IOException { + checkPermission(ADMINISTER); + rsp.setStatus(HttpServletResponse.SC_OK); + rsp.setContentType("text/plain"); + PrintWriter w = rsp.getWriter(); + w.println("Shutting down as soon as all jobs are complete"); + w.close(); + isQuietingDown = true; + final String exitUser = getAuthentication().getName(); + final String exitAddr = req.getRemoteAddr().toString(); + new Thread("safe-exit thread") { + @Override + public void run() { + try { + SecurityContextHolder.getContext().setAuthentication(ACL.SYSTEM); + LOGGER.severe(String.format("Shutting down VM as requested by %s from %s", + exitUser, exitAddr)); + // Wait 'til we have no active executors. + while (isQuietingDown + && (overallLoad.computeTotalExecutors() > overallLoad.computeIdleExecutors())) { + Thread.sleep(5000); + } + // Make sure isQuietingDown is still true. + if (isQuietingDown) { + cleanUp(); + System.exit(0); + } + } catch (InterruptedException e) { + LOGGER.log(Level.WARNING, "Failed to shutdown Hudson",e); + } + } + }.start(); + } + /** * Gets the {@link Authentication} object that represents the user * associated with the current request. @@ -2803,7 +3111,7 @@ public final class Hudson extends Node implements ItemGroup, Stapl // run the request through filters when this is the login request. // see http://www.nabble.com/Matrix-authorization-problem-tp14602081p14886312.html if(a==null) - a = new AnonymousAuthenticationToken("anonymous","anonymous",new GrantedAuthority[]{new GrantedAuthorityImpl("anonymous")}); + a = ANONYMOUS; return a; } @@ -2910,21 +3218,22 @@ public final class Hudson extends Node implements ItemGroup, Stapl } /** - * Checks if the top-level item with the given name exists. + * Makes sure that the given name is good as a job name. */ - public FormValidation doItemExistsCheck(@QueryParameter String value) { + public FormValidation doCheckJobName(@QueryParameter String value) { // this method can be used to check if a file exists anywhere in the file system, // so it should be protected. checkPermission(Item.CREATE); - String job = fixEmpty(value); - if(job==null) + if(fixEmpty(value)==null) return FormValidation.ok(); - if(getItem(job)==null) + try { + checkJobName(value); return FormValidation.ok(); - else - return FormValidation.error(Messages.Hudson_JobAlreadyExists(job)); + } catch (Failure e) { + return FormValidation.error(e.getMessage()); + } } /** @@ -2957,11 +3266,15 @@ public final class Hudson extends Node implements ItemGroup, Stapl /** * Checks if the value for a field is set; if not an error or warning text is displayed. * If the parameter "value" is not set then the parameter "errorText" is displayed - * as an error text. If the parameter "errorText" is not set, then the parameter "warningText" is - * displayed as a warning text. + * as an error text. If the parameter "errorText" is not set, then the parameter "warningText" + * is displayed as a warning text. *

    * If the text is set and the parameter "type" is set, it will validate that the value is of the * correct type. Supported types are "number, "number-positive" and "number-negative". + * + * @deprecated as of 1.324 + * Either use client-side validation (e.g. class="required number") + * or define your own check method, instead of relying on this generic one. */ public FormValidation doFieldCheck(@QueryParameter(fixEmpty=true) String value, @QueryParameter(fixEmpty=true) String type, @@ -3007,8 +3320,7 @@ public final class Hudson extends Node implements ItemGroup, Stapl // cut off the "..." portion of /resources/.../path/to/file // as this is only used to make path unique (which in turn // allows us to set a long expiration date - path = path.substring(1); - path = path.substring(path.indexOf('/')+1); + path = path.substring(path.indexOf('/',1)+1); int idx = path.lastIndexOf('.'); String extension = path.substring(idx+1); @@ -3035,11 +3347,11 @@ public final class Hudson extends Node implements ItemGroup, Stapl * Checks if container uses UTF-8 to decode URLs. See * http://hudson.gotdns.com/wiki/display/HUDSON/Tomcat#Tomcat-i18n */ - public FormValidation doCheckURIEncoding(StaplerRequest request, @QueryParameter String value) throws IOException { + public FormValidation doCheckURIEncoding(StaplerRequest request) throws IOException { request.setCharacterEncoding("UTF-8"); // expected is non-ASCII String final String expected = "\u57f7\u4e8b"; - value = fixEmpty(value); + final String value = fixEmpty(request.getParameter("value")); if (!expected.equals(value)) return FormValidation.warningWithMarkup(Messages.Hudson_NotUsesUTF8ToDecodeURL()); return FormValidation.ok(); @@ -3052,29 +3364,17 @@ public final class Hudson extends Node implements ItemGroup, Stapl return !"ISO-8859-1".equalsIgnoreCase(System.getProperty("file.encoding")); } + /** + * @deprecated + * Use {@link Functions#isWindows()}. + */ public static boolean isWindows() { return File.pathSeparatorChar==';'; } - /** - * Returns all {@code CVSROOT} strings used in the current Hudson installation. - * - *

    - * Ideally this shouldn't be defined in here - * but EL doesn't provide a convenient way of invoking a static function, - * so I'm putting it here for now. - */ - public Set getAllCvsRoots() { - Set r = new TreeSet(); - for( AbstractProject p : getAllItems(AbstractProject.class) ) { - SCM scm = p.getScm(); - if (scm instanceof CVSSCM) { - CVSSCM cvsscm = (CVSSCM) scm; - r.add(cvsscm.getCvsRoot()); - } - } - - return r; + public static boolean isDarwin() { + // according to http://developer.apple.com/technotes/tn2002/tn2110.html + return System.getProperty("os.name").toLowerCase(Locale.ENGLISH).startsWith("mac"); } /** @@ -3093,6 +3393,16 @@ public final class Hudson extends Node implements ItemGroup, Stapl return ManagementLink.all(); } + /** + * Exposes the current user to /me URL. + */ + public User getMe() { + User u = User.current(); + if (u == null) + throw new AccessDeniedException("/me is not available when not logged in"); + return u; + } + /** * Gets the {@link Widget}s registered on this object. * @@ -3115,6 +3425,8 @@ public final class Hudson extends Node implements ItemGroup, Stapl || rest.startsWith("/signup") || rest.startsWith("/jnlpJars/") || rest.startsWith("/tcpSlaveAgentListener") + || rest.startsWith("/cli") + || rest.startsWith("/whoAmI") || rest.startsWith("/securityRealm")) return this; // URLs that are always visible without READ permission throw e; @@ -3137,6 +3449,7 @@ public final class Hudson extends Node implements ItemGroup, Stapl /** * Returns "" to match with {@link Hudson#getNodeName()}. */ + @Override public String getName() { return ""; } @@ -3156,6 +3469,7 @@ public final class Hudson extends Node implements ItemGroup, Stapl return Messages.Hudson_Computer_Caption(); } + @Override public String getUrl() { return "computer/(master)/"; } @@ -3168,10 +3482,11 @@ public final class Hudson extends Node implements ItemGroup, Stapl * Report an error. */ @Override - public void doDoDelete(StaplerResponse rsp) throws IOException { - rsp.sendError(SC_BAD_REQUEST); + public HttpResponse doDoDelete() throws IOException { + throw HttpResponses.status(SC_BAD_REQUEST); } + @Override public void doConfigSubmit(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException { // the master node isn't in the Hudson.getNodes(), so this method makes no sense. throw new UnsupportedOperationException(); @@ -3183,7 +3498,8 @@ public final class Hudson extends Node implements ItemGroup, Stapl // this hides the "delete" link from the /computer/(master) page. if(permission==Computer.DELETE) return false; - return super.hasPermission(permission); + // Configuration of master node requires ADMINISTER permission + return super.hasPermission(permission==Computer.CONFIGURE ? Hudson.ADMINISTER : permission); } @Override @@ -3213,7 +3529,7 @@ public final class Hudson extends Node implements ItemGroup, Stapl rsp.sendRedirect2(req.getContextPath()+"/configure"); } - public Future connect(boolean forceReconnect) { + protected Future _connect(boolean forceReconnect) { return Futures.precomputed(null); } @@ -3224,7 +3540,14 @@ public final class Hudson extends Node implements ItemGroup, Stapl } /** - * @deprecated + * Shortcut for {@code Hudson.getInstance().lookup.get(type)} + */ + public static T lookup(Class type) { + return Hudson.getInstance().lookup.get(type); + } + + /** + * @deprecated since 2007-12-18. * Use {@link #checkPermission(Permission)} */ public static boolean adminCheck() throws IOException { @@ -3232,7 +3555,7 @@ public final class Hudson extends Node implements ItemGroup, Stapl } /** - * @deprecated + * @deprecated since 2007-12-18. * Use {@link #checkPermission(Permission)} */ public static boolean adminCheck(StaplerRequest req,StaplerResponse rsp) throws IOException { @@ -3246,7 +3569,7 @@ public final class Hudson extends Node implements ItemGroup, Stapl * Checks if the current user (for which we are processing the current request) * has the admin access. * - * @deprecated + * @deprecated since 2007-12-18. * This method is deprecated when Hudson moved from simple Unix root-like model * of "admin gets to do everything, and others don't have any privilege" to more * complex {@link ACL} and {@link Permission} based scheme. @@ -3265,7 +3588,7 @@ public final class Hudson extends Node implements ItemGroup, Stapl } /** - * @deprecated + * @deprecated since 2007-12-18. * Define a custom {@link Permission} and check against ACL. * See {@link #isAdmin()} for more instructions. */ @@ -3290,7 +3613,7 @@ public final class Hudson extends Node implements ItemGroup, Stapl *

    * The idea here is to overlap the CPU and I/O, so we want more threads than CPU numbers. */ - /*package*/ static final ExecutorService threadPoolForLoad = new ThreadPoolExecutor( + /*package*/ transient final ExecutorService threadPoolForLoad = new ThreadPoolExecutor( TWICE_CPU_NUM, TWICE_CPU_NUM, 5L, TimeUnit.SECONDS, new LinkedBlockingQueue(), new DaemonThreadFactory()); @@ -3324,6 +3647,28 @@ public final class Hudson extends Node implements ItemGroup, Stapl */ public static String VERSION="?"; + /** + * Parses {@link #VERSION} into {@link VersionNumber}, or null if it's not parseable as a version number + * (such as when Hudson is run with "mvn hudson-dev:run") + */ + public static VersionNumber getVersion() { + try { + return new VersionNumber(VERSION); + } catch (NumberFormatException e) { + try { + // for non-released version of Hudson, this looks like "1.345 (private-foobar), so try to approximate. + int idx = VERSION.indexOf(' '); + if (idx>0) + return new VersionNumber(VERSION.substring(0,idx)); + } catch (NumberFormatException _) { + // fall through + } + + // totally unparseable + return null; + } + } + /** * Hash of {@link #VERSION}. */ @@ -3351,7 +3696,29 @@ public final class Hudson extends Node implements ItemGroup, Stapl public static boolean KILL_AFTER_LOAD = Boolean.getBoolean(Hudson.class.getName()+".killAfterLoad"); public static boolean LOG_STARTUP_PERFORMANCE = Boolean.getBoolean(Hudson.class.getName()+".logStartupPerformance"); private static final boolean CONSISTENT_HASH = true; // Boolean.getBoolean(Hudson.class.getName()+".consistentHash"); + /** + * Enabled by default as of 1.337. Will keep it for a while just in case we have some serious problems. + */ + public static boolean FLYWEIGHT_SUPPORT = !"false".equals(System.getProperty(Hudson.class.getName()+".flyweightSupport")); + + /** + * Tentative switch to activate the concurrent build behavior. + * When we merge this back to the trunk, this allows us to keep + * this feature hidden for a while until we iron out the kinks. + * @see AbstractProject#isConcurrentBuild() + */ + public static boolean CONCURRENT_BUILD = true; + + /** + * Switch to enable people to use a shorter workspace name. + */ + private static final String WORKSPACE_DIRNAME = System.getProperty(Hudson.class.getName()+".workspaceDirName","workspace"); + /** + * Automatically try to launch a slave when Hudson is initialized or a new slave is created. + */ + public static boolean AUTOMATIC_SLAVE_LAUNCH = true; + private static final Logger LOGGER = Logger.getLogger(Hudson.class.getName()); private static final Pattern ICON_SIZE = Pattern.compile("\\d+x\\d+"); @@ -3360,6 +3727,16 @@ public final class Hudson extends Node implements ItemGroup, Stapl public static final Permission ADMINISTER = Permission.HUDSON_ADMINISTER; public static final Permission READ = new Permission(PERMISSIONS,"Read",Messages._Hudson_ReadPermission_Description(),Permission.READ); + /** + * {@link Authentication} object that represents the anonymous user. + * Because Acegi creates its own {@link AnonymousAuthenticationToken} instances, the code must not + * expect the singleton semantics. This is just a convenient instance. + * + * @since 1.343 + */ + public static final Authentication ANONYMOUS = new AnonymousAuthenticationToken( + "anonymous","anonymous",new GrantedAuthority[]{new GrantedAuthorityImpl("anonymous")}); + static { XSTREAM.alias("hudson",Hudson.class); XSTREAM.alias("slave", DumbSlave.class); @@ -3370,7 +3747,7 @@ public final class Hudson extends Node implements ItemGroup, Stapl // this seems to be necessary to force registration of converter early enough Mode.class.getEnumConstants(); - // doule check that initialization order didn't do any harm + // double check that initialization order didn't do any harm assert PERMISSIONS!=null; assert ADMINISTER!=null; } diff --git a/core/src/main/java/hudson/model/Item.java b/core/src/main/java/hudson/model/Item.java index 428023226def8171be5e0c05372473ec5fa86385..d35476dc4349675cd2c78bed7ee45a798afc6a1f 100644 --- a/core/src/main/java/hudson/model/Item.java +++ b/core/src/main/java/hudson/model/Item.java @@ -1,7 +1,7 @@ /* * The MIT License * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi + * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Yahoo! Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -177,6 +177,12 @@ public interface Item extends PersistenceRoot, SearchableModelObject, AccessCont */ void onCopiedFrom(Item src); + /** + * When an item is created from scratch (instead of copied), + * this method will be invoked. Used as the post-construction initialization. + */ + void onCreatedFromScratch(); + /** * Save the settings to a file. * @@ -186,11 +192,17 @@ public interface Item extends PersistenceRoot, SearchableModelObject, AccessCont */ public void save() throws IOException; + /** + * Deletes this item. + */ + public void delete() throws IOException, InterruptedException; + public static final PermissionGroup PERMISSIONS = new PermissionGroup(Item.class,Messages._Item_Permissions_Title()); - public static final Permission CREATE = new Permission(PERMISSIONS,"Create", Permission.CREATE); - public static final Permission DELETE = new Permission(PERMISSIONS,"Delete", Permission.DELETE); - public static final Permission CONFIGURE = new Permission(PERMISSIONS,"Configure", Permission.CONFIGURE); - public static final Permission READ = new Permission(PERMISSIONS,"Read", Permission.READ); + public static final Permission CREATE = new Permission(PERMISSIONS, "Create", null, Permission.CREATE); + public static final Permission DELETE = new Permission(PERMISSIONS, "Delete", null, Permission.DELETE); + public static final Permission CONFIGURE = new Permission(PERMISSIONS, "Configure", null, Permission.CONFIGURE); + public static final Permission READ = new Permission(PERMISSIONS, "Read", null, Permission.READ); + public static final Permission EXTENDED_READ = new Permission(PERMISSIONS,"ExtendedRead", Messages._AbstractProject_ExtendedReadPermission_Description(), CONFIGURE, Boolean.getBoolean("hudson.security.ExtendedReadPermission")); public static final Permission BUILD = new Permission(PERMISSIONS, "Build", Messages._AbstractProject_BuildPermission_Description(), Permission.UPDATE); public static final Permission WORKSPACE = new Permission(PERMISSIONS, "Workspace", Messages._AbstractProject_WorkspacePermission_Description(), Permission.READ); } diff --git a/core/src/main/java/hudson/model/ItemGroup.java b/core/src/main/java/hudson/model/ItemGroup.java index 76c50bee567800184ff62aee7705120afe61d0df..9713567109b038e4a08a38bbdb728ae17e321cb8 100644 --- a/core/src/main/java/hudson/model/ItemGroup.java +++ b/core/src/main/java/hudson/model/ItemGroup.java @@ -23,6 +23,7 @@ */ package hudson.model; +import java.io.IOException; import java.util.Collection; import java.io.File; @@ -71,4 +72,9 @@ public interface ItemGroup extends PersistenceRoot, ModelObject * Assigns the {@link Item#getRootDir() root directory} for children. */ File getRootDirFor(T child); + + /** + * Internal method. Called by {@link Item}s when they are renamed by users. + */ + void onRenamed(T item, String oldName, String newName) throws IOException; } diff --git a/core/src/main/java/hudson/model/Items.java b/core/src/main/java/hudson/model/Items.java index e5ce11e20a1aba66c159d2ecc463deb4edf4d1cf..060a713c4de3d4d4bb1dd021a7f0ac9c76d3e562 100644 --- a/core/src/main/java/hudson/model/Items.java +++ b/core/src/main/java/hudson/model/Items.java @@ -27,7 +27,6 @@ import com.thoughtworks.xstream.XStream; import hudson.XmlFile; import hudson.DescriptorExtensionList; import hudson.Extension; -import hudson.scm.RepositoryBrowser; import hudson.matrix.MatrixProject; import hudson.matrix.MatrixConfiguration; import hudson.matrix.Axis; @@ -59,7 +58,7 @@ public class Items { * Returns all the registered {@link TopLevelItemDescriptor}s. */ public static DescriptorExtensionList all() { - return Hudson.getInstance().getDescriptorList(TopLevelItem.class); + return Hudson.getInstance().getDescriptorList(TopLevelItem.class); } public static TopLevelItemDescriptor getDescriptor(String fqcn) { @@ -67,7 +66,7 @@ public class Items { } /** - * Converts a list of items into a camma-separated full names. + * Converts a list of items into a comma-separated list of full names. */ public static String toNameList(Collection items) { StringBuilder buf = new StringBuilder(); @@ -82,7 +81,7 @@ public class Items { /** * Does the opposite of {@link #toNameList(Collection)}. */ - public static List fromNameList(String list,Class type) { + public static List fromNameList(String list, Class type) { Hudson hudson = Hudson.getInstance(); List r = new ArrayList(); diff --git a/core/src/main/java/hudson/model/JDK.java b/core/src/main/java/hudson/model/JDK.java index 4f29cd1cdd428464a5400998252d2e00f0498e2b..3c2401e4e330ad851ed7610ff7729d687fd7eddf 100644 --- a/core/src/main/java/hudson/model/JDK.java +++ b/core/src/main/java/hudson/model/JDK.java @@ -1,7 +1,7 @@ /* * The MIT License * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi + * Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,11 +29,13 @@ import hudson.util.FormValidation; import hudson.Launcher; import hudson.Extension; import hudson.EnvVars; +import hudson.Util; import hudson.slaves.NodeSpecific; import hudson.tools.ToolInstallation; import hudson.tools.ToolDescriptor; import hudson.tools.ToolProperty; import hudson.tools.JDKInstaller; +import hudson.util.XStream2; import java.io.File; import java.io.IOException; @@ -51,8 +53,11 @@ import org.kohsuke.stapler.QueryParameter; * @author Kohsuke Kawaguchi */ public final class JDK extends ToolInstallation implements NodeSpecific, EnvironmentSpecific { + /** + * @deprecated since 2009-02-25 + */ @Deprecated // kept for backward compatibility - use getHome() instead - private String javaHome; + private transient String javaHome; public JDK(String name, String javaHome) { super(name, javaHome, Collections.>emptyList()); @@ -73,12 +78,6 @@ public final class JDK extends ToolInstallation implements NodeSpecific, En return getHome(); } - @SuppressWarnings({"deprecation"}) - public @Override String getHome() { - if (javaHome != null) return javaHome; - return super.getHome(); - } - /** * Gets the path to the bin directory. */ @@ -89,12 +88,7 @@ public final class JDK extends ToolInstallation implements NodeSpecific, En * Gets the path to 'java'. */ private File getExecutable() { - String execName; - if(File.separatorChar=='\\') - execName = "java.exe"; - else - execName = "java"; - + String execName = (File.separatorChar == '\\') ? "java.exe" : "java"; return new File(getHome(),"bin/"+execName); } @@ -110,7 +104,7 @@ public final class JDK extends ToolInstallation implements NodeSpecific, En */ public void buildEnvVars(Map env) { // see EnvVars javadoc for why this adss PATH. - env.put("PATH+JDK",getBinDir().getPath()); + env.put("PATH+JDK",getHome()+"/bin"); env.put("JAVA_HOME",getHome()); } @@ -133,7 +127,7 @@ public final class JDK extends ToolInstallation implements NodeSpecific, En try { TaskListener listener = new StreamTaskListener(new NullStream()); Launcher launcher = n.createLauncher(listener); - return launcher.launch("java -fullversion",new String[0],listener.getLogger(),null).join()==0; + return launcher.launch().cmds("java","-fullversion").stdout(listener).join()==0; } catch (IOException e) { return false; } catch (InterruptedException e) { @@ -145,7 +139,7 @@ public final class JDK extends ToolInstallation implements NodeSpecific, En public static class DescriptorImpl extends ToolDescriptor { public String getDisplayName() { - return "Java Development Kit"; + return "JDK"; // XXX I18N } public @Override JDK[] getInstallations() { @@ -171,7 +165,10 @@ public final class JDK extends ToolInstallation implements NodeSpecific, En // this can be used to check the existence of a file on the server, so needs to be protected Hudson.getInstance().checkPermission(Hudson.ADMINISTER); - if(value.exists() && !value.isDirectory()) + if(value.getPath().equals("")) + return FormValidation.ok(); + + if(!value.isDirectory()) return FormValidation.error(Messages.Hudson_NotADirectory(value)); File toolsJar = new File(value,"lib/tools.jar"); @@ -181,5 +178,16 @@ public final class JDK extends ToolInstallation implements NodeSpecific, En return FormValidation.ok(); } + + public FormValidation doCheckName(@QueryParameter String value) { + return FormValidation.validateRequired(value); + } + } + + public static class ConverterImpl extends ToolConverter { + public ConverterImpl(XStream2 xstream) { super(xstream); } + @Override protected String oldHomeField(ToolInstallation obj) { + return ((JDK)obj).javaHome; + } } } diff --git a/core/src/main/java/hudson/model/Job.java b/core/src/main/java/hudson/model/Job.java index 5ddc71c8fafbc89372b7ad01819df6a9e4a8fa1f..5e3b45c72f67b9d56c3d18db0691af470c9a43d4 100644 --- a/core/src/main/java/hudson/model/Job.java +++ b/core/src/main/java/hudson/model/Job.java @@ -24,13 +24,18 @@ package hudson.model; import static javax.servlet.http.HttpServletResponse.SC_BAD_REQUEST; +import static javax.servlet.http.HttpServletResponse.SC_NO_CONTENT; + +import com.infradna.tool.bridge_method_injector.WithBridgeMethods; import hudson.ExtensionPoint; -import hudson.Util; import hudson.XmlFile; import hudson.PermalinkList; +import hudson.Extension; +import hudson.cli.declarative.CLIResolver; import hudson.model.Descriptor.FormException; -import hudson.model.listeners.ItemListener; import hudson.model.PermalinkProjectAction.Permalink; +import hudson.model.Fingerprint.RangeSet; +import hudson.model.Fingerprint.Range; import hudson.search.QuickSilver; import hudson.search.SearchIndex; import hudson.search.SearchIndexBuilder; @@ -48,6 +53,7 @@ import hudson.util.RunList; import hudson.util.ShiftedCategoryAxis; import hudson.util.StackedAreaRenderer2; import hudson.util.TextFile; +import hudson.util.Graph; import hudson.widgets.HistoryWidget; import hudson.widgets.Widget; import hudson.widgets.HistoryWidget.Adapter; @@ -58,16 +64,16 @@ import java.io.File; import java.io.IOException; import java.io.StringWriter; import java.io.PrintWriter; -import java.text.ParseException; +import java.net.URLEncoder; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.List; import java.util.Map; import java.util.SortedMap; +import java.util.LinkedList; import javax.servlet.ServletException; -import javax.servlet.http.HttpServletResponse; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerException; import javax.xml.transform.TransformerFactory; @@ -77,8 +83,6 @@ import javax.xml.transform.stream.StreamSource; import net.sf.json.JSONObject; import net.sf.json.JSONException; -import org.apache.tools.ant.taskdefs.Copy; -import org.apache.tools.ant.types.FileSet; import org.jfree.chart.ChartFactory; import org.jfree.chart.JFreeChart; import org.jfree.chart.axis.CategoryAxis; @@ -90,10 +94,13 @@ import org.jfree.chart.renderer.category.StackedAreaRenderer; import org.jfree.data.category.CategoryDataset; import org.jfree.ui.RectangleInsets; import org.jvnet.localizer.Localizable; +import org.kohsuke.stapler.StaplerOverridable; import org.kohsuke.stapler.StaplerRequest; import org.kohsuke.stapler.StaplerResponse; import org.kohsuke.stapler.WebMethod; import org.kohsuke.stapler.export.Exported; +import org.kohsuke.args4j.Argument; +import org.kohsuke.args4j.CmdLineException; /** * A job is an runnable entity under the monitoring of Hudson. @@ -107,7 +114,7 @@ import org.kohsuke.stapler.export.Exported; * @author Kohsuke Kawaguchi */ public abstract class Job, RunT extends Run> - extends AbstractItem implements ExtensionPoint { + extends AbstractItem implements ExtensionPoint, StaplerOverridable { /** * Next build number. Kept in a separate file because this is the only @@ -119,6 +126,12 @@ public abstract class Job, RunT extends Run, RunT extends Run parent, String name) throws IOException { super.onLoad(parent, name); @@ -150,7 +170,9 @@ public abstract class Job, RunT extends Run, RunT extends Run, RunT extends Run, RunT extends Run, RunT extends Run * Much of Hudson assumes that the build number is unique and monotonic, so * this method can only accept a new value that's bigger than - * {@link #getNextBuildNumber()} returns. Otherwise it'll be no-op. + * {@link #getLastBuild()} returns. Otherwise it'll be no-op. * * @since 1.199 (before that, this method was package private.) */ - public void updateNextBuildNumber(int next) throws IOException { - if (next > nextBuildNumber) { + public synchronized void updateNextBuildNumber(int next) throws IOException { + RunT lb = getLastBuild(); + if (lb!=null ? next>lb.getNumber() : next>0) { this.nextBuildNumber = next; saveNextBuildNumber(); } @@ -294,6 +333,7 @@ public abstract class Job, RunT extends Run result) { @@ -387,6 +427,16 @@ public abstract class Job, RunT extends Run getOverrides() { + List r = new ArrayList(); + for (JobProperty p : properties) + r.addAll(p.getJobOverrides()); + return r; + } + public List getWidgets() { ArrayList r = new ArrayList(); r.add(createHistoryWidget()); @@ -427,107 +477,9 @@ public abstract class Job, RunT extends Run - * This method is defined on {@link Job} but really only applicable for - * {@link Job}s that are top-level items. */ public void renameTo(String newName) throws IOException { - // always synchronize from bigger objects first - final Hudson parent = Hudson.getInstance(); - assert this instanceof TopLevelItem; - synchronized (parent) { - synchronized (this) { - // sanity check - if (newName == null) - throw new IllegalArgumentException("New name is not given"); - TopLevelItem existing = parent.getItem(newName); - if (existing != null && existing!=this) - // the look up is case insensitive, so we need "existing!=this" - // to allow people to rename "Foo" to "foo", for example. - // see http://www.nabble.com/error-on-renaming-project-tt18061629.html - throw new IllegalArgumentException("Job " + newName - + " already exists"); - - // noop? - if (this.name.equals(newName)) - return; - - String oldName = this.name; - File oldRoot = this.getRootDir(); - - doSetName(newName); - File newRoot = this.getRootDir(); - - boolean success = false; - - try {// rename data files - boolean interrupted = false; - boolean renamed = false; - - // try to rename the job directory. - // this may fail on Windows due to some other processes - // accessing a file. - // so retry few times before we fall back to copy. - for (int retry = 0; retry < 5; retry++) { - if (oldRoot.renameTo(newRoot)) { - renamed = true; - break; // succeeded - } - try { - Thread.sleep(500); - } catch (InterruptedException e) { - // process the interruption later - interrupted = true; - } - } - - if (interrupted) - Thread.currentThread().interrupt(); - - if (!renamed) { - // failed to rename. it must be that some lengthy - // process is going on - // to prevent a rename operation. So do a copy. Ideally - // we'd like to - // later delete the old copy, but we can't reliably do - // so, as before the VM - // shuts down there might be a new job created under the - // old name. - Copy cp = new Copy(); - cp.setProject(new org.apache.tools.ant.Project()); - cp.setTodir(newRoot); - FileSet src = new FileSet(); - src.setDir(getRootDir()); - cp.addFileset(src); - cp.setOverwrite(true); - cp.setPreserveLastModified(true); - cp.setFailOnError(false); // keep going even if - // there's an error - cp.execute(); - - // try to delete as much as possible - try { - Util.deleteRecursive(oldRoot); - } catch (IOException e) { - // but ignore the error, since we expect that - e.printStackTrace(); - } - } - - success = true; - } finally { - // if failed, back out the rename. - if (!success) - doSetName(oldName); - } - - parent.onRenamed((TopLevelItem) this, oldName, newName); - - for (ItemListener l : Hudson.getInstance().getJobListeners()) - l.onRenamed(this, oldName, newName); - } - } + super.renameTo(newName); } /** @@ -537,13 +489,29 @@ public abstract class Job, RunT extends Run getBuilds() { - return new ArrayList(_getRuns().values()); + @WithBridgeMethods(List.class) + public RunList getBuilds() { + return RunList.fromRuns(_getRuns().values()); + } + + /** + * Obtains all the {@link Run}s whose build numbers matches the given {@link RangeSet}. + */ + public synchronized List getBuilds(RangeSet rs) { + List builds = new LinkedList(); + + for (Range r : rs.getRanges()) { + for (RunT b = getNearestBuild(r.start); b!=null && b.getNumber(), RunT extends Run, RunT extends Run getBuildsByTimestamp(long start, long end) { + return getBuilds().byTimestamp(start,end); + } + + @CLIResolver + public RunT getBuildForCLI(@Argument(required=true,metaVar="BUILD#",usage="Build number") String id) throws CmdLineException { + try { + int n = Integer.parseInt(id); + RunT r = getBuildByNumber(n); + if (r==null) + throw new CmdLineException(null, "No such build '#"+n+"' exists"); + return r; + } catch (NumberFormatException e) { + throw new CmdLineException(null, id+ "is not a number"); + } + } + /** * Gets the youngest build #m that satisfies n<=m. * @@ -583,13 +576,8 @@ public abstract class Job, RunT extends Run m = _getRuns().headMap(n - 1); // the - // map - // should - // include - // n, - // so - // n-1 + SortedMap m = _getRuns().headMap(n - 1); // the map should + // include n, so n-1 if (m.isEmpty()) return null; return m.get(m.lastKey()); @@ -608,6 +596,7 @@ public abstract class Job, RunT extends Run, RunT extends Run, RunT extends Run= 'threshold' + * + * @return a list with the builds. May be smaller than 'numberOfBuilds' or even empty + * if not enough builds satisfying the threshold have been found. Never null. + */ + public List getLastBuildsOverThreshold(int numberOfBuilds, Result threshold) { + + List result = new ArrayList(numberOfBuilds); + + RunT r = getLastBuild(); + while (r != null && result.size() < numberOfBuilds) { + if (!r.isBuilding() && + (r.getResult() != null && r.getResult().isBetterOrEqualTo(threshold))) { + result.add(r); + } + r = r.getPreviousBuild(); + } + + return result; + } + + public final long getEstimatedDuration() { + List builds = getLastBuildsOverThreshold(3, Result.UNSTABLE); + + if(builds.isEmpty()) return -1; + + long totalDuration = 0; + for (RunT b : builds) { + totalDuration += b.getDuration(); + } + if(totalDuration==0) return -1; + + return Math.round((double)totalDuration / builds.size()); + } /** * Gets all the {@link Permalink}s defined for this job. @@ -858,11 +911,6 @@ public abstract class Job, RunT extends Run 0) { int score = (int) ((100.0 * (totalCount - failCount)) / totalCount); - if (score < 100 && score > 0) { - // HACK - // force e.g. 4/5 to be in the 60-79 range - score--; - } Localizable description; if (failCount == 0) { @@ -889,7 +937,7 @@ public abstract class Job, RunT extends Run, RunT extends Run, RunT extends Run, RunT extends Run { - final Run run; + public Graph getBuildTimeGraph() { + return new Graph(getLastBuild().getTimestamp(),500,400) { + @Override + protected JFreeChart createGraph() { + class ChartLabel implements Comparable { + final Run run; - public ChartLabel(Run r) { - this.run = r; - } + public ChartLabel(Run r) { + this.run = r; + } - public int compareTo(ChartLabel that) { - return this.run.number - that.run.number; - } + public int compareTo(ChartLabel that) { + return this.run.number - that.run.number; + } - public boolean equals(Object o) { - // HUDSON-2682 workaround for Eclipse compilation bug - // on (c instanceof ChartLabel) - if (o == null || !ChartLabel.class.isAssignableFrom( o.getClass() )) { - return false; - } - ChartLabel that = (ChartLabel) o; - return run == that.run; - } + @Override + public boolean equals(Object o) { + // HUDSON-2682 workaround for Eclipse compilation bug + // on (c instanceof ChartLabel) + if (o == null || !ChartLabel.class.isAssignableFrom( o.getClass() )) { + return false; + } + ChartLabel that = (ChartLabel) o; + return run == that.run; + } - public Color getColor() { - // TODO: consider gradation. See - // http://www.javadrive.jp/java2d/shape/index9.html - Result r = run.getResult(); - if (r == Result.FAILURE) - return ColorPalette.RED; - else if (r == Result.UNSTABLE) - return ColorPalette.YELLOW; - else if (r == Result.ABORTED || r == Result.NOT_BUILT) - return ColorPalette.GREY; - else - return ColorPalette.BLUE; - } + public Color getColor() { + // TODO: consider gradation. See + // http://www.javadrive.jp/java2d/shape/index9.html + Result r = run.getResult(); + if (r == Result.FAILURE) + return ColorPalette.RED; + else if (r == Result.UNSTABLE) + return ColorPalette.YELLOW; + else if (r == Result.ABORTED || r == Result.NOT_BUILT) + return ColorPalette.GREY; + else + return ColorPalette.BLUE; + } - public int hashCode() { - return run.hashCode(); - } + @Override + public int hashCode() { + return run.hashCode(); + } + + @Override + public String toString() { + String l = run.getDisplayName(); + if (run instanceof Build) { + String s = ((Build) run).getBuiltOnStr(); + if (s != null) + l += ' ' + s; + } + return l; + } - public String toString() { - String l = run.getDisplayName(); - if (run instanceof Build) { - String s = ((Build) run).getBuiltOnStr(); - if (s != null) - l += ' ' + s; } - return l; - } - } + DataSetBuilder data = new DataSetBuilder(); + for (Run r : getBuilds()) { + if (r.isBuilding()) + continue; + data.add(((double) r.getDuration()) / (1000 * 60), "min", + new ChartLabel(r)); + } - DataSetBuilder data = new DataSetBuilder(); - for (Run r : getBuilds()) { - if (r.isBuilding()) - continue; - data.add(((double) r.getDuration()) / (1000 * 60), "min", - new ChartLabel(r)); - } + final CategoryDataset dataset = data.build(); + + final JFreeChart chart = ChartFactory.createStackedAreaChart(null, // chart + // title + null, // unused + Messages.Job_minutes(), // range axis label + dataset, // data + PlotOrientation.VERTICAL, // orientation + false, // include legend + true, // tooltips + false // urls + ); + + chart.setBackgroundPaint(Color.white); + + final CategoryPlot plot = chart.getCategoryPlot(); + + // plot.setAxisOffset(new Spacer(Spacer.ABSOLUTE, 5.0, 5.0, 5.0, 5.0)); + plot.setBackgroundPaint(Color.WHITE); + plot.setOutlinePaint(null); + plot.setForegroundAlpha(0.8f); + // plot.setDomainGridlinesVisible(true); + // plot.setDomainGridlinePaint(Color.white); + plot.setRangeGridlinesVisible(true); + plot.setRangeGridlinePaint(Color.black); + + CategoryAxis domainAxis = new ShiftedCategoryAxis(null); + plot.setDomainAxis(domainAxis); + domainAxis.setCategoryLabelPositions(CategoryLabelPositions.UP_90); + domainAxis.setLowerMargin(0.0); + domainAxis.setUpperMargin(0.0); + domainAxis.setCategoryMargin(0.0); + + final NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis(); + ChartUtil.adjustChebyshev(dataset, rangeAxis); + rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits()); + + StackedAreaRenderer ar = new StackedAreaRenderer2() { + @Override + public Paint getItemPaint(int row, int column) { + ChartLabel key = (ChartLabel) dataset.getColumnKey(column); + return key.getColor(); + } - final CategoryDataset dataset = data.build(); - - final JFreeChart chart = ChartFactory.createStackedAreaChart(null, // chart - // title - null, // unused - Messages.Job_minutes(), // range axis label - dataset, // data - PlotOrientation.VERTICAL, // orientation - false, // include legend - true, // tooltips - false // urls - ); - - chart.setBackgroundPaint(Color.white); - - final CategoryPlot plot = chart.getCategoryPlot(); - - // plot.setAxisOffset(new Spacer(Spacer.ABSOLUTE, 5.0, 5.0, 5.0, 5.0)); - plot.setBackgroundPaint(Color.WHITE); - plot.setOutlinePaint(null); - plot.setForegroundAlpha(0.8f); - // plot.setDomainGridlinesVisible(true); - // plot.setDomainGridlinePaint(Color.white); - plot.setRangeGridlinesVisible(true); - plot.setRangeGridlinePaint(Color.black); - - CategoryAxis domainAxis = new ShiftedCategoryAxis(null); - plot.setDomainAxis(domainAxis); - domainAxis.setCategoryLabelPositions(CategoryLabelPositions.UP_90); - domainAxis.setLowerMargin(0.0); - domainAxis.setUpperMargin(0.0); - domainAxis.setCategoryMargin(0.0); - - final NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis(); - ChartUtil.adjustChebyshev(dataset, rangeAxis); - rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits()); - - StackedAreaRenderer ar = new StackedAreaRenderer2() { - @Override - public Paint getItemPaint(int row, int column) { - ChartLabel key = (ChartLabel) dataset.getColumnKey(column); - return key.getColor(); - } + @Override + public String generateURL(CategoryDataset dataset, int row, + int column) { + ChartLabel label = (ChartLabel) dataset.getColumnKey(column); + return String.valueOf(label.run.number); + } - @Override - public String generateURL(CategoryDataset dataset, int row, - int column) { - ChartLabel label = (ChartLabel) dataset.getColumnKey(column); - return String.valueOf(label.run.number); - } + @Override + public String generateToolTip(CategoryDataset dataset, int row, + int column) { + ChartLabel label = (ChartLabel) dataset.getColumnKey(column); + return label.run.getDisplayName() + " : " + + label.run.getDurationString(); + } + }; + plot.setRenderer(ar); - @Override - public String generateToolTip(CategoryDataset dataset, int row, - int column) { - ChartLabel label = (ChartLabel) dataset.getColumnKey(column); - return label.run.getDisplayName() + " : " - + label.run.getDurationString(); + // crop extra space around the graph + plot.setInsets(new RectangleInsets(0, 0, 0, 5.0)); + + return chart; } }; - plot.setRenderer(ar); - - // crop extra space around the graph - plot.setInsets(new RectangleInsets(0, 0, 0, 5.0)); - - return chart; } /** @@ -1183,15 +1225,17 @@ public abstract class Job, RunT extends Run, RunT extends Run, RunT extends Run build, Map env) { + public void buildEnvVars(AbstractBuild build, EnvVars env) { // TODO: check with Tom if this is really what he had in mind - env.put(name.toUpperCase(),job.toString()); + env.put(name,job.toString()); + env.put(name.toUpperCase(Locale.ENGLISH),job.toString()); // backward compatibility pre 1.345 } } diff --git a/core/src/main/java/hudson/model/JobProperty.java b/core/src/main/java/hudson/model/JobProperty.java index 771da21cdac0e62e9f5612987ce6dd4576432904..4af2d8ca431ec5face388f97e45f7a11df08b91e 100644 --- a/core/src/main/java/hudson/model/JobProperty.java +++ b/core/src/main/java/hudson/model/JobProperty.java @@ -26,11 +26,15 @@ package hudson.model; import hudson.ExtensionPoint; import hudson.Launcher; import hudson.Plugin; +import hudson.model.queue.SubTask; import hudson.tasks.BuildStep; import hudson.tasks.Builder; import hudson.tasks.Publisher; +import hudson.tasks.BuildStepMonitor; import java.io.IOException; +import java.util.Collection; +import java.util.Collections; import org.kohsuke.stapler.export.ExportedBean; @@ -89,14 +93,22 @@ public abstract class JobProperty> implements Describable - * Returning non-null from this method allows a job property to add an item + * Returning actions from this method allows a job property to add them * to the left navigation bar in the job page. * *

    @@ -107,13 +119,16 @@ public abstract class JobProperty> implements Describable getJobActions(J job) { + // delegate to getJobAction (singular) for backward compatible behavior + Action a = getJobAction(job); + if (a==null) return Collections.emptyList(); + return Collections.singletonList(a); } // @@ -134,7 +149,32 @@ public abstract class JobProperty> implements Describable project) { return getJobAction((J)project); } + + public final Collection getProjectActions(AbstractProject project) { + return getJobActions((J)project); + } + + public Collection getJobOverrides() { + return Collections.emptyList(); + } + + /** + * Contributes {@link SubTask}s to {@link AbstractProject#getSubTasks()} + * + * @since 1.FATTASK + */ + public Collection getSubTasks() { + return Collections.emptyList(); + } } diff --git a/core/src/main/java/hudson/model/JobPropertyDescriptor.java b/core/src/main/java/hudson/model/JobPropertyDescriptor.java index e859c0853b6d8ea6e4f748d2b8c4d85f9b1210d5..0000f05eb120ecf8164b542493fd59f44b07c28c 100644 --- a/core/src/main/java/hudson/model/JobPropertyDescriptor.java +++ b/core/src/main/java/hudson/model/JobPropertyDescriptor.java @@ -61,7 +61,12 @@ public abstract class JobPropertyDescriptor extends Descriptor> { * @return * null to avoid setting an instance of {@link JobProperty} to the target project. */ + @Override public JobProperty newInstance(StaplerRequest req, JSONObject formData) throws FormException { + // JobPropertyDescriptors are bit different in that we allow them even without any user-visible configuration parameter, + // so replace the lack of form data by an empty one. + if(formData.isNullObject()) formData=new JSONObject(); + return super.newInstance(req, formData); } diff --git a/core/src/main/java/hudson/model/Jobs.java b/core/src/main/java/hudson/model/Jobs.java index 078595544e292335d7c70d21538b4e96f98e554a..c124861603f9bcde0dea58ac0c59a82b88210f84 100644 --- a/core/src/main/java/hudson/model/Jobs.java +++ b/core/src/main/java/hudson/model/Jobs.java @@ -32,6 +32,7 @@ import java.util.List; * List of all installed {@link Job} types. * * @author Kohsuke Kawaguchi + * @deprecated since 1.281 */ public class Jobs { /** diff --git a/core/src/main/java/hudson/model/Label.java b/core/src/main/java/hudson/model/Label.java index 1e5da957998558d7607566a3c2043254b7bbdb59..528c59117883cfa46d371baf8a3493320208eda1 100644 --- a/core/src/main/java/hudson/model/Label.java +++ b/core/src/main/java/hudson/model/Label.java @@ -1,7 +1,7 @@ /* * The MIT License * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Tom Huybrechts + * Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Tom Huybrechts * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -23,17 +23,30 @@ */ package hudson.model; +import antlr.ANTLRException; import hudson.Util; +import static hudson.Util.fixNull; + +import hudson.model.labels.LabelAtom; +import hudson.model.labels.LabelExpression; +import hudson.model.labels.LabelExpressionLexer; +import hudson.model.labels.LabelExpressionParser; +import hudson.model.labels.LabelOperatorPrecedence; import hudson.slaves.NodeProvisioner; import hudson.slaves.Cloud; +import hudson.util.QuotedStringTokenizer; +import hudson.util.VariableResolver; import org.kohsuke.stapler.export.Exported; import org.kohsuke.stapler.export.ExportedBean; +import java.io.StringReader; import java.util.ArrayList; import java.util.Collections; import java.util.HashSet; import java.util.List; import java.util.Set; +import java.util.Collection; +import java.util.TreeSet; import com.thoughtworks.xstream.converters.Converter; import com.thoughtworks.xstream.converters.MarshallingContext; @@ -49,13 +62,17 @@ import com.thoughtworks.xstream.io.HierarchicalStreamReader; * @see Hudson#getLabel(String) */ @ExportedBean -public class Label implements Comparable

    + * The answer is yes if there is a reasonable basis to believe that Hudson can have + * an executor under this label, given the current configuration. This includes + * situations such as (1) there are offline slaves that have this label (2) clouds exist + * that can provision slaves that have this label. + */ + public boolean isAssignable() { + for (Node n : getNodes()) + if(n.getNumExecutors()>0) + return true; + return !getClouds().isEmpty(); + } + /** * Number of total {@link Executor}s that belong to this label. *

    - * This includes executors that belong to offline nodes. + * This includes executors that belong to offline nodes, so the result + * can be thought of as a potential capacity, whereas {@link #getTotalExecutors()} + * is the currently functioning total number of executors. + *

    + * This method doesn't take the dynamically allocatable nodes (via {@link Cloud}) + * into account. If you just want to test if there's some executors, use {@link #isAssignable()}. */ public int getTotalConfiguredExecutors() { int r=0; - for (Node n : getNodes()) { - Computer c = n.toComputer(); - if(c!=null) - r += c.countExecutors(); - } + for (Node n : getNodes()) + r += n.getNumExecutors(); return r; } @@ -210,22 +291,31 @@ public class Label implements Comparable

    + * To register your implementation, put {@link Extension} on your derived types. + * + * @author Stephen Connolly + * @since 1.323 + * Signature of this class changed in 1.323, after making sure that no + * plugin in the Subversion repository is using this. + */ +public abstract class LabelFinder implements ExtensionPoint { + /** + * Returns all the registered {@link LabelFinder}s. + */ + public static ExtensionList all() { + return Hudson.getInstance().getExtensionList(LabelFinder.class); + } + + /** + * Find the labels that the node supports. + * + * @param node + * The node that receives labels. Never null. + * @return + * A set of labels for the node. Can be empty but never null. + */ + public abstract Collection findLabels(Node node); +} diff --git a/core/src/main/java/hudson/model/ListView.java b/core/src/main/java/hudson/model/ListView.java index 4257dfd2ad678e6f0b199c7c937da509eb7380a3..e3174b39e29ffe2d18b78caeafa911b36add23a7 100644 --- a/core/src/main/java/hudson/model/ListView.java +++ b/core/src/main/java/hudson/model/ListView.java @@ -1,8 +1,9 @@ /* * The MIT License * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Erik Ramfelt, Seiji Sogabe, Martin Eigenbrodt - * + * Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, + * Erik Ramfelt, Seiji Sogabe, Martin Eigenbrodt, Alan Harder + * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights @@ -32,7 +33,9 @@ import hudson.views.LastDurationColumn; import hudson.views.LastFailureColumn; import hudson.views.LastSuccessColumn; import hudson.views.ListViewColumn; +import hudson.views.ListViewColumnDescriptor; import hudson.views.StatusColumn; +import hudson.views.ViewJobFilter; import hudson.views.WeatherColumn; import hudson.model.Descriptor.FormException; import hudson.util.CaseInsensitiveComparator; @@ -46,11 +49,11 @@ import org.kohsuke.stapler.QueryParameter; import javax.servlet.ServletException; import java.io.IOException; +import java.util.Arrays; import java.util.List; import java.util.TreeSet; import java.util.ArrayList; import java.util.Collections; -import java.util.Iterator; import java.util.SortedSet; import java.util.logging.Level; import java.util.logging.Logger; @@ -62,26 +65,17 @@ import java.util.regex.PatternSyntaxException; * * @author Kohsuke Kawaguchi */ -public class ListView extends View { +public class ListView extends View implements Saveable { /** * List of job names. This is what gets serialized. */ /*package*/ final SortedSet jobNames = new TreeSet(CaseInsensitiveComparator.INSTANCE); + + private DescribableList> jobFilters; private DescribableList> columns; - // First add all the known instances in the correct order: - private static final Descriptor [] defaultColumnDescriptors = { - StatusColumn.DESCRIPTOR, - WeatherColumn.DESCRIPTOR, - JobColumn.DESCRIPTOR, - LastSuccessColumn.DESCRIPTOR, - LastFailureColumn.DESCRIPTOR, - LastDurationColumn.DESCRIPTOR, - BuildButtonColumn.DESCRIPTOR - }; - /** * Include regex string. */ @@ -92,16 +86,36 @@ public class ListView extends View { */ private transient Pattern includePattern; + /** + * Filter by enabled/disabled status of jobs. + * Null for no filter, true for enabled-only, false for disabled-only. + */ + private Boolean statusFilter; + @DataBoundConstructor public ListView(String name) { super(name); initColumns(); + initJobFilters(); + } + + public ListView(String name, ViewGroup owner) { + this(name); + this.owner = owner; + } + + public void save() throws IOException { + // persistence is a part of the owner. + // due to the initialization timing issue, it can be null when this method is called. + if (owner!=null) + owner.save(); } private Object readResolve() { if(includeRegex!=null) includePattern = Pattern.compile(includeRegex); initColumns(); + initJobFilters(); return this; } @@ -110,42 +124,46 @@ public class ListView extends View { // already persisted return; } + // OK, set up default list of columns: // create all instances ArrayList r = new ArrayList(); DescriptorExtensionList> all = ListViewColumn.all(); - ArrayList> left = new ArrayList>(); - left.addAll(all); - for (Descriptor d: defaultColumnDescriptors) { - Descriptor des = all.find(d.getClass().getName()); + ArrayList> left = new ArrayList>(all); + + for (Class d: DEFAULT_COLUMNS) { + Descriptor des = all.find(d); if (des != null) { try { - r.add (des.newInstance(null, null)); - left.remove(des); + r.add(des.newInstance(null, null)); + left.remove(des); } catch (FormException e) { - // so far impossible. TODO: report + LOGGER.log(Level.WARNING, "Failed to instantiate "+des.clazz,e); } - } } for (Descriptor d : left) try { - r.add(d.newInstance(null,null)); + if (d instanceof ListViewColumnDescriptor) { + ListViewColumnDescriptor ld = (ListViewColumnDescriptor) d; + if (!ld.shownByDefault()) continue; // skip this + } + ListViewColumn lvc = d.newInstance(null, null); + if (!lvc.shownByDefault()) continue; // skip this + + r.add(lvc); } catch (FormException e) { - // so far impossible. TODO: report + LOGGER.log(Level.WARNING, "Failed to instantiate "+d.clazz,e); } - Iterator filter = r.iterator(); - while (filter.hasNext()) { - if (!filter.next().shownByDefault()) { - filter.remove(); - } - } - columns = new DescribableList>(Saveable.NOOP); - try { - columns.replaceBy(r); - } catch (IOException ex) { - Logger.getLogger(ListView.class.getName()).log(Level.SEVERE, null, ex); + + columns = new DescribableList>(this,r); + } + protected void initJobFilters() { + if (jobFilters != null) { + return; } + ArrayList r = new ArrayList(); + jobFilters = new DescribableList>(this,r); } /** @@ -157,28 +175,20 @@ public class ListView extends View { public List getActions() { return Hudson.getInstance().getActions(); } - + + /** + * Used to determine if we want to display the Add button. + */ + public boolean hasJobFilterExtensions() { + return !ViewJobFilter.all().isEmpty(); + } + public Iterable getJobFilters() { + return jobFilters; + } public Iterable getColumns() { return columns; } - public static List getDefaultColumns() { - ArrayList r = new ArrayList(); - DescriptorExtensionList> all = ListViewColumn.all(); - for (Descriptor d: defaultColumnDescriptors) { - Descriptor des = all.find(d.getClass().getName()); - if (des != null) { - try { - r.add (des.newInstance(null, null)); - } catch (FormException e) { - // so far impossible. TODO: report - } - - } - } - return Collections.unmodifiableList(r); - } - /** * Returns a read-only view of all {@link Job}s in this view. * @@ -201,9 +211,19 @@ public class ListView extends View { List items = new ArrayList(names.size()); for (String n : names) { TopLevelItem item = Hudson.getInstance().getItem(n); - if(item!=null) + // Add if no status filter or filter matches enabled/disabled status: + if(item!=null && (statusFilter == null || !(item instanceof AbstractProject) + || ((AbstractProject)item).isDisabled() ^ statusFilter)) items.add(item); } + + // check the filters + Iterable jobFilters = getJobFilters(); + List allItems = Hudson.getInstance().getItems(); + for (ViewJobFilter jobFilter: jobFilters) { + items = jobFilter.filter(items, allItems, this); + } + return items; } @@ -215,6 +235,14 @@ public class ListView extends View { return includeRegex; } + /** + * Filter by enabled/disabled status of jobs. + * Null for no filter, true for enabled-only, false for disabled-only. + */ + public Boolean getStatusFilter() { + return statusFilter; + } + public Item doCreateItem(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException { Item item = Hudson.getInstance().doCreateItem(req, rsp); if(item!=null) { @@ -236,7 +264,7 @@ public class ListView extends View { * Load view-specific properties here. */ @Override - protected void submit(StaplerRequest req) throws ServletException, FormException { + protected void submit(StaplerRequest req) throws ServletException, FormException, IOException { jobNames.clear(); for (TopLevelItem item : Hudson.getInstance().getItems()) { if(req.getParameter(item.getName())!=null) @@ -245,7 +273,10 @@ public class ListView extends View { if (req.getParameter("useincluderegex") != null) { includeRegex = Util.nullify(req.getParameter("includeRegex")); - includePattern = Pattern.compile(includeRegex); + if (includeRegex == null) + includePattern = null; + else + includePattern = Pattern.compile(includeRegex); } else { includeRegex = null; includePattern = null; @@ -254,7 +285,15 @@ public class ListView extends View { if (columns == null) { columns = new DescribableList>(Saveable.NOOP); } - columns.rebuildHetero(req, req.getSubmittedForm(), Hudson.getInstance().getDescriptorList(ListViewColumn.class), "columns"); + columns.rebuildHetero(req, req.getSubmittedForm(), ListViewColumn.all(), "columns"); + + if (jobFilters == null) { + jobFilters = new DescribableList>(Saveable.NOOP); + } + jobFilters.rebuildHetero(req, req.getSubmittedForm(), ViewJobFilter.all(), "jobFilters"); + + String filter = Util.fixEmpty(req.getParameter("statusFilter")); + statusFilter = filter != null ? "1".equals(filter) : null; } @Extension @@ -278,4 +317,36 @@ public class ListView extends View { return FormValidation.ok(); } } + + public static List getDefaultColumns() { + ArrayList r = new ArrayList(); + DescriptorExtensionList> all = ListViewColumn.all(); + for (Class t : DEFAULT_COLUMNS) { + Descriptor d = all.find(t); + if (d != null) { + try { + r.add (d.newInstance(null, null)); + } catch (FormException e) { + LOGGER.log(Level.WARNING, "Failed to instantiate "+d.clazz,e); + } + } + } + return Collections.unmodifiableList(r); + } + + + private static final Logger LOGGER = Logger.getLogger(ListView.class.getName()); + + /** + * Traditional column layout before the {@link ListViewColumn} becomes extensible. + */ + private static final List> DEFAULT_COLUMNS = Arrays.asList( + StatusColumn.class, + WeatherColumn.class, + JobColumn.class, + LastSuccessColumn.class, + LastFailureColumn.class, + LastDurationColumn.class, + BuildButtonColumn.class + ); } diff --git a/core/src/main/java/hudson/model/LoadBalancer.java b/core/src/main/java/hudson/model/LoadBalancer.java index c62ad9190ef886d20b35221c92aff26052271f72..39e2e5789bdc6ae18ac47509470954da2621a97f 100644 --- a/core/src/main/java/hudson/model/LoadBalancer.java +++ b/core/src/main/java/hudson/model/LoadBalancer.java @@ -1,12 +1,37 @@ +/* + * The MIT License + * + * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ package hudson.model; -import hudson.model.Node.Mode; -import hudson.model.Queue.ApplicableJobOfferList; -import hudson.model.Queue.JobOffer; import hudson.model.Queue.Task; +import hudson.model.queue.MappingWorksheet; +import hudson.model.queue.MappingWorksheet.ExecutorChunk; +import hudson.model.queue.MappingWorksheet.Mapping; import hudson.util.ConsistentHash; import hudson.util.ConsistentHash.Hash; +import java.util.ArrayList; +import java.util.List; import java.util.logging.Logger; /** @@ -17,7 +42,7 @@ import java.util.logging.Logger; */ public abstract class LoadBalancer /*implements ExtensionPoint*/ { /** - * Chooses the executor to carry out the build for the given project. + * Chooses the executor(s) to carry out the build for the given task. * *

    * This method is invoked from different threads, but the execution is serialized by the caller. @@ -25,104 +50,80 @@ public abstract class LoadBalancer /*implements ExtensionPoint*/ { * can be safely introspected from this method, if that information is necessary to make * decisions. * - * @param applicable - * The list of {@link JobOffer}s that represent {@linkplain JobOffer#isAvailable() available} {@link Executor}s, from which - * the callee can choose. Never null. * @param task * The task whose execution is being considered. Never null. + * @param worksheet + * The work sheet that represents the matching that needs to be made. + * The job of this method is to determine which work units on this worksheet + * are executed on which executors (also on this worksheet.) * * @return - * Pick one of the items from {@code available}, and return it. How you choose it - * is the crucial part of the implementation. Return null if you don't want - * the task to be executed right now, in which case this method will be called - * some time later with the same task. + * Build up the mapping by using the given worksheet and return it. + * Return null if you don't want the task to be executed right now, + * in which case this method will be called some time later with the same task. */ - protected abstract JobOffer choose(Task task, ApplicableJobOfferList applicable); + public abstract Mapping map(Task task, MappingWorksheet worksheet); /** - * Traditional implementation of this. + * Uses a consistent hash for scheduling. */ - public static final LoadBalancer DEFAULT = new LoadBalancer() { - protected JobOffer choose(Task task, ApplicableJobOfferList applicable) { - Label l = task.getAssignedLabel(); - if (l != null) { - // if a project has assigned label, it can be only built on it - for (JobOffer offer : applicable) { - if (l.contains(offer.getNode())) - return offer; - } - return null; - } - - // if we are a large deployment, then we will favor slaves - boolean isLargeHudson = Hudson.getInstance().getNodes().size() > 10; - - // otherwise let's see if the last node where this project was built is available - // it has up-to-date workspace, so that's usually preferable. - // (but we can't use an exclusive node) - Node n = task.getLastBuiltOn(); - if (n != null && n.getMode() == Mode.NORMAL) { - for (JobOffer offer : applicable) { - if (offer.getNode() == n) { - if (isLargeHudson && offer.getNode() instanceof Slave) - // but if we are a large Hudson, then we really do want to keep the master free from builds - continue; - return offer; + public static final LoadBalancer CONSISTENT_HASH = new LoadBalancer() { + @Override + public Mapping map(Task task, MappingWorksheet ws) { + // build consistent hash for each work chunk + List> hashes = new ArrayList>(ws.works.size()); + for (int i=0; i hash = new ConsistentHash(new Hash() { + public String hash(ExecutorChunk node) { + return node.getName(); } - } - } + }); + for (ExecutorChunk ec : ws.works(i).applicableExecutorChunks()) + hash.add(ec,ec.size()*100); - // duration of a build on a slave tends not to have an impact on - // the master/slave communication, so that means we should favor - // running long jobs on slaves. - // Similarly if we have many slaves, master should be made available - // for HTTP requests and coordination as much as possible - if (isLargeHudson || task.getEstimatedDuration() > 15 * 60 * 1000) { - // consider a long job to be > 15 mins - for (JobOffer offer : applicable) { - if (offer.getNode() instanceof Slave && offer.isNotExclusive()) - return offer; - } + hashes.add(hash); } - // lastly, just look for any idle executor - for (JobOffer offer : applicable) { - if (offer.isNotExclusive()) - return offer; + // do a greedy assignment + Mapping m = ws.new Mapping(); + assert m.size()==ws.works.size(); // just so that you the reader of the source code don't get confused with the for loop index + + if (assignGreedily(m,task,hashes,0)) { + assert m.isCompletelyValid(); + return m; + } else + return null; + } + + private boolean assignGreedily(Mapping m, Task task, List> hashes, int i) { + if (i==hashes.size()) return true; // fully assigned + + String key = task.getFullDisplayName() + (i>0 ? String.valueOf(i) : ""); + + for (ExecutorChunk ec : hashes.get(i).list(key)) { + // let's attempt this assignment + m.assign(i,ec); + + if (m.isPartiallyValid() && assignGreedily(m,task,hashes,i+1)) + return true; // successful greedily allocation + + // otherwise 'ec' wasn't a good fit for us. try next. } - // nothing available - return null; + // every attempt failed + m.assign(i,null); + return false; } }; /** - * Work in progress implementation that uses a consistent hash for scheduling. + * Traditional implementation of this. + * + * @deprecated as of 1.FATTASK + * The only implementation in the core now is the one based on consistent hash. */ - public static final LoadBalancer CONSISTENT_HASH = new LoadBalancer() { - protected JobOffer choose(Task task, ApplicableJobOfferList applicable) { - // populate a consistent hash linear to the # of executors - // TODO: there's a lot of room for innovations here - // TODO: do this upfront and reuse the consistent hash - ConsistentHash hash = new ConsistentHash(new Hash() { - public String hash(Node node) { - return node.getNodeName(); - } - }); - for (Node n : applicable.nodes()) - hash.add(n,n.getNumExecutors()*100); - - // TODO: add some salt as a query point so that the user can tell Hudson to hop the project to a new node - for(Node n : hash.list(task.getFullDisplayName())) { - JobOffer o = applicable._for(n); - if(o!=null) - return o; - } + public static final LoadBalancer DEFAULT = CONSISTENT_HASH; - // nothing available - return null; - } - }; /** * Wraps this {@link LoadBalancer} into a decorator that tests the basic sanity of the implementation. @@ -132,14 +133,13 @@ public abstract class LoadBalancer /*implements ExtensionPoint*/ { final LoadBalancer base = this; return new LoadBalancer() { @Override - protected JobOffer choose(Task task, ApplicableJobOfferList applicable) { - if (Hudson.getInstance().isQuietingDown()) { + public Mapping map(Task task, MappingWorksheet worksheet) { + if (Queue.ifBlockedByHudsonShutdown(task)) { // if we are quieting down, don't start anything new so that // all executors will be eventually free. return null; } - - return base.choose(task, applicable); + return base.map(task, worksheet); } /** diff --git a/core/src/main/java/hudson/model/LoadStatistics.java b/core/src/main/java/hudson/model/LoadStatistics.java index e739c0a22c8db662ff4f51e5df3daaf17dccbec4..68538892700f9d96e506a4b0dd3648532269d05b 100644 --- a/core/src/main/java/hudson/model/LoadStatistics.java +++ b/core/src/main/java/hudson/model/LoadStatistics.java @@ -39,6 +39,8 @@ import org.jfree.chart.renderer.category.LineAndShapeRenderer; import org.jfree.data.category.CategoryDataset; import org.jfree.ui.RectangleInsets; import org.kohsuke.stapler.QueryParameter; +import org.kohsuke.stapler.export.ExportedBean; +import org.kohsuke.stapler.export.Exported; import java.awt.*; import java.io.IOException; @@ -58,20 +60,24 @@ import java.util.List; * @see Label#loadStatistics * @see Hudson#overallLoad */ +@ExportedBean public abstract class LoadStatistics { /** * Number of busy executors and how it changes over time. */ + @Exported public final MultiStageTimeSeries busyExecutors; /** * Number of total executors and how it changes over time. */ + @Exported public final MultiStageTimeSeries totalExecutors; /** * Number of {@link Queue.BuildableItem}s that can run on any node in this node set but blocked. */ + @Exported public final MultiStageTimeSeries queueLength; protected LoadStatistics(int initialTotalExecutors, int initialBusyExecutors) { @@ -165,6 +171,10 @@ public abstract class LoadStatistics { return createTrendChart(TimeScale.parse(type)); } + public Api getApi() { + return new Api(this); + } + /** * With 0.90 decay ratio for every 10sec, half reduction is about 1 min. */ @@ -201,7 +211,7 @@ public abstract class LoadStatistics { } // update statistics of the entire system - ComputerSet cs = h.getComputer(); + ComputerSet cs = new ComputerSet(); h.overallLoad.totalExecutors.update(cs.getTotalExecutors()); h.overallLoad.busyExecutors .update(cs.getBusyExecutors()); int q=0; diff --git a/core/src/main/java/hudson/model/MultiStageTimeSeries.java b/core/src/main/java/hudson/model/MultiStageTimeSeries.java index dc012634686f47028cc7ffe11808a5a42aa1c18c..6552e8de3d694d559f189180e4f1931340c7a3b6 100644 --- a/core/src/main/java/hudson/model/MultiStageTimeSeries.java +++ b/core/src/main/java/hudson/model/MultiStageTimeSeries.java @@ -35,6 +35,7 @@ import java.util.ArrayList; import java.util.List; import java.io.IOException; import java.awt.*; +import java.util.Locale; import org.jfree.data.category.DefaultCategoryDataset; import org.jfree.chart.JFreeChart; @@ -50,6 +51,8 @@ import org.jvnet.localizer.Localizable; import org.kohsuke.stapler.HttpResponse; import org.kohsuke.stapler.StaplerRequest; import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.export.Exported; +import org.kohsuke.stapler.export.ExportedBean; import javax.servlet.ServletException; @@ -61,6 +64,7 @@ import javax.servlet.ServletException; * * @author Kohsuke Kawaguchi */ +@ExportedBean public class MultiStageTimeSeries { /** * Name of this data series. @@ -75,14 +79,17 @@ public class MultiStageTimeSeries { /** * Updated every 10 seconds. Keep data up to 1 hour. */ + @Exported public final TimeSeries sec10; /** * Updated every 1 min. Keep data up to 1 day. */ + @Exported public final TimeSeries min; /** * Updated every 1 hour. Keep data up to 4 weeks. */ + @Exported public final TimeSeries hour; private int counter; @@ -96,7 +103,7 @@ public class MultiStageTimeSeries { } /** - * @deprecated + * @deprecated since 2009-04-05. * Use {@link #MultiStageTimeSeries(Localizable, Color, float, float)} */ public MultiStageTimeSeries(float initialValue, float decay) { @@ -132,6 +139,10 @@ public class MultiStageTimeSeries { return pick(timeScale).getLatest(); } + public Api getApi() { + return new Api(this); + } + /** * Choose which datapoint to use. */ @@ -168,7 +179,7 @@ public class MultiStageTimeSeries { */ public static TimeScale parse(String type) { if(type==null) return TimeScale.MIN; - return Enum.valueOf(TimeScale.class, type.toUpperCase()); + return Enum.valueOf(TimeScale.class, type.toUpperCase(Locale.ENGLISH)); } } diff --git a/core/src/main/java/hudson/model/MyView.java b/core/src/main/java/hudson/model/MyView.java index 8002ea224205b964c07cc1e8518a691e73575fb4..5419cac46a66b2e8e72792e14d69e5c51c5f1161 100644 --- a/core/src/main/java/hudson/model/MyView.java +++ b/core/src/main/java/hudson/model/MyView.java @@ -49,6 +49,11 @@ public class MyView extends View { super(name); } + public MyView(String name, ViewGroup owner) { + this(name); + this.owner = owner; + } + @Override public boolean contains(TopLevelItem item) { return item.hasPermission(Job.CONFIGURE); diff --git a/core/src/main/java/hudson/model/MyViewsProperty.java b/core/src/main/java/hudson/model/MyViewsProperty.java new file mode 100644 index 0000000000000000000000000000000000000000..b551fef647fb8707ba81bee0a51f87bc0c5ca147 --- /dev/null +++ b/core/src/main/java/hudson/model/MyViewsProperty.java @@ -0,0 +1,275 @@ +/* + * The MIT License + * + * Copyright (c) 2004-2010, Sun Microsystems, Inc., Tom Huybrechts + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.model; + +import hudson.Extension; +import hudson.Util; +import hudson.model.Descriptor.FormException; +import hudson.security.ACL; +import hudson.security.Permission; +import hudson.util.FormValidation; +import hudson.views.MyViewsTabBar; +import hudson.views.ViewsTabBar; + +import java.io.IOException; +import java.text.ParseException; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.List; +import java.util.concurrent.CopyOnWriteArrayList; +import java.util.logging.Level; +import java.util.logging.Logger; + +import javax.servlet.ServletException; + +import net.sf.json.JSONObject; + +import org.acegisecurity.AccessDeniedException; +import org.kohsuke.stapler.DataBoundConstructor; +import org.kohsuke.stapler.HttpRedirect; +import org.kohsuke.stapler.HttpResponse; +import org.kohsuke.stapler.QueryParameter; +import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerResponse; + +/** + * A UserProperty that remembers user-private views. + * + * @author Tom Huybrechts + */ +public class MyViewsProperty extends UserProperty implements ViewGroup, Action { + + private static final Logger log = Logger.getLogger(MyViewsProperty.class.getName()); + + private String primaryViewName; + /** + * Always hold at least one view. + */ + private CopyOnWriteArrayList views = new CopyOnWriteArrayList(); + + @DataBoundConstructor + public MyViewsProperty(String primaryViewName) { + this.primaryViewName = primaryViewName; + } + + private MyViewsProperty() { + views.add(new AllView(Messages.Hudson_ViewName(), this)); + primaryViewName = views.get(0).getViewName(); + } + + public String getPrimaryViewName() { + return primaryViewName; + } + + public void setPrimaryViewName(String primaryViewName) { + this.primaryViewName = primaryViewName; + } + + public User getUser() { + return user; + } + + ///// ViewGroup methods ///// + public String getUrl() { + return user.getUrl() + "/my-views/"; + } + + public void save() throws IOException { + user.save(); + } + + public Collection getViews() { + List copy = new ArrayList(views); + Collections.sort(copy, View.SORTER); + return copy; + } + + public View getView(String name) { + for (View v : views) { + if (v.getViewName().equals(name)) { + return v; + } + } + return null; + } + + public boolean canDelete(View view) { + return views.size() > 1; // Cannot delete last view + } + + public void deleteView(View view) throws IOException { + if (views.size() <= 1) { + throw new IllegalStateException("Cannot delete last view"); + } + views.remove(view); + if (view.getViewName().equals(primaryViewName)) { + primaryViewName = views.get(0).getViewName(); + } + save(); + } + + public void onViewRenamed(View view, String oldName, String newName) { + if (primaryViewName.equals(oldName)) { + primaryViewName = newName; + try { + save(); + } catch (IOException ex) { + log.log(Level.SEVERE, "error while saving user " + user.getId(), ex); + } + } + } + + public void addView(View view) throws IOException { + views.add(view); + save(); + } + + public View getPrimaryView() { + if (primaryViewName != null) { + View view = getView(primaryViewName); + if (view != null) return view; + } + + return views.get(0); + } + + public HttpResponse doIndex() { + return new HttpRedirect("view/" + getPrimaryView().getViewName() + "/"); + } + + public synchronized void doCreateView(StaplerRequest req, StaplerResponse rsp) + throws IOException, ServletException, ParseException, FormException { + checkPermission(View.CREATE); + addView(View.create(req, rsp, this)); + } + + /** + * Checks if a private view with the given name exists. + * An error is returned if exists==true but the view does not exist. + * An error is also returned if exists==false but the view does exist. + **/ + public FormValidation doViewExistsCheck(@QueryParameter String value, @QueryParameter boolean exists) { + checkPermission(View.CREATE); + + String view = Util.fixEmpty(value); + if (view == null) return FormValidation.ok(); + if (exists) { + return (getView(view)!=null) ? + FormValidation.ok() : + FormValidation.error(Messages.MyViewsProperty_ViewExistsCheck_NotExist(view)); + } else { + return (getView(view)==null) ? + FormValidation.ok() : + FormValidation.error(Messages.MyViewsProperty_ViewExistsCheck_AlreadyExists(view)); + } + } + + public ACL getACL() { + return user.getACL(); + } + + public void checkPermission(Permission permission) throws AccessDeniedException { + getACL().checkPermission(permission); + } + + public boolean hasPermission(Permission permission) { + return getACL().hasPermission(permission); + } + + ///// Action methods ///// + public String getDisplayName() { + return Messages.MyViewsProperty_DisplayName(); + } + + public String getIconFileName() { + return "user.gif"; + } + + public String getUrlName() { + return "my-views"; + } + + @Extension + public static class DescriptorImpl extends UserPropertyDescriptor { + + @Override + public String getDisplayName() { + return Messages.MyViewsProperty_DisplayName(); + } + + @Override + public UserProperty newInstance(User user) { + return new MyViewsProperty(); + } + } + + @Override + public UserProperty reconfigure(StaplerRequest req, JSONObject form) throws FormException { + req.bindJSON(this, form); + return this; + } + + public Object readResolve() { + if (views == null) + // this shouldn't happen, but an error in 1.319 meant the last view could be deleted + views = new CopyOnWriteArrayList(); + + if (views.isEmpty()) + // preserve the non-empty invariant + views.add(new AllView(Messages.Hudson_ViewName(), this)); + return this; + } + + public ViewsTabBar getViewsTabBar() { + return Hudson.getInstance().getViewsTabBar(); + } + + public MyViewsTabBar getMyViewsTabBar() { + return Hudson.getInstance().getMyViewsTabBar(); + } + + @Extension + public static class GlobalAction implements RootAction { + + public String getDisplayName() { + return Messages.MyViewsProperty_GlobalAction_DisplayName(); + } + + public String getIconFileName() { + // do not show when not logged in + if (User.current() == null ) { + return null; + } + + return "user.gif"; + } + + public String getUrlName() { + return "/me/my-views"; + } + + } + +} diff --git a/core/src/main/java/hudson/model/Node.java b/core/src/main/java/hudson/model/Node.java index 90401835112290e7012078e966163f29cf52b593..b48c4e6b46e4d048e87ca36367de8682f2a4aa60 100644 --- a/core/src/main/java/hudson/model/Node.java +++ b/core/src/main/java/hudson/model/Node.java @@ -1,7 +1,8 @@ /* * The MIT License * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe, Stephen Connolly + * Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, + * Seiji Sogabe, Stephen Connolly * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -23,10 +24,14 @@ */ package hudson.model; +import com.infradna.tool.bridge_method_injector.WithBridgeMethods; import hudson.ExtensionPoint; import hudson.FilePath; import hudson.FileSystemProvisioner; import hudson.Launcher; +import hudson.model.Queue.Task; +import hudson.model.labels.LabelAtom; +import hudson.model.queue.CauseOfBlockage; import hudson.node_monitors.NodeMonitor; import hudson.remoting.VirtualChannel; import hudson.security.ACL; @@ -38,12 +43,18 @@ import hudson.slaves.NodePropertyDescriptor; import hudson.util.ClockDifference; import hudson.util.DescribableList; import hudson.util.EnumConverter; +import hudson.util.TagCloud; +import hudson.util.TagCloud.WeightFunction; import java.io.IOException; +import java.util.Collections; +import java.util.HashSet; import java.util.Set; import java.util.List; import org.kohsuke.stapler.Stapler; +import org.kohsuke.stapler.export.ExportedBean; +import org.kohsuke.stapler.export.Exported; /** * Base type of Hudson slaves (although in practice, you probably extend {@link Slave} to define a new slave type.) @@ -55,7 +66,13 @@ import org.kohsuke.stapler.Stapler; * @see NodeMonitor * @see NodeDescriptor */ +@ExportedBean public abstract class Node extends AbstractModelObject implements Describable, ExtensionPoint, AccessControlled { + /** + * Newly copied slaves get this flag set, so that Hudson doesn't try to start this node until its configuration + * is saved once. + */ + protected volatile transient boolean holdOffLaunchUntilSave; public String getDisplayName() { return getNodeName(); // default implementation @@ -65,12 +82,17 @@ public abstract class Node extends AbstractModelObject implements DescribablegetExecutors().size() * because it takes time to adjust the number of executors. */ + @Exported public abstract int getNumExecutors(); /** @@ -111,6 +135,7 @@ public abstract class Node extends AbstractModelObject implements Describable getLabelCloud() { + return new TagCloud(getAssignedLabels(),new WeightFunction() { + public float weight(LabelAtom item) { + return item.getTiedJobs().size(); + } + }); + } /** * Returns the possibly empty set of labels that are assigned to this node, - * including the automatic {@link #getSelfLabel() self label}. + * including the automatic {@link #getSelfLabel() self label}, manually + * assigned labels and dynamically assigned labels via the + * {@link LabelFinder} extension point. + * + * This method has a side effect of updating the hudson-wide set of labels + * and should be called after events that will change that - e.g. a slave + * connecting. */ - public abstract Set

    + * This method is invoked when the user fills in the parameter values in the HTML form + * and submits it to the server. */ public abstract ParameterValue createValue(StaplerRequest req, JSONObject jo); /** - * Create a parameter value from a GET (with query string) or POST. + * Create a parameter value from a GET with query string. * If no value is available in the request, it returns a default value if possible, or null. - * @param req - * @return + * + *

    + * Unlike {@link #createValue(StaplerRequest, JSONObject)}, this method is intended to support + * the programmatic POST-ing of the build URL. This form is less expressive (as it doesn't support + * the tree form), but it's more scriptable. + * + *

    + * If a {@link ParameterDefinition} can't really support this mode of creating a value, + * you may just always return null. */ public abstract ParameterValue createValue(StaplerRequest req); + + /** + * Create a parameter value from the string given in the CLI. + * + * @param command + * This is the command that got the parameter. You can use its {@link CLICommand#channel} + * for interacting with the CLI JVM. + * @throws AbortException + * If the CLI processing should be aborted. Hudson will report the error message + * without stack trace, and then exits this command. Useful for graceful termination. + * @throws Exception + * All the other exceptions cause the stack trace to be dumped, and then + * the command exits with an error code. + * @since 1.334 + */ + public ParameterValue createValue(CLICommand command, String value) throws IOException, InterruptedException { + throw new AbortException("CLI parameter submission is not supported for the "+getClass()+" type. Please file a bug report for this"); + } + /** * Returns default parameter value for this definition. * * @return default parameter value or null if no defaults are available * @since 1.253 */ + @Exported public ParameterValue getDefaultParameterValue() { return null; } @@ -148,7 +185,7 @@ public abstract class ParameterDefinition implements * Returns all the registered {@link ParameterDefinition} descriptors. */ public static DescriptorExtensionList all() { - return Hudson.getInstance().getDescriptorList(ParameterDefinition.class); + return Hudson.getInstance().getDescriptorList(ParameterDefinition.class); } /** @@ -183,7 +220,5 @@ public abstract class ParameterDefinition implements public String getDisplayName() { return "Parameter"; } - } - } diff --git a/core/src/main/java/hudson/model/ParameterValue.java b/core/src/main/java/hudson/model/ParameterValue.java index f0b746374b2e11e65c24dff8a3368fd33e3f3f6e..622b34458d585e36f4fef10fc81927206c36c985 100644 --- a/core/src/main/java/hudson/model/ParameterValue.java +++ b/core/src/main/java/hudson/model/ParameterValue.java @@ -1,7 +1,8 @@ /* * The MIT License * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Tom Huybrechts + * Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Tom Huybrechts, + * Yahoo! Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -23,6 +24,8 @@ */ package hudson.model; +import hudson.EnvVars; +import hudson.Util; import hudson.tasks.BuildWrapper; import hudson.tasks.Builder; import hudson.util.VariableResolver; @@ -30,9 +33,7 @@ import hudson.util.VariableResolver; import java.io.Serializable; import java.util.Map; -import net.sf.json.JSONObject; -import org.kohsuke.stapler.StaplerRequest; import org.kohsuke.stapler.export.Exported; import org.kohsuke.stapler.export.ExportedBean; @@ -62,9 +63,9 @@ import org.kohsuke.stapler.export.ExportedBean; * * @see ParameterDefinition */ -@ExportedBean +@ExportedBean(defaultVisibility=3) public abstract class ParameterValue implements Serializable { - protected final String name; + protected final String name; private String description; @@ -91,7 +92,7 @@ public abstract class ParameterValue implements Serializable { * This uniquely distinguishes {@link ParameterValue} among other parameters * for the same build. This must be the same as {@link ParameterDefinition#getName()}. */ - @Exported(visibility=3) + @Exported public final String getName() { return name; } @@ -109,23 +110,52 @@ public abstract class ParameterValue implements Serializable { * expected to add more values to this map (or do nothing) * *

    - * Environment variables should be by convention all upper case. - * (This is so that a Windows/Unix heterogenous environment + * Environment variables should be by convention all upper case. + * (This is so that a Windows/Unix heterogeneous environment * won't get inconsistent result depending on which platform to - * execute.) + * execute.) (see {@link EnvVars} why upper casing is a bad idea.) * * @param env * never null. * @param build * The build for which this parameter is being used. Never null. + * @deprecated as of 1.344 + * Use {@link #buildEnvVars(AbstractBuild, EnvVars)} instead. */ public void buildEnvVars(AbstractBuild build, Map env) { - // no-op by default + if (env instanceof EnvVars && Util.isOverridden(ParameterValue.class,getClass(),"buildEnvVars", AbstractBuild.class,EnvVars.class)) + // if the subtype already derives buildEnvVars(AbstractBuild,Map), then delegate to it + buildEnvVars(build,(EnvVars)env); + + // otherwise no-op by default + } + + /** + * Adds environmental variables for the builds to the given map. + * + *

    + * This provides a means for a parameter to pass the parameter + * values to the build to be performed. + * + *

    + * When this method is invoked, the map already contains the + * current "planned export" list. The implementation is + * expected to add more values to this map (or do nothing) + * + * @param env + * never null. + * @param build + * The build for which this parameter is being used. Never null. + */ + public void buildEnvVars(AbstractBuild build, EnvVars env) { + // for backward compatibility + buildEnvVars(build,(Map)env); } /** - * Called at the beginning of a build to let a {@link ParameterValue} - * contributes a {@link BuildWrapper} to the build. + * Called at the beginning of a build (but after {@link SCM} operations + * have taken place) to let a {@link ParameterValue} contributes a + * {@link BuildWrapper} to the build. * *

    * This provides a means for a parameter to perform more extensive @@ -161,7 +191,7 @@ public abstract class ParameterValue implements Serializable { /** * Accessing {@link ParameterDefinition} is not a good idea. * - * @deprecated + * @deprecated since 2008-09-20. * parameter definition may change any time. So if you find yourself * in need of accessing the information from {@link ParameterDefinition}, * instead copy them in {@link ParameterDefinition#createValue(StaplerRequest, JSONObject)} @@ -172,28 +202,54 @@ public abstract class ParameterValue implements Serializable { } @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + ((name == null) ? 0 : name.hashCode()); - return result; - } - - @Override - public boolean equals(Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - ParameterValue other = (ParameterValue) obj; - if (name == null) { - if (other.name != null) - return false; - } else if (!name.equals(other.name)) - return false; - return true; - } + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((name == null) ? 0 : name.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + ParameterValue other = (ParameterValue) obj; + if (name == null) { + if (other.name != null) + return false; + } else if (!name.equals(other.name)) + return false; + return true; + } + + /** + * Computes a human-readable possible-localized one-line description of the parameter value. + * + *

    + * This message is used as a tooltip to describe jobs in the queue. The text should be one line without + * new line. No HTML allowed (the caller will perform necessary HTML escapes, so any text can be returend.) + * + * @since 1.323 + */ + public String getShortDescription() { + return toString(); + } + /** + * Returns whether the information contained in this ParameterValue is + * sensitive or security related. Used to determine whether the value + * provided by this object should be masked in output. + * + *

    + * Subclasses can override this to control the returne value. + * + * @since 1.378 + */ + public boolean isSensitive() { + return false; +} } diff --git a/core/src/main/java/hudson/model/ParametersAction.java b/core/src/main/java/hudson/model/ParametersAction.java index 2cefa7e354884ba6881f15015c5241593844846e..a139bdbd546089cc0d8777059acb1acdd7610a8f 100644 --- a/core/src/main/java/hudson/model/ParametersAction.java +++ b/core/src/main/java/hudson/model/ParametersAction.java @@ -1,7 +1,7 @@ /* * The MIT License * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Jean-Baptiste Quenot, Seiji Sogabe, Tom Huybrechts + * Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Jean-Baptiste Quenot, Seiji Sogabe, Tom Huybrechts * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -24,6 +24,8 @@ package hudson.model; import hudson.Util; +import hudson.EnvVars; +import hudson.diagnosis.OldDataMonitor; import hudson.model.Queue.QueueAction; import hudson.tasks.BuildStep; import hudson.tasks.BuildWrapper; @@ -37,7 +39,6 @@ import java.util.Collections; import java.util.HashSet; import java.util.Iterator; import java.util.List; -import java.util.Map; import java.util.Set; /** @@ -49,7 +50,7 @@ import java.util.Set; * that were specified when scheduling. */ @ExportedBean -public class ParametersAction implements Action, Iterable, QueueAction { +public class ParametersAction implements Action, Iterable, QueueAction, EnvironmentContributingAction { private final List parameters; @@ -63,7 +64,7 @@ public class ParametersAction implements Action, Iterable, Queue } public ParametersAction(ParameterValue... parameters) { - this(Arrays.asList(parameters)); + this(Arrays.asList(parameters)); } public void createBuildWrappers(AbstractBuild build, Collection result) { @@ -73,7 +74,7 @@ public class ParametersAction implements Action, Iterable, Queue } } - public void buildEnvVars(AbstractBuild build, Map env) { + public void buildEnvVars(AbstractBuild build, EnvVars env) { for (ParameterValue p : parameters) p.buildEnvVars(build,env); } @@ -111,6 +112,13 @@ public class ParametersAction implements Action, Iterable, Queue return Collections.unmodifiableList(parameters); } + public ParameterValue getParameter(String name) { + for (ParameterValue p : parameters) + if (p.getName().equals(name)) + return p; + return null; + } + public String getDisplayName() { return Messages.ParameterAction_DisplayName(); } @@ -126,18 +134,23 @@ public class ParametersAction implements Action, Iterable, Queue /** * Allow an other build of the same project to be scheduled, if it has other parameters. */ - public boolean shouldSchedule(List actions) { - List others = Util.filter(actions, ParametersAction.class); - if (others.isEmpty()) { - return !parameters.isEmpty(); - } else { - // I don't think we need multiple ParametersActions, but let's be defensive - Set parameters = new HashSet(); - for (ParametersAction other: others) { - parameters.addAll(other.parameters); - } - return !parameters.equals(new HashSet(this.parameters)); - } - } + public boolean shouldSchedule(List actions) { + List others = Util.filter(actions, ParametersAction.class); + if (others.isEmpty()) { + return !parameters.isEmpty(); + } else { + // I don't think we need multiple ParametersActions, but let's be defensive + Set params = new HashSet(); + for (ParametersAction other: others) { + params.addAll(other.parameters); + } + return !params.equals(new HashSet(this.parameters)); + } + } + private Object readResolve() { + if (build != null) + OldDataMonitor.report(build, "1.283"); + return this; + } } diff --git a/core/src/main/java/hudson/model/ParametersDefinitionProperty.java b/core/src/main/java/hudson/model/ParametersDefinitionProperty.java index 1a54eb700dac17afb25ae9a243dc36aaa10349d4..616ac436f7eaa978fd7d6e950ba55c25536ad7b5 100644 --- a/core/src/main/java/hudson/model/ParametersDefinitionProperty.java +++ b/core/src/main/java/hudson/model/ParametersDefinitionProperty.java @@ -1,7 +1,8 @@ /* * The MIT License * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Jean-Baptiste Quenot, Seiji Sogabe, Tom Huybrechts + * Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, + * Jean-Baptiste Quenot, Seiji Sogabe, Tom Huybrechts * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -26,7 +27,10 @@ package hudson.model; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; +import java.util.Collection; +import java.util.Collections; import java.util.List; +import java.util.AbstractList; import javax.servlet.ServletException; @@ -35,6 +39,9 @@ import net.sf.json.JSONObject; import org.kohsuke.stapler.StaplerRequest; import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.export.Exported; +import org.kohsuke.stapler.export.ExportedBean; + import hudson.Extension; /** @@ -44,6 +51,7 @@ import hudson.Extension; * This class also implements {@link Action} so that index.jelly provides * a form to enter build parameters. */ +@ExportedBean(defaultVisibility=2) public class ParametersDefinitionProperty extends JobProperty> implements Action { @@ -61,13 +69,29 @@ public class ParametersDefinitionProperty extends JobProperty getParameterDefinitions() { return parameterDefinitions; } + /** + * Gets the names of all the parameter definitions. + */ + public List getParameterDefinitionNames() { + return new AbstractList() { + public String get(int index) { + return parameterDefinitions.get(index).getName(); + } + + public int size() { + return parameterDefinitions.size(); + } + }; + } + @Override - public Action getJobAction(AbstractProject job) { - return this; + public Collection getJobActions(AbstractProject job) { + return Collections.singleton(this); } public AbstractProject getProject() { @@ -103,14 +127,14 @@ public class ParametersDefinitionProperty extends JobProperty values = new ArrayList(); for (ParameterDefinition d: parameterDefinitions) { ParameterValue value = d.createValue(req); @@ -121,8 +145,8 @@ public class ParametersDefinitionProperty extends JobProperty

    @@ -146,6 +146,34 @@ public interface PermalinkProjectAction extends Action { return job.getLastFailedBuild(); } }); + + BUILTIN.add(new Permalink() { + public String getDisplayName() { + return Messages.Permalink_LastUnstableBuild(); + } + + public String getId() { + return "lastUnstableBuild"; + } + + public Run resolve(Job job) { + return job.getLastUnstableBuild(); + } + }); + + BUILTIN.add(new Permalink() { + public String getDisplayName() { + return Messages.Permalink_LastUnsuccessfulBuild(); + } + + public String getId() { + return "lastUnsuccessfulBuild"; + } + + public Run resolve(Job job) { + return job.getLastUnsuccessfulBuild(); + } + }); } } } diff --git a/core/src/main/java/hudson/model/PersistenceRoot.java b/core/src/main/java/hudson/model/PersistenceRoot.java index 418f835357cfd6395ddc95f7c86df09071fffe66..4e417d0539631bc8c9cff912a4f609b2bab1fa78 100644 --- a/core/src/main/java/hudson/model/PersistenceRoot.java +++ b/core/src/main/java/hudson/model/PersistenceRoot.java @@ -34,7 +34,7 @@ import java.io.File; public interface PersistenceRoot extends Saveable { /** * Gets the root directory on the file system that this - * {@link Item} can use freely fore storing the configuration data. + * {@link Item} can use freely for storing the configuration data. * *

    * This parameter is given by the {@link ItemGroup} when diff --git a/core/src/main/java/hudson/model/Project.java b/core/src/main/java/hudson/model/Project.java index 48189b9c1b1f20cd0ac562a17871c744f4091be6..19dfef130a33419f8ff181ff2a629ff840788355 100644 --- a/core/src/main/java/hudson/model/Project.java +++ b/core/src/main/java/hudson/model/Project.java @@ -1,7 +1,7 @@ /* * The MIT License * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Jorg Heymans, Stephen Connolly, Tom Huybrechts + * Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Jorg Heymans, Stephen Connolly, Tom Huybrechts * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -24,6 +24,7 @@ package hudson.model; import hudson.Util; +import hudson.diagnosis.OldDataMonitor; import hudson.model.Descriptor.FormException; import hudson.tasks.BuildStep; import hudson.tasks.BuildStepDescriptor; @@ -54,7 +55,7 @@ import java.util.Set; * @author Kohsuke Kawaguchi */ public abstract class Project

    ,B extends Build> - extends AbstractProject implements SCMedItem, Saveable, ProjectWithMaven { + extends AbstractProject implements SCMedItem, Saveable, ProjectWithMaven, BuildableItemWithBuildWrappers { /** * List of active {@link Builder}s configured for this project. @@ -81,12 +82,15 @@ public abstract class Project

    ,B extends Build> super(parent,name); } + @Override public void onLoad(ItemGroup parent, String name) throws IOException { super.onLoad(parent, name); - if(buildWrappers==null) + if (buildWrappers==null) { // it didn't exist in < 1.64 buildWrappers = new DescribableList>(this); + OldDataMonitor.report(this, "1.64"); + } builders.setOwner(this); publishers.setOwner(this); buildWrappers.setOwner(this); @@ -116,6 +120,10 @@ public abstract class Project

    ,B extends Build> return buildWrappers.toMap(); } + public DescribableList> getBuildWrappersList() { + return buildWrappers; + } + @Override protected Set getResourceActivities() { final Set activities = new HashSet(); @@ -164,18 +172,12 @@ public abstract class Project

    ,B extends Build> @Override public boolean isFingerprintConfigured() { - for (Publisher p : publishers) { - if(p instanceof Fingerprinter) - return true; - } - return false; + return getPublishersList().get(Fingerprinter.class)!=null; } public MavenInstallation inferMavenInstallation() { - for (Builder builder : builders) { - if (builder instanceof Maven) - return ((Maven) builder).getMaven(); - } + Maven m = getBuildersList().get(Maven.class); + if (m!=null) return m.getMaven(); return null; } @@ -194,40 +196,33 @@ public abstract class Project

    ,B extends Build> buildWrappers.rebuild(req,json, BuildWrappers.getFor(this)); builders.rebuildHetero(req,json, Builder.all(), "builder"); publishers.rebuild(req, json, BuildStepDescriptor.filter(Publisher.all(), this.getClass())); - updateTransientActions(); // to pick up transient actions from builder, publisher, etc. - } - - protected void updateTransientActions() { - synchronized(transientActions) { - super.updateTransientActions(); - - for (BuildStep step : builders) { - Action a = step.getProjectAction(this); - if(a!=null) - transientActions.add(a); - } - for (BuildStep step : publishers) { - Action a = step.getProjectAction(this); - if(a!=null) - transientActions.add(a); - } - for (BuildWrapper step : buildWrappers) { - Action a = step.getProjectAction(this); - if(a!=null) - transientActions.add(a); - } - for (Trigger trigger : triggers) { - Action a = trigger.getProjectAction(); - if(a!=null) - transientActions.add(a); - } - } + } + + @Override + protected List createTransientActions() { + List r = super.createTransientActions(); + + for (BuildStep step : getBuildersList()) + r.addAll(step.getProjectActions(this)); + for (BuildStep step : getPublishersList()) + r.addAll(step.getProjectActions(this)); + for (BuildWrapper step : getBuildWrappers().values()) + r.addAll(step.getProjectActions(this)); + for (Trigger trigger : getTriggers().values()) + r.addAll(trigger.getProjectActions()); + + return r; } /** - * @deprecated - * left for legacy config file compatibility + * @deprecated since 2006-11-05. + * Left for legacy config file compatibility */ @Deprecated private transient String slave; -} \ No newline at end of file + + private Object readResolve() { + if (slave != null) OldDataMonitor.report(this, "1.60"); + return this; + } +} diff --git a/core/src/main/java/hudson/model/ProminentProjectAction.java b/core/src/main/java/hudson/model/ProminentProjectAction.java index 84c959bcb2765be5b9e0e35cca82c260c07a42e1..082f87580ed3a32fa92f7f67c5a884ff446993a9 100644 --- a/core/src/main/java/hudson/model/ProminentProjectAction.java +++ b/core/src/main/java/hudson/model/ProminentProjectAction.java @@ -23,6 +23,10 @@ */ package hudson.model; +import hudson.tasks.BuildStep; +import hudson.tasks.BuildWrapper; +import hudson.triggers.Trigger; + /** * Marker interface for {@link Action}s that should be displayed * at the top of the project page. @@ -31,6 +35,11 @@ package hudson.model; * are used to create a large, more visible icon in the top page to draw * users' attention. * + * @see BuildStep#getProjectActions(AbstractProject) + * @see BuildWrapper#getProjectActions(AbstractProject) + * @see Trigger#getProjectActions() + * @see JobProperty#getJobActions(Job) + * * @author Kohsuke Kawaguchi */ public interface ProminentProjectAction extends Action { diff --git a/core/src/main/java/hudson/model/ProxyView.java b/core/src/main/java/hudson/model/ProxyView.java new file mode 100644 index 0000000000000000000000000000000000000000..23383959844fe5e9c62a803826591dea78918c71 --- /dev/null +++ b/core/src/main/java/hudson/model/ProxyView.java @@ -0,0 +1,146 @@ +/* + * The MIT License + * + * Copyright (c) 2004-2009, Sun Microsystems, Inc., Tom Huybrechts + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.model; + +import hudson.Extension; +import hudson.Util; +import hudson.model.Descriptor.FormException; +import hudson.util.FormValidation; +import java.io.IOException; +import java.util.Collection; +import javax.servlet.ServletException; +import org.kohsuke.stapler.DataBoundConstructor; +import org.kohsuke.stapler.QueryParameter; +import org.kohsuke.stapler.Stapler; +import org.kohsuke.stapler.StaplerFallback; +import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerResponse; + +/** + * A view that delegates to another. + * + * TODO: this does not respond to renaming or deleting the proxied view. + * + * @author Tom Huybrechts + * + */ +public class ProxyView extends View implements StaplerFallback { + + private String proxiedViewName; + + @DataBoundConstructor + public ProxyView(String name) { + super(name); + + if (Hudson.getInstance().getView(name) != null) { + // if this is a valid global view name, let's assume the + // user wants to show it + proxiedViewName = name; + } + } + + public View getProxiedView() { + if (proxiedViewName == null) { + // just so we avoid errors just after creation + return Hudson.getInstance().getPrimaryView(); + } else { + return Hudson.getInstance().getView(proxiedViewName); + } + } + + public String getProxiedViewName() { + return proxiedViewName; + } + + public void setProxiedViewName(String proxiedViewName) { + this.proxiedViewName = proxiedViewName; + } + + @Override + public Collection getItems() { + return getProxiedView().getItems(); + } + + @Override + public boolean contains(TopLevelItem item) { + return getProxiedView().contains(item); + } + + @Override + public void onJobRenamed(Item item, String oldName, String newName) { + if (oldName.equals(proxiedViewName)) { + proxiedViewName = newName; + } + } + + @Override + protected void submit(StaplerRequest req) throws IOException, ServletException, FormException { + String proxiedViewName = req.getSubmittedForm().getString("proxiedViewName"); + if (Hudson.getInstance().getView(proxiedViewName) == null) { + throw new FormException("Not an existing global view", "proxiedViewName"); + } + this.proxiedViewName = proxiedViewName; + } + + @Override + public Item doCreateItem(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException { + return getProxiedView().doCreateItem(req, rsp); + } + + /** + * Fails if a global view with the given name does not exist. + */ + public FormValidation doViewExistsCheck(@QueryParameter String value) { + checkPermission(View.CREATE); + + String view = Util.fixEmpty(value); + if(view==null) return FormValidation.ok(); + + if(Hudson.getInstance().getView(view)!=null) + return FormValidation.ok(); + else + return FormValidation.error(Messages.ProxyView_NoSuchViewExists(value)); + } + + @Extension + public static class DescriptorImpl extends ViewDescriptor { + + @Override + public String getDisplayName() { + return Messages.ProxyView_DisplayName(); + } + + @Override + public boolean isInstantiable() { + // doesn't make sense to add a ProxyView to the global views + return !(Stapler.getCurrentRequest().findAncestorObject(ViewGroup.class) instanceof Hudson); + } + + } + + public Object getStaplerFallback() { + return getProxiedView(); + } + +} diff --git a/core/src/main/java/hudson/model/Queue.java b/core/src/main/java/hudson/model/Queue.java index e066fae4d29adc92f1c730621a963938865b1265..62e9e1726b6190658959a86f5ad60ff977a2088f 100644 --- a/core/src/main/java/hudson/model/Queue.java +++ b/core/src/main/java/hudson/model/Queue.java @@ -1,7 +1,7 @@ /* * The MIT License * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Stephen Connolly, Tom Huybrechts + * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Stephen Connolly, Tom Huybrechts, InfraDNA, Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -23,15 +23,44 @@ */ package hudson.model; +import hudson.AbortException; import hudson.BulkChange; +import hudson.ExtensionList; +import hudson.ExtensionPoint; import hudson.Util; import hudson.XmlFile; +import hudson.init.Initializer; +import static hudson.init.InitMilestone.JOB_LOADED; +import static hudson.util.Iterators.reverse; + +import hudson.cli.declarative.CLIMethod; +import hudson.cli.declarative.CLIResolver; +import hudson.model.queue.AbstractQueueTask; +import hudson.model.queue.Executables; +import hudson.model.queue.SubTask; +import hudson.model.queue.FutureImpl; +import hudson.model.queue.MappingWorksheet; +import hudson.model.queue.MappingWorksheet.Mapping; +import hudson.model.queue.QueueSorter; +import hudson.model.queue.QueueTaskDispatcher; +import hudson.model.queue.Tasks; +import hudson.model.queue.WorkUnit; import hudson.model.Node.Mode; +import hudson.model.listeners.SaveableListener; +import hudson.model.queue.CauseOfBlockage; +import hudson.model.queue.FoldableAction; +import hudson.model.queue.CauseOfBlockage.BecauseLabelIsBusy; +import hudson.model.queue.CauseOfBlockage.BecauseNodeIsOffline; +import hudson.model.queue.CauseOfBlockage.BecauseLabelIsOffline; +import hudson.model.queue.CauseOfBlockage.BecauseNodeIsBusy; +import hudson.model.queue.WorkUnitContext; import hudson.triggers.SafeTimerTask; import hudson.triggers.Trigger; import hudson.util.OneShotEvent; import hudson.util.TimeUnit2; import hudson.util.XStream2; +import hudson.util.ConsistentHash; +import hudson.util.ConsistentHash.Hash; import java.io.BufferedReader; import java.io.File; @@ -42,6 +71,8 @@ import java.lang.ref.WeakReference; import java.util.ArrayList; import java.util.Arrays; import java.util.Calendar; +import java.util.Collection; +import java.util.Collections; import java.util.GregorianCalendar; import java.util.HashMap; import java.util.Iterator; @@ -52,6 +83,7 @@ import java.util.Set; import java.util.TreeSet; import java.util.Map.Entry; import java.util.concurrent.atomic.AtomicInteger; +import java.util.concurrent.Future; import java.util.logging.Level; import java.util.logging.Logger; @@ -82,7 +114,7 @@ import com.thoughtworks.xstream.converters.basic.AbstractSingleValueConverter; * | ^ * | | * | v - * +--> buildables ---> (executed) + * +--> buildables ---> pending ---> (executed) * * *

    @@ -113,9 +145,16 @@ public class Queue extends ResourceController implements Saveable { /** * {@link Task}s that can be built immediately * that are waiting for available {@link Executor}. + * This list is sorted in such a way that earlier items are built earlier. */ private final ItemList buildables = new ItemList(); + /** + * {@link Task}s that are being handed over to the executor, but execution + * has not started yet. + */ + private final ItemList pendings = new ItemList(); + /** * Data structure created for each idle {@link Executor}. * This is a job offer from the queue to an executor. @@ -123,43 +162,52 @@ public class Queue extends ResourceController implements Saveable { *

    * An idle executor (that calls {@link Queue#pop()} creates * a new {@link JobOffer} and gets itself {@linkplain Queue#parked parked}, - * and we'll eventually hand out an {@link #item} to build. + * and we'll eventually hand out an {@link #workUnit} to build. */ - public static class JobOffer { + public class JobOffer extends MappingWorksheet.ExecutorSlot { public final Executor executor; /** * Used to wake up an executor, when it has an offered * {@link Project} to build. */ - private final OneShotEvent event = new OneShotEvent(); + private final OneShotEvent event = new OneShotEvent(Queue.this); /** - * The project that this {@link Executor} is going to build. + * The work unit that this {@link Executor} is going to handle. * (Or null, in which case event is used to trigger a queue maintenance.) */ - private BuildableItem item; + private WorkUnit workUnit; private JobOffer(Executor executor) { this.executor = executor; } - public void set(BuildableItem p) { - assert this.item == null; - this.item = p; + @Override + protected void set(WorkUnit p) { + assert this.workUnit == null; + this.workUnit = p; event.signal(); } + @Override + public Executor getExecutor() { + return executor; + } + /** * Verifies that the {@link Executor} represented by this object is capable of executing the given task. */ public boolean canTake(Task task) { - Label l = task.getAssignedLabel(); - if(l!=null && !l.contains(getNode())) - return false; // the task needs to be executed on label that this node doesn't have. + Node node = getNode(); + if (node==null) return false; // this executor is about to die - if(l==null && getNode().getMode()== Mode.EXCLUSIVE) - return false; // this node is reserved for tasks that are tied to it + if(node.canTake(task)!=null) + return false; // this node is not able to take the task + + for (QueueTaskDispatcher d : QueueTaskDispatcher.all()) + if (d.canTake(node,task)!=null) + return false; return isAvailable(); } @@ -168,7 +216,7 @@ public class Queue extends ResourceController implements Saveable { * Is this executor ready to accept some tasks? */ public boolean isAvailable() { - return item == null && !executor.getOwner().isOffline() && executor.getOwner().isAcceptingTasks(); + return workUnit == null && !executor.getOwner().isOffline() && executor.getOwner().isAcceptingTasks(); } public Node getNode() { @@ -187,6 +235,8 @@ public class Queue extends ResourceController implements Saveable { private volatile transient LoadBalancer loadBalancer; + private volatile transient QueueSorter sorter; + public Queue(LoadBalancer loadBalancer) { this.loadBalancer = loadBalancer.sanitize(); // if all the executors are busy doing something, then the queue won't be maintained in @@ -203,6 +253,14 @@ public class Queue extends ResourceController implements Saveable { this.loadBalancer = loadBalancer; } + public QueueSorter getSorter() { + return sorter; + } + + public void setSorter(QueueSorter sorter) { + this.sorter = sorter; + } + /** * Loads the queue contents that was {@link #save() saved}. */ @@ -225,29 +283,29 @@ public class Queue extends ResourceController implements Saveable { queueFile = getXMLQueueFile(); if (queueFile.exists()) { List list = (List) new XmlFile(XSTREAM, queueFile).read(); - if (!list.isEmpty()) { - if (list.get(0) instanceof Queue.Task) { - // backward compatiblity - for (Task task : (List) list) { - add(task, 0); - } - } else if (list.get(0) instanceof Item) { - int maxId = 0; - for (Item item: (List) list) { - maxId = Math.max(maxId, item.id); - if (item instanceof WaitingItem) { - waitingList.add((WaitingItem) item); - } else if (item instanceof BlockedItem) { - blockedProjects.put(item.task, (BlockedItem) item); - } else if (item instanceof BuildableItem) { - buildables.add((BuildableItem) item); - } else { - throw new IllegalStateException("Unknown item type! " + item); - } - } - WaitingItem.COUNTER.set(maxId); - } + int maxId = 0; + for (Object o : list) { + if (o instanceof Task) { + // backward compatibility + schedule((Task)o, 0); + } else if (o instanceof Item) { + Item item = (Item)o; + if(item.task==null) + continue; // botched persistence. throw this one away + + maxId = Math.max(maxId, item.id); + if (item instanceof WaitingItem) { + waitingList.add((WaitingItem) item); + } else if (item instanceof BlockedItem) { + blockedProjects.put(item.task, (BlockedItem) item); + } else if (item instanceof BuildableItem) { + buildables.add((BuildableItem) item); + } else { + throw new IllegalStateException("Unknown item type! " + item); + } + } // this conveniently ignores null } + WaitingItem.COUNTER.set(maxId); // I just had an incident where all the executors are dead at AbstractProject._getRuns() // because runs is null. Debugger revealed that this is caused by a MatrixConfiguration @@ -261,7 +319,7 @@ public class Queue extends ResourceController implements Saveable { } } } catch (IOException e) { - LOGGER.log(Level.WARNING, "Failed to load the queue file " + getQueueFile(), e); + LOGGER.log(Level.WARNING, "Failed to load the queue file " + getXMLQueueFile(), e); } } @@ -274,23 +332,30 @@ public class Queue extends ResourceController implements Saveable { // write out the tasks on the queue ArrayList items = new ArrayList(); for (Item item: getItems()) { + if(item.task instanceof TransientTask) continue; items.add(item); } - + try { - new XmlFile(XSTREAM, getXMLQueueFile()).write(items); + XmlFile queueFile = new XmlFile(XSTREAM, getXMLQueueFile()); + queueFile.write(items); + SaveableListener.fireOnChange(this, queueFile); } catch (IOException e) { - LOGGER.log(Level.WARNING, "Failed to write out the queue file " + getQueueFile(), e); + LOGGER.log(Level.WARNING, "Failed to write out the queue file " + getXMLQueueFile(), e); } } /** * Wipes out all the items currently in the queue, as if all of them are cancelled at once. */ + @CLIMethod(name="clear-queue") public synchronized void clear() { + Hudson.getInstance().checkPermission(Hudson.ADMINISTER); + for (WaitingItem i : waitingList) + i.onCancelled(); waitingList.clear(); - blockedProjects.clear(); - buildables.clear(); + blockedProjects.cancelAll(); + buildables.cancelAll(); scheduleMaintenance(); } @@ -302,6 +367,14 @@ public class Queue extends ResourceController implements Saveable { return new File(Hudson.getInstance().getRootDir(), "queue.xml"); } + /** + * @deprecated as of 1.311 + * Use {@link #schedule(AbstractProject)} + */ + public boolean add(AbstractProject p) { + return schedule(p)!=null; + } + /** * Schedule a new build for this project. * @@ -309,8 +382,8 @@ public class Queue extends ResourceController implements Saveable { * false if the queue contained it and therefore the add() * was noop */ - public boolean add(AbstractProject p) { - return add(p, p.getQuietPeriod()); + public WaitingItem schedule(AbstractProject p) { + return schedule(p, p.getQuietPeriod()); } /** @@ -320,99 +393,144 @@ public class Queue extends ResourceController implements Saveable { * Left for backward compatibility with <1.114. * * @since 1.105 + * @deprecated as of 1.311 + * Use {@link #schedule(Task, int)} */ - public synchronized boolean add(AbstractProject p, int quietPeriod) { - return add((Task) p, quietPeriod); + public boolean add(AbstractProject p, int quietPeriod) { + return schedule(p, quietPeriod)!=null; } - + /** * Schedules an execution of a task. * - * @param quietPeriod Number of seconds that the task will be placed in queue. - * Useful when the same task is likely scheduled for multiple - * times. - * @return true if the project 'p' is actually added to the queue. - * false if the queue contained it and therefore the add() - * was noop, or just changed the due date of the task. - * @since 1.114 + * @param actions + * These actions can be used for associating information scoped to a particular build, to + * the task being queued. Upon the start of the build, these {@link Action}s will be automatically + * added to the {@link Run} object, and hence avaialable to everyone. + * For the convenience of the caller, this list can contain null, and those will be silently ignored. + * @since 1.311 + * @return + * null if this task is already in the queue and therefore the add operation was no-op. + * Otherwise indicates the {@link WaitingItem} object added, although the nature of the queue + * is that such {@link Item} only captures the state of the item at a particular moment, + * and by the time you inspect the object, some of its information can be already stale. + * + * That said, one can still look at {@link WaitingItem#future}, {@link WaitingItem#id}, etc. + */ + public synchronized WaitingItem schedule(Task p, int quietPeriod, List actions) { + // remove nulls + actions = new ArrayList(actions); + for (Iterator itr = actions.iterator(); itr.hasNext();) { + Action a = itr.next(); + if (a==null) itr.remove(); + } + + for(QueueDecisionHandler h : QueueDecisionHandler.all()) + if (!h.shouldSchedule(p, actions)) + return null; // veto + + return scheduleInternal(p, quietPeriod, actions); + } + + /** + * Schedules an execution of a task. + * + * @since 1.311 + * @return + * null if this task is already in the queue and therefore the add operation was no-op. + * Otherwise indicates the {@link WaitingItem} object added, although the nature of the queue + * is that such {@link Item} only captures the state of the item at a particular moment, + * and by the time you inspect the object, some of its information can be already stale. + * + * That said, one can still look at {@link WaitingItem#future}, {@link WaitingItem#id}, etc. */ - private synchronized boolean add(Task p, int quietPeriod, List actions) { - boolean taskConsumed=false; - List items = getItems(p); - Calendar due = new GregorianCalendar(); + private synchronized WaitingItem scheduleInternal(Task p, int quietPeriod, List actions) { + Calendar due = new GregorianCalendar(); due.add(Calendar.SECOND, quietPeriod); + // Do we already have this task in the queue? Because if so, we won't schedule a new one. List duplicatesInQueue = new ArrayList(); - for(Item item : items) { + for(Item item : getItems(p)) { boolean shouldScheduleItem = false; - for (Action action: item.getActions()) { - if (action instanceof QueueAction) - shouldScheduleItem |= ((QueueAction) action).shouldSchedule(actions); + for (QueueAction action: item.getActions(QueueAction.class)) { + shouldScheduleItem |= action.shouldSchedule(actions); } - for (Action action: actions) { - if (action instanceof QueueAction) { - shouldScheduleItem |= ((QueueAction) action).shouldSchedule(item.getActions()); - } + for (QueueAction action: Util.filter(actions,QueueAction.class)) { + shouldScheduleItem |= action.shouldSchedule(item.getActions()); } if(!shouldScheduleItem) { duplicatesInQueue.add(item); } } - if (duplicatesInQueue.size() == 0) { + if (duplicatesInQueue.isEmpty()) { LOGGER.fine(p.getFullDisplayName() + " added to queue"); // put the item in the queue - waitingList.add(new WaitingItem(due,p,actions)); - taskConsumed=true; - } else { - // the requested build is already queued, so will not be added - List waitingDuplicates = new ArrayList(); - for(Item item : duplicatesInQueue) { - for(Action a : actions) { - if(a instanceof FoldableAction) { - ((FoldableAction)a).foldIntoExisting(item.task, item.getActions()); - } - } - if ((item instanceof WaitingItem)) - waitingDuplicates.add((WaitingItem)item); - } - if(duplicatesInQueue.size() == 0) { - // all duplicates in the queue are already in the blocked or - // buildable stage no need to requeue - return false; - } - // TODO: avoid calling scheduleMaintenance() if none of the waiting items - // actually change - for(WaitingItem wi : waitingDuplicates) { - if(quietPeriod<=0) { - // the user really wants to build now, and they mean NOW. - // so let's pull in the timestamp if we can. - if (wi.timestamp.before(due)) - continue; - } else { - // otherwise we do the normal quiet period implementation - if (wi.timestamp.after(due)) - continue; - // quiet period timer reset. start the period over again - } + WaitingItem added = new WaitingItem(due,p,actions); + waitingList.add(added); + scheduleMaintenance(); // let an executor know that a new item is in the queue. + return added; + } - // waitingList is sorted, so when we change a timestamp we need to maintain order - waitingList.remove(wi); - wi.timestamp = due; - waitingList.add(wi); - } + LOGGER.fine(p.getFullDisplayName() + " is already in the queue"); - } - scheduleMaintenance(); // let an executor know that a new item is in the queue. - return taskConsumed; + // but let the actions affect the existing stuff. + for(Item item : duplicatesInQueue) { + for(FoldableAction a : Util.filter(actions,FoldableAction.class)) { + a.foldIntoExisting(item, p, actions); + } + } + + boolean queueUpdated = false; + for(WaitingItem wi : Util.filter(duplicatesInQueue,WaitingItem.class)) { + if(quietPeriod<=0) { + // the user really wants to build now, and they mean NOW. + // so let's pull in the timestamp if we can. + if (wi.timestamp.before(due)) + continue; + } else { + // otherwise we do the normal quiet period implementation + if (wi.timestamp.after(due)) + continue; + // quiet period timer reset. start the period over again + } + + // waitingList is sorted, so when we change a timestamp we need to maintain order + waitingList.remove(wi); + wi.timestamp = due; + waitingList.add(wi); + queueUpdated=true; + } + + if (queueUpdated) scheduleMaintenance(); + return null; } + /** + * @deprecated as of 1.311 + * Use {@link #schedule(Task, int)} + */ public synchronized boolean add(Task p, int quietPeriod) { - return add(p, quietPeriod, new Action[0]); + return schedule(p, quietPeriod)!=null; + } + + public synchronized WaitingItem schedule(Task p, int quietPeriod) { + return schedule(p, quietPeriod, new Action[0]); } + /** + * @deprecated as of 1.311 + * Use {@link #schedule(Task, int, Action...)} + */ public synchronized boolean add(Task p, int quietPeriod, Action... actions) { - return add(p, quietPeriod, Arrays.asList(actions)); + return schedule(p, quietPeriod, actions)!=null; + } + + /** + * Convenience wrapper method around {@link #schedule(Task, int, List)} + */ + public synchronized WaitingItem schedule(Task p, int quietPeriod, Action... actions) { + return schedule(p, quietPeriod, Arrays.asList(actions)); } /** @@ -427,21 +545,25 @@ public class Queue extends ResourceController implements Saveable { Item item = itr.next(); if (item.task.equals(p)) { itr.remove(); + item.onCancelled(); return true; } } // use bitwise-OR to make sure that both branches get evaluated all the time - return blockedProjects.remove(p)!=null | buildables.remove(p)!=null; + return blockedProjects.cancel(p)!=null | buildables.cancel(p)!=null; } public synchronized boolean cancel(Item item) { LOGGER.fine("Cancelling " + item.task.getFullDisplayName() + " item#" + item.id); - // use bitwise-OR to make sure that both branches get evaluated all the time - return (item instanceof WaitingItem && waitingList.remove(item)) | blockedProjects.remove(item) | buildables.remove(item); + // use bitwise-OR to make sure that all the branches get evaluated all the time + boolean r = (item instanceof WaitingItem && waitingList.remove(item)) | blockedProjects.remove(item) | buildables.remove(item); + if(r) + item.onCancelled(); + return r; } public synchronized boolean isEmpty() { - return waitingList.isEmpty() && blockedProjects.isEmpty() && buildables.isEmpty(); + return waitingList.isEmpty() && blockedProjects.isEmpty() && buildables.isEmpty() && pendings.isEmpty(); } private synchronized WaitingItem peek() { @@ -450,15 +572,20 @@ public class Queue extends ResourceController implements Saveable { /** * Gets a snapshot of items in the queue. + * + * Generally speaking the array is sorted such that the items that are most likely built sooner are + * at the end. */ @Exported(inline=true) public synchronized Item[] getItems() { - Item[] r = new Item[waitingList.size() + blockedProjects.size() + buildables.size()]; + Item[] r = new Item[waitingList.size() + blockedProjects.size() + buildables.size() + pendings.size()]; waitingList.toArray(r); int idx = waitingList.size(); for (BlockedItem p : blockedProjects.values()) r[idx++] = p; - for (BuildableItem p : buildables.values()) + for (BuildableItem p : reverse(buildables.values())) + r[idx++] = p; + for (BuildableItem p : reverse(pendings.values())) r[idx++] = p; return r; } @@ -467,6 +594,7 @@ public class Queue extends ResourceController implements Saveable { for (Item item: waitingList) if (item.id == id) return item; for (Item item: blockedProjects) if (item.id == id) return item; for (Item item: buildables) if (item.id == id) return item; + for (Item item: pendings) if (item.id == id) return item; return null; } @@ -475,23 +603,43 @@ public class Queue extends ResourceController implements Saveable { */ public synchronized List getBuildableItems(Computer c) { List result = new ArrayList(); - for (BuildableItem p : buildables.values()) { - Label l = p.task.getAssignedLabel(); - if (l != null) { - // if a project has assigned label, it can be only built on it - if (!l.contains(c.getNode())) - continue; - } - result.add(p); - } + _getBuildableItems(c, buildables, result); + _getBuildableItems(c, pendings, result); return result; } + private void _getBuildableItems(Computer c, ItemList col, List result) { + Node node = c.getNode(); + for (BuildableItem p : col.values()) { + if (node.canTake(p.task) == null) + result.add(p); + } + } + /** - * Gets the snapshot of {@link #buildables}. + * Gets the snapshot of all {@link BuildableItem}s. */ public synchronized List getBuildableItems() { - return new ArrayList(buildables.values()); + ArrayList r = new ArrayList(buildables.values()); + r.addAll(pendings.values()); + return r; + } + + /** + * Gets the snapshot of all {@link BuildableItem}s. + */ + public synchronized List getPendingItems() { + return new ArrayList(pendings.values()); + } + + /** + * Is the given task currently pending execution? + */ + public synchronized boolean isPending(Task t) { + for (BuildableItem i : pendings) + if (i.task.equals(t)) + return true; + return false; } /** @@ -502,6 +650,9 @@ public class Queue extends ResourceController implements Saveable { for (BuildableItem bi : buildables.values()) if(bi.task.getAssignedLabel()==l) r++; + for (BuildableItem bi : pendings.values()) + if(bi.task.getAssignedLabel()==l) + r++; return r; } @@ -515,6 +666,9 @@ public class Queue extends ResourceController implements Saveable { if (bp!=null) return bp; BuildableItem bi = buildables.get(t); + if(bi!=null) + return bi; + bi = pendings.get(t); if(bi!=null) return bi; @@ -534,6 +688,7 @@ public class Queue extends ResourceController implements Saveable { List result =new ArrayList(); result.addAll(blockedProjects.getAll(t)); result.addAll(buildables.getAll(t)); + result.addAll(pendings.getAll(t)); for (Item item : waitingList) { if (item.task == t) result.add(item); @@ -554,7 +709,7 @@ public class Queue extends ResourceController implements Saveable { * Returns true if this queue contains the said project. */ public synchronized boolean contains(Task t) { - if (blockedProjects.containsKey(t) || buildables.containsKey(t)) + if (blockedProjects.containsKey(t) || buildables.containsKey(t) || pendings.containsKey(t)) return true; for (Item item : waitingList) { if (item.task == t) @@ -568,7 +723,7 @@ public class Queue extends ResourceController implements Saveable { *

    * This method blocks until a next project becomes buildable. */ - public Queue.Item pop() throws InterruptedException { + public synchronized WorkUnit pop() throws InterruptedException { final Executor exec = Executor.currentExecutor(); try { @@ -576,152 +731,95 @@ public class Queue extends ResourceController implements Saveable { final JobOffer offer = new JobOffer(exec); long sleep = -1; - synchronized (this) { - // consider myself parked - assert !parked.containsKey(exec); - parked.put(exec, offer); - - // reuse executor thread to do a queue maintenance. - // at the end of this we get all the buildable jobs - // in the buildables field. - maintain(); - - // allocate buildable jobs to executors - Iterator itr = buildables.iterator(); - while (itr.hasNext()) { - BuildableItem p = itr.next(); - - // one last check to make sure this build is not blocked. - if (isBuildBlocked(p.task)) { - itr.remove(); - blockedProjects.put(p.task,new BlockedItem(p)); - continue; - } - - JobOffer runner = loadBalancer.choose(p.task, new ApplicableJobOfferList(p.task)); - if (runner == null) - // if we couldn't find the executor that fits, - // just leave it in the buildables list and - // check if we can execute other projects - continue; - - assert runner.canTake(p.task); - - // found a matching executor. use it. - runner.set(p); + // consider myself parked + assert !parked.containsKey(exec); + parked.put(exec, offer); + + // reuse executor thread to do a queue maintenance. + // at the end of this we get all the buildable jobs + // in the buildables field. + maintain(); + + // allocate buildable jobs to executors + Iterator itr = buildables.iterator(); + while (itr.hasNext()) { + BuildableItem p = itr.next(); + + // one last check to make sure this build is not blocked. + if (isBuildBlocked(p.task)) { itr.remove(); + blockedProjects.put(p.task,new BlockedItem(p)); + continue; } - // we went over all the buildable projects and awaken - // all the executors that got work to do. now, go to sleep - // until this thread is awakened. If this executor assigned a job to - // itself above, the block method will return immediately. + List candidates = new ArrayList(parked.size()); + for (JobOffer j : parked.values()) + if(j.canTake(p.task)) + candidates.add(j); + + MappingWorksheet ws = new MappingWorksheet(p, candidates); + Mapping m = loadBalancer.map(p.task, ws); + if (m == null) + // if we couldn't find the executor that fits, + // just leave it in the buildables list and + // check if we can execute other projects + continue; + + // found a matching executor. use it. + WorkUnitContext wuc = new WorkUnitContext(p); + m.execute(wuc); + + itr.remove(); + if (!wuc.getWorkUnits().isEmpty()) + pendings.add(p); + } - if (!waitingList.isEmpty()) { - // wait until the first item in the queue is due - sleep = peek().timestamp.getTimeInMillis() - new GregorianCalendar().getTimeInMillis(); - if (sleep < 100) sleep = 100; // avoid wait(0) - } + // we went over all the buildable projects and awaken + // all the executors that got work to do. now, go to sleep + // until this thread is awakened. If this executor assigned a job to + // itself above, the block method will return immediately. + + if (!waitingList.isEmpty()) { + // wait until the first item in the queue is due + sleep = peek().timestamp.getTimeInMillis() - new GregorianCalendar().getTimeInMillis(); + if (sleep < 100) sleep = 100; // avoid wait(0) } - // this needs to be done outside synchronized block, - // so that executors can maintain a queue while others are sleeping if (sleep == -1) offer.event.block(); else offer.event.block(sleep); - synchronized (this) { - // retract the offer object - assert parked.get(exec) == offer; - parked.remove(exec); + // retract the offer object + assert parked.get(exec) == offer; + parked.remove(exec); - // am I woken up because I have a project to build? - if (offer.item != null) { - LOGGER.fine("Pop returning " + offer.item + " for " + exec.getName()); - // if so, just build it - return offer.item; - } - // otherwise run a queue maintenance + // am I woken up because I have a project to build? + if (offer.workUnit != null) { + // if so, just build it + LOGGER.fine("Pop returning " + offer.workUnit + " for " + exec.getName()); + + // TODO: I think this has to be done by the last executor that leaves the pop(), not by main executor + if (offer.workUnit.isMainWork()) + pendings.remove(offer.workUnit.context.item); + + return offer.workUnit; } + // otherwise run a queue maintenance } } finally { - synchronized (this) { - // remove myself from the parked list - JobOffer offer = parked.remove(exec); - if (offer != null && offer.item != null) { - // we are already assigned a project, - // ask for someone else to build it. - // note that while this thread is waiting for CPU - // someone else can schedule this build again, - // so check the contains method first. - if (!contains(offer.item.task)) - buildables.put(offer.item.task,offer.item); - } - - // since this executor might have been chosen for - // maintenance, schedule another one. Worst case - // we'll just run a pointless maintenance, and that's - // fine. - scheduleMaintenance(); + // remove myself from the parked list + JobOffer offer = parked.remove(exec); + if (offer != null && offer.workUnit != null) { + // we are already assigned a project, but now we can't handle it. + offer.workUnit.context.abort(new AbortException()); } - } - } - /** - * Represents a list of {@linkplain JobOffer#canTake(Task) applicable} {@link JobOffer}s - * and provides various typical - */ - public final class ApplicableJobOfferList implements Iterable { - private final List list; - // laziy filled - private Map> nodes; - - private ApplicableJobOfferList(Task task) { - list = new ArrayList(parked.size()); - for (JobOffer j : parked.values()) - if(j.canTake(task)) - list.add(j); - } - - /** - * Returns all the {@linkplain JobOffer#isAvailable() available} {@link JobOffer}s. - */ - public List all() { - return list; - } - - public Iterator iterator() { - return list.iterator(); - } - - /** - * List up all the {@link Node}s that have some available offers. - */ - public Set nodes() { - return byNodes().keySet(); - } - - /** - * Gets a {@link JobOffer} for an executor of the given node, if any. - * Otherwise null. - */ - public JobOffer _for(Node n) { - List r = byNodes().get(n); - if(r==null) return null; - return r.get(0); - } - - public Map> byNodes() { - if(nodes==null) { - nodes = new HashMap>(); - for (JobOffer o : list) { - List l = nodes.get(o.getNode()); - if(l==null) nodes.put(o.getNode(),l=new ArrayList()); - l.add(o); - } - } - return nodes; + // since this executor might have been chosen for + // maintenance, schedule another one. Worst case + // we'll just run a pointless maintenance, and that's + // fine. + scheduleMaintenance(); } } @@ -738,7 +836,7 @@ public class Queue extends ResourceController implements Saveable { // no more executors will be offered job except by // the pop() code. for (Entry av : parked.entrySet()) { - if (av.getValue().item == null) { + if (av.getValue().workUnit == null) { av.getValue().event.signal(); return; } @@ -752,6 +850,19 @@ public class Queue extends ResourceController implements Saveable { return t.isBuildBlocked() || !canRun(t.getResourceList()); } + /** + * Make sure we don't queue two tasks of the same project to be built + * unless that project allows concurrent builds. + */ + private boolean allowNewBuildableTask(Task t) { + try { + if (t.isConcurrentBuild()) + return true; + } catch (AbstractMethodError e) { + // earlier versions don't have the "isConcurrentBuild" method, so fall back gracefully + } + return !buildables.containsKey(t) && !pendings.containsKey(t); + } /** * Queue maintenance. @@ -763,14 +874,15 @@ public class Queue extends ResourceController implements Saveable { if (LOGGER.isLoggable(Level.FINE)) LOGGER.fine("Queue maintenance started " + this); + // blocked -> buildable Iterator itr = blockedProjects.values().iterator(); while (itr.hasNext()) { BlockedItem p = itr.next(); - if (!isBuildBlocked(p.task)) { + if (!isBuildBlocked(p.task) && allowNewBuildableTask(p.task)) { // ready to be executed LOGGER.fine(p.task.getFullDisplayName() + " no longer blocked"); itr.remove(); - buildables.put(p.task,new BuildableItem(p)); + makeBuildable(new BuildableItem(p)); } } @@ -780,26 +892,81 @@ public class Queue extends ResourceController implements Saveable { if (!top.timestamp.before(new GregorianCalendar())) return; // finished moving all ready items from queue + waitingList.remove(top); Task p = top.task; - if (!isBuildBlocked(p)) { + if (!isBuildBlocked(p) && allowNewBuildableTask(p)) { // ready to be executed immediately - waitingList.remove(top); LOGGER.fine(p.getFullDisplayName() + " ready to build"); - buildables.put(p,new BuildableItem(top)); + makeBuildable(new BuildableItem(top)); } else { // this can't be built now because another build is in progress // set this project aside. - waitingList.remove(top); LOGGER.fine(p.getFullDisplayName() + " is blocked"); blockedProjects.put(p,new BlockedItem(top)); } } + + final QueueSorter s = sorter; + if (s != null) + s.sortBuildableItems(buildables); + } + + private void makeBuildable(BuildableItem p) { + if(Hudson.FLYWEIGHT_SUPPORT && p.task instanceof FlyweightTask && !ifBlockedByHudsonShutdown(p.task)) { + ConsistentHash hash = new ConsistentHash(new Hash() { + public String hash(Node node) { + return node.getNodeName(); + } + }); + Hudson h = Hudson.getInstance(); + hash.add(h, h.getNumExecutors()*100); + for (Node n : h.getNodes()) + hash.add(n,n.getNumExecutors()*100); + + Label lbl = p.task.getAssignedLabel(); + for (Node n : hash.list(p.task.getFullDisplayName())) { + Computer c = n.toComputer(); + if (c==null || c.isOffline()) continue; + if (lbl!=null && !lbl.contains(n)) continue; + c.startFlyWeightTask(new WorkUnitContext(p).createWorkUnit(p.task)); + return; + } + // if the execution get here, it means we couldn't schedule it anywhere. + // so do the scheduling like other normal jobs. + } + + buildables.put(p.task,p); + } + + public static boolean ifBlockedByHudsonShutdown(Task task) { + return Hudson.getInstance().isQuietingDown() && !(task instanceof NonBlockingTask); } public Api getApi() { return new Api(this); } + /** + * Marks {@link Task}s that are not persisted. + * @since 1.311 + */ + public interface TransientTask extends Task {} + + /** + * Marks {@link Task}s that do not consume {@link Executor}. + * @see OneOffExecutor + * @since 1.318 + */ + public interface FlyweightTask extends Task {} + + /** + * Marks {@link Task}s that are not affected by the {@linkplain Hudson#isQuietingDown()} quieting down}, + * because these tasks keep other tasks executing. + * + * @since 1.336 + */ + public interface NonBlockingTask extends Task {} + /** * Task whose execution is controlled by the queue. * @@ -810,39 +977,48 @@ public class Queue extends ResourceController implements Saveable { * *

    * Pending {@link Task}s are persisted when Hudson shuts down, so - * it needs to be persistable. + * it needs to be persistable via XStream. To create a non-persisted + * transient Task, extend {@link TransientTask} marker interface. + * + *

    + * Plugins are encouraged to extend from {@link AbstractQueueTask} + * instead of implementing this interface directly, to maintain + * compatibility with future changes to this interface. + * + *

    + * For historical reasons, {@link Task} object by itself + * also represents the "primary" sub-task (and as implied by this + * design, a {@link Task} must have at least one sub-task.) + * Most of the time, the primary subtask is the only sub task. */ - public interface Task extends ModelObject, ResourceActivity { + public interface Task extends ModelObject, SubTask { /** - * If this task needs to be run on a node with a particular label, - * return that {@link Label}. Otherwise null, indicating - * it can run on anywhere. + * Returns true if the execution should be blocked + * for temporary reasons. + * + *

    + * Short-hand for {@code getCauseOfBlockage()!=null}. */ - Label getAssignedLabel(); + boolean isBuildBlocked(); /** - * If the previous execution of this task run on a certain node - * and this task prefers to run on the same node, return that. - * Otherwise null. + * @deprecated as of 1.330 + * Use {@link CauseOfBlockage#getShortDescription()} instead. */ - Node getLastBuiltOn(); + String getWhyBlocked(); /** - * Returns true if the execution should be blocked - * for temporary reasons. + * If the execution of this task should be blocked for temporary reasons, + * this method returns a non-null object explaining why. + * + *

    + * Otherwise this method returns null, indicating that the build can proceed right away. * *

    * This can be used to define mutual exclusion that goes beyond * {@link #getResourceList()}. */ - boolean isBuildBlocked(); - - /** - * When {@link #isBuildBlocked()} is true, this method returns - * human readable description of why the build is blocked. - * Used for HTML rendering. - */ - String getWhyBlocked(); + CauseOfBlockage getCauseOfBlockage(); /** * Unique name of this task. @@ -857,19 +1033,6 @@ public class Queue extends ResourceController implements Saveable { */ String getFullDisplayName(); - /** - * Estimate of how long will it take to execute this task. - * Measured in milliseconds. - * - * @return -1 if it's impossible to estimate. - */ - long getEstimatedDuration(); - - /** - * Creates {@link Executable}, which performs the actual execution of the task. - */ - Executable createExecutable() throws IOException; - /** * Checks the permission to see if the current user can abort this executable. * Returns normally from this method if it's OK. @@ -896,19 +1059,74 @@ public class Queue extends ResourceController implements Saveable { */ String getUrl(); + /** + * True if the task allows concurrent builds + * + * @since 1.338 + */ + boolean isConcurrentBuild(); + + /** + * Obtains the {@link SubTask}s that constitute this task. + * + *

    + * The collection returned by this method must also contain the primary {@link SubTask} + * represented by this {@link Task} object itself as the first element. + * The returned value is read-only. + * + *

    + * At least size 1. + * + *

    + * Since this is a newly added method, the invocation may results in {@link AbstractMethodError}. + * Use {@link Tasks#getSubTasksOf(Task)} that avoids this. + * + * @since 1.FATTASK + */ + Collection getSubTasks(); } + /** + * Represents the real meet of the computation run by {@link Executor}. + * + *

    Views

    + *

    + * Implementation must have executorCell.jelly, which is + * used to render the HTML that indicates this executable is executing. + */ public interface Executable extends Runnable { /** * Task from which this executable was created. * Never null. + * + *

    + * Since this method went through a signature change in 1.FATTASK, the invocation may results in + * {@link AbstractMethodError}. + * Use {@link Executables#getParentOf(Executable)} that avoids this. */ - Task getParent(); + SubTask getParent(); /** * Called by {@link Executor} to perform the task */ void run(); + + /** + * Estimate of how long will it take to execute this executable. + * Measured in milliseconds. + * + * Please, consider using {@link Executor#getEstimatedDurationFor(Executable)} + * to protected against AbstractMethodErrors! + * + * @return -1 if it's impossible to estimate. + * @since 1.383 + */ + long getEstimatedDuration(); + + /** + * Used to render the HTML. Should be a human readable text of what this executable is. + */ + @Override String toString(); } /** @@ -916,7 +1134,10 @@ public class Queue extends ResourceController implements Saveable { */ @ExportedBean(defaultVisibility = 999) public static abstract class Item extends Actionable { - + /** + * VM-wide unique ID that tracks the {@link Task} as it moves through different stages + * in the queue (each represented by different subtypes of {@link Item}. + */ public final int id; /** @@ -924,7 +1145,9 @@ public class Queue extends ResourceController implements Saveable { */ @Exported public final Task task; - + + private /*almost final*/ transient FutureImpl future; + /** * Build is blocked because another build is in progress, * required {@link Resource}s are not available, or otherwise blocked @@ -947,22 +1170,69 @@ public class Queue extends ResourceController implements Saveable { @Exported public boolean isStuck() { return false; } - protected Item(Task task, List actions, int id) { + /** + * Can be used to wait for the completion (either normal, abnormal, or cancellation) of the {@link Task}. + *

    + * Just like {@link #id}, the same object tracks various stages of the queue. + */ + public Future getFuture() { return future; } + + /** + * Convenience method that returns a read only view of the {@link Cause}s associated with this item in the queue. + * + * @return can be empty but never null + * @since 1.343 + */ + public final List getCauses() { + CauseAction ca = getAction(CauseAction.class); + if (ca!=null) + return Collections.unmodifiableList(ca.getCauses()); + return Collections.emptyList(); + } + + protected Item(Task task, List actions, int id, FutureImpl future) { this.task = task; this.id = id; + this.future = future; for (Action action: actions) addAction(action); } protected Item(Item item) { - this(item.task, item.getActions(), item.id); + this(item.task, item.getActions(), item.id, item.future); } /** * Gets a human-readable status message describing why it's in the queue. */ @Exported - public abstract String getWhy(); + public final String getWhy() { + CauseOfBlockage cob = getCauseOfBlockage(); + return cob!=null ? cob.getShortDescription() : null; + } + /** + * Gets an object that describes why this item is in the queue. + */ + public abstract CauseOfBlockage getCauseOfBlockage(); + + /** + * Gets a human-readable message about the parameters of this item + * @return String + */ + @Exported + public String getParams() { + StringBuilder s = new StringBuilder(); + for(Action action : getActions()) { + if(action instanceof ParametersAction) { + ParametersAction pa = (ParametersAction)action; + for (ParameterValue p : pa.getParameters()) { + s.append('\n').append(p.getShortDescription()); + } + } + } + return s.toString(); + } + public boolean hasCancelPermission() { return task.hasAbortPermission(); } @@ -984,11 +1254,30 @@ public class Queue extends ResourceController implements Saveable { Hudson.getInstance().getQueue().cancel(this); rsp.forwardToPreviousPage(req); } + + /** + * Participates in the cancellation logic to set the {@link #future} accordingly. + */ + /*package*/ void onCancelled() { + future.setAsCancelled(); + } + + private Object readResolve() { + this.future = new FutureImpl(task); + return this; + } + + @Override + public String toString() { + return getClass().getName()+':'+task.toString(); + } } /** * An optional interface for actions on Queue.Item. * Lets the action cooperate in queue management. + * + * @since 1.300-ish. */ public interface QueueAction extends Action { /** @@ -998,6 +1287,35 @@ public class Queue extends ResourceController implements Saveable { public boolean shouldSchedule(List actions); } + /** + * Extension point for deciding if particular job should be scheduled or not. + * + *

    + * This handler is consulted every time someone tries to submit a task to the queue. + * If any of the registered handlers returns false, the task will not be added + * to the queue, and the task will never get executed. + * + *

    + * This extension point is still a subject to change, as we are seeking more + * comprehensive Queue pluggability. See HUDSON-2072. + * + * @since 1.316 + */ + public static abstract class QueueDecisionHandler implements ExtensionPoint { + /** + * Returns whether the new item should be scheduled. + */ + public abstract boolean shouldSchedule(Task p, List actions); + + /** + * All registered {@link QueueDecisionHandler}s + * @return + */ + public static ExtensionList all() { + return Hudson.getInstance().getExtensionList(QueueDecisionHandler.class); + } + } + /** * {@link Item} in the {@link Queue#waitingList} stage. */ @@ -1010,8 +1328,8 @@ public class Queue extends ResourceController implements Saveable { @Exported public Calendar timestamp; - WaitingItem(Calendar timestamp, Task project, List actions) { - super(project, actions, COUNTER.incrementAndGet()); + public WaitingItem(Calendar timestamp, Task project, List actions) { + super(project, actions, COUNTER.incrementAndGet(), new FutureImpl(project)); this.timestamp = timestamp; } @@ -1022,13 +1340,12 @@ public class Queue extends ResourceController implements Saveable { return this.id - that.id; } - @Override - public String getWhy() { + public CauseOfBlockage getCauseOfBlockage() { long diff = timestamp.getTimeInMillis() - System.currentTimeMillis(); if (diff > 0) - return Messages.Queue_InQuietPeriod(Util.getTimeSpanString(diff)); + return CauseOfBlockage.fromMessage(Messages._Queue_InQuietPeriod(Util.getTimeSpanString(diff))); else - return Messages.Queue_Unknown(); + return CauseOfBlockage.fromMessage(Messages._Queue_Unknown()); } } @@ -1065,15 +1382,14 @@ public class Queue extends ResourceController implements Saveable { super(ni); } - @Override - public String getWhy() { + public CauseOfBlockage getCauseOfBlockage() { ResourceActivity r = getBlockingActivity(task); if (r != null) { if (r == task) // blocked by itself, meaning another build is in progress - return Messages.Queue_InProgress(); - return Messages.Queue_BlockedBy(r.getDisplayName()); + return CauseOfBlockage.fromMessage(Messages._Queue_InProgress()); + return CauseOfBlockage.fromMessage(Messages._Queue_BlockedBy(r.getDisplayName())); } - return task.getWhyBlocked(); + return task.getCauseOfBlockage(); } } @@ -1089,31 +1405,29 @@ public class Queue extends ResourceController implements Saveable { super(ni); } - @Override - public String getWhy() { + public CauseOfBlockage getCauseOfBlockage() { Hudson hudson = Hudson.getInstance(); - if(hudson.isQuietingDown()) - return Messages.Queue_HudsonIsAboutToShutDown(); + if(ifBlockedByHudsonShutdown(task)) + return CauseOfBlockage.fromMessage(Messages._Queue_HudsonIsAboutToShutDown()); Label label = task.getAssignedLabel(); if (hudson.getNodes().isEmpty()) label = null; // no master/slave. pointless to talk about nodes - String name = null; if (label != null) { - name = label.getName(); if (label.isOffline()) { - if (label.getNodes().size() > 1) - return Messages.Queue_AllNodesOffline(name); - else - return Messages.Queue_NodeOffline(name); + Set nodes = label.getNodes(); + if (nodes.size() != 1) return new BecauseLabelIsOffline(label); + else return new BecauseNodeIsOffline(nodes.iterator().next()); } } - if(name==null) - return Messages.Queue_WaitingForNextAvailableExecutor(); - else - return Messages.Queue_WaitingForNextAvailableExecutorOn(name); + if(label==null) + return CauseOfBlockage.fromMessage(Messages._Queue_WaitingForNextAvailableExecutor()); + + Set nodes = label.getNodes(); + if (nodes.size() != 1) return new BecauseLabelIsBusy(label); + else return new BecauseNodeIsBusy(nodes.iterator().next()); } @Override @@ -1135,11 +1449,6 @@ public class Queue extends ResourceController implements Saveable { } } - /** - * Unique number generator - */ - private int iota = 0; - private static final Logger LOGGER = Logger.getLogger(Queue.class.getName()); /** @@ -1220,8 +1529,7 @@ public class Queue extends ResourceController implements Saveable { } /** - * A MultiMap - LinkedMap crossover as a drop-in replacement for the previously used LinkedHashMap - * And no, I don't care about performance ;) + * {@link ArrayList} of {@link Item} with more convenience methods. */ private static class ItemList extends ArrayList { public T get(Task task) { @@ -1267,5 +1575,42 @@ public class Queue extends ResourceController implements Saveable { public ItemList values() { return this; } + + /** + * Works like {@link #remove(Task)} but also marks the {@link Item} as cancelled. + */ + public T cancel(Task p) { + T x = remove(p); + if(x!=null) x.onCancelled(); + return x; + } + + /** + * Works like {@link #remove(Object)} but also marks the {@link Item} as cancelled. + */ + public boolean cancel(Item t) { + boolean r = remove(t); + if(r) t.onCancelled(); + return r; + } + + public void cancelAll() { + for (T t : this) + t.onCancelled(); + clear(); + } + } + + @CLIResolver + public static Queue getInstance() { + return Hudson.getInstance().getQueue(); + } + + /** + * Restores the queue content during the start up. + */ + @Initializer(after=JOB_LOADED) + public static void init(Hudson h) { + h.getQueue().load(); } } diff --git a/core/src/main/java/hudson/model/RSS.java b/core/src/main/java/hudson/model/RSS.java index 482a8b2dd51fd25740a5354f9799afa5482f7cd5..3d8454588eddb7a1afb901e96e76e4e6ad3c0168 100644 --- a/core/src/main/java/hudson/model/RSS.java +++ b/core/src/main/java/hudson/model/RSS.java @@ -1,7 +1,7 @@ /* * The MIT License * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi + * Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -84,6 +84,7 @@ public final class RSS { String flavor = req.getParameter("flavor"); if(flavor==null) flavor="atom"; + flavor = flavor.replace('/', '_'); // Don't allow path to any jelly req.getView(Hudson.getInstance(),"/hudson/"+flavor+".jelly").forward(req,rsp); } diff --git a/core/src/main/java/hudson/model/Resource.java b/core/src/main/java/hudson/model/Resource.java index cbaed80e38ea4acf13865ef24036de02c2fba376..a7ce21dc95ebce1b62efecb8b9f787e779e02256 100644 --- a/core/src/main/java/hudson/model/Resource.java +++ b/core/src/main/java/hudson/model/Resource.java @@ -97,6 +97,7 @@ public final class Resource { return false; } + @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; @@ -111,6 +112,7 @@ public final class Resource { return lhs.equals(rhs); } + @Override public int hashCode() { return displayName.hashCode(); } diff --git a/core/src/main/java/hudson/model/ResourceActivity.java b/core/src/main/java/hudson/model/ResourceActivity.java index 717a259b8b9a9bb002e9d442cbbe70f16441d2b6..91092b9308fe66b56934ccc578aca00e6a6ecad3 100644 --- a/core/src/main/java/hudson/model/ResourceActivity.java +++ b/core/src/main/java/hudson/model/ResourceActivity.java @@ -32,9 +32,16 @@ public interface ResourceActivity { /** * Gets the list of {@link Resource}s that this task requires. * Used to make sure no two conflicting tasks run concurrently. + * *

    * This method must always return the {@link ResourceList} * that contains the exact same set of {@link Resource}s. + * + *

    + * If the activity doesn't lock any resources, just + * return {@code new ResourceList()}. + * + * @return never null */ ResourceList getResourceList(); diff --git a/core/src/main/java/hudson/model/ResourceController.java b/core/src/main/java/hudson/model/ResourceController.java index 7181bd56acd3ca9c25e64e8edb17128b6da2f82a..b269fcf69cf9008174741c7eec6d7ecb8eb28136 100644 --- a/core/src/main/java/hudson/model/ResourceController.java +++ b/core/src/main/java/hudson/model/ResourceController.java @@ -23,19 +23,14 @@ */ package hudson.model; -import hudson.model.Queue.Task; import hudson.util.AdaptedIterator; import java.util.Set; import java.util.HashSet; -import java.util.Map; -import java.util.HashMap; import java.util.Collection; import java.util.AbstractCollection; import java.util.Iterator; -import org.apache.commons.collections.iterators.FilterIterator; - /** * Controls mutual exclusion of {@link ResourceList}. * @author Kohsuke Kawaguchi diff --git a/core/src/main/java/hudson/model/ResourceList.java b/core/src/main/java/hudson/model/ResourceList.java index 1685e9dc8cb41c880394433dcc05e802b9b6b92c..61db4e3d835b8af5861cd30397bc681278dffce3 100644 --- a/core/src/main/java/hudson/model/ResourceList.java +++ b/core/src/main/java/hudson/model/ResourceList.java @@ -135,6 +135,7 @@ public final class ResourceList { return null; } + @Override public String toString() { Map m = new HashMap(); for (Resource r : all) diff --git a/core/src/main/java/hudson/model/RestartListener.java b/core/src/main/java/hudson/model/RestartListener.java new file mode 100644 index 0000000000000000000000000000000000000000..9e7c16e2ff661c59670d30f478dffe47e62333a6 --- /dev/null +++ b/core/src/main/java/hudson/model/RestartListener.java @@ -0,0 +1,57 @@ +package hudson.model; + +import hudson.Extension; +import hudson.ExtensionList; +import hudson.ExtensionPoint; + +import java.io.IOException; + +/** + * Extension point that allows plugins to veto the restart. + * + * @author Kohsuke Kawaguchi + * @since 1.376 + */ +public abstract class RestartListener implements ExtensionPoint { + /** + * Called periodically during the safe restart. + * + * @return false to block the restart + */ + public abstract boolean isReadyToRestart() throws IOException, InterruptedException; + + /** + * Called immediately before the restart is actually triggered. + */ + public void onRestart() {} + + /** + * Returns all the registered {@link LabelFinder}s. + */ + public static ExtensionList all() { + return Hudson.getInstance().getExtensionList(RestartListener.class); + } + + /** + * Returns true iff all the listeners OKed the restart. + */ + public static boolean isAllReady() throws IOException, InterruptedException { + for (RestartListener listener : all()) { + if (!listener.isReadyToRestart()) + return false; + } + return true; + } + + /** + * Default logic. Wait for all the executors to become idle. + */ + @Extension + public static class Default extends RestartListener { + @Override + public boolean isReadyToRestart() throws IOException, InterruptedException { + Hudson h = Hudson.getInstance(); + return h.overallLoad.computeTotalExecutors() <= h.overallLoad.computeIdleExecutors(); + } + } +} diff --git a/core/src/main/java/hudson/model/Result.java b/core/src/main/java/hudson/model/Result.java index bf6457e113880161299af03dae2d86a82677c7b5..676785bc7033b2f9a5733033cb2c810bcef62b85 100644 --- a/core/src/main/java/hudson/model/Result.java +++ b/core/src/main/java/hudson/model/Result.java @@ -1,7 +1,7 @@ /* * The MIT License * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi + * Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -23,11 +23,19 @@ */ package hudson.model; -import com.thoughtworks.xstream.converters.Converter; -import com.thoughtworks.xstream.converters.basic.AbstractBasicConverter; +import com.thoughtworks.xstream.converters.SingleValueConverter; +import com.thoughtworks.xstream.converters.basic.AbstractSingleValueConverter; +import hudson.cli.declarative.OptionHandlerExtension; +import hudson.util.EditDistance; +import org.kohsuke.args4j.CmdLineException; +import org.kohsuke.args4j.CmdLineParser; +import org.kohsuke.args4j.OptionDef; +import org.kohsuke.args4j.spi.*; import org.kohsuke.stapler.export.CustomExportedBean; import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; /** * The build outcome. @@ -65,7 +73,7 @@ public final class Result implements Serializable, CustomExportedBean { /** * Bigger numbers are worse. */ - private final int ordinal; + public final int ordinal; /** * Default ball color for this status. @@ -105,35 +113,71 @@ public final class Result implements Serializable, CustomExportedBean { } + @Override public String toString() { return name; } + + public String toExportedObject() { + return name; + } - private Object readResolve() { + public static Result fromString(String s) { for (Result r : all) - if (ordinal==r.ordinal) + if (s.equalsIgnoreCase(r.name)) return r; return FAILURE; } - public String toExportedObject() { - return name; + private static List getNames() { + List l = new ArrayList(); + for (Result r : all) + l.add(r.name); + return l; + } + + // Maintain each Result as a singleton deserialized (like build result from a slave node) + private Object readResolve() { + for (Result r : all) + if (ordinal==r.ordinal) + return r; + return FAILURE; } private static final long serialVersionUID = 1L; private static final Result[] all = new Result[] {SUCCESS,UNSTABLE,FAILURE,NOT_BUILT,ABORTED}; - public static final Converter conv = new AbstractBasicConverter () { + public static final SingleValueConverter conv = new AbstractSingleValueConverter () { public boolean canConvert(Class clazz) { return clazz==Result.class; } - protected Object fromString(String s) { - for (Result r : all) - if (s.equals(r.name)) - return r; - return FAILURE; + public Object fromString(String s) { + return Result.fromString(s); } }; + + @OptionHandlerExtension + public static final class OptionHandlerImpl extends OptionHandler { + public OptionHandlerImpl(CmdLineParser parser, OptionDef option, Setter setter) { + super(parser, option, setter); + } + + @Override + public int parseArguments(Parameters params) throws CmdLineException { + String param = params.getParameter(0); + Result v = fromString(param.replace('-', '_')); + if (v==null) + throw new CmdLineException(owner,"No such status '"+param+"'. Did you mean "+ + EditDistance.findNearest(param.replace('-', '_').toUpperCase(), getNames())); + setter.addValue(v); + return 1; + } + + @Override + public String getDefaultMetaVariable() { + return "STATUS"; + } + } } diff --git a/core/src/main/java/hudson/model/RootAction.java b/core/src/main/java/hudson/model/RootAction.java new file mode 100644 index 0000000000000000000000000000000000000000..6f244f7bb0c49865389a3d457d4611aaefc7f692 --- /dev/null +++ b/core/src/main/java/hudson/model/RootAction.java @@ -0,0 +1,40 @@ +/* + * The MIT License + * + * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.model; + +import hudson.ExtensionPoint; +import hudson.Extension; + +/** + * Marker interface for actions that are added to {@link Hudson}. + * + *

    + * Extend from this interface and put {@link Extension} on your subtype + * to have them auto-registered to {@link Hudson}. + * + * @author Kohsuke Kawaguchi + * @since 1.311 + */ +public interface RootAction extends Action, ExtensionPoint { +} diff --git a/core/src/main/java/hudson/model/Run.java b/core/src/main/java/hudson/model/Run.java index a26ae9dcae493cb08621a1428728fc16bb32b259..722cf0ea85ec6afd379d1fa6cae460b97ff3767a 100644 --- a/core/src/main/java/hudson/model/Run.java +++ b/core/src/main/java/hudson/model/Run.java @@ -1,7 +1,9 @@ /* * The MIT License * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Daniel Dyer, Red Hat, Inc., Tom Huybrechts + * Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, + * Daniel Dyer, Red Hat, Inc., Tom Huybrechts, Romain Seguy, Yahoo! Inc., + * Darek Ostolski * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -23,19 +25,23 @@ */ package hudson.model; -import static hudson.Util.combine; +import hudson.console.ConsoleLogFilter; +import hudson.Functions; import hudson.AbortException; import hudson.BulkChange; -import hudson.CloseProofOutputStream; import hudson.EnvVars; import hudson.ExtensionPoint; import hudson.FeedAdapter; import hudson.FilePath; import hudson.Util; import hudson.XmlFile; +import hudson.cli.declarative.CLIMethod; +import hudson.console.AnnotatedLargeText; +import hudson.console.ConsoleNote; import hudson.matrix.MatrixBuild; import hudson.matrix.MatrixRun; import hudson.model.listeners.RunListener; +import hudson.model.listeners.SaveableListener; import hudson.search.SearchIndexBuilder; import hudson.security.ACL; import hudson.security.AccessControlled; @@ -43,19 +49,21 @@ import hudson.security.Permission; import hudson.security.PermissionGroup; import hudson.tasks.LogRotator; import hudson.tasks.Mailer; +import hudson.tasks.BuildWrapper; +import hudson.tasks.BuildStep; import hudson.tasks.test.AbstractTestResultAction; +import hudson.util.FlushProofOutputStream; import hudson.util.IOException2; import hudson.util.LogTaskListener; import hudson.util.XStream2; +import hudson.util.ProcessTree; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.FileReader; import java.io.IOException; +import java.io.InputStream; import java.io.InputStreamReader; -import java.io.PrintStream; import java.io.PrintWriter; import java.io.Reader; import java.io.Writer; @@ -64,16 +72,20 @@ import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; +import java.util.Arrays; import java.util.Calendar; import java.util.Collections; import java.util.Comparator; import java.util.Date; import java.util.GregorianCalendar; import java.util.HashMap; +import java.util.LinkedHashMap; import java.util.LinkedList; import java.util.List; import java.util.Locale; import java.util.Map; +import java.util.Set; +import java.util.HashSet; import java.util.logging.Level; import java.util.logging.Logger; import java.util.zip.GZIPInputStream; @@ -81,14 +93,19 @@ import java.util.zip.GZIPInputStream; import javax.servlet.ServletException; import javax.servlet.http.HttpServletResponse; +import org.apache.commons.io.input.NullInputStream; +import org.apache.commons.jelly.XMLOutput; import org.kohsuke.stapler.QueryParameter; import org.kohsuke.stapler.StaplerRequest; import org.kohsuke.stapler.StaplerResponse; import org.kohsuke.stapler.export.Exported; import org.kohsuke.stapler.export.ExportedBean; -import org.kohsuke.stapler.framework.io.LargeText; import com.thoughtworks.xstream.XStream; +import java.io.FileOutputStream; +import java.io.OutputStream; + +import static java.util.logging.Level.FINE; /** * A particular execution of {@link Job}. @@ -121,11 +138,19 @@ public abstract class Run ,RunT extends Run,RunT extends Run ID_FORMATTER = new ThreadLocal() { @Override @@ -222,11 +253,28 @@ public abstract class Run ,RunT extends Run,RunT extends Run,RunT extends Run * When a build is {@link #isBuilding() in progress}, this method - * may return null or a temporary intermediate result. + * returns an intermediate result. */ @Exported public Result getResult() { @@ -260,16 +316,13 @@ public abstract class Run ,RunT extends Run,RunT extends Run,RunT extends Run + * If a build sits in the queue for a long time, multiple build requests made during this period + * are all rolled up into one build, hence this method may return a list. + * + * @return + * can be empty but never null. read-only. + * @since 1.321 + */ + public List getCauses() { + CauseAction a = getAction(CauseAction.class); + if (a==null) return Collections.emptyList(); + return Collections.unmodifiableList(a.getCauses()); + } + + /** + * Returns a {@link Cause} of a particular type. + * + * @since 1.362 + */ + public T getCause(Class type) { + for (Cause c : getCauses()) + if (type.isInstance(c)) + return type.cast(c); + return null; + } + /** * Returns true if this log file should be kept and not deleted. * @@ -382,6 +455,20 @@ public abstract class Run ,RunT extends Run,RunT extends Run,RunT extends Run') { inTag = false; - if (displayChars <= (maxDescrLength - ending.length())) { + if (displayChars <= maxTruncLength) { lastTruncatablePoint = i + 1; } } if (!inTag) { displayChars++; - if (displayChars <= (maxDescrLength - ending.length())) { - if (ch == ' ') { - lastTruncatablePoint = i; - } + if (displayChars <= maxTruncLength && ch == ' ') { + lastTruncatablePoint = i; } } } String truncDesc = description; - - if (lastTruncatablePoint != -1) { + + // Could not find a preferred truncable index, force a trunc at maxTruncLength + if (lastTruncatablePoint == -1) + lastTruncatablePoint = maxTruncLength; + + if (displayChars >= maxDescrLength) { truncDesc = truncDesc.substring(0, lastTruncatablePoint) + ending; } @@ -437,7 +525,7 @@ public abstract class Run ,RunT extends Run,RunT extends Run,RunT extends Run,RunT extends Run + * We basically follow the existing skip list, and wherever we find a non-optimal pointer, we remember them + * in 'fixUp' and update them later. + */ + public final RunT getPreviousBuildInProgress() { + if(previousBuildInProgress==this) return null; // the most common case + + List fixUp = new ArrayList(); + RunT r = _this(); // 'r' is the source of the pointer (so that we can add it to fix up if we find that the target of the pointer is inefficient.) + RunT answer; + while (true) { + RunT n = r.previousBuildInProgress; + if (n==null) {// no field computed yet. + n=r.getPreviousBuild(); + fixUp.add(r); + } + if (r==n || n==null) { + // this indicates that we know there's no build in progress beyond this point + answer = null; + break; + } + if (n.isBuilding()) { + // we now know 'n' is the target we wanted + answer = n; + break; + } + + fixUp.add(r); // r contains the stale 'previousBuildInProgress' back pointer + r = n; + } + + // fix up so that the next look up will run faster + for (RunT f : fixUp) + f.previousBuildInProgress = answer==null ? f : answer; + return answer; + } + + /** + * Returns the last build that was actually built - i.e., skipping any with Result.NOT_BUILT + */ + public RunT getPreviousBuiltBuild() { + RunT r=previousBuild; + // in certain situations (aborted m2 builds) r.getResult() can still be null, although it should theoretically never happen + while( r!=null && (r.getResult() == null || r.getResult()==Result.NOT_BUILT) ) + r=r.previousBuild; + return r; + } + /** * Returns the last build that didn't fail before this build. */ @@ -539,6 +691,42 @@ public abstract class Run ,RunT extends Run= 'threshold'. + * + * @param numberOfBuilds the desired number of builds + * @param threshold the build result threshold + * @return a list with the builds (youngest build first). + * May be smaller than 'numberOfBuilds' or even empty + * if not enough builds satisfying the threshold have been found. Never null. + * @since 1.383 + */ + public List getPreviousBuildsOverThreshold(int numberOfBuilds, Result threshold) { + List builds = new ArrayList(numberOfBuilds); + + RunT r = getPreviousBuild(); + while (r != null && builds.size() < numberOfBuilds) { + if (!r.isBuilding() && + (r.getResult() != null && r.getResult().isBetterOrEqualTo(threshold))) { + builds.add(r); + } + r = r.getPreviousBuild(); + } + + return builds; + } + public RunT getNextBuild() { return nextBuild; } @@ -576,9 +764,19 @@ public abstract class Run ,RunT extends Run,RunT extends Run getArtifacts() { + return getArtifactsUpTo(Integer.MAX_VALUE); + } + + /** + * Gets the first N artifacts. + */ + public List getArtifactsUpTo(int n) { ArtifactList r = new ArtifactList(); - addArtifacts(getArtifactsDir(),"","",r); + addArtifacts(getArtifactsDir(),"","",r,null,n); r.computeDisplayName(); return r; } @@ -620,29 +825,70 @@ public abstract class Run ,RunT extends Run r ) { + private int addArtifacts( File dir, String path, String pathHref, ArtifactList r, Artifact parent, int upTo ) { String[] children = dir.list(); - if(children==null) return; + if(children==null) return 0; + Arrays.sort(children, String.CASE_INSENSITIVE_ORDER); + + int n = 0; for (String child : children) { - if(r.size()>CUTOFF) - return; + String childPath = path + child; + String childHref = pathHref + Util.rawEncode(child); File sub = new File(dir, child); + boolean collapsed = (children.length==1 && parent!=null); + Artifact a; + if (collapsed) { + // Collapse single items into parent node where possible: + a = new Artifact(parent.getFileName() + '/' + child, childPath, + sub.isDirectory() ? null : childHref, parent.getTreeNodeId()); + r.tree.put(a, r.tree.remove(parent)); + } else { + // Use null href for a directory: + a = new Artifact(child, childPath, + sub.isDirectory() ? null : childHref, "n" + ++r.idSeq); + r.tree.put(a, parent!=null ? parent.getTreeNodeId() : null); + } if (sub.isDirectory()) { - addArtifacts(sub, path + child + '/', pathHref + Util.rawEncode(child) + '/', r); + n += addArtifacts(sub, childPath + '/', childHref + '/', r, a, upTo-n); + if (n>=upTo) break; } else { - r.add(new Artifact(path + child, pathHref + Util.rawEncode(child))); + // Don't store collapsed path in ArrayList (for correct data in external API) + r.add(collapsed ? new Artifact(child, a.relativePath, a.href, a.treeNodeId) : a); + if (++n>=upTo) break; } } + return n; } - private static final int CUTOFF = 17; // 0, 1,... 16, and then "too many" + /** + * Maximum number of artifacts to list before using switching to the tree view. + */ + public static final int LIST_CUTOFF = Integer.parseInt(System.getProperty("hudson.model.Run.ArtifactList.listCutoff", "16")); + + /** + * Maximum number of artifacts to show in tree view before just showing a link. + */ + public static final int TREE_CUTOFF = Integer.parseInt(System.getProperty("hudson.model.Run.ArtifactList.treeCutoff", "40")); + + // ..and then "too many" public final class ArtifactList extends ArrayList { + /** + * Map of Artifact to treeNodeId of parent node in tree view. + * Contains Artifact objects for directories and files (the ArrayList contains only files). + */ + private LinkedHashMap tree = new LinkedHashMap(); + private int idSeq = 0; + + public Map getTree() { + return tree; + } + public void computeDisplayName() { - if(size()>CUTOFF) return; // we are not going to display file names, so no point in computing this + if(size()>LIST_CUTOFF) return; // we are not going to display file names, so no point in computing this int maxDepth = 0; int[] len = new int[size()]; @@ -702,7 +948,7 @@ public abstract class Run ,RunT extends Run0) buf.append('/'); buf.append(token[i]); @@ -728,11 +974,28 @@ public abstract class Run ,RunT extends Run,RunT extends Run,RunT extends Run,RunT extends Runconsole.jelly to write annotated log to the given output. + * + * @since 1.349 + */ + public void writeLogTo(long offset, XMLOutput out) throws IOException { + // TODO: resurrect compressed log file support + getLogText().writeHtmlTo(offset,out.asWriter()); + } + + /** + * Used to URL-bind {@link AnnotatedLargeText}. + */ + public AnnotatedLargeText getLogText() { + return new AnnotatedLargeText(getLogFile(),getCharset(),!isLogUpdated(),this); + } + + @Override protected SearchIndexBuilder makeSearchIndex() { SearchIndexBuilder builder = super.makeSearchIndex() .add("console") @@ -821,6 +1112,20 @@ public abstract class Run ,RunT extends Run,RunT extends Run checkpoints = new HashSet(); + + private boolean allDone; + + protected synchronized void report(CheckPoint identifier) { + checkpoints.add(identifier); + notifyAll(); + } + + protected synchronized boolean waitForCheckPoint(CheckPoint identifier) throws InterruptedException { + final Thread t = Thread.currentThread(); + final String oldName = t.getName(); + t.setName(oldName+" : waiting for "+identifier+" on "+getFullDisplayName()); + try { + while(!allDone && !checkpoints.contains(identifier)) + wait(); + return checkpoints.contains(identifier); + } finally { + t.setName(oldName); + } + } + + /** + * Notifies that the build is fully completed and all the checkpoint locks be released. + */ + private synchronized void allDone() { + allDone = true; + notifyAll(); + } + } + + private final CheckpointSet checkpoints = new CheckpointSet(); + /** * Performs the main build and returns the status code. * * @throws Exception * exception will be recorded and the build will be considered a failure. */ - Result run( BuildListener listener ) throws Exception, RunnerAbortedException; + public abstract Result run( BuildListener listener ) throws Exception, RunnerAbortedException; /** * Performs the post-build action. *

    - * This method is called after the status of the build is determined. + * This method is called after {@linkplain #run(BuildListener) the main portion of the build is completed.} * This is a good opportunity to do notifications based on the result * of the build. When this method is called, the build is not really * finalized yet, and the build is still considered in progress --- for example, * even if the build is successful, this build still won't be picked up * by {@link Job#getLastSuccessfulBuild()}. */ - void post( BuildListener listener ) throws Exception; + public abstract void post( BuildListener listener ) throws Exception; /** * Performs final clean up action. @@ -885,7 +1261,11 @@ public abstract class Run ,RunT extends Run,RunT extends Run,RunT extends Run,RunT extends Run,RunT extends Run,RunT extends Run,RunT extends Run,RunT extends Run,RunT extends Run,RunT extends Run maxLines) logLines.set(0, "[...truncated " + (lineCount - (maxLines - 1)) + " lines...]"); - return logLines; + return ConsoleNote.removeNotes(logLines); } public void doBuildStatus( StaplerRequest req, StaplerResponse rsp ) throws IOException { - // see Hudson.doNocacheImages. this is a work around for a bug in Firefox - rsp.sendRedirect2(req.getContextPath()+"/nocacheImages/48x48/"+getBuildStatusUrl()); + rsp.sendRedirect2(req.getContextPath()+"/images/48x48/"+getBuildStatusUrl()); } public String getBuildStatusUrl() { @@ -1125,60 +1539,62 @@ public abstract class Run ,RunT extends Run0) - return new Summary(false,combine(trN.getFailCount(),"test failure")); + return new Summary(false, Messages.Run_Summary_TestFailures(trN.getFailCount())); else // ??? - return new Summary(false,"unstable"); + return new Summary(false, Messages.Run_Summary_Unstable()); } if(trP.getFailCount()==0) - return new Summary(true,combine(trN.getFailCount(),"test")+" started to fail"); + return new Summary(true, Messages.Run_Summary_TestsStartedToFail(trN.getFailCount())); if(trP.getFailCount() < trN.getFailCount()) - return new Summary(true,combine(trN.getFailCount()-trP.getFailCount(),"more test") - +" are failing ("+trN.getFailCount()+" total)"); + return new Summary(true, Messages.Run_Summary_MoreTestsFailing(trN.getFailCount()-trP.getFailCount(), trN.getFailCount())); if(trP.getFailCount() > trN.getFailCount()) - return new Summary(false,combine(trP.getFailCount()-trN.getFailCount(),"less test") - +" are failing ("+trN.getFailCount()+" total)"); + return new Summary(false, Messages.Run_Summary_LessTestsFailing(trP.getFailCount()-trN.getFailCount(), trN.getFailCount())); - return new Summary(false,combine(trN.getFailCount(),"test")+" are still failing"); + return new Summary(false, Messages.Run_Summary_TestsStillFailing(trN.getFailCount())); } } - return new Summary(false,"?"); + return new Summary(false, Messages.Run_Summary_Unknown()); } /** * Serves the artifacts. */ public DirectoryBrowserSupport doArtifact() { + if(Functions.isArtifactsPermissionEnabled()) { + checkPermission(ARTIFACTS); + } return new DirectoryBrowserSupport(this,new FilePath(getArtifactsDir()), project.getDisplayName()+' '+getDisplayName(), "package.gif", true); } /** * Returns the build number in the body. */ - public void doBuildNumber( StaplerRequest req, StaplerResponse rsp ) throws IOException { + public void doBuildNumber(StaplerResponse rsp) throws IOException { rsp.setContentType("text/plain"); rsp.setCharacterEncoding("US-ASCII"); rsp.setStatus(HttpServletResponse.SC_OK); @@ -1195,19 +1611,30 @@ public abstract class Run ,RunT extends Run,RunT extends Run,RunT extends Run,RunT extends Run,RunT extends Run * Unlike earlier {@link #getEnvVars()}, this map contains the whole environment, * not just the overrides, so one can introspect values to change its behavior. + * @since 1.305 */ public EnvVars getEnvironment(TaskListener log) throws IOException, InterruptedException { - EnvVars env = Computer.currentComputer().getEnvironment().overrideAll(getCharacteristicEnvVars()); + EnvVars env = getCharacteristicEnvVars(); + Computer c = Computer.currentComputer(); + if (c!=null) + env = c.getEnvironment().overrideAll(env); String rootUrl = Hudson.getInstance().getRootUrl(); - if(rootUrl!=null) + if(rootUrl!=null) { env.put("HUDSON_URL", rootUrl); + env.put("BUILD_URL", rootUrl+getUrl()); + env.put("JOB_URL", rootUrl+getParent().getUrl()); + } + if(!env.containsKey("HUDSON_HOME")) env.put("HUDSON_HOME", Hudson.getInstance().getRootDir().getPath() ); @@ -1304,6 +1742,10 @@ public abstract class Run ,RunT extends Run,RunT extends Run,RunT extends Run,RunT extends Run ORDER_BY_DATE = new Comparator() { public int compare(Run lhs, Run rhs) { - long lt = lhs.getTimestamp().getTimeInMillis(); - long rt = rhs.getTimestamp().getTimeInMillis(); + long lt = lhs.getTimeInMillis(); + long rt = rhs.getTimeInMillis(); if(lt>rt) return -1; if(lt,RunT extends Run,RunT extends Run { public String getEntryTitle(Run entry) { - return entry+" ("+entry.getResult()+")"; + return entry+" ("+entry.getBuildStatusSummary().message+")"; } public String getEntryUrl(Run entry) { @@ -1436,7 +1894,7 @@ public abstract class Run ,RunT extends Run,RunT extends Run> extends AbstractMap imp return put(value.getNumber(),value); } + @Override public synchronized R put(Integer key, R value) { // copy-on-write update TreeMap m = new TreeMap(builds); @@ -76,6 +77,7 @@ public final class RunMap> extends AbstractMap imp return r; } + @Override public synchronized void putAll(Map rhs) { // copy-on-write update TreeMap m = new TreeMap(builds); @@ -227,6 +229,9 @@ public final class RunMap> extends AbstractMap imp } reset(builds); + + for (R r : builds.values()) + r.onLoad(); } private static final Logger LOGGER = Logger.getLogger(RunMap.class.getName()); diff --git a/core/src/main/java/hudson/model/RunParameterDefinition.java b/core/src/main/java/hudson/model/RunParameterDefinition.java index 050fbbca74a8ca04e5f194e539a5c7d23ffb1d48..f07087350d749b045e4674496efd484db4848ff6 100644 --- a/core/src/main/java/hudson/model/RunParameterDefinition.java +++ b/core/src/main/java/hudson/model/RunParameterDefinition.java @@ -29,7 +29,8 @@ import org.kohsuke.stapler.DataBoundConstructor; import org.kohsuke.stapler.StaplerRequest; import hudson.Extension; -public class RunParameterDefinition extends ParameterDefinition { + +public class RunParameterDefinition extends SimpleParameterDefinition { private final String projectName; @@ -67,7 +68,12 @@ public class RunParameterDefinition extends ParameterDefinition { @Override public ParameterValue getDefaultParameterValue() { - return new RunParameterValue(getName(), getProject().getLastBuild().getExternalizableId(), getDescription()); + Run lastBuild = getProject().getLastBuild(); + if (lastBuild != null) { + return createValue(lastBuild.getExternalizableId()); + } else { + return null; + } } @Override @@ -77,17 +83,8 @@ public class RunParameterDefinition extends ParameterDefinition { return value; } - @Override - public ParameterValue createValue(StaplerRequest req) { - String[] value = req.getParameterValues(getName()); - if (value == null) { - return getDefaultParameterValue(); - } else if (value.length != 1) { - throw new IllegalArgumentException("Illegal number of parameter values for " + getName() + ": " + value.length); - } else { - return new RunParameterValue(getName(), value[0], getDescription()); - } - - } + public RunParameterValue createValue(String value) { + return new RunParameterValue(getName(), value, getDescription()); + } } diff --git a/core/src/main/java/hudson/model/RunParameterValue.java b/core/src/main/java/hudson/model/RunParameterValue.java index d400e2fcc30e3e61428268d02713dc936d58b7e3..ea811ecee26d6e7bd505dbdc2a5721b7b5559c85 100644 --- a/core/src/main/java/hudson/model/RunParameterValue.java +++ b/core/src/main/java/hudson/model/RunParameterValue.java @@ -23,16 +23,11 @@ */ package hudson.model; -import org.kohsuke.stapler.DataBoundConstructor; - -import java.util.Map; +import java.util.Locale; -import com.thoughtworks.xstream.converters.Converter; -import com.thoughtworks.xstream.converters.MarshallingContext; -import com.thoughtworks.xstream.converters.UnmarshallingContext; -import com.thoughtworks.xstream.io.HierarchicalStreamWriter; -import com.thoughtworks.xstream.io.HierarchicalStreamReader; -import hudson.util.Secret; +import hudson.EnvVars; +import org.kohsuke.stapler.DataBoundConstructor; +import org.kohsuke.stapler.export.Exported; public class RunParameterValue extends ParameterValue { @@ -56,13 +51,32 @@ public class RunParameterValue extends ParameterValue { public String getRunId() { return runId; } + + @Exported + public String getJobName() { + return runId.split("#")[0]; + } + + @Exported + public String getNumber() { + return runId.split("#")[1]; + } + /** * Exposes the name/value as an environment variable. */ @Override - public void buildEnvVars(AbstractBuild build, Map env) { - env.put(name.toUpperCase(), Hudson.getInstance().getRootUrl() + getRun().getUrl()); + public void buildEnvVars(AbstractBuild build, EnvVars env) { + String value = Hudson.getInstance().getRootUrl() + getRun().getUrl(); + env.put(name, value); + env.put(name.toUpperCase(Locale.ENGLISH),value); // backward compatibility pre 1.345 + + } + + @Override + public String getShortDescription() { + return "(RunParameterValue) " + getName() + "='" + getRunId() + "'"; } } diff --git a/core/src/main/java/hudson/model/RunnerStack.java b/core/src/main/java/hudson/model/RunnerStack.java new file mode 100644 index 0000000000000000000000000000000000000000..d22a051762300797c4f6d083201679ff09ec1192 --- /dev/null +++ b/core/src/main/java/hudson/model/RunnerStack.java @@ -0,0 +1,61 @@ +/* + * The MIT License + * + * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.model; + +import hudson.model.Run.Runner; + +import java.util.Stack; +import java.util.Map; +import java.util.WeakHashMap; + +/** + * Keeps track of {@link Runner}s that are currently executing on the given thread + * (that can be either an {@link Executor} or threads that are impersonating one.) + * + * @author Kohsuke Kawaguchi + * @since 1.319 + */ +final class RunnerStack { + private final Map> stack = new WeakHashMap>(); + + synchronized void push(Runner r) { + Executor e = Executor.currentExecutor(); + Stack s = stack.get(e); + if(s==null) stack.put(e,s=new Stack()); + s.push(r); + } + + synchronized void pop() { + Executor e = Executor.currentExecutor(); + Stack s = stack.get(e); + s.pop(); + if(s.isEmpty()) stack.remove(e); + } + + synchronized Runner peek() { + return stack.get(Executor.currentExecutor()).peek(); + } + + static final RunnerStack INSTANCE = new RunnerStack(); +} diff --git a/core/src/main/java/hudson/model/SCMedItem.java b/core/src/main/java/hudson/model/SCMedItem.java index c00c160fd36687aef49a7c3c50d7ea77480707a3..d5c9fc39691a8076da07aa5aba7d452e3b7c2b9a 100644 --- a/core/src/main/java/hudson/model/SCMedItem.java +++ b/core/src/main/java/hudson/model/SCMedItem.java @@ -23,6 +23,7 @@ */ package hudson.model; +import hudson.scm.PollingResult; import hudson.scm.SCM; import hudson.triggers.SCMTrigger; @@ -54,9 +55,21 @@ public interface SCMedItem extends BuildableItem { /** * Checks if there's any update in SCM, and returns true if any is found. * - *

    - * The caller is responsible for coordinating the mutual exclusion between - * a build and polling, as both touches the workspace. + * @deprecated as of 1.346 + * Use {@link #poll(TaskListener)} instead. */ boolean pollSCMChanges( TaskListener listener ); + + /** + * Checks if there's any update in SCM, and returns true if any is found. + * + *

    + * The implementation is responsible for ensuring mutual exclusion between polling and builds + * if necessary. + * + * @return never null. + * + * @since 1.345 + */ + public PollingResult poll( TaskListener listener ); } diff --git a/core/src/main/java/hudson/model/Saveable.java b/core/src/main/java/hudson/model/Saveable.java index eb7a40d4c27151057b482f999b61659470dbddce..d4c9450606ec9802a535511665b10e45591c46e7 100644 --- a/core/src/main/java/hudson/model/Saveable.java +++ b/core/src/main/java/hudson/model/Saveable.java @@ -24,7 +24,6 @@ package hudson.model; import hudson.BulkChange; - import java.io.IOException; /** @@ -41,6 +40,8 @@ public interface Saveable { *

    * For making a bulk change efficiently, see {@link BulkChange}. * + *

    + * To support listeners monitoring changes to this object, call {@link SaveableListener.fireOnChange} * @throws IOException * if the persistence failed. */ diff --git a/core/src/main/java/hudson/model/SimpleParameterDefinition.java b/core/src/main/java/hudson/model/SimpleParameterDefinition.java new file mode 100644 index 0000000000000000000000000000000000000000..250d9bc4cc9aa854687066bd7d2386664ded8fae --- /dev/null +++ b/core/src/main/java/hudson/model/SimpleParameterDefinition.java @@ -0,0 +1,43 @@ +package hudson.model; + +import org.kohsuke.stapler.StaplerRequest; +import hudson.cli.CLICommand; + +import java.io.IOException; + +/** + * Convenient base class for {@link ParameterDefinition} whose value can be represented in a context-independent single string token. + * + * @author Kohsuke Kawaguchi + */ +public abstract class SimpleParameterDefinition extends ParameterDefinition { + protected SimpleParameterDefinition(String name) { + super(name); + } + + protected SimpleParameterDefinition(String name, String description) { + super(name, description); + } + + /** + * Creates a {@link ParameterValue} from the string representation. + */ + public abstract ParameterValue createValue(String value); + + @Override + public final ParameterValue createValue(StaplerRequest req) { + String[] value = req.getParameterValues(getName()); + if (value == null) { + return getDefaultParameterValue(); + } else if (value.length != 1) { + throw new IllegalArgumentException("Illegal number of parameter values for " + getName() + ": " + value.length); + } else { + return createValue(value[0]); + } + } + + @Override + public final ParameterValue createValue(CLICommand command, String value) throws IOException, InterruptedException { + return createValue(value); + } +} diff --git a/core/src/main/java/hudson/model/Slave.java b/core/src/main/java/hudson/model/Slave.java index 7442ae4d7dc30dd0edd56949f4b06f389d6d44c0..e8186e53de268f920a58b27938476a25afbdec94 100644 --- a/core/src/main/java/hudson/model/Slave.java +++ b/core/src/main/java/hudson/model/Slave.java @@ -1,7 +1,7 @@ /* * The MIT License * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Erik Ramfelt, Martin Eigenbrodt, Stephen Connolly, Tom Huybrechts + * Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Erik Ramfelt, Martin Eigenbrodt, Stephen Connolly, Tom Huybrechts * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -27,6 +27,7 @@ import hudson.FilePath; import hudson.Launcher; import hudson.Util; import hudson.Launcher.RemoteLauncher; +import hudson.diagnosis.OldDataMonitor; import hudson.model.Descriptor.FormException; import hudson.remoting.Callable; import hudson.remoting.VirtualChannel; @@ -39,8 +40,6 @@ import hudson.slaves.NodeProperty; import hudson.slaves.NodePropertyDescriptor; import hudson.slaves.RetentionStrategy; import hudson.slaves.SlaveComputer; -import hudson.tasks.DynamicLabeler; -import hudson.tasks.LabelFinder; import hudson.util.ClockDifference; import hudson.util.DescribableList; import hudson.util.FormValidation; @@ -53,8 +52,6 @@ import java.net.MalformedURLException; import java.net.URL; import java.net.URLConnection; import java.util.ArrayList; -import java.util.Collections; -import java.util.HashSet; import java.util.List; import java.util.Set; @@ -62,6 +59,7 @@ import javax.servlet.ServletException; import org.apache.commons.io.IOUtils; import org.kohsuke.stapler.DataBoundConstructor; +import org.kohsuke.stapler.HttpResponse; import org.kohsuke.stapler.QueryParameter; import org.kohsuke.stapler.StaplerRequest; import org.kohsuke.stapler.StaplerResponse; @@ -120,22 +118,22 @@ public abstract class Slave extends Node implements Serializable { */ private String label=""; - private /*almost final*/ DescribableList,NodePropertyDescriptor> nodeProperties = new DescribableList,NodePropertyDescriptor>(Hudson.getInstance()); + private /*almost final*/ DescribableList,NodePropertyDescriptor> nodeProperties = new DescribableList,NodePropertyDescriptor>(Hudson.getInstance()); /** * Lazily computed set of labels from {@link #label}. */ private transient volatile Set

    * {@link StreamTaskListener} is the most typical implementation of this interface. + * All the {@link TaskListener} implementations passed to plugins from Hudson core are remotable. * + * @see AbstractTaskListener * @author Kohsuke Kawaguchi */ -public interface TaskListener { +public interface TaskListener extends Serializable { /** - * This writer will receive the output of the build. + * This writer will receive the output of the build * * @return * must be non-null. */ PrintStream getLogger(); + /** + * Annotates the current position in the output log by using the given annotation. + * If the implementation doesn't support annotated output log, this method might be no-op. + * @since 1.349 + */ + void annotate(ConsoleNote ann) throws IOException; + + /** + * Places a {@link HyperlinkNote} on the given text. + */ + void hyperlink(String url, String text) throws IOException; + /** * An error in the build. * diff --git a/core/src/main/java/hudson/model/TaskThread.java b/core/src/main/java/hudson/model/TaskThread.java index 79d2315b3860072bfa7c23dbe2cd8dd276cbc124..f0f760233fba34a04c793f9e7deb3d4da4f4bcc8 100644 --- a/core/src/main/java/hudson/model/TaskThread.java +++ b/core/src/main/java/hudson/model/TaskThread.java @@ -23,12 +23,14 @@ */ package hudson.model; +import hudson.console.AnnotatedLargeText; import hudson.util.StreamTaskListener; import java.io.File; import java.io.IOException; import java.io.Reader; import java.lang.ref.WeakReference; +import java.nio.charset.Charset; import org.kohsuke.stapler.framework.io.LargeText; import org.kohsuke.stapler.framework.io.ByteBuffer; @@ -46,10 +48,16 @@ import org.kohsuke.stapler.framework.io.ByteBuffer; */ public abstract class TaskThread extends Thread { /** - * Represents the output from this task thread. + * @deprecated as of Hudson 1.350 + * Use {@link #log}. It's the same object, in a better type. */ private final LargeText text; + /** + * Represents the output from this task thread. + */ + private final AnnotatedLargeText log; + /** * Represents the interface to produce output. */ @@ -70,7 +78,7 @@ public abstract class TaskThread extends Thread { //if you want it in the thread's name. super(owner.getDisplayName()); this.owner = owner; - this.text = output.text; + this.text = this.log = output.text; this.listener = output.listener; } @@ -86,12 +94,13 @@ public abstract class TaskThread extends Thread { */ protected final void associateWith(TaskAction action) { action.workerThread = this; - action.log = new WeakReference(text); + action.log = new WeakReference(log); } /** * Starts the task execution asynchronously. */ + @Override public void start() { associateWith(owner); super.start(); @@ -110,6 +119,7 @@ public abstract class TaskThread extends Thread { return ListenerAndText.forMemory(); } + @Override public final void run() { isRunning = true; try { @@ -124,7 +134,7 @@ public abstract class TaskThread extends Thread { listener = null; isRunning =false; } - text.markAsComplete(); + log.markAsComplete(); } /** @@ -136,38 +146,54 @@ public abstract class TaskThread extends Thread { protected abstract void perform(TaskListener listener) throws Exception; /** - * Tuple of {@link TaskListener} and {@link LargeText}, representing + * Tuple of {@link TaskListener} and {@link AnnotatedLargeText}, representing * the interface for producing output and how to retrieve it later. */ public static final class ListenerAndText { final TaskListener listener; - final LargeText text; + final AnnotatedLargeText text; - public ListenerAndText(TaskListener listener, LargeText text) { + public ListenerAndText(TaskListener listener, AnnotatedLargeText text) { this.listener = listener; this.text = text; } /** - * Creates one that's backed by memory. + * @deprecated as of Hudson 1.350 + * Use {@link #forMemory(TaskThread)} and pass in the calling {@link TaskAction} */ public static ListenerAndText forMemory() { + return forMemory(null); + } + + /** + * @deprecated as of Hudson 1.350 + * Use {@link #forFile(File, TaskThread)} and pass in the calling {@link TaskAction} + */ + public static ListenerAndText forFile(File f) throws IOException { + return forFile(f,null); + } + + /** + * Creates one that's backed by memory. + */ + public static ListenerAndText forMemory(TaskThread context) { // StringWriter is synchronized ByteBuffer log = new ByteBuffer(); return new ListenerAndText( new StreamTaskListener(log), - new LargeText(log,false) + new AnnotatedLargeText(log,Charset.defaultCharset(),false,context) ); } /** * Creates one that's backed by a file. */ - public static ListenerAndText forFile(File f) throws IOException { + public static ListenerAndText forFile(File f, TaskThread context) throws IOException { return new ListenerAndText( new StreamTaskListener(f), - new LargeText(f,false) + new AnnotatedLargeText(f,Charset.defaultCharset(),false,context) ); } } diff --git a/core/src/main/java/hudson/model/TimeSeries.java b/core/src/main/java/hudson/model/TimeSeries.java index e917f09b80119dae17f6760732cf08d9bdf1cf5b..51141a5767068316a72e12eabaf84fcdb4f9a141 100644 --- a/core/src/main/java/hudson/model/TimeSeries.java +++ b/core/src/main/java/hudson/model/TimeSeries.java @@ -24,6 +24,8 @@ package hudson.model; import hudson.CopyOnWrite; +import org.kohsuke.stapler.export.ExportedBean; +import org.kohsuke.stapler.export.Exported; /** * Scalar value that changes over the time (such as load average, Q length, # of executors, etc.) @@ -34,6 +36,7 @@ import hudson.CopyOnWrite; * * @author Kohsuke Kawaguchi */ +@ExportedBean public final class TimeSeries { /** * Decay ratio. Normally 1-e for some small e. @@ -81,6 +84,7 @@ public final class TimeSeries { * @return * Always non-null, contains at least one entry. */ + @Exported public float[] getHistory() { return history; } @@ -88,10 +92,12 @@ public final class TimeSeries { /** * Gets the most up-to-date data point value. {@code getHistory[0]}. */ + @Exported public float getLatest() { return history[0]; } + @Override public String toString() { return Float.toString(history[0]); } diff --git a/core/src/main/java/hudson/model/TopLevelItemDescriptor.java b/core/src/main/java/hudson/model/TopLevelItemDescriptor.java index f0d1bcd23e981c44dda13ae383a8df66ba05004b..0648ff4e76db42064aab93ed6138bde77ebbda4f 100644 --- a/core/src/main/java/hudson/model/TopLevelItemDescriptor.java +++ b/core/src/main/java/hudson/model/TopLevelItemDescriptor.java @@ -23,13 +23,9 @@ */ package hudson.model; +import hudson.ExtensionList; import org.kohsuke.stapler.StaplerRequest; -import java.util.List; -import java.util.ArrayList; - -import hudson.tasks.BuildStepDescriptor; - /** * {@link Descriptor} for {@link TopLevelItem}s. * @@ -69,18 +65,14 @@ public abstract class TopLevelItemDescriptor extends Descriptor { * *

    * Used as the caption when the user chooses what job type to create. - * The descriptor implementation also needs to have detail.jelly + * The descriptor implementation also needs to have newJobDetail.jelly * script, which will be used to render the text below the caption - * that expains the job type. + * that explains the job type. */ public abstract String getDisplayName(); - public final String newInstanceDetailPage() { - return '/'+clazz.getName().replace('.','/').replace('$','/')+"/newJobDetail.jelly"; - } - /** - * @deprecated + * @deprecated since 2007-01-19. * This is not a valid operation for {@link Job}s. */ @Deprecated @@ -92,4 +84,12 @@ public abstract class TopLevelItemDescriptor extends Descriptor { * Creates a new {@link Job}. */ public abstract TopLevelItem newInstance(String name); + + /** + * Returns all the registered {@link TopLevelItem} descriptors. + */ + public static ExtensionList all() { + return Items.all(); + } + } diff --git a/core/src/main/java/hudson/model/TransientProjectActionFactory.java b/core/src/main/java/hudson/model/TransientProjectActionFactory.java new file mode 100644 index 0000000000000000000000000000000000000000..c885dc6c7c70db6b7b71080d910274004b1beb8e --- /dev/null +++ b/core/src/main/java/hudson/model/TransientProjectActionFactory.java @@ -0,0 +1,70 @@ +/* + * The MIT License + * + * Copyright (c) 2004-2009, Sun Microsystems, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.model; + +import hudson.Extension; +import hudson.ExtensionList; +import hudson.ExtensionPoint; +import hudson.tasks.BuildStep; + +import java.util.Collection; + +/** + * Extension point for inserting transient {@link Action}s into {@link AbstractProject}s. + * + *

    + * Actions of projects are primarily determined by {@link BuildStep}s that are associated by configurations, + * but sometimes it's convenient to be able to add actions across all or many projects, without being invoked + * through configuration. This extension point provides such a mechanism. + * + * Actions of {@link AbstractProject}s are transient — they will not be persisted, and each time Hudson starts + * or the configuration of the job changes, they'll be recreated. Therefore, to maintain persistent data + * per project, you'll need to do data serialization by yourself. Do so by storing a file + * under {@link AbstractProject#getRootDir()}. + * + *

    + * To register your implementation, put {@link Extension} on your subtype. + * + * @author Kohsuke Kawaguchi + * @since 1.327 + * @see Action + */ +public abstract class TransientProjectActionFactory implements ExtensionPoint { + /** + * Creates actions for the given project. + * + * @param target + * The project for which the action objects are requested. Never null. + * @return + * Can be empty but must not be null. + */ + public abstract Collection createFor(AbstractProject target); + + /** + * Returns all the registered {@link TransientProjectActionFactory}s. + */ + public static ExtensionList all() { + return Hudson.getInstance().getExtensionList(TransientProjectActionFactory.class); + } +} diff --git a/core/src/main/java/hudson/model/TreeView.java b/core/src/main/java/hudson/model/TreeView.java index 427f5a7ddcaef040ac81a71d4273ed8f49019c6e..a68b84af0f303389cd82219b920b9e4e4e33bbcc 100644 --- a/core/src/main/java/hudson/model/TreeView.java +++ b/core/src/main/java/hudson/model/TreeView.java @@ -1,7 +1,7 @@ /* * The MIT License * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi + * Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -27,6 +27,7 @@ import hudson.model.Descriptor.FormException; import hudson.util.CaseInsensitiveComparator; import hudson.Indenter; import hudson.Extension; +import hudson.views.ViewsTabBar; import org.kohsuke.stapler.DataBoundConstructor; import org.kohsuke.stapler.StaplerRequest; import org.kohsuke.stapler.StaplerResponse; @@ -39,7 +40,6 @@ import java.util.List; import java.util.Set; import java.util.TreeSet; import java.util.concurrent.CopyOnWriteArrayList; -import java.text.ParseException; /** * @@ -125,6 +125,10 @@ public class TreeView extends View implements ViewGroup { protected void submit(StaplerRequest req) throws IOException, ServletException, FormException { } + public boolean canDelete(View view) { + return true; + } + public void deleteView(View view) throws IOException { views.remove(view); } @@ -148,16 +152,10 @@ public class TreeView extends View implements ViewGroup { owner.save(); } - public void doCreateView( StaplerRequest req, StaplerResponse rsp ) throws IOException, ServletException { - try { - checkPermission(View.CREATE); - views.add(View.create(req,rsp,this)); - save(); - } catch (ParseException e) { - sendError(e,req,rsp); - } catch (FormException e) { - sendError(e,req,rsp); - } + public void doCreateView( StaplerRequest req, StaplerResponse rsp ) throws IOException, ServletException, FormException { + checkPermission(View.CREATE); + views.add(View.create(req,rsp,this)); + save(); } // this feature is not public yet @@ -174,4 +172,8 @@ public class TreeView extends View implements ViewGroup { return "Tree View"; } } + + public ViewsTabBar getViewsTabBar() { + return Hudson.getInstance().getViewsTabBar(); + } } diff --git a/core/src/main/java/hudson/model/UpdateCenter.java b/core/src/main/java/hudson/model/UpdateCenter.java index bc82a951f5b8e79c220fc990a2cc457b2cd14715..b97ef60589d5ecf67723fa033b6218cc3fea34b1 100644 --- a/core/src/main/java/hudson/model/UpdateCenter.java +++ b/core/src/main/java/hudson/model/UpdateCenter.java @@ -1,7 +1,7 @@ /* * The MIT License * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Yahoo! Inc., Seiji Sogabe + * Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Yahoo! Inc., Seiji Sogabe * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -23,51 +23,58 @@ */ package hudson.model; +import hudson.BulkChange; +import hudson.Extension; import hudson.ExtensionPoint; import hudson.Functions; import hudson.PluginManager; import hudson.PluginWrapper; -import hudson.Util; import hudson.ProxyConfiguration; -import hudson.Extension; +import hudson.Util; +import hudson.XmlFile; +import static hudson.init.InitMilestone.PLUGINS_STARTED; +import hudson.init.Initializer; import hudson.lifecycle.Lifecycle; +import hudson.model.UpdateSite.Data; +import hudson.model.UpdateSite.Plugin; +import hudson.model.listeners.SaveableListener; +import hudson.security.ACL; import hudson.util.DaemonThreadFactory; -import hudson.util.TextFile; -import hudson.util.VersionNumber; import hudson.util.IOException2; -import static hudson.util.TimeUnit2.DAYS; -import net.sf.json.JSONObject; +import hudson.util.PersistedList; +import hudson.util.XStream2; import org.acegisecurity.Authentication; import org.apache.commons.io.input.CountingInputStream; -import org.apache.commons.io.IOUtils; -import org.kohsuke.stapler.DataBoundConstructor; -import org.kohsuke.stapler.StaplerRequest; +import org.apache.commons.io.output.NullOutputStream; import org.kohsuke.stapler.StaplerResponse; +import javax.net.ssl.SSLHandshakeException; import javax.servlet.ServletException; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; -import java.io.InputStream; -import java.io.ByteArrayOutputStream; +import java.net.MalformedURLException; import java.net.URL; import java.net.URLConnection; import java.net.UnknownHostException; -import java.net.MalformedURLException; import java.util.ArrayList; import java.util.Collections; +import java.util.HashSet; import java.util.List; -import java.util.Map; import java.util.Set; -import java.util.TreeMap; +import java.util.TreeSet; import java.util.Vector; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; +import java.util.concurrent.Future; import java.util.concurrent.ThreadFactory; import java.util.concurrent.atomic.AtomicInteger; +import java.util.jar.JarFile; import java.util.logging.Level; import java.util.logging.Logger; +import org.acegisecurity.context.SecurityContextHolder; + /** * Controls update center capability. @@ -84,22 +91,7 @@ import java.util.logging.Logger; * @author Kohsuke Kawaguchi * @since 1.220 */ -public class UpdateCenter extends AbstractModelObject { - /** - * What's the time stamp of data file? - */ - private long dataTimestamp = -1; - - /** - * When was the last time we asked a browser to check the data for us? - * - *

    - * There's normally some delay between when we send HTML that includes the check code, - * until we get the data back, so this variable is used to avoid asking too many browseres - * all at once. - */ - private volatile long lastAttempt = -1; - +public class UpdateCenter extends AbstractModelObject implements Saveable { /** * {@link ExecutorService} that performs installation. */ @@ -118,22 +110,30 @@ public class UpdateCenter extends AbstractModelObject { private final Vector jobs = new Vector(); /** - * Update center configuration data + * {@link UpdateSite}s from which we've already installed a plugin at least once. + * This is used to skip network tests. */ - private UpdateCenterConfiguration config; - + private final Set sourcesUsed = new HashSet(); + /** - * Create update center to get plugins/updates from hudson.dev.java.net + * List of {@link UpdateSite}s to be used. */ - public UpdateCenter(Hudson parent) { + private final PersistedList sites = new PersistedList(this); + + /** + * Update center configuration data + */ + private UpdateCenterConfiguration config; + + public UpdateCenter() { configure(new UpdateCenterConfiguration()); } - + /** * Configures update center to get plugins/updates from alternate servers, * and optionally using alternate strategies for downloading, installing * and upgrading. - * + * * @param config Configuration data * @see UpdateCenterConfiguration */ @@ -142,19 +142,6 @@ public class UpdateCenter extends AbstractModelObject { this.config = config; } } - - /** - * Returns true if it's time for us to check for new version. - */ - public boolean isDue() { - if(neverUpdate) return false; - if(dataTimestamp==-1) - dataTimestamp = getDataFile().file.lastModified(); - long now = System.currentTimeMillis(); - boolean due = now - dataTimestamp > DAY && now - lastAttempt > 15000; - if(due) lastAttempt = now; - return due; - } /** * Returns the list of {@link UpdateCenterJob} representing scheduled installation attempts. @@ -169,142 +156,178 @@ public class UpdateCenter extends AbstractModelObject { } /** - * Gets the string representing how long ago the data was obtained. + * Returns latest install/upgrade job for the given plugin. + * @return InstallationJob or null if not found */ - public String getLastUpdatedString() { - if(dataTimestamp<0) return "N/A"; - return Util.getPastTimeString(System.currentTimeMillis()-dataTimestamp); + public InstallationJob getJob(Plugin plugin) { + List jobList = getJobs(); + Collections.reverse(jobList); + for (UpdateCenterJob job : jobList) + if (job instanceof InstallationJob) { + InstallationJob ij = (InstallationJob)job; + if (ij.plugin.name.equals(plugin.name) && ij.plugin.sourceId.equals(plugin.sourceId)) + return ij; + } + return null; } /** - * This is the endpoint that receives the update center data file from the browser. + * Returns latest Hudson upgrade job. + * @return HudsonUpgradeJob or null if not found */ - public void doPostBack(StaplerRequest req) throws IOException { - dataTimestamp = System.currentTimeMillis(); - String p = req.getParameter("json"); - JSONObject o = JSONObject.fromObject(p); - - int v = o.getInt("updateCenterVersion"); - if(v !=1) { - LOGGER.warning("Unrecognized update center version: "+v); - return; - } - - LOGGER.info("Obtained the latest update center data file"); - getDataFile().write(p); + public HudsonUpgradeJob getHudsonJob() { + List jobList = getJobs(); + Collections.reverse(jobList); + for (UpdateCenterJob job : jobList) + if (job instanceof HudsonUpgradeJob) + return (HudsonUpgradeJob)job; + return null; } /** - * Schedules a Hudson upgrade. + * Returns the list of {@link UpdateSite}s to be used. + * This is a live list, whose change will be persisted automatically. + * + * @return + * can be empty but never null. */ - public void doUpgrade(StaplerResponse rsp) throws IOException, ServletException { - requirePOST(); - Hudson.getInstance().checkPermission(Hudson.ADMINISTER); - HudsonUpgradeJob job = new HudsonUpgradeJob(Hudson.getAuthentication()); - if(!Lifecycle.get().canRewriteHudsonWar()) { - sendError("Hudson upgrade not supported in this running mode"); - return; - } - - LOGGER.info("Scheduling the core upgrade"); - addJob(job); - rsp.sendRedirect2("."); + public PersistedList getSites() { + return sites; } - private void addJob(UpdateCenterJob job) { - // the first job is always the connectivity check - if(jobs.size()==0) - new ConnectionCheckJob().schedule(); - job.schedule(); + public UpdateSite getSite(String id) { + for (UpdateSite site : sites) + if (site.getId().equals(id)) + return site; + return null; } /** - * Loads the update center data, if any. - * - * @return null if no data is available. + * Gets the string representing how long ago the data was obtained. + * Will be the newest of all {@link UpdateSite}s. */ - public Data getData() { - TextFile df = getDataFile(); - if(df.exists()) { - try { - return new Data(JSONObject.fromObject(df.read())); - } catch (IOException e) { - LOGGER.log(Level.SEVERE,"Failed to parse "+df,e); - df.delete(); // if we keep this file, it will cause repeated failures - return null; + public String getLastUpdatedString() { + long newestTs = -1; + for (UpdateSite s : sites) { + if (s.getDataTimestamp()>newestTs) { + newestTs = s.getDataTimestamp(); } - } else { - return null; } + if(newestTs<0) return "N/A"; + return Util.getPastTimeString(System.currentTimeMillis()-newestTs); } /** - * Returns a list of plugins that should be shown in the "available" tab. - * These are "all plugins - installed plugins". + * Gets {@link UpdateSite} by its ID. + * Used to bind them to URL. */ - public List getAvailables() { - List r = new ArrayList(); - Data data = getData(); - if(data ==null) return Collections.emptyList(); - for (Plugin p : data.plugins.values()) { - if(p.getInstalled()==null) - r.add(p); + public UpdateSite getById(String id) { + for (UpdateSite s : sites) { + if (s.getId().equals(id)) { + return s; + } } - return r; + return null; } /** - * Gets the information about a specific plugin. - * - * @param artifactId - * The short name of the plugin. Corresponds to {@link PluginWrapper#getShortName()}. + * Gets the {@link UpdateSite} from which we receive updates for hudson.war. * * @return - * null if no such information is found. + * null if no such update center is provided. */ - public Plugin getPlugin(String artifactId) { - Data dt = getData(); - if(dt==null) return null; - return dt.plugins.get(artifactId); + public UpdateSite getCoreSource() { + for (UpdateSite s : sites) { + Data data = s.getData(); + if (data!=null && data.core!=null) + return s; + } + return null; } /** - * This is where we store the update center data. + * Gets the default base URL. + * + * @deprecated + * TODO: revisit tool update mechanism, as that should be de-centralized, too. In the mean time, + * please try not to use this method, and instead ping us to get this part completed. */ - private TextFile getDataFile() { - return new TextFile(new File(Hudson.getInstance().root,"update-center.json")); + public String getDefaultBaseUrl() { + return config.getUpdateCenterUrl(); } /** - * Returns the list of plugins that are updates to currently installed ones. - * - * @return - * can be empty but never null. + * Gets the plugin with the given name from the first {@link UpdateSite} to contain it. */ - public List getUpdates() { - Data data = getData(); - if(data==null) return Collections.emptyList(); // fail to determine + public Plugin getPlugin(String artifactId) { + for (UpdateSite s : sites) { + Plugin p = s.getPlugin(artifactId); + if (p!=null) return p; + } + return null; + } - List r = new ArrayList(); - for (PluginWrapper pw : Hudson.getInstance().getPluginManager().getPlugins()) { - Plugin p = pw.getUpdateInfo(); - if(p!=null) r.add(p); + /** + * Schedules a Hudson upgrade. + */ + public void doUpgrade(StaplerResponse rsp) throws IOException, ServletException { + requirePOST(); + Hudson.getInstance().checkPermission(Hudson.ADMINISTER); + HudsonUpgradeJob job = new HudsonUpgradeJob(getCoreSource(), Hudson.getAuthentication()); + if(!Lifecycle.get().canRewriteHudsonWar()) { + sendError("Hudson upgrade not supported in this running mode"); + return; } - return r; + LOGGER.info("Scheduling the core upgrade"); + addJob(job); + rsp.sendRedirect2("."); } /** - * Does any of the plugin has updates? + * Returns true if backup of hudson.war exists on the hard drive */ - public boolean hasUpdates() { - Data data = getData(); - if(data==null) return false; + public boolean isDowngradable() { + return new File(Lifecycle.get().getHudsonWar() + ".bak").exists(); + } - for (PluginWrapper pw : Hudson.getInstance().getPluginManager().getPlugins()) { - if(pw.getUpdateInfo() !=null) return true; + /** + * Performs hudson downgrade. + */ + public void doDowngrade(StaplerResponse rsp) throws IOException, ServletException { + requirePOST(); + Hudson.getInstance().checkPermission(Hudson.ADMINISTER); + if(!isDowngradable()) { + sendError("Hudson downgrade is not possible, probably backup does not exist"); + return; } - return false; + + HudsonDowngradeJob job = new HudsonDowngradeJob(getCoreSource(), Hudson.getAuthentication()); + LOGGER.info("Scheduling the core downgrade"); + addJob(job); + rsp.sendRedirect2("."); + } + + /** + * Returns String with version of backup .war file, + * if the file does not exists returns null + */ + public String getBackupVersion() + { + try { + JarFile backupWar = new JarFile(new File(Lifecycle.get().getHudsonWar().getParentFile(), "hudson.war.bak")); + return backupWar.getManifest().getMainAttributes().getValue("Hudson-Version"); + } catch (IOException e) { + LOGGER.log(Level.WARNING, "Failed to read backup version ", e); + return null;} + + } + + /*package*/ synchronized Future addJob(UpdateCenterJob job) { + // the first job is always the connectivity check + if (sourcesUsed.add(job.site)) + new ConnectionCheckJob(job.site).submit(); + return job.submit(); } public String getDisplayName() { @@ -316,184 +339,144 @@ public class UpdateCenter extends AbstractModelObject { } /** - * Exposed to get rid of hardcoding of the URL that serves up update-center.json - * in Javascript. + * Saves the configuration info to the disk. */ - public String getUrl() { - return config.getUpdateCenterUrl(); + public synchronized void save() { + if(BulkChange.contains(this)) return; + try { + getConfigFile().write(sites); + SaveableListener.fireOnChange(this, getConfigFile()); + } catch (IOException e) { + LOGGER.log(Level.WARNING, "Failed to save "+getConfigFile(),e); + } } /** - * {@link AdministrativeMonitor} that checks if there's Hudson update. + * Loads the data from the disk into this object. */ - @Extension - public static final class CoreUpdateMonitor extends AdministrativeMonitor { - public boolean isActivated() { - Data data = getData(); - return data!=null && data.hasCoreUpdates(); + public synchronized void load() throws IOException { + UpdateSite defaultSite = new UpdateSite("default", config.getUpdateCenterUrl() + "update-center.json"); + XmlFile file = getConfigFile(); + if(file.exists()) { + try { + sites.replaceBy(((PersistedList)file.unmarshal(sites)).toList()); + } catch (IOException e) { + LOGGER.log(Level.WARNING, "Failed to load "+file, e); + } + for (UpdateSite site : sites) { + // replace the legacy site with the new site + if (site.isLegacyDefault()) { + sites.remove(site); + sites.add(defaultSite); + break; + } + } + } else { + if (sites.isEmpty()) { + // If there aren't already any UpdateSources, add the default one. + // to maintain compatibility with existing UpdateCenterConfiguration, create the default one as specified by UpdateCenterConfiguration + sites.add(defaultSite); + } } + } - public Data getData() { - return Hudson.getInstance().getUpdateCenter().getData(); - } + private XmlFile getConfigFile() { + return new XmlFile(XSTREAM,new File(Hudson.getInstance().root, + UpdateCenter.class.getName()+".xml")); } - /** - * In-memory representation of the update center data. - */ - public final class Data { - /** - * The latest hudson.war. - */ - public final Entry core; - /** - * Plugins in the official repository, keyed by their artifact IDs. - */ - public final Map plugins = new TreeMap(String.CASE_INSENSITIVE_ORDER); - - Data(JSONObject o) { - core = new Entry(o.getJSONObject("core")); - for(Map.Entry e : (Set>)o.getJSONObject("plugins").entrySet()) { - plugins.put(e.getKey(),new Plugin(e.getValue())); - } - } + public List getAvailables() { + List plugins = new ArrayList(); - /** - * Is there a new version of the core? - */ - public boolean hasCoreUpdates() { - return core.isNewerThan(Hudson.VERSION); + for (UpdateSite s : sites) { + plugins.addAll(s.getAvailables()); } - /** - * Do we support upgrade? - */ - public boolean canUpgrade() { - return Lifecycle.get().canRewriteHudsonWar(); - } + return plugins; } - public static class Entry { - /** - * Artifact ID. - */ - public final String name; - /** - * The version. - */ - public final String version; - /** - * Download URL. - */ - public final String url; - - public Entry(JSONObject o) { - this.name = o.getString("name"); - this.version = o.getString("version"); - this.url = o.getString("url"); + /** + * Returns a list of plugins that should be shown in the "available" tab, grouped by category. + * A plugin with multiple categories will appear multiple times in the list. + */ + public PluginEntry[] getCategorizedAvailables() { + TreeSet entries = new TreeSet(); + for (Plugin p : getAvailables()) { + if (p.categories==null || p.categories.length==0) + entries.add(new PluginEntry(p, getCategoryDisplayName(null))); + else + for (String c : p.categories) + entries.add(new PluginEntry(p, getCategoryDisplayName(c))); } + return entries.toArray(new PluginEntry[entries.size()]); + } - /** - * Checks if the specified "current version" is older than the version of this entry. - * - * @param currentVersion - * The string that represents the version number to be compared. - * @return - * true if the version listed in this entry is newer. - * false otherwise, including the situation where the strings couldn't be parsed as version numbers. - */ - public boolean isNewerThan(String currentVersion) { - try { - return new VersionNumber(currentVersion).compareTo(new VersionNumber(version)) < 0; - } catch (IllegalArgumentException e) { - // couldn't parse as the version number. - return false; - } + private static String getCategoryDisplayName(String category) { + if (category==null) + return Messages.UpdateCenter_PluginCategory_misc(); + try { + return (String)Messages.class.getMethod( + "UpdateCenter_PluginCategory_" + category.replace('-', '_')).invoke(null); + } catch (Exception ex) { + return Messages.UpdateCenter_PluginCategory_unrecognized(category); } } - public final class Plugin extends Entry { - /** - * Optional URL to the Wiki page that discusses this plugin. - */ - public final String wiki; - /** - * Human readable title of the plugin, taken from Wiki page. - * Can be null. - * - *

    - * beware of XSS vulnerability since this data comes from Wiki - */ - public final String title; - /** - * Optional excerpt string. - */ - public final String excerpt; + public List getUpdates() { + List plugins = new ArrayList(); - @DataBoundConstructor - public Plugin(JSONObject o) { - super(o); - this.wiki = get(o,"wiki"); - this.title = get(o,"title"); - this.excerpt = get(o,"excerpt"); + for (UpdateSite s : sites) { + plugins.addAll(s.getUpdates()); } - private String get(JSONObject o, String prop) { - if(o.has(prop)) - return o.getString(prop); - else - return null; - } + return plugins; + } - public String getDisplayName() { - if(title!=null) return title; - return name; - } - /** - * If some version of this plugin is currently installed, return {@link PluginWrapper}. - * Otherwise null. - */ - public PluginWrapper getInstalled() { - PluginManager pm = Hudson.getInstance().getPluginManager(); - return pm.getPlugin(name); - } - - /** - * Schedules the installation of this plugin. - * - *

    - * This is mainly intended to be called from the UI. The actual installation work happens - * asynchronously in another thread. - */ - public void install() { - Hudson.getInstance().checkPermission(Hudson.ADMINISTER); - addJob(new InstallationJob(this, Hudson.getAuthentication())); + /** + * {@link AdministrativeMonitor} that checks if there's Hudson update. + */ + @Extension + public static final class CoreUpdateMonitor extends AdministrativeMonitor { + public boolean isActivated() { + Data data = getData(); + return data!=null && data.hasCoreUpdates(); } - /** - * Making the installation web bound. - */ - public void doInstall(StaplerResponse rsp) throws IOException { - install(); - rsp.sendRedirect2("../.."); + public Data getData() { + UpdateSite cs = Hudson.getInstance().getUpdateCenter().getCoreSource(); + if (cs!=null) return cs.getData(); + return null; } } + /** - * Configuration data for controlling the update center's behaviors. The update - * center's defaults will check internet connectivity by trying to connect - * to www.google.com; will download plugins, the plugin catalog and updates - * from hudson.dev.java.net; and will install plugins with file system - * operations. - * + * Strategy object for controlling the update center's behaviors. + * + *

    + * Until 1.333, this extension point used to control the configuration of + * where to get updates (hence the name of this class), but with the introduction + * of multiple update center sites capability, that functionality is achieved by + * simply installing another {@link UpdateSite}. + * + *

    + * See {@link UpdateSite} for how to manipulate them programmatically. + * * @since 1.266 */ + @SuppressWarnings({"UnusedDeclaration"}) public static class UpdateCenterConfiguration implements ExtensionPoint { + /** + * Creates default update center configuration - uses settings for global update center. + */ + public UpdateCenterConfiguration() { + } + /** * Check network connectivity by trying to establish a connection to * the host in connectionCheckUrl. - * + * * @param job The connection checker that is invoking this strategy. * @param connectionCheckUrl A string containing the URL of a domain * that is assumed to be always available. @@ -502,10 +485,10 @@ public class UpdateCenter extends AbstractModelObject { public void checkConnection(ConnectionCheckJob job, String connectionCheckUrl) throws IOException { testConnection(new URL(connectionCheckUrl)); } - + /** * Check connection to update center server. - * + * * @param job The connection checker that is invoking this strategy. * @param updateCenterUrl A sting containing the URL of the update center host. * @throws IOException if a connection to the update center server can't be established. @@ -513,29 +496,22 @@ public class UpdateCenter extends AbstractModelObject { public void checkUpdateCenter(ConnectionCheckJob job, String updateCenterUrl) throws IOException { testConnection(new URL(updateCenterUrl + "?uctest")); } - + /** - * Validate the URL of the resource before downloading it. The default - * implementation enforces that the base of the resource URL starts - * with the string returned by {@link #getPluginRepositoryBaseUrl()}. - * + * Validate the URL of the resource before downloading it. + * * @param job The download job that is invoking this strategy. This job is * responsible for managing the status of the download and installation. * @param src The location of the resource on the network * @throws IOException if the validation fails */ public void preValidate(DownloadJob job, URL src) throws IOException { - // In the future if we are to open up update center to 3rd party, we need more elaborate scheme - // like signing to ensure the safety of the bits. - if(!src.toExternalForm().startsWith(getPluginRepositoryBaseUrl())) { - throw new IOException("Installation of plugin from "+src+" is not allowed"); - } } - + /** * Validate the resource after it has been downloaded, before it is * installed. The default implementation does nothing. - * + * * @param job The download job that is invoking this strategy. This job is * responsible for managing the status of the download and installation. * @param src The location of the downloaded resource. @@ -543,13 +519,13 @@ public class UpdateCenter extends AbstractModelObject { */ public void postValidate(DownloadJob job, File src) throws IOException { } - + /** * Download a plugin or core upgrade in preparation for installing it * into its final location. Implementations will normally download the * resource into a temporary location and hand off a reference to this * location to the install or upgrade strategy to move into the final location. - * + * * @param job The download job that is invoking this strategy. This job is * responsible for managing the status of the download and installation. * @param src The URL to the resource to be downloaded. @@ -558,7 +534,7 @@ public class UpdateCenter extends AbstractModelObject { * @see DownloadJob */ public File download(DownloadJob job, URL src) throws IOException { - URLConnection con = ProxyConfiguration.open(src); + URLConnection con = connect(job,src); int total = con.getContentLength(); CountingInputStream in = new CountingInputStream(con.getInputStream()); byte[] buf = new byte[8192]; @@ -580,14 +556,29 @@ public class UpdateCenter extends AbstractModelObject { in.close(); out.close(); - + + if (total!=-1 && total!=tmp.length()) { + // don't know exactly how this happens, but report like + // http://www.ashlux.com/wordpress/2009/08/14/hudson-and-the-sonar-plugin-fail-maveninstallation-nosuchmethoderror/ + // indicates that this kind of inconsistency can happen. So let's be defensive + throw new IOException("Inconsistent file length: expected "+total+" but only got "+tmp.length()); + } + return tmp; } - + + /** + * Connects to the given URL for downloading the binary. Useful for tweaking + * how the connection gets established. + */ + protected URLConnection connect(DownloadJob job, URL src) throws IOException { + return ProxyConfiguration.open(src); + } + /** * Called after a plugin has been downloaded to move it into its final * location. The default implementation is a file rename. - * + * * @param job The install job that is invoking this strategy. * @param src The temporary location of the plugin. * @param dst The final destination to install the plugin to. @@ -596,11 +587,11 @@ public class UpdateCenter extends AbstractModelObject { public void install(DownloadJob job, File src, File dst) throws IOException { job.replace(dst, src); } - + /** * Called after an upgrade has been downloaded to move it into its final * location. The default implementation is a file rename. - * + * * @param job The upgrade job that is invoking this strategy. * @param src The temporary location of the upgrade. * @param dst The final destination to install the upgrade to. @@ -608,48 +599,89 @@ public class UpdateCenter extends AbstractModelObject { */ public void upgrade(DownloadJob job, File src, File dst) throws IOException { job.replace(dst, src); - } + } /** - * Returns an "always up" server for Internet connectivity testing + * Returns an "always up" server for Internet connectivity testing. + * + * @deprecated as of 1.333 + * With the introduction of multiple update center capability, this information + * is now a part of the update-center.json file. See + * http://hudson-ci.org/update-center.json as an example. */ public String getConnectionCheckUrl() { return "http://www.google.com"; } - + /** * Returns the URL of the server that hosts the update-center.json * file. + * + * @deprecated as of 1.333 + * With the introduction of multiple update center capability, this information + * is now moved to {@link UpdateSite}. + * @return + * Absolute URL that ends with '/'. */ public String getUpdateCenterUrl() { - return "https://hudson.dev.java.net/"; + return "http://updates.hudson-labs.org/"; } - + /** * Returns the URL of the server that hosts plugins and core updates. + * + * @deprecated as of 1.333 + * update-center.json is now signed, so we don't have to further make sure that + * we aren't downloading from anywhere unsecure. */ public String getPluginRepositoryBaseUrl() { - return "https://hudson.dev.java.net/"; + return "http://hudson-ci.org/"; } - - + + private void testConnection(URL url) throws IOException { - InputStream in = ProxyConfiguration.open(url).getInputStream(); - IOUtils.copy(in,new ByteArrayOutputStream()); - in.close(); - } + try { + Util.copyStreamAndClose(ProxyConfiguration.open(url).getInputStream(),new NullOutputStream()); + } catch (SSLHandshakeException e) { + if (e.getMessage().contains("PKIX path building failed")) + // fix up this crappy error message from JDK + throw new IOException2("Failed to validate the SSL certificate of "+url,e); + } + } } - + /** * Things that {@link UpdateCenter#installerService} executes. * * This object will have the row.jelly which renders the job on UI. */ public abstract class UpdateCenterJob implements Runnable { + /** + * Which {@link UpdateSite} does this belong to? + */ + public final UpdateSite site; + + protected UpdateCenterJob(UpdateSite site) { + this.site = site; + } + + /** + * @deprecated as of 1.326 + * Use {@link #submit()} instead. + */ public void schedule() { + submit(); + } + + /** + * Schedules this job for an execution + * @return + * {@link Future} to keeps track of the status of the execution. + */ + public Future submit() { LOGGER.fine("Scheduling "+this+" to installerService"); jobs.add(this); - installerService.submit(this); + return installerService.submit(this,this); } } @@ -659,24 +691,29 @@ public class UpdateCenter extends AbstractModelObject { public final class ConnectionCheckJob extends UpdateCenterJob { private final Vector statuses= new Vector(); + public ConnectionCheckJob(UpdateSite site) { + super(site); + } + public void run() { LOGGER.fine("Doing a connectivity check"); try { - String connectionCheckUrl = config.getConnectionCheckUrl(); - - statuses.add(Messages.UpdateCenter_Status_CheckingInternet()); - try { - config.checkConnection(this, connectionCheckUrl); - } catch (IOException e) { - if(e.getMessage().contains("Connection timed out")) { - // Google can't be down, so this is probably a proxy issue - statuses.add(Messages.UpdateCenter_Status_ConnectionFailed(connectionCheckUrl)); - return; + String connectionCheckUrl = site.getConnectionCheckUrl(); + if (connectionCheckUrl!=null) { + statuses.add(Messages.UpdateCenter_Status_CheckingInternet()); + try { + config.checkConnection(this, connectionCheckUrl); + } catch (IOException e) { + if(e.getMessage().contains("Connection timed out")) { + // Google can't be down, so this is probably a proxy issue + statuses.add(Messages.UpdateCenter_Status_ConnectionFailed(connectionCheckUrl)); + return; + } } } statuses.add(Messages.UpdateCenter_Status_CheckingJavaNet()); - config.checkUpdateCenter(this, config.getUpdateCenterUrl()); + config.checkUpdateCenter(this, site.getUrl()); statuses.add(Messages.UpdateCenter_Status_Success()); } catch (UnknownHostException e) { @@ -728,9 +765,9 @@ public class UpdateCenter extends AbstractModelObject { */ protected abstract void onSuccess(); - + private Authentication authentication; - + /** * Get the user that initiated this job */ @@ -738,41 +775,48 @@ public class UpdateCenter extends AbstractModelObject { { return this.authentication; } - - protected DownloadJob(Authentication authentication) - { + + protected DownloadJob(UpdateSite site, Authentication authentication) { + super(site); this.authentication = authentication; } - + public void run() { try { LOGGER.info("Starting the installation of "+getName()+" on behalf of "+getUser().getName()); - URL src = getURL(); - - config.preValidate(this, src); + _run(); - File dst = getDestination(); - File tmp = config.download(this, src); - - config.postValidate(this, tmp); - config.install(this, tmp, dst); - LOGGER.info("Installation successful: "+getName()); status = new Success(); onSuccess(); - } catch (IOException e) { + } catch (Throwable e) { LOGGER.log(Level.SEVERE, "Failed to install "+getName(),e); status = new Failure(e); } } + protected void _run() throws IOException { + URL src = getURL(); + + config.preValidate(this, src); + + File dst = getDestination(); + File tmp = config.download(this, src); + + config.postValidate(this, tmp); + config.install(this, tmp, dst); + } + /** * Called when the download is completed to overwrite * the old file with the new file. */ protected void replace(File dst, File src) throws IOException { - dst.delete(); + File bak = Util.changeExtension(dst,".bak"); + bak.delete(); + dst.renameTo(bak); + dst.delete(); // any failure up to here is no big deal if(!src.renameTo(dst)) { throw new IOException("Failed to rename "+src+" to "+dst); } @@ -785,6 +829,9 @@ public class UpdateCenter extends AbstractModelObject { */ public abstract class InstallationStatus { public final int id = iota.incrementAndGet(); + public boolean isSuccess() { + return false; + } } /** @@ -806,6 +853,9 @@ public class UpdateCenter extends AbstractModelObject { * Indicates that the plugin was successfully installed. */ public class Success extends InstallationStatus { + @Override public boolean isSuccess() { + return true; + } } /** @@ -840,8 +890,62 @@ public class UpdateCenter extends AbstractModelObject { private final PluginManager pm = Hudson.getInstance().getPluginManager(); - public InstallationJob(Plugin plugin, Authentication auth) { - super(auth); + public InstallationJob(Plugin plugin, UpdateSite site, Authentication auth) { + super(site, auth); + this.plugin = plugin; + } + + protected URL getURL() throws MalformedURLException { + return new URL(plugin.url); + } + + protected File getDestination() { + File baseDir = pm.rootDir; + return new File(baseDir, plugin.name + ".hpi"); + } + + public String getName() { + return plugin.getDisplayName(); + } + + @Override + public void _run() throws IOException { + super._run(); + + // if this is a bundled plugin, make sure it won't get overwritten + PluginWrapper pw = plugin.getInstalled(); + if (pw!=null && pw.isBundled()) + try { + SecurityContextHolder.getContext().setAuthentication(ACL.SYSTEM); + pw.doPin(); + } finally { + SecurityContextHolder.clearContext(); + } + } + + protected void onSuccess() { + pm.pluginUploaded = true; + } + + @Override + public String toString() { + return super.toString()+"[plugin="+plugin.title+"]"; + } + } + + /** + * Represents the state of the downgrading activity of plugin. + */ + public final class PluginDowngradeJob extends DownloadJob { + /** + * What plugin are we trying to install? + */ + public final Plugin plugin; + + private final PluginManager pm = Hudson.getInstance().getPluginManager(); + + public PluginDowngradeJob(Plugin plugin, UpdateSite site, Authentication auth) { + super(site, auth); this.plugin = plugin; } @@ -854,10 +958,52 @@ public class UpdateCenter extends AbstractModelObject { return new File(baseDir, plugin.name + ".hpi"); } + protected File getBackup() + { + File baseDir = pm.rootDir; + return new File(baseDir, plugin.name + ".bak"); + } + public String getName() { return plugin.getDisplayName(); } + @Override + public void run() { + try { + LOGGER.info("Starting the downgrade of "+getName()+" on behalf of "+getUser().getName()); + + _run(); + + LOGGER.info("Downgrade successful: "+getName()); + status = new Success(); + onSuccess(); + } catch (Throwable e) { + LOGGER.log(Level.SEVERE, "Failed to downgrade "+getName(),e); + status = new Failure(e); + } + } + + @Override + protected void _run() throws IOException { + File dst = getDestination(); + File backup = getBackup(); + + config.install(this, backup, dst); + } + + /** + * Called to overwrite + * current version with backup file + */ + @Override + protected void replace(File dst, File backup) throws IOException { + dst.delete(); // any failure up to here is no big deal + if(!backup.renameTo(dst)) { + throw new IOException("Failed to rename "+backup+" to "+dst); + } + } + protected void onSuccess() { pm.pluginUploaded = true; } @@ -872,12 +1018,12 @@ public class UpdateCenter extends AbstractModelObject { * Represents the state of the upgrade activity of Hudson core. */ public final class HudsonUpgradeJob extends DownloadJob { - public HudsonUpgradeJob(Authentication auth) { - super(auth); + public HudsonUpgradeJob(UpdateSite site, Authentication auth) { + super(site, auth); } protected URL getURL() throws MalformedURLException { - return new URL(getData().core.url); + return new URL(site.getData().core.url); } protected File getDestination() { @@ -898,6 +1044,68 @@ public class UpdateCenter extends AbstractModelObject { } } + public final class HudsonDowngradeJob extends DownloadJob { + public HudsonDowngradeJob(UpdateSite site, Authentication auth) { + super(site, auth); + } + + protected URL getURL() throws MalformedURLException { + return new URL(site.getData().core.url); + } + + protected File getDestination() { + return Lifecycle.get().getHudsonWar(); + } + + public String getName() { + return "hudson.war"; + } + protected void onSuccess() { + status = new Success(); + } + @Override + public void run() { + try { + LOGGER.info("Starting the downgrade of "+getName()+" on behalf of "+getUser().getName()); + + _run(); + + LOGGER.info("Downgrading successful: "+getName()); + status = new Success(); + onSuccess(); + } catch (Throwable e) { + LOGGER.log(Level.SEVERE, "Failed to downgrade "+getName(),e); + status = new Failure(e); + } + } + + @Override + protected void _run() throws IOException { + + File backup = new File(Lifecycle.get().getHudsonWar() + ".bak"); + File dst = getDestination(); + + config.install(this, backup, dst); + } + + @Override + protected void replace(File dst, File src) throws IOException { + Lifecycle.get().rewriteHudsonWar(src); + } + } + + public static final class PluginEntry implements Comparable { + public Plugin plugin; + public String category; + private PluginEntry(Plugin p, String c) { plugin = p; category = c; } + + public int compareTo(PluginEntry o) { + int r = category.compareTo(o.category); + if (r==0) r = plugin.name.compareToIgnoreCase(o.plugin.name); + return r; + } + } + /** * Adds the update center data retriever to HTML. */ @@ -908,14 +1116,33 @@ public class UpdateCenter extends AbstractModelObject { } } + /** + * Initializes the update center. + * + * This has to wait until after all plugins load, to let custom UpdateCenterConfiguration take effect first. + */ + @Initializer(after=PLUGINS_STARTED) + public static void init(Hudson h) throws IOException { + h.getUpdateCenter().load(); + } + /** * Sequence number generator. */ private static final AtomicInteger iota = new AtomicInteger(); - private static final long DAY = DAYS.toMillis(1); - private static final Logger LOGGER = Logger.getLogger(UpdateCenter.class.getName()); + /** + * @deprecated as of 1.333 + * Use {@link UpdateSite#neverUpdate} + */ public static boolean neverUpdate = Boolean.getBoolean(UpdateCenter.class.getName()+".never"); + + public static final XStream2 XSTREAM = new XStream2(); + + static { + XSTREAM.alias("site",UpdateSite.class); + XSTREAM.alias("sites",PersistedList.class); + } } diff --git a/core/src/main/java/hudson/model/UpdateSite.java b/core/src/main/java/hudson/model/UpdateSite.java new file mode 100644 index 0000000000000000000000000000000000000000..371e360ad03f79750fd26337e7d7133133613956 --- /dev/null +++ b/core/src/main/java/hudson/model/UpdateSite.java @@ -0,0 +1,640 @@ +/* + * The MIT License + * + * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Yahoo! Inc., Seiji Sogabe, + * Andrew Bayer + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +package hudson.model; + +import hudson.PluginWrapper; +import hudson.PluginManager; +import hudson.model.UpdateCenter.UpdateCenterJob; +import hudson.lifecycle.Lifecycle; +import hudson.util.IOUtils; +import hudson.util.TextFile; +import hudson.util.VersionNumber; +import static hudson.util.TimeUnit2.DAYS; +import net.sf.json.JSONObject; +import org.kohsuke.stapler.DataBoundConstructor; +import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerResponse; +import org.jvnet.hudson.crypto.CertificateUtil; +import org.jvnet.hudson.crypto.SignatureOutputStream; +import org.apache.commons.io.output.NullOutputStream; +import org.apache.commons.io.output.TeeOutputStream; + +import java.io.File; +import java.io.IOException; +import java.io.ByteArrayInputStream; +import java.io.OutputStreamWriter; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Map; +import java.util.TreeMap; +import java.util.HashMap; +import java.util.Set; +import java.util.concurrent.Future; +import java.util.logging.Level; +import java.util.logging.Logger; +import java.security.GeneralSecurityException; +import java.security.MessageDigest; +import java.security.DigestOutputStream; +import java.security.Signature; +import java.security.cert.X509Certificate; +import java.security.cert.CertificateFactory; +import java.security.cert.TrustAnchor; + +import com.trilead.ssh2.crypto.Base64; + +import javax.servlet.ServletContext; + + +/** + * Source of the update center information, like "http://hudson-ci.org/update-center.json" + * + *

    + * Hudson can have multiple {@link UpdateSite}s registered in the system, so that it can pick up plugins + * from different locations. + * + * @author Andrew Bayer + * @author Kohsuke Kawaguchi + * @since 1.333 + */ +public class UpdateSite { + /** + * What's the time stamp of data file? + */ + private transient long dataTimestamp = -1; + + /** + * When was the last time we asked a browser to check the data for us? + * + *

    + * There's normally some delay between when we send HTML that includes the check code, + * until we get the data back, so this variable is used to avoid asking too many browseres + * all at once. + */ + private transient volatile long lastAttempt = -1; + + /** + * ID string for this update source. + */ + private final String id; + + /** + * Path to update-center.json, like http://hudson-ci.org/update-center.json. + */ + private final String url; + + public UpdateSite(String id, String url) { + this.id = id; + this.url = url; + } + + /** + * When read back from XML, initialize them back to -1. + */ + private Object readResolve() { + dataTimestamp = lastAttempt = -1; + return this; + } + + /** + * Get ID string. + */ + public String getId() { + return id; + } + + public long getDataTimestamp() { + return dataTimestamp; + } + + /** + * This is the endpoint that receives the update center data file from the browser. + */ + public void doPostBack(StaplerRequest req, StaplerResponse rsp) throws IOException, GeneralSecurityException { + dataTimestamp = System.currentTimeMillis(); + String json = IOUtils.toString(req.getInputStream(),"UTF-8"); + JSONObject o = JSONObject.fromObject(json); + + int v = o.getInt("updateCenterVersion"); + if(v !=1) { + LOGGER.warning("Unrecognized update center version: "+v); + return; + } + + if (signatureCheck) + verifySignature(o); + + LOGGER.info("Obtained the latest update center data file for UpdateSource "+ id); + getDataFile().write(json); + rsp.setContentType("text/plain"); // So browser won't try to parse response + } + + /** + * Verifies the signature in the update center data file. + */ + private boolean verifySignature(JSONObject o) throws GeneralSecurityException, IOException { + JSONObject signature = o.getJSONObject("signature"); + if (signature.isNullObject()) { + LOGGER.severe("No signature block found"); + return false; + } + o.remove("signature"); + + List certs = new ArrayList(); + {// load and verify certificates + CertificateFactory cf = CertificateFactory.getInstance("X509"); + for (Object cert : o.getJSONArray("certificates")) { + X509Certificate c = (X509Certificate) cf.generateCertificate(new ByteArrayInputStream(Base64.decode(cert.toString().toCharArray()))); + c.checkValidity(); + certs.add(c); + } + + // all default root CAs in JVM are trusted, plus certs bundled in Hudson + Set anchors = CertificateUtil.getDefaultRootCAs(); + ServletContext context = Hudson.getInstance().servletContext; + for (String cert : (Set) context.getResourcePaths("/WEB-INF/update-center-rootCAs")) { + if (cert.endsWith(".txt")) continue; // skip text files that are meant to be documentation + anchors.add(new TrustAnchor((X509Certificate)cf.generateCertificate(context.getResourceAsStream(cert)),null)); + } + CertificateUtil.validatePath(certs); + } + + // this is for computing a digest to check sanity + MessageDigest sha1 = MessageDigest.getInstance("SHA1"); + DigestOutputStream dos = new DigestOutputStream(new NullOutputStream(),sha1); + + // this is for computing a signature + Signature sig = Signature.getInstance("SHA1withRSA"); + sig.initVerify(certs.get(0)); + SignatureOutputStream sos = new SignatureOutputStream(sig); + + o.writeCanonical(new OutputStreamWriter(new TeeOutputStream(dos,sos),"UTF-8")); + + // did the digest match? this is not a part of the signature validation, but if we have a bug in the c14n + // (which is more likely than someone tampering with update center), we can tell + String computedDigest = new String(Base64.encode(sha1.digest())); + String providedDigest = signature.getString("digest"); + if (!computedDigest.equalsIgnoreCase(providedDigest)) { + LOGGER.severe("Digest mismatch: "+computedDigest+" vs "+providedDigest); + return false; + } + + if (!sig.verify(Base64.decode(signature.getString("signature").toCharArray()))) { + LOGGER.severe("Signature in the update center doesn't match with the certificate"); + return false; + } + + return true; + } + + /** + * Returns true if it's time for us to check for new version. + */ + public boolean isDue() { + if(neverUpdate) return false; + if(dataTimestamp==-1) + dataTimestamp = getDataFile().file.lastModified(); + long now = System.currentTimeMillis(); + boolean due = now - dataTimestamp > DAY && now - lastAttempt > 15000; + if(due) lastAttempt = now; + return due; + } + + /** + * Loads the update center data, if any. + * + * @return null if no data is available. + */ + public Data getData() { + TextFile df = getDataFile(); + if(df.exists()) { + try { + return new Data(JSONObject.fromObject(df.read())); + } catch (IOException e) { + LOGGER.log(Level.SEVERE,"Failed to parse "+df,e); + df.delete(); // if we keep this file, it will cause repeated failures + return null; + } + } else { + return null; + } + } + + /** + * Returns a list of plugins that should be shown in the "available" tab. + * These are "all plugins - installed plugins". + */ + public List getAvailables() { + List r = new ArrayList(); + Data data = getData(); + if(data==null) return Collections.emptyList(); + for (Plugin p : data.plugins.values()) { + if(p.getInstalled()==null) + r.add(p); + } + return r; + } + + /** + * Gets the information about a specific plugin. + * + * @param artifactId + * The short name of the plugin. Corresponds to {@link PluginWrapper#getShortName()}. + * + * @return + * null if no such information is found. + */ + public Plugin getPlugin(String artifactId) { + Data dt = getData(); + if(dt==null) return null; + return dt.plugins.get(artifactId); + } + + /** + * Returns an "always up" server for Internet connectivity testing, or null if we are going to skip the test. + */ + public String getConnectionCheckUrl() { + Data dt = getData(); + if(dt==null) return "http://www.google.com/"; + return dt.connectionCheckUrl; + } + + /** + * This is where we store the update center data. + */ + private TextFile getDataFile() { + return new TextFile(new File(Hudson.getInstance().getRootDir(), + "updates/" + getId()+".json")); + } + + /** + * Returns the list of plugins that are updates to currently installed ones. + * + * @return + * can be empty but never null. + */ + public List getUpdates() { + Data data = getData(); + if(data==null) return Collections.emptyList(); // fail to determine + + List r = new ArrayList(); + for (PluginWrapper pw : Hudson.getInstance().getPluginManager().getPlugins()) { + Plugin p = pw.getUpdateInfo(); + if(p!=null) r.add(p); + } + + return r; + } + + /** + * Does any of the plugin has updates? + */ + public boolean hasUpdates() { + Data data = getData(); + if(data==null) return false; + + for (PluginWrapper pw : Hudson.getInstance().getPluginManager().getPlugins()) { + if(!pw.isBundled() && pw.getUpdateInfo()!=null) + // do not advertize updates to bundled plugins, since we generally want users to get them + // as a part of hudson.war updates. This also avoids unnecessary pinning of plugins. + return true; + } + return false; + } + + + /** + * Exposed to get rid of hardcoding of the URL that serves up update-center.json + * in Javascript. + */ + public String getUrl() { + return url; + } + + /** + * Is this the legacy default update center site? + */ + public boolean isLegacyDefault() { + return id.equals("default") && url.startsWith("http://hudson-ci.org/"); + } + + /** + * In-memory representation of the update center data. + */ + public final class Data { + /** + * The {@link UpdateSite} ID. + */ + public final String sourceId; + + /** + * The latest hudson.war. + */ + public final Entry core; + /** + * Plugins in the repository, keyed by their artifact IDs. + */ + public final Map plugins = new TreeMap(String.CASE_INSENSITIVE_ORDER); + + /** + * If this is non-null, Hudson is going to check the connectivity to this URL to make sure + * the network connection is up. Null to skip the check. + */ + public final String connectionCheckUrl; + + Data(JSONObject o) { + this.sourceId = (String)o.get("id"); + if (sourceId.equals("default")) { + core = new Entry(sourceId, o.getJSONObject("core")); + } + else { + core = null; + } + for(Map.Entry e : (Set>)o.getJSONObject("plugins").entrySet()) { + plugins.put(e.getKey(),new Plugin(sourceId, e.getValue())); + } + + connectionCheckUrl = (String)o.get("connectionCheckUrl"); + } + + /** + * Is there a new version of the core? + */ + public boolean hasCoreUpdates() { + return core != null && core.isNewerThan(Hudson.VERSION); + } + + /** + * Do we support upgrade? + */ + public boolean canUpgrade() { + return Lifecycle.get().canRewriteHudsonWar(); + } + } + + public static class Entry { + /** + * {@link UpdateSite} ID. + */ + public final String sourceId; + + /** + * Artifact ID. + */ + public final String name; + /** + * The version. + */ + public final String version; + /** + * Download URL. + */ + public final String url; + + public Entry(String sourceId, JSONObject o) { + this.sourceId = sourceId; + this.name = o.getString("name"); + this.version = o.getString("version"); + this.url = o.getString("url"); + } + + /** + * Checks if the specified "current version" is older than the version of this entry. + * + * @param currentVersion + * The string that represents the version number to be compared. + * @return + * true if the version listed in this entry is newer. + * false otherwise, including the situation where the strings couldn't be parsed as version numbers. + */ + public boolean isNewerThan(String currentVersion) { + try { + return new VersionNumber(currentVersion).compareTo(new VersionNumber(version)) < 0; + } catch (IllegalArgumentException e) { + // couldn't parse as the version number. + return false; + } + } + + } + + public final class Plugin extends Entry { + /** + * Optional URL to the Wiki page that discusses this plugin. + */ + public final String wiki; + /** + * Human readable title of the plugin, taken from Wiki page. + * Can be null. + * + *

    + * beware of XSS vulnerability since this data comes from Wiki + */ + public final String title; + /** + * Optional excerpt string. + */ + public final String excerpt; + /** + * Optional version # from which this plugin release is configuration-compatible. + */ + public final String compatibleSinceVersion; + /** + * Version of Hudson core this plugin was compiled against. + */ + public final String requiredCore; + /** + * Categories for grouping plugins, taken from labels assigned to wiki page. + * Can be null. + */ + public final String[] categories; + + /** + * Dependencies of this plugin. + */ + public final Map dependencies = new HashMap(); + + @DataBoundConstructor + public Plugin(String sourceId, JSONObject o) { + super(sourceId, o); + this.wiki = get(o,"wiki"); + this.title = get(o,"title"); + this.excerpt = get(o,"excerpt"); + this.compatibleSinceVersion = get(o,"compatibleSinceVersion"); + this.requiredCore = get(o,"requiredCore"); + this.categories = o.has("labels") ? (String[])o.getJSONArray("labels").toArray(new String[0]) : null; + for(Object jo : o.getJSONArray("dependencies")) { + JSONObject depObj = (JSONObject) jo; + // Make sure there's a name attribute, that that name isn't maven-plugin - we ignore that one - + // and that the optional value isn't true. + if (get(depObj,"name")!=null + && !get(depObj,"name").equals("maven-plugin") + && get(depObj,"optional").equals("false")) { + dependencies.put(get(depObj,"name"), get(depObj,"version")); + } + + } + + } + + private String get(JSONObject o, String prop) { + if(o.has(prop)) + return o.getString(prop); + else + return null; + } + + public String getDisplayName() { + if(title!=null) return title; + return name; + } + + /** + * If some version of this plugin is currently installed, return {@link PluginWrapper}. + * Otherwise null. + */ + public PluginWrapper getInstalled() { + PluginManager pm = Hudson.getInstance().getPluginManager(); + return pm.getPlugin(name); + } + + /** + * If the plugin is already installed, and the new version of the plugin has a "compatibleSinceVersion" + * value (i.e., it's only directly compatible with that version or later), this will check to + * see if the installed version is older than the compatible-since version. If it is older, it'll return false. + * If it's not older, or it's not installed, or it's installed but there's no compatibleSinceVersion + * specified, it'll return true. + */ + public boolean isCompatibleWithInstalledVersion() { + PluginWrapper installedVersion = getInstalled(); + if (installedVersion != null) { + if (compatibleSinceVersion != null) { + if (new VersionNumber(installedVersion.getVersion()) + .isOlderThan(new VersionNumber(compatibleSinceVersion))) { + return false; + } + } + } + return true; + } + + /** + * Returns a list of dependent plugins which need to be installed or upgraded for this plugin to work. + */ + public List getNeededDependencies() { + List deps = new ArrayList(); + + for(Map.Entry e : dependencies.entrySet()) { + Plugin depPlugin = getPlugin(e.getKey()); + VersionNumber requiredVersion = new VersionNumber(e.getValue()); + + // Is the plugin installed already? If not, add it. + PluginWrapper current = depPlugin.getInstalled(); + + if (current ==null) { + deps.add(depPlugin); + } + // If the dependency plugin is installed, is the version we depend on newer than + // what's installed? If so, upgrade. + else if (current.isOlderThan(requiredVersion)) { + deps.add(depPlugin); + } + } + + return deps; + } + + public boolean isForNewerHudson() { + try { + return requiredCore!=null && new VersionNumber(requiredCore).isNewerThan( + new VersionNumber(Hudson.VERSION.replaceFirst("SHOT *\\(private.*\\)", "SHOT"))); + } catch (NumberFormatException nfe) { + return true; // If unable to parse version + } + } + + /** + * @deprecated as of 1.326 + * Use {@link #deploy()}. + */ + public void install() { + deploy(); + } + + /** + * Schedules the installation of this plugin. + * + *

    + * This is mainly intended to be called from the UI. The actual installation work happens + * asynchronously in another thread. + */ + public Future deploy() { + Hudson.getInstance().checkPermission(Hudson.ADMINISTER); + UpdateCenter uc = Hudson.getInstance().getUpdateCenter(); + for (Plugin dep : getNeededDependencies()) { + LOGGER.log(Level.WARNING, "Adding dependent install of " + dep.name + " for plugin " + name); + dep.deploy(); + } + return uc.addJob(uc.new InstallationJob(this, UpdateSite.this, Hudson.getAuthentication())); + } + + /** + * Schedules the downgrade of this plugin. + */ + public Future deployBackup() { + Hudson.getInstance().checkPermission(Hudson.ADMINISTER); + UpdateCenter uc = Hudson.getInstance().getUpdateCenter(); + return uc.addJob(uc.new PluginDowngradeJob(this, UpdateSite.this, Hudson.getAuthentication())); + } + /** + * Making the installation web bound. + */ + public void doInstall(StaplerResponse rsp) throws IOException { + deploy(); + rsp.sendRedirect2("../.."); + } + + /** + * Performs the downgrade of the plugin. + */ + public void doDowngrade(StaplerResponse rsp) throws IOException { + deployBackup(); + rsp.sendRedirect2("../.."); + } + } + + private static final long DAY = DAYS.toMillis(1); + + private static final Logger LOGGER = Logger.getLogger(UpdateSite.class.getName()); + + // The name uses UpdateCenter for compatibility reason. + public static boolean neverUpdate = Boolean.getBoolean(UpdateCenter.class.getName()+".never"); + + /** + * Off by default until we know this is reasonably working. + */ + public static boolean signatureCheck = Boolean.getBoolean(UpdateCenter.class.getName()+".signatureCheck"); +} diff --git a/core/src/main/java/hudson/model/UsageStatistics.java b/core/src/main/java/hudson/model/UsageStatistics.java index 1bf16a3e0e7e56488697df9904915fac8ca6e307..5af4ca3de09b97e6109e8ae0cfe0a8e07578d438 100644 --- a/core/src/main/java/hudson/model/UsageStatistics.java +++ b/core/src/main/java/hudson/model/UsageStatistics.java @@ -1,7 +1,7 @@ /* * The MIT License * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi + * Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -28,6 +28,7 @@ import hudson.PluginWrapper; import hudson.Util; import hudson.Extension; import hudson.node_monitors.ArchitectureMonitor.DescriptorImpl; +import hudson.util.Secret; import static hudson.util.TimeUnit2.DAYS; import net.sf.json.JSONObject; import org.apache.commons.io.output.ByteArrayOutputStream; @@ -88,7 +89,7 @@ public class UsageStatistics extends PageDecorator { */ public boolean isDue() { // user opted out. no data collection. - if(!Hudson.getInstance().isUsageStatisticsCollected()) return false; + if(!Hudson.getInstance().isUsageStatisticsCollected() || DISABLED) return false; long now = System.currentTimeMillis(); if(now - lastAttempt > DAY) { @@ -105,7 +106,7 @@ public class UsageStatistics extends PageDecorator { key = keyFactory.generatePublic(new X509EncodedKeySpec(Util.fromHexString(keyImage))); } - Cipher cipher = Cipher.getInstance("RSA"); + Cipher cipher = Secret.getCipher("RSA"); cipher.init(Cipher.ENCRYPT_MODE, key); return cipher; } catch (GeneralSecurityException e) { @@ -188,11 +189,11 @@ public class UsageStatistics extends PageDecorator { // create a new symmetric cipher key used for this stream SecretKey symKey = KeyGenerator.getInstance(algorithm).generateKey(); - // place the symmetric key by encrypting it with assymetric cipher + // place the symmetric key by encrypting it with asymmetric cipher out.write(asym.doFinal(symKey.getEncoded())); // the rest of the data will be encrypted by this symmetric cipher - Cipher sym = Cipher.getInstance(algorithm); + Cipher sym = Secret.getCipher(algorithm); sym.init(Cipher.ENCRYPT_MODE,symKey); super.out = new CipherOutputStream(out,sym); } @@ -204,7 +205,7 @@ public class UsageStatistics extends PageDecorator { public static final class CombinedCipherInputStream extends FilterInputStream { /** * @param keyLength - * Block size of the assymetric cipher, in bits. I thought I can get it from {@code asym.getBlockSize()} + * Block size of the asymmetric cipher, in bits. I thought I can get it from {@code asym.getBlockSize()} * but that doesn't work with Sun's implementation. */ public CombinedCipherInputStream(InputStream in, Cipher asym, String algorithm, int keyLength) throws IOException, GeneralSecurityException { @@ -216,7 +217,7 @@ public class UsageStatistics extends PageDecorator { SecretKey symKey = new SecretKeySpec(asym.doFinal(symKeyBytes),algorithm); // the rest of the data will be decrypted by this symmetric cipher - Cipher sym = Cipher.getInstance(algorithm); + Cipher sym = Secret.getCipher(algorithm); sym.init(Cipher.DECRYPT_MODE,symKey); super.in = new CipherInputStream(in,sym); } @@ -228,4 +229,6 @@ public class UsageStatistics extends PageDecorator { private static final String DEFAULT_KEY_BYTES = "30819f300d06092a864886f70d010101050003818d0030818902818100c14970473bd90fd1f2d20e4fa6e36ea21f7d46db2f4104a3a8f2eb097d6e26278dfadf3fe9ed05bbbb00a4433f4b7151e6683a169182e6ff2f6b4f2bb6490b2cddef73148c37a2a7421fc75f99fb0fadab46f191806599a208652f4829fd6f76e13195fb81ff3f2fce15a8e9a85ebe15c07c90b34ebdb416bd119f0d74105f3b0203010001"; private static final long DAY = DAYS.toMillis(1); + + public static boolean DISABLED = Boolean.getBoolean(UsageStatistics.class.getName()+".disabled"); } diff --git a/core/src/main/java/hudson/model/User.java b/core/src/main/java/hudson/model/User.java index 893389f67ed6d7e7785907364bea8b29b3267efc..dac6b91c0e09a6d89e543ecf590ede163551ce82 100644 --- a/core/src/main/java/hudson/model/User.java +++ b/core/src/main/java/hudson/model/User.java @@ -1,7 +1,7 @@ /* * The MIT License * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Erik Ramfelt, Tom Huybrechts + * Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Erik Ramfelt, Tom Huybrechts * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -23,14 +23,16 @@ */ package hudson.model; +import com.infradna.tool.bridge_method_injector.WithBridgeMethods; import com.thoughtworks.xstream.XStream; import hudson.CopyOnWrite; import hudson.FeedAdapter; +import hudson.Functions; import hudson.Util; import hudson.XmlFile; import hudson.BulkChange; -import hudson.tasks.Mailer; import hudson.model.Descriptor.FormException; +import hudson.model.listeners.SaveableListener; import hudson.security.ACL; import hudson.security.AccessControlled; import hudson.security.Permission; @@ -40,7 +42,6 @@ import net.sf.json.JSONObject; import org.acegisecurity.Authentication; import org.acegisecurity.providers.anonymous.AnonymousAuthenticationToken; -import org.kohsuke.stapler.Stapler; import org.kohsuke.stapler.StaplerRequest; import org.kohsuke.stapler.StaplerResponse; import org.kohsuke.stapler.export.Exported; @@ -48,19 +49,19 @@ import org.kohsuke.stapler.export.ExportedBean; import org.apache.commons.io.filefilter.DirectoryFileFilter; import javax.servlet.ServletException; +import javax.servlet.http.HttpServletResponse; import java.io.File; import java.io.IOException; import java.io.FileFilter; import java.util.ArrayList; -import java.util.Calendar; import java.util.Collection; import java.util.Collections; -import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Set; +import java.util.TreeMap; import java.util.logging.Level; import java.util.logging.Logger; @@ -104,9 +105,9 @@ public class User extends AbstractModelObject implements AccessControlled, Savea private volatile List properties = new ArrayList(); - private User(String id) { + private User(String id, String fullName) { this.id = id; - this.fullName = id; // fullName defaults to name + this.fullName = fullName; load(); } @@ -154,11 +155,11 @@ public class User extends AbstractModelObject implements AccessControlled, Savea } public String getUrl() { - return "user/"+id; + return "user/"+Util.rawEncode(id); } public String getSearchUrl() { - return "/user/"+id; + return "/user/"+Util.rawEncode(id); } /** @@ -166,7 +167,7 @@ public class User extends AbstractModelObject implements AccessControlled, Savea */ @Exported(visibility=999) public String getAbsoluteUrl() { - return Stapler.getCurrentRequest().getRootPath()+'/'+getUrl(); + return Hudson.getInstance().getRootUrl()+getUrl(); } /** @@ -257,7 +258,7 @@ public class User extends AbstractModelObject implements AccessControlled, Savea } /** - * Gets the {@link User} object by its id. + * Gets the {@link User} object by its id or full name. * * @param create * If true, this method will never return null for valid input @@ -265,26 +266,30 @@ public class User extends AbstractModelObject implements AccessControlled, Savea * If false, this method will return null if {@link User} object * with the given name doesn't exist. */ - public static User get(String id, boolean create) { - if(id==null) + public static User get(String idOrFullName, boolean create) { + if(idOrFullName==null) return null; - id = id.replace('\\', '_').replace('/', '_'); - + String id = idOrFullName.replace('\\', '_').replace('/', '_').replace('<','_') + .replace('>','_'); // 4 replace() still faster than regex + if (Functions.isWindows()) id = id.replace(':','_'); + synchronized(byName) { User u = byName.get(id); - if(u==null && create) { - u = new User(id); - byName.put(id,u); + if(u==null) { + User tmp = new User(id, idOrFullName); + if (create || tmp.getConfigFile().exists()) { + byName.put(id,u=tmp); + } } return u; } } /** - * Gets the {@link User} object by its id. + * Gets the {@link User} object by its id or full name. */ - public static User get(String id) { - return get(id,true); + public static User get(String idOrFullName) { + return get(idOrFullName,true); } /** @@ -300,6 +305,7 @@ public class User extends AbstractModelObject implements AccessControlled, Savea } private static volatile long lastScanned; + /** * Gets all the users. */ @@ -335,6 +341,13 @@ public class User extends AbstractModelObject implements AccessControlled, Savea u.load(); } + /** + * Stop gap hack. Don't use it. To be removed in the trunk. + */ + public static void clear() { + byName.clear(); + } + /** * Returns the user name. */ @@ -348,14 +361,14 @@ public class User extends AbstractModelObject implements AccessControlled, Savea * * TODO: do we need some index for this? */ - public List getBuilds() { + @WithBridgeMethods(List.class) + public RunList getBuilds() { List r = new ArrayList(); for (AbstractProject p : Hudson.getInstance().getAllItems(AbstractProject.class)) for (AbstractBuild b : p.getBuilds()) if(b.hasParticipant(this)) r.add(b); - Collections.sort(r,Run.ORDER_BY_DATE); - return r; + return RunList.fromRuns(r); } /** @@ -370,7 +383,7 @@ public class User extends AbstractModelObject implements AccessControlled, Savea return r; } - public String toString() { + public @Override String toString() { return fullName; } @@ -394,6 +407,20 @@ public class User extends AbstractModelObject implements AccessControlled, Savea public synchronized void save() throws IOException { if(BulkChange.contains(this)) return; getConfigFile().write(this); + SaveableListener.fireOnChange(this, getConfigFile()); + } + + /** + * Deletes the data directory and removes this user from Hudson. + * + * @throws IOException + * if we fail to delete. + */ + public synchronized void delete() throws IOException { + synchronized (byName) { + byName.remove(id); + Util.deleteRecursive(new File(getRootDir(), id)); + } } /** @@ -406,53 +433,87 @@ public class User extends AbstractModelObject implements AccessControlled, Savea /** * Accepts submission from the configuration page. */ - public void doConfigSubmit( StaplerRequest req, StaplerResponse rsp ) throws IOException, ServletException { + public void doConfigSubmit( StaplerRequest req, StaplerResponse rsp ) throws IOException, ServletException, FormException { checkPermission(Hudson.ADMINISTER); req.setCharacterEncoding("UTF-8"); - try { - fullName = req.getParameter("fullName"); - description = req.getParameter("description"); + fullName = req.getParameter("fullName"); + description = req.getParameter("description"); - JSONObject json = req.getSubmittedForm(); + JSONObject json = req.getSubmittedForm(); - List props = new ArrayList(); - int i=0; - for (UserPropertyDescriptor d : UserProperty.all()) { - UserProperty p = d.newInstance(req, json.getJSONObject("userProperty"+(i++))); - p.setUser(this); - props.add(p); + List props = new ArrayList(); + int i = 0; + for (UserPropertyDescriptor d : UserProperty.all()) { + JSONObject o = json.getJSONObject("userProperty" + (i++)); + UserProperty p = getProperty(d.clazz); + if (p != null) { + p = p.reconfigure(req, o); + } else { + p = d.newInstance(req, o); } - this.properties = props; - save(); + p.setUser(this); + props.add(p); + } + this.properties = props; + + save(); + + rsp.sendRedirect("."); + } - rsp.sendRedirect("."); - } catch (FormException e) { - sendError(e,req,rsp); + /** + * Deletes this user from Hudson. + */ + public void doDoDelete(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException { + requirePOST(); + checkPermission(Hudson.ADMINISTER); + if (id.equals(Hudson.getAuthentication().getName())) { + rsp.sendError(HttpServletResponse.SC_BAD_REQUEST, "Cannot delete self"); + return; } + + delete(); + + rsp.sendRedirect2("../.."); } - public void doRssAll( StaplerRequest req, StaplerResponse rsp ) throws IOException, ServletException { - rss(req, rsp, " all builds", RunList.fromRuns(getBuilds())); + public void doRssAll(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException { + rss(req, rsp, " all builds", RunList.fromRuns(getBuilds()), Run.FEED_ADAPTER); } - public void doRssFailed( StaplerRequest req, StaplerResponse rsp ) throws IOException, ServletException { - rss(req, rsp, " regression builds", RunList.fromRuns(getBuilds()).regressionOnly()); + public void doRssFailed(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException { + rss(req, rsp, " regression builds", RunList.fromRuns(getBuilds()).regressionOnly(), Run.FEED_ADAPTER); } - private void rss(StaplerRequest req, StaplerResponse rsp, String suffix, RunList runs) throws IOException, ServletException { - RSS.forwardToRss(getDisplayName()+ suffix, getUrl(), - runs.newBuilds(), FEED_ADAPTER, req, rsp ); + public void doRssLatest(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException { + final List lastBuilds = new ArrayList(); + for (final TopLevelItem item : Hudson.getInstance().getItems()) { + if (!(item instanceof Job)) continue; + for (Run r = ((Job) item).getLastBuild(); r != null; r = r.getPreviousBuild()) { + if (!(r instanceof AbstractBuild)) continue; + final AbstractBuild b = (AbstractBuild) r; + if (b.hasParticipant(this)) { + lastBuilds.add(b); + break; + } + } + } + rss(req, rsp, " latest build", RunList.fromRuns(lastBuilds), Run.FEED_ADAPTER_LATEST); } + private void rss(StaplerRequest req, StaplerResponse rsp, String suffix, RunList runs, FeedAdapter adapter) + throws IOException, ServletException { + RSS.forwardToRss(getDisplayName()+ suffix, getUrl(), runs.newBuilds(), adapter, req, rsp); + } /** * Keyed by {@link User#id}. This map is used to ensure * singleton-per-id semantics of {@link User} objects. */ - private static final Map byName = new HashMap(); + private static final Map byName = new TreeMap(String.CASE_INSENSITIVE_ORDER); /** * Used to load/save user configuration. @@ -465,43 +526,13 @@ public class User extends AbstractModelObject implements AccessControlled, Savea XSTREAM.alias("user",User.class); } - /** - * {@link FeedAdapter} to produce build status summary in the feed. - */ - public static final FeedAdapter FEED_ADAPTER = new FeedAdapter() { - public String getEntryTitle(Run entry) { - return entry+" : "+entry.getBuildStatusSummary().message; - } - - public String getEntryUrl(Run entry) { - return entry.getUrl(); - } - - public String getEntryID(Run entry) { - return "tag:"+entry.getParent().getName()+':'+entry.getId(); - } - - public String getEntryDescription(Run entry) { - // TODO: provide useful details - return null; - } - - public Calendar getEntryTimestamp(Run entry) { - return entry.getTimestamp(); - } - - public String getEntryAuthor(Run entry) { - return Mailer.descriptor().getAdminAddress(); - } - }; - - public ACL getACL() { final ACL base = Hudson.getInstance().getAuthorizationStrategy().getACL(this); - // always allow the user full control of himself. + // always allow a non-anonymous user full control of himself. return new ACL() { public boolean hasPermission(Authentication a, Permission permission) { - return a.getName().equals(id) || base.hasPermission(a, permission); + return (a.getName().equals(id) && !(a instanceof AnonymousAuthenticationToken)) + || base.hasPermission(a, permission); } }; } @@ -513,4 +544,23 @@ public class User extends AbstractModelObject implements AccessControlled, Savea public boolean hasPermission(Permission permission) { return getACL().hasPermission(permission); } + + /** + * With ADMINISTER permission, can delete users with persisted data but can't delete self. + */ + public boolean canDelete() { + return hasPermission(Hudson.ADMINISTER) && !id.equals(Hudson.getAuthentication().getName()) + && new File(getRootDir(), id).exists(); + } + + public Object getDynamic(String token) { + for (UserProperty property: getProperties().values()) { + if (property instanceof Action) { + Action a= (Action) property; + if(a.getUrlName().equals(token) || a.getUrlName().equals('/'+token)) + return a; + } + } + return null; + } } diff --git a/core/src/main/java/hudson/model/UserProperty.java b/core/src/main/java/hudson/model/UserProperty.java index 96617c20c4c6a46b9d7d10a021e4fb6917f06017..8b7ddea46d7844203220b5ff911815142b2f3dde 100644 --- a/core/src/main/java/hudson/model/UserProperty.java +++ b/core/src/main/java/hudson/model/UserProperty.java @@ -26,7 +26,10 @@ package hudson.model; import hudson.ExtensionPoint; import hudson.Plugin; import hudson.DescriptorExtensionList; -import hudson.tasks.Mailer; +import hudson.model.Descriptor.FormException; +import net.sf.json.JSONObject; + +import org.kohsuke.stapler.StaplerRequest; import org.kohsuke.stapler.export.ExportedBean; /** @@ -61,13 +64,17 @@ public abstract class UserProperty implements Describable, Extensi // descriptor must be of the UserPropertyDescriptor type public UserPropertyDescriptor getDescriptor() { - return (UserPropertyDescriptor)Hudson.getInstance().getDescriptor(getClass()); + return (UserPropertyDescriptor)Hudson.getInstance().getDescriptorOrDie(getClass()); } /** * Returns all the registered {@link UserPropertyDescriptor}s. */ public static DescriptorExtensionList all() { - return Hudson.getInstance().getDescriptorList(UserProperty.class); + return Hudson.getInstance().getDescriptorList(UserProperty.class); + } + + public UserProperty reconfigure(StaplerRequest req, JSONObject form) throws FormException { + return getDescriptor().newInstance(req, form); } } diff --git a/core/src/main/java/hudson/model/View.java b/core/src/main/java/hudson/model/View.java index c6d9d7b913e6c4b8222421026a30db4962830cbd..919848d54695638a5efb3e762a86622ae7b6463a 100644 --- a/core/src/main/java/hudson/model/View.java +++ b/core/src/main/java/hudson/model/View.java @@ -23,14 +23,13 @@ */ package hudson.model; +import static hudson.model.Hudson.checkGoodName; +import hudson.DescriptorExtensionList; +import hudson.Extension; import hudson.ExtensionPoint; import hudson.Util; -import hudson.Extension; -import hudson.DescriptorExtensionList; -import hudson.Plugin; -import hudson.widgets.Widget; import hudson.model.Descriptor.FormException; -import static hudson.model.Hudson.checkGoodName; +import hudson.model.Node.Mode; import hudson.scm.ChangeLogSet.Entry; import hudson.search.CollectionSearchIndex; import hudson.search.SearchIndexBuilder; @@ -40,24 +39,27 @@ import hudson.security.Permission; import hudson.security.PermissionGroup; import hudson.util.DescriptorList; import hudson.util.RunList; -import org.kohsuke.stapler.Stapler; -import org.kohsuke.stapler.StaplerRequest; -import org.kohsuke.stapler.StaplerResponse; -import org.kohsuke.stapler.export.Exported; -import org.kohsuke.stapler.export.ExportedBean; +import hudson.widgets.Widget; -import javax.servlet.ServletException; import java.io.IOException; import java.util.ArrayList; +import java.util.Arrays; import java.util.Calendar; import java.util.Collection; import java.util.Collections; import java.util.Comparator; import java.util.GregorianCalendar; import java.util.HashMap; +import java.util.HashSet; import java.util.List; import java.util.Map; -import java.text.ParseException; + +import javax.servlet.ServletException; + +import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.export.Exported; +import org.kohsuke.stapler.export.ExportedBean; /** * Encapsulates the rendering of the list of {@link TopLevelItem}s @@ -96,11 +98,26 @@ public abstract class View extends AbstractModelObject implements AccessControll * Message displayed in the view page. */ protected String description; + + /** + * If true, only show relevant executors + */ + protected boolean filterExecutors; + + /** + * If true, only show relevant queue items + */ + protected boolean filterQueue; protected View(String name) { this.name = name; } + protected View(String name, ViewGroup owner) { + this.name = name; + this.owner = owner; + } + /** * Gets all the items in this collection in a read-only view. */ @@ -139,9 +156,11 @@ public abstract class View extends AbstractModelObject implements AccessControll /** * Renames this view. */ - public void rename(String newName) throws ParseException { + public void rename(String newName) throws Failure, FormException { if(name.equals(newName)) return; // noop checkGoodName(newName); + if(owner.getView(newName)!=null) + throw new FormException(Messages.Hudson_ViewAlreadyExists(newName),"name"); String oldName = name; name = newName; owner.onViewRenamed(this,oldName,newName); @@ -163,13 +182,38 @@ public abstract class View extends AbstractModelObject implements AccessControll } public ViewDescriptor getDescriptor() { - return (ViewDescriptor)Hudson.getInstance().getDescriptor(getClass()); + return (ViewDescriptor)Hudson.getInstance().getDescriptorOrDie(getClass()); } public String getDisplayName() { return getViewName(); } + /** + * By default, return true to render the "Edit view" link on the page. + * This method is really just for the default "All" view to hide the edit link + * so that the default Hudson top page remains the same as before 1.316. + * + * @since 1.316 + */ + public boolean isEditable() { + return true; + } + + /** + * If true, only show relevant executors + */ + public boolean isFilterExecutors() { + return filterExecutors; + } + + /** + * If true, only show relevant queue items + */ + public boolean isFilterQueue() { + return filterQueue; + } + /** * Gets the {@link Widget}s registered on this object. * @@ -186,16 +230,73 @@ public abstract class View extends AbstractModelObject implements AccessControll public boolean isDefault() { return Hudson.getInstance().getPrimaryView()==this; } + + public List getComputers() { + Computer[] computers = Hudson.getInstance().getComputers(); + + if (!isFilterExecutors()) { + return Arrays.asList(computers); + } + + List result = new ArrayList(); + + boolean roam = false; + HashSet

    STILL EXPERIMENTAL: DO NOT IMPLEMENT

    - * * @author Kohsuke Kawaguchi * @since 1.269 */ -public interface ViewGroup extends Saveable, ModelObject { +public interface ViewGroup extends Saveable, ModelObject, AccessControlled { + /** + * Determine whether a view may be deleted. + * @since 1.365 + */ + boolean canDelete(View view); + /** * Deletes a view in this group. */ @@ -71,4 +79,14 @@ public interface ViewGroup extends Saveable, ModelObject { * {@linkplain Hudson#checkGoodName(String) legal view name}. */ void onViewRenamed(View view, String oldName, String newName); + + /** + * Gets the TabBar for the views. + * + * TabBar for views can be provided by extension. Only one TabBar can be active + * at a given time (Selectable by user in the global Configuration page). + * Default TabBar is provided by Hudson Platform. + * @since 1.381 + */ + ViewsTabBar getViewsTabBar(); } diff --git a/core/src/main/java/hudson/model/ViewJob.java b/core/src/main/java/hudson/model/ViewJob.java index ba67d946cd4ce66ff29ab668e1d56755d9ca7868..9e24190ee21a5d2ba7ffc79d7bb81f25142fd6d9 100644 --- a/core/src/main/java/hudson/model/ViewJob.java +++ b/core/src/main/java/hudson/model/ViewJob.java @@ -84,7 +84,7 @@ public abstract class ViewJob, RunT extends Run< return false; } - + @Override public void onLoad(ItemGroup parent, String name) throws IOException { super.onLoad(parent, name); notLoaded = true; @@ -127,7 +127,7 @@ public abstract class ViewJob, RunT extends Run< reload(); } finally { reloadingInProgress = false; - nextUpdate = System.currentTimeMillis()+1000*60; + nextUpdate = reloadPeriodically ? System.currentTimeMillis()+1000*60 : Long.MAX_VALUE; } } @@ -169,6 +169,7 @@ public abstract class ViewJob, RunT extends Run< return Hudson.getInstance().isTerminating(); } + @Override public void run() { while (!terminating()) { try { @@ -185,4 +186,15 @@ public abstract class ViewJob, RunT extends Run< } // private static final Logger logger = Logger.getLogger(ViewJob.class.getName()); + + /** + * In the very old version of Hudson, an external job submission was just creating files on the file system, + * so we needed to periodically reload the jobs from a file system to pick up new records. + * + *

    + * We then switched to submission via HTTP, so this reloading is no longer necessary, so only do this + * when explicitly requested. + * + */ + public static boolean reloadPeriodically = Boolean.getBoolean(ViewJob.class.getName()+".reloadPeriodically"); } diff --git a/core/src/main/java/hudson/model/WorkspaceCleanupThread.java b/core/src/main/java/hudson/model/WorkspaceCleanupThread.java index 3ae7ee72c85f28799ea81142f3459c827053d1ad..94d6e0e43fef1bfdf34de100c87abeb42a745b92 100644 --- a/core/src/main/java/hudson/model/WorkspaceCleanupThread.java +++ b/core/src/main/java/hudson/model/WorkspaceCleanupThread.java @@ -26,7 +26,6 @@ package hudson.model; import hudson.FilePath; import hudson.Util; import hudson.Extension; -import hudson.util.StreamTaskListener; import java.io.File; import java.io.FileFilter; @@ -34,7 +33,6 @@ import java.io.IOException; import java.io.Serializable; import java.util.Date; import java.util.List; -import java.util.logging.Level; import java.util.logging.Logger; /** @@ -64,11 +62,16 @@ public class WorkspaceCleanupThread extends AsyncPeriodicWork { protected void execute(TaskListener listener) throws InterruptedException, IOException { try { + if(disabled) { + LOGGER.fine("Disabled. Skipping execution"); + return; + } + this.listener = listener; Hudson h = Hudson.getInstance(); - for (Slave s : h.getSlaves()) - process(s); + for (Node n : h.getNodes()) + if (n instanceof Slave) process((Slave)n); process(h); } finally { @@ -167,4 +170,9 @@ public class WorkspaceCleanupThread extends AsyncPeriodicWork { private static final long DAY = 1000*60*60*24; private static final Logger LOGGER = Logger.getLogger(WorkspaceCleanupThread.class.getName()); + + /** + * Can be used to disable workspace clean up. + */ + public static boolean disabled = Boolean.getBoolean(WorkspaceCleanupThread.class.getName()+".disabled"); } diff --git a/core/src/main/java/hudson/model/labels/LabelAtom.java b/core/src/main/java/hudson/model/labels/LabelAtom.java new file mode 100644 index 0000000000000000000000000000000000000000..240b4f4036ba62e0c37bb98e59cb666a7b17a1d5 --- /dev/null +++ b/core/src/main/java/hudson/model/labels/LabelAtom.java @@ -0,0 +1,282 @@ +/* + * The MIT License + * + * Copyright (c) 2010, InfraDNA, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.model.labels; + +import com.thoughtworks.xstream.converters.MarshallingContext; +import com.thoughtworks.xstream.converters.UnmarshallingContext; +import com.thoughtworks.xstream.io.HierarchicalStreamReader; +import com.thoughtworks.xstream.io.HierarchicalStreamWriter; +import hudson.BulkChange; +import hudson.CopyOnWrite; +import hudson.XmlFile; +import hudson.model.Action; +import hudson.model.Descriptor.FormException; +import hudson.model.Failure; +import hudson.model.Hudson; +import hudson.model.Label; +import hudson.model.Saveable; +import hudson.model.listeners.SaveableListener; +import hudson.util.DescribableList; +import hudson.util.QuotedStringTokenizer; +import hudson.util.VariableResolver; +import hudson.util.XStream2; +import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.export.Exported; + +import javax.servlet.ServletException; +import java.io.File; +import java.io.IOException; +import java.util.Collections; +import java.util.List; +import java.util.Vector; +import java.util.logging.Level; +import java.util.logging.Logger; + +/** + * Atomic single token label, like "foo" or "bar". + * + * @author Kohsuke Kawaguchi + * @since 1.372 + */ +public class LabelAtom extends Label implements Saveable { + private DescribableList properties = + new DescribableList(this); + + @CopyOnWrite + protected transient volatile List transientActions = new Vector(); + + public LabelAtom(String name) { + super(name); + } + + /** + * If the label contains 'unsafe' chars, escape them. + */ + @Override + public String getExpression() { + return escape(name); + } + + /** + * {@inheritDoc} + * + *

    + * Note that this method returns a read-only view of {@link Action}s. + * {@link LabelAtomProperty}s who want to add a project action + * should do so by implementing {@link LabelAtomProperty#getActions(LabelAtom)}. + */ + @Override + public synchronized List getActions() { + // add all the transient actions, too + List actions = new Vector(super.getActions()); + actions.addAll(transientActions); + // return the read only list to cause a failure on plugins who try to add an action here + return Collections.unmodifiableList(actions); + } + + protected void updateTransientActions() { + Vector ta = new Vector(); + + // add the config link + if (!getApplicablePropertyDescriptors().isEmpty()) { + // if there's no property descriptor, there's nothing interesting to configure. + ta.add(new Action() { + public String getIconFileName() { + if (Hudson.getInstance().hasPermission(Hudson.ADMINISTER)) + return "setting.gif"; + else + return null; + } + + public String getDisplayName() { + return "Configure"; + } + + public String getUrlName() { + return "configure"; + } + }); + } + + for (LabelAtomProperty p : properties) + ta.addAll(p.getActions(this)); + + transientActions = ta; + } + + /** + * Properties associated with this label. + */ + public DescribableList getProperties() { + return properties; + } + + @Exported + public List getPropertiesList() { + return properties.toList(); + } + + @Override + public boolean matches(VariableResolver resolver) { + return resolver.resolve(name); + } + + @Override + public LabelOperatorPrecedence precedence() { + return LabelOperatorPrecedence.ATOM; + } + + /*package*/ XmlFile getConfigFile() { + return new XmlFile(XSTREAM, new File(Hudson.getInstance().root, "labels/"+name+".xml")); + } + + public void save() throws IOException { + if(BulkChange.contains(this)) return; + try { + getConfigFile().write(this); + SaveableListener.fireOnChange(this, getConfigFile()); + } catch (IOException e) { + LOGGER.log(Level.WARNING, "Failed to save "+getConfigFile(),e); + } + } + + public void load() { + XmlFile file = getConfigFile(); + if(file.exists()) { + try { + file.unmarshal(this); + } catch (IOException e) { + LOGGER.log(Level.WARNING, "Failed to load "+file, e); + } + } + properties.setOwner(this); + updateTransientActions(); + } + + /** + * Returns all the {@link LabelAtomPropertyDescriptor}s that can be potentially configured + * on this label. + */ + public List getApplicablePropertyDescriptors() { + return LabelAtomProperty.all(); + } + + /** + * Accepts the update to the node configuration. + */ + public void doConfigSubmit( StaplerRequest req, StaplerResponse rsp ) throws IOException, ServletException, FormException { + final Hudson app = Hudson.getInstance(); + + app.checkPermission(Hudson.ADMINISTER); + + properties.rebuild(req, req.getSubmittedForm(), getApplicablePropertyDescriptors()); + updateTransientActions(); + save(); + + // take the user back to the label top page. + rsp.sendRedirect2("."); + } + + /** + * Obtains an atom by its {@linkplain #getName() name}. + */ + public static LabelAtom get(String l) { + return Hudson.getInstance().getLabelAtom(l); + } + + public static boolean needsEscape(String name) { + try { + Hudson.checkGoodName(name); + // additional restricted chars + for( int i=0; i { + private Label.ConverterImpl leafLabelConverter = new Label.ConverterImpl(); + + private LabelAtomConverter() { + super(XSTREAM); + } + + public boolean canConvert(Class type) { + return LabelAtom.class.isAssignableFrom(type); + } + + public void marshal(Object source, HierarchicalStreamWriter writer, MarshallingContext context) { + if (context.get(IN_NESTED)==null) { + context.put(IN_NESTED,true); + try { + super.marshal(source,writer,context); + } finally { + context.put(IN_NESTED,false); + } + } else + leafLabelConverter.marshal(source,writer,context); + } + + public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext context) { + if (context.get(IN_NESTED)==null) { + context.put(IN_NESTED,true); + try { + return super.unmarshal(reader,context); + } finally { + context.put(IN_NESTED,false); + } + } else + return leafLabelConverter.unmarshal(reader,context); + } + + @Override + protected void callback(LabelAtom obj, UnmarshallingContext context) { + // noop + } + + private static final Object IN_NESTED = "VisitingInnerLabelAtom"; + } +} diff --git a/core/src/main/java/hudson/model/labels/LabelAtomProperty.java b/core/src/main/java/hudson/model/labels/LabelAtomProperty.java new file mode 100644 index 0000000000000000000000000000000000000000..933267d7a94350df166cb78cb58d7026b9bd247e --- /dev/null +++ b/core/src/main/java/hudson/model/labels/LabelAtomProperty.java @@ -0,0 +1,65 @@ +/* + * The MIT License + * + * Copyright (c) 2010, InfraDNA, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.model.labels; + +import hudson.DescriptorExtensionList; +import hudson.ExtensionPoint; +import hudson.model.AbstractDescribableImpl; +import hudson.model.Action; +import hudson.model.Hudson; +import org.kohsuke.stapler.export.ExportedBean; + +import java.util.Collection; +import java.util.Collections; + +/** + * Extensible property of {@link LabelAtom}. + * + *

    + * Plugins can contribute this extension point to add additional data or UI actions to {@link LabelAtom}. + * {@link LabelAtomProperty}s show up in the configuration screen of a label, and they are persisted + * with the {@link LabelAtom} object. + * + * @author Kohsuke Kawaguchi + * @since 1.373 + */ +@ExportedBean +public class LabelAtomProperty extends AbstractDescribableImpl implements ExtensionPoint { + /** + * Contributes {@link Action}s to the label. + * + * This allows properties to create additional links in the left navigation bar and + * hook into the URL space of the label atom. + */ + public Collection getActions(LabelAtom atom) { + return Collections.emptyList(); + } + + /** + * Lists up all the registered {@link LabelAtomPropertyDescriptor}s in the system. + */ + public static DescriptorExtensionList all() { + return Hudson.getInstance().getDescriptorList(LabelAtomProperty.class); + } +} diff --git a/core/src/main/java/hudson/model/labels/LabelAtomPropertyDescriptor.java b/core/src/main/java/hudson/model/labels/LabelAtomPropertyDescriptor.java new file mode 100644 index 0000000000000000000000000000000000000000..43724c73c4e37c65252e16c23fe0691f4f7b2fbd --- /dev/null +++ b/core/src/main/java/hudson/model/labels/LabelAtomPropertyDescriptor.java @@ -0,0 +1,40 @@ +/* + * The MIT License + * + * Copyright (c) 2010, InfraDNA, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.model.labels; + +import hudson.Extension; +import hudson.model.Descriptor; + +/** + * {@link Descriptor} for {@link LabelAtom}. + * + *

    + * Put {@link Extension} on your descriptor implementation to have it auto-registered. + * + * @author Kohsuke Kawaguchi + * @since 1.373 + */ +public abstract class LabelAtomPropertyDescriptor extends Descriptor { + +} diff --git a/core/src/main/java/hudson/model/labels/LabelExpression.java b/core/src/main/java/hudson/model/labels/LabelExpression.java new file mode 100644 index 0000000000000000000000000000000000000000..babb1b4761627cd62024bbfa6317c65bc5f9270b --- /dev/null +++ b/core/src/main/java/hudson/model/labels/LabelExpression.java @@ -0,0 +1,183 @@ +/* + * The MIT License + * + * Copyright (c) 2010, InfraDNA, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.model.labels; + +import hudson.model.Label; +import hudson.util.VariableResolver; + +/** + * Boolean expression of labels. + * + * @author Kohsuke Kawaguchi + * @since 1.372 + */ +public abstract class LabelExpression extends Label { + protected LabelExpression(String name) { + super(name); + } + + @Override + public String getExpression() { + return getDisplayName(); + } + + public static class Not extends LabelExpression { + private final Label base; + + public Not(Label base) { + super('!'+paren(LabelOperatorPrecedence.NOT,base)); + this.base = base; + } + + @Override + public boolean matches(VariableResolver resolver) { + return !base.matches(resolver); + } + + @Override + public LabelOperatorPrecedence precedence() { + return LabelOperatorPrecedence.NOT; + } + } + + /** + * No-op but useful for preserving the parenthesis in the user input. + */ + public static class Paren extends LabelExpression { + private final Label base; + + public Paren(Label base) { + super('('+base.getExpression()+')'); + this.base = base; + } + + @Override + public boolean matches(VariableResolver resolver) { + return base.matches(resolver); + } + + @Override + public LabelOperatorPrecedence precedence() { + return LabelOperatorPrecedence.ATOM; + } + } + + /** + * Puts the label name into a parenthesis if the given operator will have a higher precedence. + */ + static String paren(LabelOperatorPrecedence op, Label l) { + if (op.compareTo(l.precedence())<0) + return '('+l.getExpression()+')'; + return l.getExpression(); + } + + public static abstract class Binary extends LabelExpression { + private final Label lhs,rhs; + + public Binary(Label lhs, Label rhs, LabelOperatorPrecedence op) { + super(combine(lhs, rhs, op)); + this.lhs = lhs; + this.rhs = rhs; + } + + private static String combine(Label lhs, Label rhs, LabelOperatorPrecedence op) { + return paren(op,lhs)+op.str+paren(op,rhs); + } + + /** + * Note that we evaluate both branches of the expression all the time. + * That is, it behaves like "a|b" not "a||b" + */ + @Override + public boolean matches(VariableResolver resolver) { + return op(lhs.matches(resolver),rhs.matches(resolver)); + } + + protected abstract boolean op(boolean a, boolean b); + } + + public static final class And extends Binary { + public And(Label lhs, Label rhs) { + super(lhs, rhs, LabelOperatorPrecedence.AND); + } + + @Override + protected boolean op(boolean a, boolean b) { + return a && b; + } + + @Override + public LabelOperatorPrecedence precedence() { + return LabelOperatorPrecedence.AND; + } + } + + public static final class Or extends Binary { + public Or(Label lhs, Label rhs) { + super(lhs, rhs, LabelOperatorPrecedence.OR); + } + + @Override + protected boolean op(boolean a, boolean b) { + return a || b; + } + + @Override + public LabelOperatorPrecedence precedence() { + return LabelOperatorPrecedence.OR; + } + } + + public static final class Iff extends Binary { + public Iff(Label lhs, Label rhs) { + super(lhs, rhs, LabelOperatorPrecedence.IFF); + } + + @Override + protected boolean op(boolean a, boolean b) { + return !(a ^ b); + } + + @Override + public LabelOperatorPrecedence precedence() { + return LabelOperatorPrecedence.IFF; + } + } + + public static final class Implies extends Binary { + public Implies(Label lhs, Label rhs) { + super(lhs, rhs, LabelOperatorPrecedence.IMPLIES); + } + + @Override + protected boolean op(boolean a, boolean b) { + return !a || b; + } + + @Override + public LabelOperatorPrecedence precedence() { + return LabelOperatorPrecedence.IMPLIES; + } + } +} diff --git a/core/src/main/java/hudson/model/labels/LabelOperatorPrecedence.java b/core/src/main/java/hudson/model/labels/LabelOperatorPrecedence.java new file mode 100644 index 0000000000000000000000000000000000000000..a917d97b0563cdf7efaabd6fa7638456d1b8244d --- /dev/null +++ b/core/src/main/java/hudson/model/labels/LabelOperatorPrecedence.java @@ -0,0 +1,43 @@ +/* + * The MIT License + * + * Copyright (c) 2010, InfraDNA, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.model.labels; + +/** + * Precedence of the top most operator. + * + * @author Kohsuke Kawaguchi + * @since 1.372 + */ +public enum LabelOperatorPrecedence { + ATOM(null), NOT("!"), AND("&&"), OR("||"), IMPLIES("->"), IFF("<->"); + + /** + * String representation of this operator. + */ + public final String str; + + LabelOperatorPrecedence(String str) { + this.str = str; + } +} diff --git a/core/src/main/java/hudson/model/labels/package-info.java b/core/src/main/java/hudson/model/labels/package-info.java new file mode 100644 index 0000000000000000000000000000000000000000..73295bf7cf9ab09190e56a90abe811d077b627d2 --- /dev/null +++ b/core/src/main/java/hudson/model/labels/package-info.java @@ -0,0 +1,4 @@ +/** + * Boolean expression over labels. + */ +package hudson.model.labels; diff --git a/core/src/main/java/hudson/model/listeners/ItemListener.java b/core/src/main/java/hudson/model/listeners/ItemListener.java index 14cf9c7c82e700ad3bbe415c261e0e43301b6b72..088d0ac88fa6b509925d1044700d089614b2c87f 100644 --- a/core/src/main/java/hudson/model/listeners/ItemListener.java +++ b/core/src/main/java/hudson/model/listeners/ItemListener.java @@ -37,11 +37,34 @@ import hudson.model.Item; */ public class ItemListener implements ExtensionPoint { /** - * Called after a new job is created and added to {@link Hudson}. + * Called after a new job is created and added to {@link Hudson}, + * before the initial configuration page is provided. + *

    + * This is useful for changing the default initial configuration of newly created jobs. + * For example, you can enable/add builders, etc. */ public void onCreated(Item item) { } + /** + * Called after a new job is created by copying from an existing job. + * + * For backward compatibility, the default implementation of this method calls {@link #onCreated(Item)}. + * If you choose to handle this method, think about whether you want to call super.onCopied or not. + * + * + * @param src + * The source item that the new one was copied from. Never null. + * @param item + * The newly created item. Never null. + * + * @since 1.325 + * Before this version, a copy triggered {@link #onCreated(Item)}. + */ + public void onCopied(Item src, Item item) { + onCreated(item); + } + /** * Called after all the jobs are loaded from disk into {@link Hudson} * object. @@ -87,4 +110,14 @@ public class ItemListener implements ExtensionPoint { public static ExtensionList all() { return Hudson.getInstance().getExtensionList(ItemListener.class); } + + public static void fireOnCopied(Item src, Item result) { + for (ItemListener l : all()) + l.onCopied(src,result); + } + + public static void fireOnCreated(Item item) { + for (ItemListener l : all()) + l.onCreated(item); + } } diff --git a/core/src/main/java/hudson/model/listeners/JobListener.java b/core/src/main/java/hudson/model/listeners/JobListener.java deleted file mode 100644 index 19464094985801f3d4d234ae0b08cbfa676575dc..0000000000000000000000000000000000000000 --- a/core/src/main/java/hudson/model/listeners/JobListener.java +++ /dev/null @@ -1,99 +0,0 @@ -/* - * The MIT License - * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ -package hudson.model.listeners; - -import hudson.model.Hudson; -import hudson.model.Job; -import hudson.model.Item; -import hudson.ExtensionPoint; - -/** - * Receives notifications about jobs. - * - *

    - * This is an abstract class so that methods added in the future won't break existing listeners. - * - * @author Kohsuke Kawaguchi - * @see Hudson#addListener(JobListener) - * @deprecated {@link ItemListener} is the generalized form of this. - */ -public abstract class JobListener implements ExtensionPoint { - /** - * Called after a new job is created and added to {@link Hudson}. - */ - public void onCreated(Job j) { - } - - /** - * Called after all the jobs are loaded from disk into {@link Hudson} - * object. - * - * @since 1.68 - */ - public void onLoaded() { - } - - /** - * Called right before a job is going to be deleted. - * - * At this point the data files of the job is already gone. - */ - public void onDeleted(Job j) { - } - - public static final class JobListenerAdapter extends ItemListener { - private final JobListener listener; - - public JobListenerAdapter(JobListener listener) { - this.listener = listener; - } - - public void onCreated(Item item) { - if(item instanceof Job) - listener.onCreated((Job)item); - } - - public void onLoaded() { - listener.onLoaded(); - } - - public void onDeleted(Item item) { - if(item instanceof Job) - listener.onDeleted((Job)item); - } - - public boolean equals(Object o) { - if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; - - JobListenerAdapter that = (JobListenerAdapter) o; - - return this.listener.equals(that.listener); - } - - public int hashCode() { - return listener.hashCode(); - } - } -} diff --git a/core/src/main/java/hudson/model/listeners/RunListener.java b/core/src/main/java/hudson/model/listeners/RunListener.java index 31572aad0319ba5195f725ccd84124751d368b14..6e0a150e312b0379ec5ab7bac09b2d9f8a541cbb 100644 --- a/core/src/main/java/hudson/model/listeners/RunListener.java +++ b/core/src/main/java/hudson/model/listeners/RunListener.java @@ -26,14 +26,15 @@ package hudson.model.listeners; import hudson.ExtensionPoint; import hudson.ExtensionListView; import hudson.Extension; -import hudson.DescriptorExtensionList; import hudson.ExtensionList; -import hudson.scm.RepositoryBrowser; import hudson.model.Run; import hudson.model.TaskListener; -import hudson.model.Descriptor; import hudson.model.Hudson; import hudson.util.CopyOnWriteList; +import org.jvnet.tiger_types.Types; + +import java.lang.reflect.ParameterizedType; +import java.lang.reflect.Type; /** * Receives notifications about builds. @@ -55,6 +56,14 @@ public abstract class RunListener implements ExtensionPoint { this.targetType = targetType; } + protected RunListener() { + Type type = Types.getBaseClass(getClass(), RunListener.class); + if (type instanceof ParameterizedType) + targetType = Types.erasure(Types.getTypeArgument(type,0)); + else + throw new IllegalStateException(getClass()+" uses the raw type for extending RunListener"); + } + /** * Called after a build is completed. * @@ -99,7 +108,7 @@ public abstract class RunListener implements ExtensionPoint { * Registers this object as an active listener so that it can start getting * callbacks invoked. * - * @deprecated + * @deprecated as of 1.281 * Put {@link Extension} on your class to get it auto-registered. */ public void register() { diff --git a/core/src/main/java/hudson/model/listeners/SaveableListener.java b/core/src/main/java/hudson/model/listeners/SaveableListener.java new file mode 100644 index 0000000000000000000000000000000000000000..3917a4c77ed68cfc4cfd7ddf1caedf2985107462 --- /dev/null +++ b/core/src/main/java/hudson/model/listeners/SaveableListener.java @@ -0,0 +1,88 @@ +/* + * The MIT License + * + * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Tom Huybrechts, + * Andrew Bayer + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.model.listeners; + +import hudson.ExtensionPoint; +import hudson.Extension; +import hudson.ExtensionList; +import hudson.XmlFile; +import hudson.model.Hudson; +import hudson.model.Saveable; + +/** + * Receives notifications about save actions on {@link Saveable} objects in Hudson. + * + *

    + * This is an abstract class so that methods added in the future won't break existing listeners. + * + * @author Andrew Bayer + * @since 1.334 + */ +public abstract class SaveableListener implements ExtensionPoint { + + /** + * Called when a change is made to a {@link Saveable} object. + * + * @param o + * The saveable object. + * @param file + * The {@link XmlFile} for this saveable object. + */ + public void onChange(Saveable o, XmlFile file) {} + + /** + * Registers this object as an active listener so that it can start getting + * callbacks invoked. + * + * @deprecated as of 1.281 + * Put {@link Extension} on your class to get it auto-registered. + */ + public void register() { + all().add(this); + } + + /** + * Reverse operation of {@link #register()}. + */ + public void unregister() { + all().remove(this); + } + + /** + * Fires the {@link #onChange} event. + */ + public static void fireOnChange(Saveable o, XmlFile file) { + for (SaveableListener l : all()) { + l.onChange(o,file); + } + } + + /** + * Returns all the registered {@link SaveableListener} descriptors. + */ + public static ExtensionList all() { + return Hudson.getInstance().getExtensionList(SaveableListener.class); + } +} diff --git a/core/src/main/java/hudson/model/listeners/package.html b/core/src/main/java/hudson/model/listeners/package.html index fb930ab01216955880b5ef7e53230f916205855f..395a670b1851c7a7d61f8a66a068f69495213fdb 100644 --- a/core/src/main/java/hudson/model/listeners/package.html +++ b/core/src/main/java/hudson/model/listeners/package.html @@ -1,7 +1,7 @@ - + Listener interfaces for various events that occur inside the server. \ No newline at end of file diff --git a/core/src/main/java/hudson/model/package.html b/core/src/main/java/hudson/model/package.html index 0457bb33e40f5291690d6bd9189b42d1e749ecaf..640b328a391dfaf338c5b4e9ffd7dae8d679b5bb 100644 --- a/core/src/main/java/hudson/model/package.html +++ b/core/src/main/java/hudson/model/package.html @@ -1,7 +1,7 @@ - + Core object model that are bound to URLs via stapler, rooted at Hudson. \ No newline at end of file diff --git a/core/src/main/java/hudson/model/queue/AbstractQueueSorterImpl.java b/core/src/main/java/hudson/model/queue/AbstractQueueSorterImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..f3194209efa99106d7ebe036c3b24c8745e7c62a --- /dev/null +++ b/core/src/main/java/hudson/model/queue/AbstractQueueSorterImpl.java @@ -0,0 +1,52 @@ +package hudson.model.queue; + +import hudson.model.Queue.BuildableItem; + +import java.util.Collections; +import java.util.Comparator; +import java.util.List; + +/** + * Partial implementation of {@link QueueSorter} in terms of {@link Comparator}. + * + * @author Kohsuke Kawaguchi + * @since 1.343 + */ +public abstract class AbstractQueueSorterImpl extends QueueSorter implements Comparator { + @Override + public void sortBuildableItems(List buildables) { + Collections.sort(buildables,this); // sort is ascending order + } + + /** + * Override this method to provide the ordering of the sort. + * + *

    + * if lhs should be build before rhs, return a negative value. Or put another way, think of the comparison + * as a process of converting a {@link BuildableItem} into a number, then doing num(lhs)-num(rhs). + * + *

    + * The default implementation does FIFO. + */ + public int compare(BuildableItem lhs, BuildableItem rhs) { + return compare(lhs.buildableStartMilliseconds,rhs.buildableStartMilliseconds); + } + + /** + * sign(a-b). + */ + protected static int compare(long a, long b) { + if (a>b) return 1; + if (ab) return 1; + if (a getSubTasks() { + return Collections.singleton(this); + } + + public final Task getOwnerTask() { + return this; + } +} diff --git a/core/src/main/java/hudson/model/queue/AbstractSubTask.java b/core/src/main/java/hudson/model/queue/AbstractSubTask.java new file mode 100644 index 0000000000000000000000000000000000000000..a031d9ef81f8beaa71dab99f9fa9600ceeaec09a --- /dev/null +++ b/core/src/main/java/hudson/model/queue/AbstractSubTask.java @@ -0,0 +1,56 @@ +/* + * The MIT License + * + * Copyright (c) 2010, InfraDNA, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.model.queue; + +import hudson.model.Label; +import hudson.model.Node; +import hudson.model.ResourceList; + +/** + * Partial default implementation of {@link SubTask} to avoid + * {@link AbstractMethodError} with future additions to {@link SubTask}. + * + * @author Kohsuke Kawaguchi + */ +public abstract class AbstractSubTask implements SubTask { + public Label getAssignedLabel() { + return null; + } + + public Node getLastBuiltOn() { + return null; + } + + public long getEstimatedDuration() { + return -1; + } + + public Object getSameNodeConstraint() { + return null; + } + + public ResourceList getResourceList() { + return new ResourceList(); + } +} diff --git a/core/src/main/java/hudson/model/queue/BackFiller.java b/core/src/main/java/hudson/model/queue/BackFiller.java new file mode 100644 index 0000000000000000000000000000000000000000..c568885f1cfd2ba9de31dbe867fe4b4c5d90aa39 --- /dev/null +++ b/core/src/main/java/hudson/model/queue/BackFiller.java @@ -0,0 +1,211 @@ +package hudson.model.queue; + +import com.google.common.collect.Iterables; +import hudson.Extension; +import hudson.model.Computer; +import hudson.model.Executor; +import hudson.model.Hudson; +import hudson.model.InvisibleAction; +import hudson.model.Queue.BuildableItem; +import hudson.model.queue.MappingWorksheet.ExecutorChunk; +import hudson.model.queue.MappingWorksheet.ExecutorSlot; +import hudson.model.queue.MappingWorksheet.Mapping; +import hudson.model.queue.MappingWorksheet.WorkChunk; +import hudson.util.TimeUnit2; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; + +/** + * Experimental. + * + * @author Kohsuke Kawaguchi + */ +public class BackFiller extends LoadPredictor { + private boolean recursion = false; + + @Override + public Iterable predict(MappingWorksheet plan, Computer computer, long start, long end) { + TimeRange timeRange = new TimeRange(start, end - start); + List loads = new ArrayList(); + + for (BuildableItem bi : Hudson.getInstance().getQueue().getBuildableItems()) { + TentativePlan tp = bi.getAction(TentativePlan.class); + if (tp==null) {// do this even for bi==plan.item ensures that we have FIFO semantics in tentative plans. + tp = makeTentativePlan(bi); + if (tp==null) continue; // no viable plan. + } + + if (tp.isStale()) { + // if the tentative plan is stale, just keep on pushing it to the current time + // (if we recreate the plan, it'll be put at the end of the queue, whereas this job + // should actually get priority over others) + tp.range.shiftTo(System.currentTimeMillis()); + } + + // don't let its own tentative plan count when considering a scheduling for a job + if (plan.item==bi) continue; + + + // no overlap in the time span, meaning this plan is for a distant future + if (!timeRange.overlapsWith(tp.range)) continue; + + // if this tentative plan has no baring on this computer, that's ignorable + Integer i = tp.footprint.get(computer); + if (i==null) continue; + + return Collections.singleton(tp.range.toFutureLoad(i)); + } + + return loads; + } + + private static final class PseudoExecutorSlot extends ExecutorSlot { + private Executor executor; + + private PseudoExecutorSlot(Executor executor) { + this.executor = executor; + } + + @Override + public Executor getExecutor() { + return executor; + } + + @Override + public boolean isAvailable() { + return true; + } + + // this slot isn't executable + @Override + protected void set(WorkUnit p) { + throw new UnsupportedOperationException(); + } + } + + private TentativePlan makeTentativePlan(BuildableItem bi) { + if (recursion) return null; + recursion = true; + try { + // pretend for now that all executors are available and decide some assignment that's executable. + List slots = new ArrayList(); + for (Computer c : Hudson.getInstance().getComputers()) { + if (c.isOffline()) continue; + for (Executor e : c.getExecutors()) { + slots.add(new PseudoExecutorSlot(e)); + } + } + + // also ignore all load predictions as we just want to figure out some executable assignment + // and we are not trying to figure out if this task is executable right now. + MappingWorksheet worksheet = new MappingWorksheet(bi, slots, Collections.emptyList()); + Mapping m = Hudson.getInstance().getQueue().getLoadBalancer().map(bi.task, worksheet); + if (m==null) return null; + + // figure out how many executors we need on each computer? + Map footprint = new HashMap(); + for (Entry e : m.toMap().entrySet()) { + Computer c = e.getValue().computer; + Integer v = footprint.get(c); + if (v==null) v = 0; + v += e.getKey().size(); + footprint.put(c,v); + } + + // the point of a tentative plan is to displace other jobs to create a point in time + // where this task can start executing. An incorrectly estimated duration is not + // a problem in this regard, as we just need enough idle executors in the right moment. + // The downside of guessing the duration wrong is that we can end up creating tentative plans + // afterward that may be incorrect, but those plans will be rebuilt. + long d = bi.task.getEstimatedDuration(); + if (d<=0) d = TimeUnit2.MINUTES.toMillis(5); + + TimeRange slot = new TimeRange(System.currentTimeMillis(), d); + + // now, based on the real predicted loads, figure out the approximation of when we can + // start executing this guy. + for (Entry e : footprint.entrySet()) { + Computer computer = e.getKey(); + Timeline timeline = new Timeline(); + for (LoadPredictor lp : LoadPredictor.all()) { + for (FutureLoad fl : Iterables.limit(lp.predict(worksheet, computer, slot.start, slot.end),100)) { + timeline.insert(fl.startTime, fl.startTime+fl.duration, fl.numExecutors); + } + } + + Long x = timeline.fit(slot.start, slot.duration, computer.countExecutors()-e.getValue()); + // if no suitable range was found in [slot.start,slot.end), slot.end would be a good approximation + if (x==null) x = slot.end; + slot = slot.shiftTo(x); + } + + TentativePlan tp = new TentativePlan(footprint, slot); + bi.addAction(tp); + return tp; + } finally { + recursion = false; + } + } + + /** + * Represents a duration in time. + */ + private static final class TimeRange { + public final long start; + public final long duration; + public final long end; + + private TimeRange(long start, long duration) { + this.start = start; + this.duration = duration; + this.end = start+duration; + } + + public boolean overlapsWith(TimeRange that) { + return (this.start <= that.start && that.start <=this.end) + || (that.start <= this.start && this.start <=that.end); + } + + public FutureLoad toFutureLoad(int size) { + return new FutureLoad(start,duration,size); + } + + public TimeRange shiftTo(long newStart) { + if (newStart==start) return this; + return new TimeRange(newStart,duration); + } + } + + public static final class TentativePlan extends InvisibleAction { + private final Map footprint; + public final TimeRange range; + + public TentativePlan(Map footprint, TimeRange range) { + this.footprint = footprint; + this.range = range; + } + + public Object writeReplace() {// don't persist + return null; + } + + public boolean isStale() { + return range.end < System.currentTimeMillis(); + } + } + + /** + * Once this feature stabilizes, move it to the heavyjob plugin + */ + @Extension + public static BackFiller newInstance() { + if (Boolean.getBoolean(BackFiller.class.getName())) + return new BackFiller(); + return null; + } +} diff --git a/core/src/main/java/hudson/model/queue/CauseOfBlockage.java b/core/src/main/java/hudson/model/queue/CauseOfBlockage.java new file mode 100644 index 0000000000000000000000000000000000000000..ead1c01b35c0545530f15c80fa8451537d43e825 --- /dev/null +++ b/core/src/main/java/hudson/model/queue/CauseOfBlockage.java @@ -0,0 +1,95 @@ +package hudson.model.queue; + +import hudson.model.Queue.Task; +import hudson.model.Node; +import hudson.model.Messages; +import hudson.model.Label; +import org.jvnet.localizer.Localizable; + +/** + * If a {@link Task} execution is blocked in the queue, this object represents why. + * + *

    View

    + * summary.jelly should do one-line HTML rendering to be used while rendering + * "build history" widget, next to the blocking build. By default it simply renders + * {@link #getShortDescription()} text. + * + * @since 1.330 + */ +public abstract class CauseOfBlockage { + /** + * Human readable description of why the build is blocked. + */ + public abstract String getShortDescription(); + + /** + * Obtains a simple implementation backed by {@link Localizable}. + */ + public static CauseOfBlockage fromMessage(final Localizable l) { + return new CauseOfBlockage() { + public String getShortDescription() { + return l.toString(); + } + }; + } + + /** + * Build is blocked because a node is offline. + */ + public static final class BecauseNodeIsOffline extends CauseOfBlockage { + public final Node node; + + public BecauseNodeIsOffline(Node node) { + this.node = node; + } + + public String getShortDescription() { + return Messages.Queue_NodeOffline(node.getDisplayName()); + } + } + + /** + * Build is blocked because all the nodes that match a given label is offline. + */ + public static final class BecauseLabelIsOffline extends CauseOfBlockage { + public final Label label; + + public BecauseLabelIsOffline(Label l) { + this.label = l; + } + + public String getShortDescription() { + return Messages.Queue_AllNodesOffline(label.getName()); + } + } + + /** + * Build is blocked because a node is fully busy + */ + public static final class BecauseNodeIsBusy extends CauseOfBlockage { + public final Node node; + + public BecauseNodeIsBusy(Node node) { + this.node = node; + } + + public String getShortDescription() { + return Messages.Queue_WaitingForNextAvailableExecutorOn(node.getNodeName()); + } + } + + /** + * Build is blocked because everyone that matches the specified label is fully busy + */ + public static final class BecauseLabelIsBusy extends CauseOfBlockage { + public final Label label; + + public BecauseLabelIsBusy(Label label) { + this.label = label; + } + + public String getShortDescription() { + return Messages.Queue_WaitingForNextAvailableExecutorOn(label.getName()); + } + } +} diff --git a/core/src/main/java/hudson/model/queue/Executables.java b/core/src/main/java/hudson/model/queue/Executables.java new file mode 100644 index 0000000000000000000000000000000000000000..e8533ad5e9f532bcbd87295981aac1dda9b91810 --- /dev/null +++ b/core/src/main/java/hudson/model/queue/Executables.java @@ -0,0 +1,68 @@ +/* + * The MIT License + * + * Copyright (c) 2010, InfraDNA, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.model.queue; + +import hudson.model.Queue.Executable; + +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; + +/** + * Convenience methods around {@link Executable}. + * + * @author Kohsuke Kawaguchi + */ +public class Executables { + /** + * Due to the return type change in {@link Executable}, the caller needs a special precaution now. + */ + public static SubTask getParentOf(Executable e) { + try { + return _getParentOf(e); + } catch (AbstractMethodError _) { + try { + Method m = e.getClass().getMethod("getParent"); + m.setAccessible(true); + return (SubTask) m.invoke(e); + } catch (IllegalAccessException x) { + throw (Error)new IllegalAccessError().initCause(x); + } catch (NoSuchMethodException x) { + throw (Error)new NoSuchMethodError().initCause(x); + } catch (InvocationTargetException x) { + Throwable y = x.getTargetException(); + if (y instanceof Error) throw (Error)y; + if (y instanceof RuntimeException) throw (RuntimeException)y; + throw new Error(x); + } + } + } + + /** + * A pointless function to work around what appears to be a HotSpot problem. See HUDSON-5756 and bug 6933067 + * on BugParade for more details. + */ + private static SubTask _getParentOf(Executable e) { + return e.getParent(); + } +} diff --git a/core/src/main/java/hudson/model/queue/FoldableAction.java b/core/src/main/java/hudson/model/queue/FoldableAction.java new file mode 100644 index 0000000000000000000000000000000000000000..f8f6e7bc08601446db85e3404310b627c998cda6 --- /dev/null +++ b/core/src/main/java/hudson/model/queue/FoldableAction.java @@ -0,0 +1,59 @@ +/* + * The MIT License + * + * Copyright (c) 2004-2009, Sun Microsystems, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.model.queue; + +import hudson.model.Queue.Task; +import hudson.model.Action; +import hudson.model.Queue; + +import java.util.List; + +/** + * An action interface that allows action data to be folded together. + * + *

    + * {@link Action} can implement this optional marker interface to be notified when + * the {@link Task} that it's added to the queue with is determined to be "already in the queue". + * + *

    + * This is useful for passing on parameters to the task that's already in the queue. + * + * @author mdonohue + * @since 1.300-ish. + */ +public interface FoldableAction extends Action { + /** + * Notifies that the {@link Task} that "owns" this action (that is, the task for which this action is submitted) + * is considered as a duplicate. + * + * @param item + * The existing {@link Queue.Item} in the queue against which we are judged as a duplicate. Never null. + * @param owner + * The {@link Task} with which this action was submitted to the queue. Never null. + * @param otherActions + * Other {@link Action}s that are submitted with the task. (One of them is this {@link FoldableAction}.) + * Never null. + */ + void foldIntoExisting(Queue.Item item, Task owner, List otherActions); +} diff --git a/core/src/main/java/hudson/model/queue/FutureImpl.java b/core/src/main/java/hudson/model/queue/FutureImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..1fde2a3d93f6b0867aaeea390cbe76624693a14e --- /dev/null +++ b/core/src/main/java/hudson/model/queue/FutureImpl.java @@ -0,0 +1,72 @@ +/* + * The MIT License + * + * Copyright (c) 2010, InfraDNA, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.model.queue; + +import hudson.model.Executor; +import hudson.model.Hudson; +import hudson.model.Queue; +import hudson.model.Queue.Executable; +import hudson.model.Queue.Task; +import hudson.remoting.AsyncFutureImpl; + +import java.util.HashSet; +import java.util.Set; + +/** + * Created when {@link Queue.Item} is created so that the caller can track the progress of the task. + * + * @author Kohsuke Kawaguchi + */ +public final class FutureImpl extends AsyncFutureImpl { + private final Task task; + + /** + * If the computation has started, set to {@link Executor}s that are running the build. + */ + private final Set executors = new HashSet(); + + public FutureImpl(Task task) { + this.task = task; + } + + @Override + public boolean cancel(boolean mayInterruptIfRunning) { + Queue q = Hudson.getInstance().getQueue(); + synchronized (q) { + synchronized (this) { + if(!executors.isEmpty()) { + if(mayInterruptIfRunning) + for (Executor e : executors) + e.interrupt(); + return mayInterruptIfRunning; + } + return q.cancel(task); + } + } + } + + synchronized void addExecutor(Executor executor) { + this.executors.add(executor); + } +} diff --git a/core/src/main/java/hudson/model/queue/FutureLoad.java b/core/src/main/java/hudson/model/queue/FutureLoad.java new file mode 100644 index 0000000000000000000000000000000000000000..90f8d237534b61b55f4d82c57b0dcabe55e88acd --- /dev/null +++ b/core/src/main/java/hudson/model/queue/FutureLoad.java @@ -0,0 +1,55 @@ +/* + * The MIT License + * + * Copyright (c) 2010, InfraDNA, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.model.queue; + +/** + * Estimated future load to Hudson. + * + * @author Kohsuke Kawaguchi + * @see LoadPredictor + */ +public final class FutureLoad { + /** + * When is this load expected to start? + */ + public final long startTime; + /** + * How many executors is this going to consume? + */ + public final int numExecutors; + /** + * How long is task expected to continue, in milliseconds? + */ + public final long duration; + + public FutureLoad(long startTime, long duration, int numExecutors) { + this.startTime = startTime; + this.numExecutors = numExecutors; + this.duration = duration; + } + + public String toString() { + return "startTime="+startTime+",#executors="+numExecutors+",duration="+duration; + } +} diff --git a/core/src/main/java/hudson/model/queue/Latch.java b/core/src/main/java/hudson/model/queue/Latch.java new file mode 100644 index 0000000000000000000000000000000000000000..e631797f7a434312a58f6d0e2a39bb872bef6b50 --- /dev/null +++ b/core/src/main/java/hudson/model/queue/Latch.java @@ -0,0 +1,95 @@ +/* + * The MIT License + * + * Copyright (c) 2010, InfraDNA, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.model.queue; + +import hudson.AbortException; + +/** + * A concurrency primitive that waits for N number of threads to synchronize. + * If any of the threads are interrupted while waiting for the completion of the condition, + * then all the involved threads get interrupted. + * + * @author Kohsuke Kawaguchi + */ +class Latch { + private final int n; + private int i=0; + /** + * If the synchronization on the latch is aborted/interrupted, + * point to the stack trace where that happened. If null, + * no interruption happened. + */ + private Exception interrupted; + + public Latch(int n) { + this.n = n; + } + + public synchronized void abort(Throwable cause) { + interrupted = new AbortException(); + if (cause!=null) + interrupted.initCause(cause); + notifyAll(); + } + + + public synchronized void synchronize() throws InterruptedException { + check(n); + + try { + onCriteriaMet(); + } catch (Error e) { + abort(e); + throw e; + } catch (RuntimeException e) { + abort(e); + throw e; + } + + check(n*2); + } + + private void check(int threshold) throws InterruptedException { + i++; + if (i==threshold) { + notifyAll(); + } else { + while (i + * When Hudson makes a scheduling decision, Hudson considers predicted future load + * — e.g., "We do currently have one available executor, but we know we need this for something else in 30 minutes, + * so we can't currently schedule a build that takes 1 hour." + * + *

    + * This extension point plugs in such estimation of future load. + * + * @author Kohsuke Kawaguchi + */ +public abstract class LoadPredictor implements ExtensionPoint { + /** + * Estimates load starting from the 'start' timestamp, up to the 'end' timestamp. + * + * @param start + * Where to start enumeration. Always bigger or equal to the current time of the execution. + * @param plan + * This is the execution plan for which we are making a load prediction. Never null. While + * this object is still being partially constructed when this method is called, some + * of its properties (like {@link MappingWorksheet#item} provide access to more contextual + * information. + * @since 1.380 + */ + public Iterable predict(MappingWorksheet plan, Computer computer, long start, long end) { + // maintain backward compatibility by calling the old signature. + return predict(computer,start,end); + } + + /** + * Estimates load starting from the 'start' timestamp, up to the 'end' timestamp. + * + * @param start + * Where to start enumeration. Always bigger or equal to the current time of the execution. + * @deprecated as of 1.380 + * Use {@link #predict(MappingWorksheet, Computer, long, long)} + */ + public Iterable predict(Computer computer, long start, long end) { + return Collections.emptyList(); + } + + /** + * All the registered instances. + */ + public static ExtensionList all() { + return Hudson.getInstance().getExtensionList(LoadPredictor.class); + } + + /** + * Considers currently running tasks and their completion. + */ + @Extension + public static class CurrentlyRunningTasks extends LoadPredictor { + @Override + public Iterable predict(MappingWorksheet plan, final Computer computer, long start, long eternity) { + long now = System.currentTimeMillis(); + List fl = new ArrayList(); + for (Executor e : computer.getExecutors()) { + if (e.isIdle()) continue; + + long eta = e.getEstimatedRemainingTimeMillis(); + long end = eta<0 ? eternity : now + eta; // when does this task end? + if (end < start) continue; // should be over by the 'start' time. + fl.add(new FutureLoad(start, end-start, 1)); + } + return fl; + } + } +} diff --git a/core/src/main/java/hudson/model/queue/MappingWorksheet.java b/core/src/main/java/hudson/model/queue/MappingWorksheet.java new file mode 100644 index 0000000000000000000000000000000000000000..61965538741397b397a5a4a60b88c047cf6e6049 --- /dev/null +++ b/core/src/main/java/hudson/model/queue/MappingWorksheet.java @@ -0,0 +1,381 @@ +/* + * The MIT License + * + * Copyright (c) 2010, InfraDNA, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.model.queue; + +import com.google.common.collect.ImmutableList; +import com.google.common.collect.Iterables; +import hudson.model.Computer; +import hudson.model.Executor; +import hudson.model.Label; +import hudson.model.LoadBalancer; +import hudson.model.Node; +import hudson.model.Queue.BuildableItem; +import hudson.model.Queue.Executable; +import hudson.model.Queue.JobOffer; +import hudson.model.Queue.Task; + +import java.util.AbstractList; +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashMap; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; + +import static java.lang.Math.*; + +/** + * Defines a mapping problem for answering "where do we execute this task?" + * + *

    + * The heart of the placement problem is a mapping problem. We are given a {@link Task}, + * (which in the general case consists of a set of {@link SubTask}s), and we are also given a number + * of idle {@link Executor}s, and our goal is to find a mapping from the former to the latter, + * which determines where each {@link SubTask} gets executed. + * + *

    + * This mapping is done under two constraints: + * + *

      + *
    • + * "Same node" constraint. Some of the subtasks need to be co-located on the same node. + * See {@link SubTask#getSameNodeConstraint()} + *
    • + * Label constraint. {@link SubTask}s can specify that it can be only run on nodes that has the label. + *
    + * + *

    + * We first fold the former constraint into the problem definition. That is, we now consider + * a set of {@link SubTask}s that need to be co-located as a single {@link WorkChunk}. Similarly, + * we consider a set of all {@link Executor}s from the same node as {@link ExecutorChunk}. + * Now, the problem becomes the weighted matching problem from {@link WorkChunk} to {@link ExecutorChunk}. + * + *

    + * An instance of {@link MappingWorksheet} captures a problem definition, plus which + * {@link ExecutorChunk} and {@link WorkChunk} are compatible. The purpose of this class + * (and {@link ExecutorChunk} and {@link WorkChunk}) are to expose a lot of convenience methods + * to assist various algorithms that produce the solution of this mapping problem, + * which is represented as {@link Mapping}. + * + * @see LoadBalancer#map(Task, MappingWorksheet) + * @author Kohsuke Kawaguchi + */ +public class MappingWorksheet { + public final List executors; + public final List works; + /** + * {@link BuildableItem} for which we are trying to figure out the execution plan. Never null. + */ + public final BuildableItem item; + + private static class ReadOnlyList extends AbstractList { + protected final List base; + + ReadOnlyList(List base) { + this.base = base; + } + + public E get(int index) { + return base.get(index); + } + + public int size() { + return base.size(); + } + } + + public final class ExecutorChunk extends ReadOnlyList { + public final int index; + public final Computer computer; + public final Node node; + + private ExecutorChunk(List base, int index) { + super(base); + this.index = index; + assert !base.isEmpty(); + computer = base.get(0).getExecutor().getOwner(); + node = computer.getNode(); + } + + /** + * Is this executor chunk and the given work chunk compatible? Can the latter be run on the former? + */ + public boolean canAccept(WorkChunk c) { + return this.size() >= c.size() + && (c.assignedLabel==null || c.assignedLabel.contains(node)); + } + + /** + * Node name. + */ + public String getName() { + return node.getNodeName(); + } + + /** + * Number of executors in this chunk. + * Alias for size but more readable. + */ + public int capacity() { + return size(); + } + + private void execute(WorkChunk wc, WorkUnitContext wuc) { + assert capacity() >= wc.size(); + int e = 0; + for (SubTask s : wc) { + while (!get(e).isAvailable()) + e++; + get(e++).set(wuc.createWorkUnit(s)); + } + } + } + + public class WorkChunk extends ReadOnlyList { + public final int index; + + // the main should be always at position 0 +// /** +// * This chunk includes {@linkplain WorkUnit#isMainWork() the main work unit}. +// */ +// public final boolean isMain; + + /** + * If this task needs to be run on a node with a particular label, + * return that {@link Label}. Otherwise null, indicating + * it can run on anywhere. + */ + public final Label assignedLabel; + + /** + * If the previous execution of this task run on a certain node + * and this task prefers to run on the same node, return that. + * Otherwise null. + */ + public final ExecutorChunk lastBuiltOn; + + + private WorkChunk(List base, int index) { + super(base); + assert !base.isEmpty(); + this.index = index; + this.assignedLabel = base.get(0).getAssignedLabel(); + + Node lbo = base.get(0).getLastBuiltOn(); + for (ExecutorChunk ec : executors) { + if (ec.node==lbo) { + lastBuiltOn = ec; + return; + } + } + lastBuiltOn = null; + } + + public List applicableExecutorChunks() { + List r = new ArrayList(executors.size()); + for (ExecutorChunk e : executors) { + if (e.canAccept(this)) + r.add(e); + } + return r; + } + } + + /** + * Represents the solution to the mapping problem. + * It's a mapping from every {@link WorkChunk} to {@link ExecutorChunk} + * that satisfies the constraints. + */ + public final class Mapping { + // for each WorkChunk, identify ExecutorChunk where it is assigned to. + private final ExecutorChunk[] mapping = new ExecutorChunk[works.size()]; + + /** + * {@link ExecutorChunk} assigned to the n-th work chunk. + */ + public ExecutorChunk assigned(int n) { + return mapping[n]; + } + + /** + * n-th {@link WorkChunk}. + */ + public WorkChunk get(int n) { + return works.get(n); + } + + /** + * Update the mapping to execute n-th {@link WorkChunk} on the specified {@link ExecutorChunk}. + */ + public ExecutorChunk assign(int index, ExecutorChunk element) { + ExecutorChunk o = mapping[index]; + mapping[index] = element; + return o; + } + + /** + * Number of {@link WorkUnit}s that require assignments. + */ + public int size() { + return mapping.length; + } + + /** + * Returns the assignment as a map. + */ + public Map toMap() { + Map r = new HashMap(); + for (int i=0; i ec.capacity()) + return false; + } + return true; + } + + /** + * Makes sure that all the assignments are made and it is within the constraints. + */ + public boolean isCompletelyValid() { + for (ExecutorChunk ec : mapping) + if (ec==null) return false; // unassigned + return isPartiallyValid(); + } + + /** + * Executes this mapping by handing over {@link Executable}s to {@link JobOffer} + * as defined by the mapping. + */ + public void execute(WorkUnitContext wuc) { + if (!isCompletelyValid()) + throw new IllegalStateException(); + + for (int i=0; i offers) { + this(item,offers,LoadPredictor.all()); + } + + public MappingWorksheet(BuildableItem item, List offers, Collection loadPredictors) { + this.item = item; + + // group executors by their computers + Map> j = new HashMap>(); + for (ExecutorSlot o : offers) { + Computer c = o.getExecutor().getOwner(); + List l = j.get(c); + if (l==null) + j.put(c,l=new ArrayList()); + l.add(o); + } + + {// take load prediction into account and reduce the available executor pool size accordingly + long duration = item.task.getEstimatedDuration(); + if (duration > 0) { + long now = System.currentTimeMillis(); + for (Entry> e : j.entrySet()) { + final List list = e.getValue(); + final int max = e.getKey().countExecutors(); + + // build up the prediction model. cut the chase if we hit the max. + Timeline timeline = new Timeline(); + int peak = 0; + OUTER: + for (LoadPredictor lp : loadPredictors) { + for (FutureLoad fl : Iterables.limit(lp.predict(this,e.getKey(), now, now + duration),100)) { + peak = max(peak,timeline.insert(fl.startTime, fl.startTime+fl.duration, fl.numExecutors)); + if (peak>=max) break OUTER; + } + } + + int minIdle = max-peak; // minimum number of idle nodes during this time period + if (minIdle executors = new ArrayList(); + for (List group : j.values()) { + if (group.isEmpty()) continue; // evict empty group + ExecutorChunk ec = new ExecutorChunk(group, executors.size()); + if (ec.node==null) continue; // evict out of sync node + executors.add(ec); + } + this.executors = ImmutableList.copyOf(executors); + + // group execution units into chunks. use of LinkedHashMap ensures that the main work comes at the top + Map> m = new LinkedHashMap>(); + for (SubTask meu : Tasks.getSubTasksOf(item.task)) { + Object c = Tasks.getSameNodeConstraintOf(meu); + if (c==null) c = new Object(); + + List l = m.get(c); + if (l==null) + m.put(c,l= new ArrayList()); + l.add(meu); + } + + // build into the final shape + List works = new ArrayList(); + for (List group : m.values()) { + works.add(new WorkChunk(group,works.size())); + } + this.works = ImmutableList.copyOf(works); + } + + public WorkChunk works(int index) { + return works.get(index); + } + + public ExecutorChunk executors(int index) { + return executors.get(index); + } + + public static abstract class ExecutorSlot { + public abstract Executor getExecutor(); + + public abstract boolean isAvailable(); + + protected abstract void set(WorkUnit p) throws UnsupportedOperationException; + } +} diff --git a/core/src/main/java/hudson/model/queue/QueueSorter.java b/core/src/main/java/hudson/model/queue/QueueSorter.java new file mode 100644 index 0000000000000000000000000000000000000000..b689bd691455c3a78f0854982f8f6b816856ee2f --- /dev/null +++ b/core/src/main/java/hudson/model/queue/QueueSorter.java @@ -0,0 +1,57 @@ +package hudson.model.queue; + +import hudson.ExtensionList; +import hudson.ExtensionPoint; +import hudson.init.Initializer; +import hudson.model.Hudson; +import hudson.model.Queue; +import hudson.model.Queue.BuildableItem; + +import java.util.List; +import java.util.logging.Logger; + +import static hudson.init.InitMilestone.JOB_LOADED; + +/** + * Singleton extension point for sorting buildable items + * + * @since 1.343 + */ +public abstract class QueueSorter implements ExtensionPoint { + /** + * Sorts the buildable items list. The items at the beginning will be executed + * before the items at the end of the list. + * + * @param buildables + * List of buildable items in the queue. Never null. + */ + public abstract void sortBuildableItems(List buildables); + + /** + * All registered {@link QueueSorter}s. Only the first one will be picked up, + * unless explicitly overridden by {@link Queue#setSorter(QueueSorter)}. + */ + public static ExtensionList all() { + return Hudson.getInstance().getExtensionList(QueueSorter.class); + } + + /** + * Installs the default queue sorter. + * + * {@link Queue#Queue(LoadBalancer)} is too early to do this + */ + @Initializer(after=JOB_LOADED) + public static void installDefaultQueueSorter() { + ExtensionList all = all(); + if (all.isEmpty()) return; + + Queue q = Hudson.getInstance().getQueue(); + if (q.getSorter()!=null) return; // someone has already installed something. leave that alone. + + q.setSorter(all.get(0)); + if (all.size()>1) + LOGGER.warning("Multiple QueueSorters are registered. Only the first one is used and the rest are ignored: "+all); + } + + private static final Logger LOGGER = Logger.getLogger(QueueSorter.class.getName()); +} diff --git a/core/src/main/java/hudson/model/queue/QueueTaskDispatcher.java b/core/src/main/java/hudson/model/queue/QueueTaskDispatcher.java new file mode 100644 index 0000000000000000000000000000000000000000..dfc31656a438e286bf0f29cd78af2bffe64a25a6 --- /dev/null +++ b/core/src/main/java/hudson/model/queue/QueueTaskDispatcher.java @@ -0,0 +1,71 @@ +/* + * The MIT License + * + * Copyright (c) 2010, InfraDNA, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +package hudson.model.queue; + +import hudson.Extension; +import hudson.ExtensionList; +import hudson.ExtensionPoint; +import hudson.model.Hudson; +import hudson.model.Node; +import hudson.model.Queue; +import hudson.model.Queue.Task; + +/** + * Vetos the execution of a task on a node + * + *

    + * To register your dispatcher implementations, put @{@link Extension} on your subtypes. + * + * @author Kohsuke Kawaguchi + * @since 1.360 + */ +public abstract class QueueTaskDispatcher implements ExtensionPoint { + /** + * Called whenever {@link Queue} is considering to execute the given task on a given node. + * + *

    + * Implementations can return null to indicate that the assignment is fine, or it can return + * a non-null instance to block the execution of the task on the given node. + * + *

    + * Queue doesn't remember/cache the response from dispatchers, and instead it'll keep asking. + * The upside of this is that it's very easy to block execution for a limited time period ( + * as you just need to return null when it's ready to execute.) The downside of this is that + * the decision needs to be made quickly. + * + *

    + * Vetos are additive. When multiple {@link QueueTaskDispatcher}s are in the system, + * the task won't run on the given node if any one of them returns a non-null value. + * (This relationship is also the same with built-in check logic.) + */ + public abstract CauseOfBlockage canTake(Node node, Task task); + + /** + * All registered {@link QueueTaskDispatcher}s. + */ + public static ExtensionList all() { + return Hudson.getInstance().getExtensionList(QueueTaskDispatcher.class); + } +} \ No newline at end of file diff --git a/core/src/main/java/hudson/model/queue/QueueTaskFilter.java b/core/src/main/java/hudson/model/queue/QueueTaskFilter.java new file mode 100644 index 0000000000000000000000000000000000000000..b8b6e240c85ceb330ccc76c3d9a663936f92be3f --- /dev/null +++ b/core/src/main/java/hudson/model/queue/QueueTaskFilter.java @@ -0,0 +1,121 @@ +/* + * The MIT License + * + * Copyright (c) 2010, InfraDNA, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +package hudson.model.queue; + +import hudson.model.Label; +import hudson.model.Node; +import hudson.model.Queue; +import hudson.model.Queue.Executable; +import hudson.model.Queue.Task; +import hudson.model.ResourceList; + +import java.io.IOException; +import java.util.Collection; + +/** + * Base class for defining filter {@link Queue.Task}. + * + * @author Kohsuke Kawaguchi + * @since 1.360 + */ +public abstract class QueueTaskFilter implements Queue.Task { + private final Queue.Task base; + + protected QueueTaskFilter(Task base) { + this.base = base; + } + + public Label getAssignedLabel() { + return base.getAssignedLabel(); + } + + public Node getLastBuiltOn() { + return base.getLastBuiltOn(); + } + + public boolean isBuildBlocked() { + return base.isBuildBlocked(); + } + + public String getWhyBlocked() { + return base.getWhyBlocked(); + } + + public CauseOfBlockage getCauseOfBlockage() { + return base.getCauseOfBlockage(); + } + + public String getName() { + return base.getName(); + } + + public String getFullDisplayName() { + return base.getFullDisplayName(); + } + + public long getEstimatedDuration() { + return base.getEstimatedDuration(); + } + + public Executable createExecutable() throws IOException { + return base.createExecutable(); + } + + public void checkAbortPermission() { + base.checkAbortPermission(); + } + + public boolean hasAbortPermission() { + return base.hasAbortPermission(); + } + + public String getUrl() { + return base.getUrl(); + } + + public boolean isConcurrentBuild() { + return base.isConcurrentBuild(); + } + + public String getDisplayName() { + return base.getDisplayName(); + } + + public ResourceList getResourceList() { + return base.getResourceList(); + } + + public Collection getSubTasks() { + return base.getSubTasks(); + } + + public final Task getOwnerTask() { + return this; + } + + public Object getSameNodeConstraint() { + return base.getSameNodeConstraint(); + } +} diff --git a/core/src/main/java/hudson/model/queue/SubTask.java b/core/src/main/java/hudson/model/queue/SubTask.java new file mode 100644 index 0000000000000000000000000000000000000000..457fb799b57dabee18bb129a64fe04311e49a6b1 --- /dev/null +++ b/core/src/main/java/hudson/model/queue/SubTask.java @@ -0,0 +1,86 @@ +/* + * The MIT License + * + * Copyright (c) 2010, InfraDNA, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.model.queue; + +import hudson.model.Executor; +import hudson.model.Label; +import hudson.model.Node; +import hudson.model.Queue.Executable; +import hudson.model.Queue.Task; +import hudson.model.ResourceActivity; + +import java.io.IOException; + +/** + * A component of {@link Task} that represents a computation carried out by a single {@link Executor}. + * + * A {@link Task} consists of a number of {@link SubTask}. + * + *

    + * Plugins are encouraged to extend from {@link AbstractSubTask} + * instead of implementing this interface directly, to maintain + * compatibility with future changes to this interface. + * + * @since 1.FATTASK + */ +public interface SubTask extends ResourceActivity { + /** + * If this task needs to be run on a node with a particular label, + * return that {@link Label}. Otherwise null, indicating + * it can run on anywhere. + */ + Label getAssignedLabel(); + + /** + * If the previous execution of this task run on a certain node + * and this task prefers to run on the same node, return that. + * Otherwise null. + */ + Node getLastBuiltOn(); + + /** + * Estimate of how long will it take to execute this task. + * Measured in milliseconds. + * + * @return -1 if it's impossible to estimate. + */ + long getEstimatedDuration(); + + /** + * Creates {@link Executable}, which performs the actual execution of the task. + */ + Executable createExecutable() throws IOException; + + /** + * Gets the {@link Task} that this subtask belongs to. + */ + Task getOwnerTask(); + + /** + * If a subset of {@link SubTask}s of a {@link Task} needs to be collocated with other {@link SubTask}s, + * those {@link SubTask}s should return the equal object here. If null, the execution unit isn't under a + * colocation constraint. + */ + Object getSameNodeConstraint(); +} diff --git a/core/src/main/java/hudson/model/queue/SubTaskContributor.java b/core/src/main/java/hudson/model/queue/SubTaskContributor.java new file mode 100644 index 0000000000000000000000000000000000000000..ca9e118f57c234fcff5ab359267da175d96c8d78 --- /dev/null +++ b/core/src/main/java/hudson/model/queue/SubTaskContributor.java @@ -0,0 +1,55 @@ +/* + * The MIT License + * + * Copyright (c) 2010, InfraDNA, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.model.queue; + +import hudson.Extension; +import hudson.ExtensionList; +import hudson.ExtensionPoint; +import hudson.model.AbstractProject; +import hudson.model.Hudson; + +import java.util.Collection; +import java.util.Collections; + +/** + * Externally contributes {@link SubTask}s to {@link AbstractProject#getSubTasks()}. + * + *

    + * Put @{@link Extension} on your implementation classes to register them. + * + * @author Kohsuke Kawaguchi + * @since 1.FATTASK + */ +public abstract class SubTaskContributor implements ExtensionPoint { + public Collection forProject(AbstractProject p) { + return Collections.emptyList(); + } + + /** + * All registered {@link MemberExecutionUnitContributor} instances. + */ + public static ExtensionList all() { + return Hudson.getInstance().getExtensionList(SubTaskContributor.class); + } +} diff --git a/core/src/main/java/hudson/model/queue/Tasks.java b/core/src/main/java/hudson/model/queue/Tasks.java new file mode 100644 index 0000000000000000000000000000000000000000..b9fa6536c45b61dc795419e313c47aecd274a398 --- /dev/null +++ b/core/src/main/java/hudson/model/queue/Tasks.java @@ -0,0 +1,86 @@ +/* + * The MIT License + * + * Copyright (c) 2010, InfraDNA, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.model.queue; + +import hudson.model.Queue.Task; + +import java.util.Collection; +import java.util.Collections; + +/** + * Convenience methods around {@link Task} and {@link SubTask}. + * + * @author Kohsuke Kawaguchi + * @since 1.FATTASK + */ +public class Tasks { + + /** + * A pointless function to work around what appears to be a HotSpot problem. See HUDSON-5756 and bug 6933067 + * on BugParade for more details. + */ + private static Collection _getSubTasksOf(Task task) { + return task.getSubTasks(); + } + + public static Collection getSubTasksOf(Task task) { + try { + return _getSubTasksOf(task); + } catch (AbstractMethodError e) { + return Collections.singleton(task); + } + } + + /** + * A pointless function to work around what appears to be a HotSpot problem. See HUDSON-5756 and bug 6933067 + * on BugParade for more details. + */ + private static Object _getSameNodeConstraintOf(SubTask t) { + return t.getSameNodeConstraint(); + } + + public static Object getSameNodeConstraintOf(SubTask t) { + try { + return _getSameNodeConstraintOf(t); + } catch (AbstractMethodError e) { + return null; + } + } + + /** + * A pointless function to work around what appears to be a HotSpot problem. See HUDSON-5756 and bug 6933067 + * on BugParade for more details. + */ + public static Task _getOwnerTaskOf(SubTask t) { + return t.getOwnerTask(); + } + + public static Task getOwnerTaskOf(SubTask t) { + try { + return _getOwnerTaskOf(t); + } catch (AbstractMethodError e) { + return (Task)t; + } + } +} diff --git a/core/src/main/java/hudson/model/queue/Timeline.java b/core/src/main/java/hudson/model/queue/Timeline.java new file mode 100644 index 0000000000000000000000000000000000000000..91c1b9aeb1bc53b066f83ef5e41f2b502aeaaeb3 --- /dev/null +++ b/core/src/main/java/hudson/model/queue/Timeline.java @@ -0,0 +1,124 @@ +/* + * The MIT License + * + * Copyright (c) 2010, InfraDNA, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.model.queue; + +import java.util.Map; +import java.util.SortedMap; +import java.util.TreeMap; + +import static java.lang.Math.*; + +/** +* Represents a mutable q(t), a discrete value that changes over the time. +* +*

    +* Internally represented by a set of ranges and the value of q(t) in that range, +* as a map from "starting time of a range" to "value of q(t)". +*/ +final class Timeline { + // int[] is always length=1 + private final TreeMap data = new TreeMap(); + + /** + * Obtains q(t) for the given t. + */ + private int at(long t) { + SortedMap head = data.subMap(t,Long.MAX_VALUE); + if (head.isEmpty()) return 0; + return data.get(head.firstKey())[0]; + } + + /** + * Finds smallest t' > t where q(t')!=q(t) + * + * If there's no such t' this method returns null. + */ + private Long next(long t) { + SortedMap x = data.tailMap(t + 1); + return x.isEmpty() ? null : x.firstKey(); + } + + /** + * Splits the range set at the given timestamp (if it hasn't been split yet) + */ + private void splitAt(long t) { + if (data.containsKey(t)) return; // already split at this timestamp + + SortedMap head = data.headMap(t); + + int v = head.isEmpty() ? 0 : data.get(head.lastKey())[0]; + data.put(t, new int[]{v}); + } + + /** + * increases q(t) by n for t in [start,end). + * + * @return peak value of q(t) in this range as a result of addition. + */ + int insert(long start, long end, int n) { + splitAt(start); + splitAt(end); + + int peak = 0; + for (Map.Entry e : data.tailMap(start).headMap(end).entrySet()) { + peak = max(peak, e.getValue()[0] += n); + } + return peak; + } + + /** + * Finds a "valley" in this timeline that fits the given duration. + *

    + * More formally, find smallest x that: + *

      + *
    • x >= start + *
    • q(t) <= n for all t \in [x,x+duration) + *
    + * + * @return null + * if no such x was found. + */ + Long fit(long start, long duration, int n) { + OUTER: + while (true) { + long t = start; + // check if 'start' satisfies the two conditions by moving t across [start,start+duration) + while ((t-start)n) { + // value too big. what's the next t that's worth trying? + Long nxt = next(t); + if (nxt==null) return null; + start = nxt; + continue OUTER; + } else { + Long nxt = next(t); + if (nxt==null) t = Long.MAX_VALUE; + else t = nxt; + } + } + // q(t) looks good at the entire [start,start+duration) + return start; + } + } +} diff --git a/core/src/main/java/hudson/model/queue/WorkUnit.java b/core/src/main/java/hudson/model/queue/WorkUnit.java new file mode 100644 index 0000000000000000000000000000000000000000..cde16624f75b18b278b6e4b9139396a64ad67233 --- /dev/null +++ b/core/src/main/java/hudson/model/queue/WorkUnit.java @@ -0,0 +1,83 @@ +/* + * The MIT License + * + * Copyright (c) 2010, InfraDNA, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.model.queue; + +import hudson.model.Executor; +import hudson.model.Queue; +import hudson.model.Queue.Executable; +import hudson.model.Queue.Task; + +/** + * Represents a unit of hand-over to {@link Executor} from {@link Queue}. + * + * @author Kohsuke Kawaguchi + * @since 1.FATTASK + */ +public final class WorkUnit { + /** + * Task to be executed. + */ + public final SubTask work; + + /** + * Shared context among {@link WorkUnit}s. + */ + public final WorkUnitContext context; + + private volatile Executor executor; + + WorkUnit(WorkUnitContext context, SubTask work) { + this.context = context; + this.work = work; + } + + /** + * {@link Executor} running this work unit. + *

    + * {@link Executor#getCurrentWorkUnit()} and {@link WorkUnit#getExecutor()} + * form a bi-directional reachability between them. + */ + public Executor getExecutor() { + return executor; + } + + public void setExecutor(Executor e) { + executor = e; + } + + /** + * If the execution has already started, return the current executable. + */ + public Executable getExecutable() { + return executor!=null ? executor.getCurrentExecutable() : null; + } + + /** + * Is this work unit the "main work", which is the primary {@link SubTask} + * represented by {@link Task} itself. + */ + public boolean isMainWork() { + return context.task==work; + } +} diff --git a/core/src/main/java/hudson/model/queue/WorkUnitContext.java b/core/src/main/java/hudson/model/queue/WorkUnitContext.java new file mode 100644 index 0000000000000000000000000000000000000000..f1091d6dc088e0016b2fdceed2353317bff1937f --- /dev/null +++ b/core/src/main/java/hudson/model/queue/WorkUnitContext.java @@ -0,0 +1,156 @@ +/* + * The MIT License + * + * Copyright (c) 2010, InfraDNA, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.model.queue; + +import hudson.model.Action; +import hudson.model.Executor; +import hudson.model.Queue; +import hudson.model.Queue.BuildableItem; +import hudson.model.Queue.Task; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +/** + * Holds the information shared between {@link WorkUnit}s created from the same {@link Task}. + * + * @author Kohsuke Kawaguchi + */ +public final class WorkUnitContext { + + public final BuildableItem item; + + public final Task task; + + /** + * Once the execution is complete, update this future object with the outcome. + */ + public final FutureImpl future; + + /** + * Associated parameters to the build. + */ + public final List actions; + + private final Latch startLatch, endLatch; + + private List workUnits = new ArrayList(); + + /** + * If the execution is aborted, set to non-null that indicates where it was aborted. + */ + private volatile Throwable aborted; + + public WorkUnitContext(BuildableItem item) { + this.item = item; + this.task = item.task; + this.future = (FutureImpl)item.getFuture(); + this.actions = item.getActions(); + + // +1 for the main task + int workUnitSize = Tasks.getSubTasksOf(task).size(); + startLatch = new Latch(workUnitSize) { + @Override + protected void onCriteriaMet() { + // on behalf of the member Executors, + // the one that executes the main thing will send notifications + Executor e = Executor.currentExecutor(); + if (e.getCurrentWorkUnit().isMainWork()) { + e.getOwner().taskAccepted(e,task); + } + } + }; + + endLatch = new Latch(workUnitSize); + } + + /** + * Called by the executor that executes a member {@link SubTask} that belongs to this task + * to create its {@link WorkUnit}. + */ + public WorkUnit createWorkUnit(SubTask execUnit) { + future.addExecutor(Executor.currentExecutor()); + WorkUnit wu = new WorkUnit(this, execUnit); + workUnits.add(wu); + return wu; + } + + public List getWorkUnits() { + return Collections.unmodifiableList(workUnits); + } + + public WorkUnit getPrimaryWorkUnit() { + return workUnits.get(0); + } + + /** + * All the {@link Executor}s that jointly execute a {@link Task} call this method to synchronize on the start. + */ + public void synchronizeStart() throws InterruptedException { + startLatch.synchronize(); + } + + /** + * All the {@link Executor}s that jointly execute a {@link Task} call this method to synchronize on the end of the task. + * + * @throws InterruptedException + * If any of the member thread is interrupted while waiting for other threads to join, all + * the member threads will report {@link InterruptedException}. + */ + public void synchronizeEnd(Queue.Executable executable, Throwable problems, long duration) throws InterruptedException { + endLatch.synchronize(); + + // the main thread will send a notification + Executor e = Executor.currentExecutor(); + WorkUnit wu = e.getCurrentWorkUnit(); + if (wu.isMainWork()) { + if (problems == null) { + future.set(executable); + e.getOwner().taskCompleted(e, task, duration); + } else { + future.set(problems); + e.getOwner().taskCompletedWithProblems(e, task, duration, problems); + } + } + } + + /** + * When one of the work unit is aborted, call this method to abort all the other work units. + */ + public synchronized void abort(Throwable cause) { + if (cause==null) throw new IllegalArgumentException(); + if (aborted!=null) return; // already aborted + aborted = cause; + startLatch.abort(cause); + endLatch.abort(cause); + + Thread c = Thread.currentThread(); + for (WorkUnit wu : workUnits) { + Executor e = wu.getExecutor(); + if (e!=null && e!=c) + e.interrupt(); + } + } +} diff --git a/core/src/main/java/hudson/node_monitors/AbstractDiskSpaceMonitor.java b/core/src/main/java/hudson/node_monitors/AbstractDiskSpaceMonitor.java new file mode 100644 index 0000000000000000000000000000000000000000..ddf9a9ff22c4d60b78de0f46cbb27380d2a7908f --- /dev/null +++ b/core/src/main/java/hudson/node_monitors/AbstractDiskSpaceMonitor.java @@ -0,0 +1,54 @@ +package hudson.node_monitors; + +import hudson.model.Computer; +import hudson.node_monitors.DiskSpaceMonitorDescriptor.DiskSpace; +import org.kohsuke.stapler.DataBoundConstructor; + +import java.text.ParseException; +import java.util.logging.Logger; + +/** + * @author Kohsuke Kawaguchi + */ +public abstract class AbstractDiskSpaceMonitor extends NodeMonitor { + /** + * The free space threshold, below which the node monitor will be triggered. + * This is a human readable string representation as entered by the user, so that we can retain the original notation. + */ + public final String freeSpaceThreshold; + + @DataBoundConstructor + public AbstractDiskSpaceMonitor(String threshold) throws ParseException { + this.freeSpaceThreshold = threshold; + DiskSpace.parse(threshold); // make sure it parses + } + + public AbstractDiskSpaceMonitor() { + this.freeSpaceThreshold = "1GB"; + } + + public long getThresholdBytes() { + if (freeSpaceThreshold==null) + return DEFAULT_THRESHOLD; // backward compatibility with the data format that didn't have 'freeSpaceThreshold' + try { + return DiskSpace.parse(freeSpaceThreshold).size; + } catch (ParseException e) { + return DEFAULT_THRESHOLD; + } + } + + @Override + public Object data(Computer c) { + DiskSpace size = (DiskSpace) super.data(c); + if(size!=null && size.size < getThresholdBytes()) { + size.setTriggered(true); + if(getDescriptor().markOffline(c,size)) { + LOGGER.warning(Messages.DiskSpaceMonitor_MarkedOffline(c.getName())); + } + } + return size; + } + + private static final Logger LOGGER = Logger.getLogger(AbstractDiskSpaceMonitor.class.getName()); + private static final long DEFAULT_THRESHOLD = 1024L*1024*1024; +} diff --git a/core/src/main/java/hudson/node_monitors/AbstractNodeMonitorDescriptor.java b/core/src/main/java/hudson/node_monitors/AbstractNodeMonitorDescriptor.java index d049ee97a7292f47a172ff68eaaa2858407ff0bc..2dd573f468a1a37f461234b08e6d64f04abaf8e4 100644 --- a/core/src/main/java/hudson/node_monitors/AbstractNodeMonitorDescriptor.java +++ b/core/src/main/java/hudson/node_monitors/AbstractNodeMonitorDescriptor.java @@ -30,6 +30,7 @@ import hudson.model.ComputerSet; import hudson.model.AdministrativeMonitor; import hudson.triggers.Trigger; import hudson.triggers.SafeTimerTask; +import hudson.slaves.OfflineCause; import java.io.IOException; import java.util.Date; @@ -135,11 +136,10 @@ public abstract class AbstractNodeMonitorDescriptor extends Descriptor extends Descriptor extends Descriptor1024L*1024*1024; + long multiplier=1; + + // look for the size suffix. The goal here isn't to detect all invalid size suffix, + // so we ignore double suffix like "10gkb" or anything like that. + String suffix = "KMGT"; + for (int i=0; i getDescriptor() { - return (AbstractNodeMonitorDescriptor)Hudson.getInstance().getDescriptor(getClass()); + return (AbstractNodeMonitorDescriptor)Hudson.getInstance().getDescriptorOrDie(getClass()); } public Object data(Computer c) { @@ -111,7 +106,7 @@ public abstract class NodeMonitor implements ExtensionPoint, Describable getAll() { - return ComputerSet.get_monitors(); + return ComputerSet.getMonitors().toList(); } /** @@ -146,6 +141,6 @@ public abstract class NodeMonitor implements ExtensionPoint, Describable> all() { - return Hudson.getInstance().getDescriptorList(NodeMonitor.class); + return Hudson.getInstance().>getDescriptorList(NodeMonitor.class); } } diff --git a/core/src/main/java/hudson/node_monitors/ResponseTimeMonitor.java b/core/src/main/java/hudson/node_monitors/ResponseTimeMonitor.java index 94d5e76c62a0d093c61b6ad2331e69daa6e28ba6..2b2873a8c63f07855e11d14b42512b8c3f61bb44 100644 --- a/core/src/main/java/hudson/node_monitors/ResponseTimeMonitor.java +++ b/core/src/main/java/hudson/node_monitors/ResponseTimeMonitor.java @@ -25,6 +25,7 @@ package hudson.node_monitors; import hudson.Util; import hudson.Extension; +import hudson.slaves.OfflineCause; import hudson.model.Computer; import hudson.remoting.Callable; import hudson.remoting.Future; @@ -66,7 +67,7 @@ public class ResponseTimeMonitor extends NodeMonitor { d = new Data(old,-1L); } - if(d.hasTooManyTimeouts() && markOffline(c)) + if(d.hasTooManyTimeouts() && markOffline(c,d)) LOGGER.warning(Messages.ResponseTimeMonitor_MarkedOffline(c.getName())); return d; } @@ -75,6 +76,7 @@ public class ResponseTimeMonitor extends NodeMonitor { return Messages.ResponseTimeMonitor_DisplayName(); } + @Override public NodeMonitor newInstance(StaplerRequest req, JSONObject formData) throws FormException { return new ResponseTimeMonitor(); } @@ -84,7 +86,7 @@ public class ResponseTimeMonitor extends NodeMonitor { * Immutable representation of the monitoring data. */ @ExportedBean - public static final class Data { + public static final class Data extends OfflineCause { /** * Record of the past 5 times. -1 if time out. Otherwise in milliseconds. * Old ones first. @@ -132,6 +134,7 @@ public class ResponseTimeMonitor extends NodeMonitor { /** * HTML rendering of the data */ + @Override public String toString() { // StringBuilder buf = new StringBuilder(); // for (long l : past5) { diff --git a/core/src/main/java/hudson/node_monitors/SwapSpaceMonitor.java b/core/src/main/java/hudson/node_monitors/SwapSpaceMonitor.java index d8c87d27438cb3fa312a1099f2a3793b0e4b3d78..0fc1f5dd6a7e5e2aaaa04a66b5efd30522f6b4ea 100644 --- a/core/src/main/java/hudson/node_monitors/SwapSpaceMonitor.java +++ b/core/src/main/java/hudson/node_monitors/SwapSpaceMonitor.java @@ -54,7 +54,7 @@ public class SwapSpaceMonitor extends NodeMonitor { long free = usage.availableSwapSpace; free/=1024L; // convert to KB free/=1024L; // convert to MB - if(free>256 || usage.totalSwapSpace/usage.availableSwapSpace<5) + if(free>256 || usage.totalSwapSpace { @IgnoreJRERequirement public DiskSpace invoke(File f, VirtualChannel channel) throws IOException { try { - f = File.createTempFile("tmp-space","monitor"); + // if the disk is really filled up we can't even create a single file, + // so calling File.createTempFile and figuring out the directory won't reliably work. + f = new File(System.getProperty("java.io.tmpdir")); long s = f.getUsableSpace(); if(s<=0) return null; return new DiskSpace(s); } catch (LinkageError e) { // pre-mustang return null; - } finally { - f.delete(); } } private static final long serialVersionUID = 1L; diff --git a/core/src/main/java/hudson/node_monitors/package.html b/core/src/main/java/hudson/node_monitors/package.html index 82a679a3c406e925414795e50df1a306e2549b66..e7c11a07420fb3b29cd6dc3c4f9110b9b522da6e 100644 --- a/core/src/main/java/hudson/node_monitors/package.html +++ b/core/src/main/java/hudson/node_monitors/package.html @@ -1,7 +1,7 @@ - + Code that monitors the health of slaves \ No newline at end of file diff --git a/core/src/main/java/hudson/org/apache/tools/ant/taskdefs/AbstractCvsTask.java b/core/src/main/java/hudson/org/apache/tools/ant/taskdefs/AbstractCvsTask.java deleted file mode 100644 index 8cf4b9bb29ee0e1b7a3612d5b45b34e5233a7ef3..0000000000000000000000000000000000000000 --- a/core/src/main/java/hudson/org/apache/tools/ant/taskdefs/AbstractCvsTask.java +++ /dev/null @@ -1,862 +0,0 @@ -/* - * Copyright 2002-2004 The Apache Software Foundation - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -package hudson.org.apache.tools.ant.taskdefs; - -import java.io.BufferedOutputStream; -import java.io.ByteArrayInputStream; -import java.io.ByteArrayOutputStream; -import java.io.File; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; -import java.io.PrintStream; -import java.util.ArrayList; -import java.util.List; -import java.util.Vector; -import java.util.logging.Level; -import java.util.logging.Logger; -import org.apache.tools.ant.BuildException; -import org.apache.tools.ant.Project; -import org.apache.tools.ant.Task; -import org.apache.tools.ant.taskdefs.ExecuteStreamHandler; -import org.apache.tools.ant.taskdefs.PumpStreamHandler; -import org.apache.tools.ant.taskdefs.LogOutputStream; -import org.apache.tools.ant.taskdefs.Execute; -import org.apache.tools.ant.types.Commandline; -import org.apache.tools.ant.types.Environment; -import org.apache.tools.ant.util.StringUtils; - -/** - * original Cvs.java 1.20 - * - * NOTE: This implementation has been moved here from Cvs.java with - * the addition of some accessors for extensibility. Another task - * can extend this with some customized output processing. - * - * @since Ant 1.5 - */ -public abstract class AbstractCvsTask extends Task { - /** - * Default compression level to use, if compression is enabled via - * setCompression( true ). - */ - public static final int DEFAULT_COMPRESSION_LEVEL = 3; - private static final int MAXIMUM_COMRESSION_LEVEL = 9; - - private Commandline cmd = new Commandline(); - - /** list of Commandline children */ - private Vector vecCommandlines = new Vector(); - - /** - * the CVSROOT variable. - */ - private String cvsRoot; - - /** - * the CVS_RSH variable. - */ - private String cvsRsh; - - /** - * the package/module to check out. - */ - private String[] cvsPackage; - /** - * the tag - */ - private String tag; - /** - * the default command. - */ - private static final String DEFAULT_COMMAND = "checkout"; - /** - * the CVS command to execute. - */ - private String command = null; - - /** - * suppress information messages. - */ - private boolean quiet = false; - - /** - * suppress all messages. - */ - private boolean reallyquiet = false; - - /** - * compression level to use. - */ - private int compression = 0; - - /** - * report only, don't change any files. - */ - private boolean noexec = false; - - /** - * CVS port - */ - private int port = 0; - - /** - * CVS password file - */ - private File passFile = null; - - /** - * the directory where the checked out files should be placed. - */ - private File dest; - - /** whether or not to append stdout/stderr to existing files */ - private boolean append = false; - - /** - * the file to direct standard output from the command. - */ - private File output; - - /** - * the file to direct standard error from the command. - */ - private File error; - - /** - * If true it will stop the build if cvs exits with error. - * Default is false. (Iulian) - */ - private boolean failOnError = false; - - /** - * Create accessors for the following, to allow different handling of - * the output. - */ - private OutputStream outputStream; - private OutputStream errorStream; - private String cvsExe = "cvs"; - - /** empty no-arg constructor*/ - public AbstractCvsTask() { - super(); - } - - public void setCvsExe(String cvsExe) { - this.cvsExe = cvsExe; - } - - /** - * find the handler and instantiate it if it does not exist yet - * @return handler for output and error streams - */ - protected ExecuteStreamHandler getExecuteStreamHandler(InputStream input) { - return new PumpStreamHandler(getOutputStream(), getErrorStream(), input); - } - - /** - * sets a stream to which the output from the cvs executable should be sent - * @param outputStream stream to which the stdout from cvs should go - */ - protected void setOutputStream(OutputStream outputStream) { - - this.outputStream = outputStream; - } - - /** - * access the stream to which the stdout from cvs should go - * if this stream has already been set, it will be returned - * if the stream has not yet been set, if the attribute output - * has been set, the output stream will go to the output file - * otherwise the output will go to ant's logging system - * @return output stream to which cvs' stdout should go to - */ - protected OutputStream getOutputStream() { - - if (this.outputStream == null) { - - if (output != null) { - try { - setOutputStream(new PrintStream( - new BufferedOutputStream( - new FileOutputStream(output - .getPath(), - append)))); - } catch (IOException e) { - throw new BuildException(e, getLocation()); - } - } else { - setOutputStream(new LogOutputStream(this, Project.MSG_INFO)); - } - } - - return this.outputStream; - } - - /** - * sets a stream to which the stderr from the cvs exe should go - * @param errorStream an output stream willing to process stderr - */ - protected void setErrorStream(OutputStream errorStream) { - - this.errorStream = errorStream; - } - - /** - * access the stream to which the stderr from cvs should go - * if this stream has already been set, it will be returned - * if the stream has not yet been set, if the attribute error - * has been set, the output stream will go to the file denoted by the error attribute - * otherwise the stderr output will go to ant's logging system - * @return output stream to which cvs' stderr should go to - */ - protected OutputStream getErrorStream() { - - if (this.errorStream == null) { - - if (error != null) { - - try { - setErrorStream(new PrintStream( - new BufferedOutputStream( - new FileOutputStream(error.getPath(), - append)))); - } catch (IOException e) { - throw new BuildException(e, getLocation()); - } - } else { - setErrorStream(new LogOutputStream(this, Project.MSG_WARN)); - } - } - - return this.errorStream; - } - - /** - * Sets up the environment for toExecute and then runs it. - * @param toExecute the command line to execute - * @throws BuildException if failonError is set to true and the cvs command fails - */ - protected void runCommand(Commandline toExecute) throws BuildException { - // XXX: we should use JCVS (www.ice.com/JCVS) instead of - // command line execution so that we don't rely on having - // native CVS stuff around (SM) - - // We can't do it ourselves as jCVS is GPLed, a third party task - // outside of jakarta repositories would be possible though (SB). - - Environment env = new Environment(); - - if (port > 0) { - Environment.Variable var = new Environment.Variable(); - var.setKey("CVS_CLIENT_PORT"); - var.setValue(String.valueOf(port)); - env.addVariable(var); - } - - /** - * Need a better cross platform integration with , so - * use the same filename. - */ - if (passFile == null) { - - File defaultPassFile = new File( - System.getProperty("cygwin.user.home", - System.getProperty("user.home")) - + File.separatorChar + ".cvspass"); - - if (defaultPassFile.exists()) { - this.setPassfile(defaultPassFile); - } - } - - if (passFile != null) { - if (passFile.isFile() && passFile.canRead()) { - Environment.Variable var = new Environment.Variable(); - var.setKey("CVS_PASSFILE"); - var.setValue(String.valueOf(passFile)); - env.addVariable(var); - log("Using cvs passfile: " + String.valueOf(passFile), - Project.MSG_INFO); - } else if (!passFile.canRead()) { - log("cvs passfile: " + String.valueOf(passFile) - + " ignored as it is not readable", - Project.MSG_WARN); - } else { - log("cvs passfile: " + String.valueOf(passFile) - + " ignored as it is not a file", - Project.MSG_WARN); - } - } - - if (cvsRsh != null) { - Environment.Variable var = new Environment.Variable(); - var.setKey("CVS_RSH"); - var.setValue(String.valueOf(cvsRsh)); - env.addVariable(var); - } - - // - // Just call the getExecuteStreamHandler() and let it handle - // the semantics of instantiation or retrieval. - // - String[] argv = toExecute.getCommandline(); - InputStream input = null; - String inputText = null; - if (new File("/usr/bin/xargs").isFile()) { - // Hudson workaround #864. Check for very long command lines and use xargs whenever possible. - int sz = 0; - for (String arg : argv) { - sz += arg.length() + /*NUL*/1; - } - if (sz > 125000) { - // We are in the danger zone for Linux, which imposes a 128Kb kernel buffer max by default. - // (Need to leave some room open for ENVP.) - ByteArrayOutputStream baos = null; - List _argv = new ArrayList(); - _argv.add("/usr/bin/xargs"); - boolean prefix = true; - LOAD: for (String s : argv) { - if (s.equals("--")) { - // See ChangeLogTask.execute. xargs will try to split up long input into >1 command. - prefix = false; - baos = new ByteArrayOutputStream(); - } else if (prefix) { - _argv.add(s); - } else { - for (byte b : s.getBytes()) { - if (b < 0) { - // XXX we cannot handle non-ASCII chars here, probably. Punt. - baos = null; - break LOAD; - } - // GNU xargs accepts -0, which would be nice, but this is unfortunately not universal. - // The safest approach is to backslash every char, then use \n for separator. - baos.write('\\'); - baos.write(b); - } - baos.write('\n'); - } - } - if (baos != null) { - Logger.getLogger(AbstractCvsTask.class.getName()).log(Level.INFO, "Using xargs to run very long command line ({0} bytes)", sz); - input = new ByteArrayInputStream(baos.toByteArray()); - inputText = baos.toString(); - argv = _argv.toArray(new String[_argv.size()]); - } - } - } - Execute exe = new Execute(getExecuteStreamHandler(input), null); - - exe.setAntRun(getProject()); - if (dest == null) { - dest = getProject().getBaseDir(); - } - - if (!dest.exists()) { - dest.mkdirs(); - } - - exe.setWorkingDirectory(dest); - exe.setCommandline(argv); - exe.setEnvironment(env.getVariables()); - - try { - String actualCommandLine = executeToString(exe); - log(actualCommandLine, Project.MSG_VERBOSE); - int retCode = exe.execute(); - log("retCode=" + retCode, Project.MSG_DEBUG); - /*Throw an exception if cvs exited with error. (Iulian)*/ - if (failOnError && Execute.isFailure(retCode)) { - throw new BuildException("cvs exited with error code " - + retCode - + StringUtils.LINE_SEP - + "Command line was [" - + actualCommandLine + "] in " + dest + - "\nInput text:\nSTART==>" + inputText + "<==END", getLocation()); - } - } catch (IOException e) { - if (failOnError) { - throw new BuildException(e, getLocation()); - } else { - log("Caught exception: " + e.getMessage(), Project.MSG_WARN); - } - } catch (BuildException e) { - if (failOnError) { - throw(e); - } else { - Throwable t = e.getException(); - if (t == null) { - t = e; - } - log("Caught exception: " + t.getMessage(), Project.MSG_WARN); - } - } catch (Exception e) { - if (failOnError) { - throw new BuildException(e, getLocation()); - } else { - log("Caught exception: " + e.getMessage(), Project.MSG_WARN); - } - } finally { - if (outputStream != null) { - try { - outputStream.close(); - } catch (IOException e) { - //ignore - } - } - if (errorStream != null) { - try { - errorStream.close(); - } catch (IOException e) { - //ignore - } - } - } - } - - /** - * do the work - * @throws BuildException if failonerror is set to true and the cvs command fails. - */ - public void execute() throws BuildException { - - String savedCommand = getCommand(); - - if (this.getCommand() == null && vecCommandlines.size() == 0) { - // re-implement legacy behaviour: - this.setCommand(AbstractCvsTask.DEFAULT_COMMAND); - } - - String c = this.getCommand(); - Commandline cloned = null; - if (c != null) { - cloned = (Commandline) cmd.clone(); - cloned.createArgument(true).setLine(c); - this.addConfiguredCommandline(cloned, true); - } - - try { - for (int i = 0; i < vecCommandlines.size(); i++) { - this.runCommand((Commandline) vecCommandlines.elementAt(i)); - } - } finally { - if (cloned != null) { - removeCommandline(cloned); - } - setCommand(savedCommand); - } - } - - private String executeToString(Execute execute) { - - StringBuffer stringBuffer = - new StringBuffer(Commandline.describeCommand(execute - .getCommandline())); - - String newLine = StringUtils.LINE_SEP; - String[] variableArray = execute.getEnvironment(); - - if (variableArray != null) { - stringBuffer.append(newLine); - stringBuffer.append(newLine); - stringBuffer.append("environment:"); - stringBuffer.append(newLine); - for (int z = 0; z < variableArray.length; z++) { - stringBuffer.append(newLine); - stringBuffer.append("\t"); - stringBuffer.append(variableArray[z]); - } - } - - return stringBuffer.toString(); - } - - /** - * The CVSROOT variable. - * - * @param root the CVSROOT variable - */ - public void setCvsRoot(String root) { - - // Check if not real cvsroot => set it to null - if (root != null) { - if (root.trim().equals("")) { - root = null; - } - } - - this.cvsRoot = root; - } - - /** - * access the CVSROOT variable - * @return CVSROOT - */ - public String getCvsRoot() { - - return this.cvsRoot; - } - - /** - * The CVS_RSH variable. - * - * @param rsh the CVS_RSH variable - */ - public void setCvsRsh(String rsh) { - // Check if not real cvsrsh => set it to null - if (rsh != null) { - if (rsh.trim().equals("")) { - rsh = null; - } - } - - this.cvsRsh = rsh; - } - - /** - * access the CVS_RSH variable - * @return the CVS_RSH variable - */ - public String getCvsRsh() { - - return this.cvsRsh; - } - - /** - * Port used by CVS to communicate with the server. - * - * @param port port of CVS - */ - public void setPort(int port) { - this.port = port; - } - - /** - * access the port of CVS - * @return the port of CVS - */ - public int getPort() { - - return this.port; - } - - /** - * Password file to read passwords from. - * - * @param passFile password file to read passwords from - */ - public void setPassfile(File passFile) { - this.passFile = passFile; - } - - /** - * find the password file - * @return password file - */ - public File getPassFile() { - - return this.passFile; - } - - /** - * The directory where the checked out files should be placed. - * - *

    Note that this is different from CVS's -d command line - * switch as Ant will never shorten pathnames to avoid empty - * directories.

    - * - * @param dest directory where the checked out files should be placed - */ - public void setDest(File dest) { - this.dest = dest; - } - - /** - * get the file where the checked out files should be placed - * - * @return directory where the checked out files should be placed - */ - public File getDest() { - - return this.dest; - } - - /** - * The package/module to operate upon. - * - * @param p package or module to operate upon - */ - public void setPackage(String... p) { - this.cvsPackage = p; - } - - /** - * access the package or module to operate upon - * - * @return package/module - */ - public String[] getPackage() { - - return this.cvsPackage; - } - /** - * tag or branch - * @return tag or branch - * @since ant 1.6.1 - */ - public String getTag() { - return tag; - } - - /** - * The tag of the package/module to operate upon. - * @param p tag - */ - public void setTag(String p) { - // Check if not real tag => set it to null - if (p != null && p.trim().length() > 0) { - tag = p; - addCommandArgument("-r" + p); - } - } - - /** - * This needs to be public to allow configuration - * of commands externally. - * @param arg command argument - */ - public void addCommandArgument(String arg) { - this.addCommandArgument(cmd, arg); - } - - /** - * This method adds a command line argument to an external command. - * - * I do not understand what this method does in this class ??? - * particularly not why it is public ???? - * AntoineLL July 23d 2003 - * - * @param c command line to which one argument should be added - * @param arg argument to add - */ - public void addCommandArgument(Commandline c, String arg) { - c.createArgument().setValue(arg); - } - - - /** - * Use the most recent revision no later than the given date. - * @param p a date as string in a format that the CVS executable can understand - * see man cvs - */ - public void setDate(String p) { - if (p != null && p.trim().length() > 0) { - addCommandArgument("-D"); - addCommandArgument(p); - } - } - - /** - * The CVS command to execute. - * - * This should be deprecated, it is better to use the Commandline class ? - * AntoineLL July 23d 2003 - * - * @param c a command as string - */ - public void setCommand(String c) { - this.command = c; - } - /** - * accessor to a command line as string - * - * This should be deprecated - * AntoineLL July 23d 2003 - * - * @return command line as string - */ - public String getCommand() { - return this.command; - } - - /** - * If true, suppress informational messages. - * @param q if true, suppress informational messages - */ - public void setQuiet(boolean q) { - quiet = q; - } - - /** - * If true, suppress all messages. - * @param q if true, suppress all messages - * @since Ant 1.6 - */ - public void setReallyquiet(boolean q) { - reallyquiet = q; - } - - - /** - * If true, report only and don't change any files. - * - * @param ne if true, report only and do not change any files. - */ - public void setNoexec(boolean ne) { - noexec = ne; - } - - /** - * The file to direct standard output from the command. - * @param output a file to which stdout should go - */ - public void setOutput(File output) { - this.output = output; - } - - /** - * The file to direct standard error from the command. - * - * @param error a file to which stderr should go - */ - public void setError(File error) { - this.error = error; - } - - /** - * Whether to append output/error when redirecting to a file. - * @param value true indicated you want to append - */ - public void setAppend(boolean value) { - this.append = value; - } - - /** - * Stop the build process if the command exits with - * a return code other than 0. - * Defaults to false. - * @param failOnError stop the build process if the command exits with - * a return code other than 0 - */ - public void setFailOnError(boolean failOnError) { - this.failOnError = failOnError; - } - - /** - * Configure a commandline element for things like cvsRoot, quiet, etc. - * @param c the command line which will be configured - * if the commandline is initially null, the function is a noop - * otherwise the function append to the commandline arguments concerning - *
      - *
    • - * cvs package - *
    • - *
    • - * compression - *
    • - *
    • - * quiet or reallyquiet - *
    • - *
    • cvsroot
    • - *
    • noexec
    • - *
    - */ - protected void configureCommandline(Commandline c) { - if (c == null) { - return; - } - c.setExecutable(cvsExe); - if (cvsPackage != null) { - for (String s : cvsPackage) - c.createArgument().setValue(s); - } - if (this.compression > 0 && this.compression <= MAXIMUM_COMRESSION_LEVEL) { - c.createArgument(true).setValue("-z" + this.compression); - } - if (quiet && !reallyquiet) { - c.createArgument(true).setValue("-q"); - } - if (reallyquiet) { - c.createArgument(true).setValue("-Q"); - } - if (noexec) { - c.createArgument(true).setValue("-n"); - } - if (cvsRoot != null) { - c.createArgument(true).setLine("-d" + cvsRoot); - } - } - - /** - * remove a particular command from a vector of command lines - * @param c command line which should be removed - */ - protected void removeCommandline(Commandline c) { - vecCommandlines.removeElement(c); - } - - /** - * Adds direct command-line to execute. - * @param c command line to execute - */ - public void addConfiguredCommandline(Commandline c) { - this.addConfiguredCommandline(c, false); - } - - /** - * Configures and adds the given Commandline. - * @param c commandline to insert - * @param insertAtStart If true, c is - * inserted at the beginning of the vector of command lines - */ - public void addConfiguredCommandline(Commandline c, - boolean insertAtStart) { - if (c == null) { - return; - } - this.configureCommandline(c); - if (insertAtStart) { - vecCommandlines.insertElementAt(c, 0); - } else { - vecCommandlines.addElement(c); - } - } - - /** - * If set to a value 1-9 it adds -zN to the cvs command line, else - * it disables compression. - * @param level compression level 1 to 9 - */ - public void setCompressionLevel(int level) { - this.compression = level; - } - - /** - * If true, this is the same as compressionlevel="3". - * - * @param usecomp If true, turns on compression using default - * level, AbstractCvsTask.DEFAULT_COMPRESSION_LEVEL. - */ - public void setCompression(boolean usecomp) { - setCompressionLevel(usecomp - ? AbstractCvsTask.DEFAULT_COMPRESSION_LEVEL : 0); - } - -} \ No newline at end of file diff --git a/core/src/main/java/hudson/org/apache/tools/ant/taskdefs/cvslib/CVSEntry.java b/core/src/main/java/hudson/org/apache/tools/ant/taskdefs/cvslib/CVSEntry.java deleted file mode 100644 index 95f0957b844b34dfa4643120e99a858970d0d1fa..0000000000000000000000000000000000000000 --- a/core/src/main/java/hudson/org/apache/tools/ant/taskdefs/cvslib/CVSEntry.java +++ /dev/null @@ -1,87 +0,0 @@ -/* - * Copyright 2002,2004 The Apache Software Foundation - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ -package hudson.org.apache.tools.ant.taskdefs.cvslib; - -import java.util.Date; -import java.util.Vector; - -/** - * CVS Entry. - * - * @version $Revision$ $Date$ - */ -class CVSEntry { - private Date m_date; - private String m_author; - private final String m_comment; - private final Vector m_files = new Vector(); - - public CVSEntry(Date date, String author, String comment) { - m_date = date; - m_author = author; - m_comment = comment; - } - - public void addFile(String file, String fullName, String revision, String previousRevision, String branch, boolean dead) { - m_files.addElement(new RCSFile(file, fullName, revision, previousRevision, branch, dead)); - } - - // maybe null, in case of error - Date getDate() { - return m_date; - } - - void setAuthor(final String author) { - m_author = author; - } - - String getAuthor() { - return m_author; - } - - String getComment() { - return m_comment; - } - - Vector getFiles() { - return m_files; - } - - /** - * Checks if any of the entries include a change to a branch. - * - * @param branch - * can be null to indicate the trunk. - */ - public boolean containsBranch(String branch) { - for (RCSFile file : m_files) { - String b = file.getBranch(); - if(b==null && branch==null) - return true; - if(b==null || branch==null) - continue; - if(b.equals(branch)) - return true; - } - return false; - } - - public String toString() { - return '['+getAuthor() + "," + getDate() + "," + getFiles() + "," - + getComment()+']'; - } -} diff --git a/core/src/main/java/hudson/org/apache/tools/ant/taskdefs/cvslib/ChangeLogParser.java b/core/src/main/java/hudson/org/apache/tools/ant/taskdefs/cvslib/ChangeLogParser.java deleted file mode 100644 index 0d5c4f6c5e76d62ffc9fe191753d2a9f87594ee3..0000000000000000000000000000000000000000 --- a/core/src/main/java/hudson/org/apache/tools/ant/taskdefs/cvslib/ChangeLogParser.java +++ /dev/null @@ -1,380 +0,0 @@ -/* - * Copyright 2002-2004 The Apache Software Foundation - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ -package hudson.org.apache.tools.ant.taskdefs.cvslib; -// patched to work around http://issues.apache.org/bugzilla/show_bug.cgi?id=38583 - -import org.apache.tools.ant.Project; -import org.apache.commons.io.FileUtils; - -import java.text.ParseException; -import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.Enumeration; -import java.util.HashMap; -import java.util.Hashtable; -import java.util.Map; -import java.util.Map.Entry; -import java.util.TimeZone; -import java.util.logging.Logger; -import java.util.logging.Level; -import java.util.regex.Matcher; -import java.util.regex.Pattern; -import java.io.File; -import java.io.IOException; - -/** - * A class used to parse the output of the CVS log command. - * - * @version $Revision$ $Date$ - */ -class ChangeLogParser { - //private static final int GET_ENTRY = 0; - private static final int GET_FILE = 1; - private static final int GET_DATE = 2; - private static final int GET_COMMENT = 3; - private static final int GET_REVISION = 4; - private static final int GET_PREVIOUS_REV = 5; - private static final int GET_SYMBOLIC_NAMES = 6; - - /** - * input format for dates read in from cvs log. - * - * Some users reported that they see different formats, - * so this is extended from original Ant version to cover different formats. - * - *

    - * KK: {@link SimpleDateFormat} is not thread safe, so make it per-instance. - */ - private final SimpleDateFormat[] c_inputDate - = new SimpleDateFormat[]{ - new SimpleDateFormat("yyyy/MM/dd HH:mm:ss Z"), - new SimpleDateFormat("yyyy-MM-dd HH:mm:ss Z"), - new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"), - new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"), - }; - - { - TimeZone utc = TimeZone.getTimeZone("UTC"); - for (SimpleDateFormat df : c_inputDate) { - df.setTimeZone(utc); - } - } - - //The following is data used while processing stdout of CVS command - private String m_file; - private String m_fullName; - private String m_date; - private String m_author; - private String m_comment; - private String m_revision; - private String m_previousRevision; - /** - * All branches available on the current file. - * Keyed by branch revision prefix (like "1.2.3." if files in the branch have revision numbers like - * "1.2.3.4") and the value is the branch name. - */ - private final Map branches = new HashMap(); - /** - * True if the log record indicates deletion; - */ - private boolean m_dead; - - private int m_status = GET_FILE; - - /** rcs entries */ - private final Hashtable m_entries = new Hashtable(); - - private final ChangeLogTask owner; - - public ChangeLogParser(ChangeLogTask owner) { - this.owner = owner; - } - - /** - * Get a list of rcs entries as an array. - * - * @return a list of rcs entries as an array - */ - CVSEntry[] getEntrySetAsArray() { - final CVSEntry[] array = new CVSEntry[ m_entries.size() ]; - Enumeration e = m_entries.elements(); - int i = 0; - while (e.hasMoreElements()) { - array[i++] = (CVSEntry) e.nextElement(); - } - return array; - } - - private boolean dead = false; - private String previousLine = null; - - /** - * Receive notification about the process writing - * to standard output. - */ - public void stdout(final String line) { - if(dead) - return; - try { - switch(m_status) { - case GET_FILE: - // make sure attributes are reset when - // working on a 'new' file. - reset(); - processFile(line); - break; - case GET_SYMBOLIC_NAMES: - processSymbolicName(line); - break; - - case GET_REVISION: - processRevision(line); - break; - - case GET_DATE: - processDate(line); - break; - - case GET_COMMENT: - processComment(line); - break; - - case GET_PREVIOUS_REV: - processGetPreviousRevision(line); - break; - } - } catch (Exception e) { - // we don't know how to handle the input any more. don't accept any more input - dead = true; - } - } - - /** - * Process a line while in "GET_COMMENT" state. - * - * @param line the line - */ - private void processComment(final String line) { - final String lineSeparator = System.getProperty("line.separator"); - if (line.startsWith("======")) { - //We have ended changelog for that particular file - //so we can save it - final int end - = m_comment.length() - lineSeparator.length(); //was -1 - m_comment = m_comment.substring(0, end); - saveEntry(); - m_status = GET_FILE; - } else if (null != previousLine && previousLine.startsWith("----------------------------")) { - if (line.startsWith("revision")) { - final int end - = m_comment.length() - lineSeparator.length(); //was -1 - m_comment = m_comment.substring(0, end); - m_status = GET_PREVIOUS_REV; - - processGetPreviousRevision(line); - } else { - m_comment += previousLine + lineSeparator + line + lineSeparator; - } - - previousLine = null; - } else if (line.startsWith("----------------------------")) { - if (null != previousLine) { - m_comment += previousLine + lineSeparator; - } - previousLine = line; - } else { - m_comment += line + lineSeparator; - } - } - - /** - * Process a line while in "GET_FILE" state. - * - * @param line the line - */ - private void processFile(final String line) { - if (line.startsWith("Working file:")) { - m_file = line.substring(14, line.length()); - - File repo = new File(new File(owner.getDir(), m_file).getParentFile(), "CVS/Repository"); - try { - String module = FileUtils.readFileToString(repo, null);// not sure what encoding CVS uses. - String simpleName = m_file.substring(m_file.lastIndexOf('/')+1); - m_fullName = '/'+module.trim()+'/'+simpleName; - } catch (IOException e) { - // failed to read - LOGGER.log(Level.WARNING, "Failed to read CVS/Repository at "+repo,e); - m_fullName = null; - } - - m_status = GET_SYMBOLIC_NAMES; - } - } - - /** - * Obtains the revision name list - */ - private void processSymbolicName(String line) { - if (line.startsWith("\t")) { - line = line.trim(); - int idx = line.lastIndexOf(':'); - if(idx<0) { - // ??? - return; - } - - String symbol = line.substring(0,idx); - Matcher m = DOT_PATTERN.matcher(line.substring(idx + 2)); - if(!m.matches()) - return; // not a branch name - - branches.put(m.group(1)+m.group(3)+'.',symbol); - } else - if (line.startsWith("keyword substitution:")) { - m_status = GET_REVISION; - } - } - - private static final Pattern DOT_PATTERN = Pattern.compile("(([0-9]+\\.)+)0\\.([0-9]+)"); - - /** - * Process a line while in "REVISION" state. - * - * @param line the line - */ - private void processRevision(final String line) { - if (line.startsWith("revision")) { - m_revision = line.substring(9); - m_status = GET_DATE; - } else if (line.startsWith("======")) { - //There was no revisions in this changelog - //entry so lets move unto next file - m_status = GET_FILE; - } - } - - /** - * Process a line while in "DATE" state. - * - * @param line the line - */ - private void processDate(final String line) { - if (line.startsWith("date:")) { - int idx = line.indexOf(";"); - m_date = line.substring(6, idx); - String lineData = line.substring(idx + 1); - m_author = lineData.substring(10, lineData.indexOf(";")); - - m_status = GET_COMMENT; - - m_dead = lineData.indexOf("state: dead;")!=-1; - - //Reset comment to empty here as we can accumulate multiple lines - //in the processComment method - m_comment = ""; - } - } - - /** - * Process a line while in "GET_PREVIOUS_REVISION" state. - * - * @param line the line - */ - private void processGetPreviousRevision(final String line) { - if (!line.startsWith("revision")) { - throw new IllegalStateException("Unexpected line from CVS: " - + line); - } - m_previousRevision = line.substring(9); - - saveEntry(); - - m_revision = m_previousRevision; - m_status = GET_DATE; - } - - /** - * Utility method that saves the current entry. - */ - private void saveEntry() { - final String entryKey = m_date + m_author + m_comment; - CVSEntry entry; - if (!m_entries.containsKey(entryKey)) { - entry = new CVSEntry(parseDate(m_date), m_author, m_comment); - m_entries.put(entryKey, entry); - } else { - entry = m_entries.get(entryKey); - } - - String branch = findBranch(m_revision); - - owner.log("Recorded a change: "+m_date+','+m_author+','+m_revision+"(branch="+branch+"),"+m_comment,Project.MSG_VERBOSE); - - entry.addFile(m_file, m_fullName, m_revision, m_previousRevision, branch, m_dead); - } - - /** - * Finds the branch name that matches the revision, or null if not found. - */ - private String findBranch(String revision) { - if(revision==null) return null; // defensive check - for (Entry e : branches.entrySet()) { - if(revision.startsWith(e.getKey()) && revision.substring(e.getKey().length()).indexOf('.')==-1) - return e.getValue(); - } - return null; - } - - /** - * Parse date out from expected format. - * - * @param date the string holding dat - * @return the date object or null if unknown date format - */ - private Date parseDate(String date) { - for (SimpleDateFormat df : c_inputDate) { - try { - return df.parse(date); - } catch (ParseException e) { - // try next if one fails - } - } - - // nothing worked - owner.log("Failed to parse "+date+"\n", Project.MSG_ERR); - //final String message = REZ.getString( "changelog.bat-date.error", date ); - //getContext().error( message ); - return null; - } - - /** - * reset all internal attributes except status. - */ - private void reset() { - m_file = null; - m_fullName = null; - m_date = null; - m_author = null; - m_comment = null; - m_revision = null; - m_previousRevision = null; - m_dead = false; - branches.clear(); - } - - private static final Logger LOGGER = Logger.getLogger(ChangeLogParser.class.getName()); -} diff --git a/core/src/main/java/hudson/org/apache/tools/ant/taskdefs/cvslib/ChangeLogTask.java b/core/src/main/java/hudson/org/apache/tools/ant/taskdefs/cvslib/ChangeLogTask.java deleted file mode 100644 index 8050177db57c2efc662c52d69405dd05f33b0bc5..0000000000000000000000000000000000000000 --- a/core/src/main/java/hudson/org/apache/tools/ant/taskdefs/cvslib/ChangeLogTask.java +++ /dev/null @@ -1,500 +0,0 @@ -/* - * Copyright 2002-2004 The Apache Software Foundation - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ -package hudson.org.apache.tools.ant.taskdefs.cvslib; - -import hudson.util.ForkOutputStream; -import hudson.org.apache.tools.ant.taskdefs.AbstractCvsTask; -import org.apache.tools.ant.BuildException; -import org.apache.tools.ant.Project; -import org.apache.tools.ant.taskdefs.LogOutputStream; -import org.apache.tools.ant.taskdefs.cvslib.CvsVersion; - -import java.io.File; -import java.io.FileInputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; -import java.io.OutputStreamWriter; -import java.io.PrintWriter; -import java.io.UnsupportedEncodingException; -import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Date; -import java.util.Enumeration; -import java.util.List; -import java.util.Properties; -import java.util.Vector; -import java.util.StringTokenizer; -import org.apache.tools.ant.taskdefs.ExecuteStreamHandler; - -/** - * Examines the output of cvs log and group related changes together. - * - * It produces an XML output representing the list of changes. - *

    - * <!-- Root element -->
    - * <!ELEMENT changelog (entry+)>
    - * <!-- CVS Entry -->
    - * <!ELEMENT entry (date,author,file+,msg)>
    - * <!-- Date of cvs entry -->
    - * <!ELEMENT date (#PCDATA)>
    - * <!-- Author of change -->
    - * <!ELEMENT author (#PCDATA)>
    - * <!-- List of files affected -->
    - * <!ELEMENT msg (#PCDATA)>
    - * <!-- File changed -->
    - * <!ELEMENT file (name,revision,prevrevision?)>
    - * <!-- Name of the file -->
    - * <!ELEMENT name (#PCDATA)>
    - * <!-- Revision number -->
    - * <!ELEMENT revision (#PCDATA)>
    - * <!-- Previous revision number -->
    - * <!ELEMENT prevrevision (#PCDATA)>
    - * 
    - * - * @version $Revision$ $Date$ - * @since Ant 1.5 - * @ant.task name="cvschangelog" category="scm" - */ -public class ChangeLogTask extends AbstractCvsTask { - /** User list */ - private File m_usersFile; - - /** User list */ - private Vector m_cvsUsers = new Vector(); - - /** Input dir */ - private File m_dir; - - /** Output */ - private OutputStream m_output; - - /** The earliest date at which to start processing entries. */ - private Date m_start; - - /** The latest date at which to stop processing entries. */ - private Date m_stop; - - /** - * To filter out change logs for a certain branch, this variable will be the branch name. - * Otherwise null. - */ - private String branch; - - /** - * Filesets containing list of files against which the cvs log will be - * performed. If empty then all files will in the working directory will - * be checked. - */ - private List m_filesets = new ArrayList(); - - - /** - * Set the base dir for cvs. - * - * @param dir The new dir value - */ - public void setDir(final File dir) { - m_dir = dir; - } - - public File getDir() { - return m_dir; - } - - - /** - * Set the output stream for the log. - * - * @param destfile The new destfile value - */ - public void setDeststream(final OutputStream destfile) { - m_output = destfile; - } - - - /** - * Set a lookup list of user names & addresses - * - * @param usersFile The file containing the users info. - */ - public void setUsersfile(final File usersFile) { - m_usersFile = usersFile; - } - - - /** - * Add a user to list changelog knows about. - * - * @param user the user - */ - public void addUser(final CvsUser user) { - m_cvsUsers.addElement(user); - } - - - /** - * Set the date at which the changelog should start. - * - * @param start The date at which the changelog should start. - */ - public void setStart(final Date start) { - m_start = start; - } - - public void setBranch(String branch) { - this.branch = branch; - } - - - /** - * Set the date at which the changelog should stop. - * - * @param stop The date at which the changelog should stop. - */ - public void setEnd(final Date stop) { - m_stop = stop; - } - - - /** - * Set the number of days worth of log entries to process. - * - * @param days the number of days of log to process. - */ - public void setDaysinpast(final int days) { - final long time = System.currentTimeMillis() - - (long) days * 24 * 60 * 60 * 1000; - - setStart(new Date(time)); - } - - - /** - * Adds a file about which cvs logs will be generated. - * - * @param fileName - * fileName relative to {@link #setDir(File)}. - */ - public void addFile(String fileName) { - m_filesets.add(fileName); - } - - public void setFile(List files) { - m_filesets = files; - } - - - // XXX crude but how else to track the parser & handler and still pass to super impl? - private ChangeLogParser parser; - private RedirectingStreamHandler handler; - /** - * Execute task - * - * @exception BuildException if something goes wrong executing the - * cvs command - */ - public void execute() throws BuildException { - File savedDir = m_dir; // may be altered in validate - - try { - - validate(); - final Properties userList = new Properties(); - - loadUserlist(userList); - - for (Enumeration e = m_cvsUsers.elements(); - e.hasMoreElements();) { - final CvsUser user = (CvsUser) e.nextElement(); - - user.validate(); - userList.put(user.getUserID(), user.getDisplayname()); - } - - - setCommand("log"); - - if (m_filesets.isEmpty() || m_filesets.size()>10) { - // if we are going to get logs on large number of files, - // (or if m_files is not specified at all, in which case all the files in the directory is subjec, - // then it's worth spending little time to figure out if we can use - // -S for speed up - - CvsVersion myCvsVersion = new CvsVersion(); - myCvsVersion.setProject(getProject()); - myCvsVersion.setTaskName("cvsversion"); - myCvsVersion.setCvsRoot(getCvsRoot()); - myCvsVersion.setCvsRsh(getCvsRsh()); - myCvsVersion.setPassfile(getPassFile()); - myCvsVersion.setDest(m_dir); - myCvsVersion.execute(); - if (supportsCvsLogWithSOption(myCvsVersion.getClientVersion()) - && supportsCvsLogWithSOption(myCvsVersion.getServerVersion())) { - addCommandArgument("-S"); - } - } - if (null != m_start) { - final SimpleDateFormat outputDate = - new SimpleDateFormat("yyyy-MM-dd"); - - // Kohsuke patch: - // probably due to timezone difference between server/client and - // the lack of precise specification in the protocol or something, - // sometimes the java.net CVS server (and probably others) don't - // always report all the changes that have happened in the given day. - // so let's take the date range bit wider, to make sure that - // the server sends us all the logs that we care. - // - // the only downside of this change is that it will increase the traffic - // unnecessarily, but given that in Hudson we already narrow down the scope - // by specifying files, this should be acceptable increase. - - Date safeStart = new Date(m_start.getTime()-1000L*60*60*24); - - // Kohsuke patch until here - - // We want something of the form: -d ">=YYYY-MM-dd" - final String dateRange = ">=" + outputDate.format(safeStart); - - // Supply '-d' as a separate argument - Bug# 14397 - addCommandArgument("-d"); - addCommandArgument(dateRange); - } - - // Check if list of files to check has been specified - if (!m_filesets.isEmpty()) { - addCommandArgument("--"); - for (String file : m_filesets) { - addCommandArgument(file); - } - } - - parser = new ChangeLogParser(this); - - log("Running "+getCommand()+" at "+m_dir, Project.MSG_VERBOSE); - - setDest(m_dir); - try { - super.execute(); - } finally { - final String errors = handler.getErrors(); - - if (null != errors && errors.length()!=0) { - log(errors, Project.MSG_ERR); - } - } - - final CVSEntry[] entrySet = parser.getEntrySetAsArray(); - final CVSEntry[] filteredEntrySet = filterEntrySet(entrySet); - - replaceAuthorIdWithName(userList, filteredEntrySet); - - writeChangeLog(filteredEntrySet); - - } finally { - m_dir = savedDir; - } - } - protected @Override ExecuteStreamHandler getExecuteStreamHandler(InputStream input) { - return handler = new RedirectingStreamHandler( - // stdout goes to the changelog parser, - // but we also send this to Ant logger so that we can see it at sufficient debug level - new ForkOutputStream(new RedirectingOutputStream(parser), - new LogOutputStream(this,Project.MSG_VERBOSE)), - // stderr goes to the logger, too - new LogOutputStream(this,Project.MSG_WARN), - - input); - } - - private static final long VERSION_1_11_2 = 11102; - private static final long MULTIPLY = 100; - /** - * Rip off from {@link CvsVersion#supportsCvsLogWithSOption()} - * but we need to check both client and server. - */ - private boolean supportsCvsLogWithSOption(String versionString) { - if (versionString == null) { - return false; - } - StringTokenizer mySt = new StringTokenizer(versionString, "."); - long counter = MULTIPLY * MULTIPLY; - long version = 0; - while (mySt.hasMoreTokens()) { - String s = mySt.nextToken(); - int startpos; - // find the first digit char - for (startpos = 0; startpos < s.length(); startpos++) - if (Character.isDigit(s.charAt(startpos))) - break; - // ... and up to the end of this digit set - int i; - for (i = startpos; i < s.length(); i++) { - if (!Character.isDigit(s.charAt(i))) { - break; - } - } - String s2 = s.substring(startpos, i); - version = version + counter * Long.parseLong(s2); - if (counter == 1) { - break; - } - counter = counter / MULTIPLY; - } - return (version >= VERSION_1_11_2); - } - - /** - * Validate the parameters specified for task. - * - * @throws BuildException if fails validation checks - */ - private void validate() - throws BuildException { - if (null == m_dir) { - m_dir = getProject().getBaseDir(); - } - if (null == m_output) { - final String message = "Destfile must be set."; - - throw new BuildException(message); - } - if (!m_dir.exists()) { - final String message = "Cannot find base dir " - + m_dir.getAbsolutePath(); - - throw new BuildException(message); - } - if (null != m_usersFile && !m_usersFile.exists()) { - final String message = "Cannot find user lookup list " - + m_usersFile.getAbsolutePath(); - - throw new BuildException(message); - } - } - - /** - * Load the userlist from the userList file (if specified) and add to - * list of users. - * - * @param userList the file of users - * @throws BuildException if file can not be loaded for some reason - */ - private void loadUserlist(final Properties userList) - throws BuildException { - if (null != m_usersFile) { - try { - userList.load(new FileInputStream(m_usersFile)); - } catch (final IOException ioe) { - throw new BuildException(ioe.toString(), ioe); - } - } - } - - /** - * Filter the specified entries according to an appropriate rule. - * - * @param entrySet the entry set to filter - * @return the filtered entry set - */ - private CVSEntry[] filterEntrySet(final CVSEntry[] entrySet) { - log("Filtering entries",Project.MSG_VERBOSE); - - final Vector results = new Vector(); - - for (int i = 0; i < entrySet.length; i++) { - final CVSEntry cvsEntry = entrySet[i]; - final Date date = cvsEntry.getDate(); - - if(date==null) { - // skip dates that didn't parse. - log("Filtering out "+cvsEntry+" because it has no date",Project.MSG_VERBOSE); - continue; - } - - if (null != m_start && m_start.after(date)) { - //Skip dates that are too early - log("Filtering out "+cvsEntry+" because it's too early compare to "+m_start,Project.MSG_VERBOSE); - continue; - } - if (null != m_stop && m_stop.before(date)) { - //Skip dates that are too late - log("Filtering out "+cvsEntry+" because it's too late compare to "+m_stop,Project.MSG_VERBOSE); - continue; - } - if (!cvsEntry.containsBranch(branch)) { - // didn't match the branch - log("Filtering out "+cvsEntry+" because it didn't match the branch",Project.MSG_VERBOSE); - continue; - } - results.addElement(cvsEntry); - } - - final CVSEntry[] resultArray = new CVSEntry[results.size()]; - - results.copyInto(resultArray); - return resultArray; - } - - /** - * replace all known author's id's with their maven specified names - */ - private void replaceAuthorIdWithName(final Properties userList, - final CVSEntry[] entrySet) { - for (int i = 0; i < entrySet.length; i++) { - - final CVSEntry entry = entrySet[ i ]; - if (userList.containsKey(entry.getAuthor())) { - entry.setAuthor(userList.getProperty(entry.getAuthor())); - } - } - } - - /** - * Print changelog to file specified in task. - * - * @param entrySet the entry set to write. - * @throws BuildException if there is an error writing changelog. - */ - private void writeChangeLog(final CVSEntry[] entrySet) - throws BuildException { - OutputStream output = null; - - try { - output = m_output; - - final PrintWriter writer = - new PrintWriter(new OutputStreamWriter(output, "UTF-8")); - - final ChangeLogWriter serializer = new ChangeLogWriter(); - - serializer.printChangeLog(writer, entrySet); - } catch (final UnsupportedEncodingException uee) { - getProject().log(uee.toString(), Project.MSG_ERR); - } catch (final IOException ioe) { - throw new BuildException(ioe.toString(), ioe); - } finally { - if (null != output) { - try { - output.close(); - } catch (final IOException ioe) { - } - } - } - } -} \ No newline at end of file diff --git a/core/src/main/java/hudson/org/apache/tools/ant/taskdefs/cvslib/ChangeLogWriter.java b/core/src/main/java/hudson/org/apache/tools/ant/taskdefs/cvslib/ChangeLogWriter.java deleted file mode 100644 index 43adbacab97ed0b3cf9d230bd348a6b729d67136..0000000000000000000000000000000000000000 --- a/core/src/main/java/hudson/org/apache/tools/ant/taskdefs/cvslib/ChangeLogWriter.java +++ /dev/null @@ -1,104 +0,0 @@ -/* - * Copyright 2002-2004 The Apache Software Foundation - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ -package hudson.org.apache.tools.ant.taskdefs.cvslib; - -import org.apache.commons.lang.time.FastDateFormat; - -import java.io.PrintWriter; -import java.util.Enumeration; -import java.util.TimeZone; - -/** - * Class used to generate an XML changelog. - * - * @version $Revision$ $Date$ - */ -class ChangeLogWriter { - private static final TimeZone UTC = TimeZone.getTimeZone("UTC"); - - /** output format for dates written to xml file */ - private static final FastDateFormat c_outputDate - = FastDateFormat.getInstance("yyyy-MM-dd", UTC); - /** output format for times written to xml file */ - private static final FastDateFormat c_outputTime - = FastDateFormat.getInstance("HH:mm", UTC); - - /** - * Print out the specified entries. - * - * @param output writer to which to send output. - * @param entries the entries to be written. - */ - public void printChangeLog(final PrintWriter output, - final CVSEntry[] entries) { - output.println(""); - output.println(""); - for (int i = 0; i < entries.length; i++) { - final CVSEntry entry = entries[i]; - - printEntry(output, entry); - } - output.println(""); - output.flush(); - output.close(); - } - - - /** - * Print out an individual entry in changelog. - * - * @param entry the entry to print - * @param output writer to which to send output. - */ - private void printEntry(final PrintWriter output, final CVSEntry entry) { - output.println("\t"); - output.println("\t\t" + c_outputDate.format(entry.getDate()) - + ""); - output.println("\t\t"); - output.println("\t\t"); - - final Enumeration enumeration = entry.getFiles().elements(); - - while (enumeration.hasMoreElements()) { - final RCSFile file = (RCSFile) enumeration.nextElement(); - - output.println("\t\t"); - output.println("\t\t\t" + file.getName() + ""); - if(file.getFullName()!=null) - output.println("\t\t\t" + file.getFullName() + ""); - output.println("\t\t\t" + file.getRevision() - + ""); - - final String previousRevision = file.getPreviousRevision(); - - if (previousRevision != null) { - output.println("\t\t\t" + previousRevision - + ""); - } - - if(file.isDead()) - output.println("\t\t\t"); - - output.println("\t\t"); - } - output.println("\t\t"); - output.println("\t"); - } -} - diff --git a/core/src/main/java/hudson/org/apache/tools/ant/taskdefs/cvslib/CvsUser.java b/core/src/main/java/hudson/org/apache/tools/ant/taskdefs/cvslib/CvsUser.java deleted file mode 100644 index 3502c67075b5358bc448f9293125e7951d21afcb..0000000000000000000000000000000000000000 --- a/core/src/main/java/hudson/org/apache/tools/ant/taskdefs/cvslib/CvsUser.java +++ /dev/null @@ -1,93 +0,0 @@ -/* - * Copyright 2002-2004 The Apache Software Foundation - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ -package hudson.org.apache.tools.ant.taskdefs.cvslib; - -import org.apache.tools.ant.BuildException; - -/** - * Represents a CVS user with a userID and a full name. - * - * @version $Revision$ $Date$ - */ -public class CvsUser { - /** The user's Id */ - private String m_userID; - /** The user's full name */ - private String m_displayName; - - - /** - * Set the user's fullname - * - * @param displayName the user's full name - */ - public void setDisplayname(final String displayName) { - m_displayName = displayName; - } - - - /** - * Set the user's id - * - * @param userID the user's new id value. - */ - public void setUserid(final String userID) { - m_userID = userID; - } - - - /** - * Get the user's id. - * - * @return The userID value - */ - String getUserID() { - return m_userID; - } - - - /** - * Get the user's full name - * - * @return the user's full name - */ - String getDisplayname() { - return m_displayName; - } - - - /** - * validate that this object is configured. - * - * @exception BuildException if the instance has not be correctly - * configured. - */ - void validate() throws BuildException { - if (null == m_userID) { - final String message = "Username attribute must be set."; - - throw new BuildException(message); - } - if (null == m_displayName) { - final String message = - "Displayname attribute must be set for userID " + m_userID; - - throw new BuildException(message); - } - } -} - diff --git a/core/src/main/java/hudson/org/apache/tools/ant/taskdefs/cvslib/RCSFile.java b/core/src/main/java/hudson/org/apache/tools/ant/taskdefs/cvslib/RCSFile.java deleted file mode 100644 index 0e8972419b7dfae5cc5346a3a4f2bc4ba642942f..0000000000000000000000000000000000000000 --- a/core/src/main/java/hudson/org/apache/tools/ant/taskdefs/cvslib/RCSFile.java +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Copyright 2002-2004 The Apache Software Foundation - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ -package hudson.org.apache.tools.ant.taskdefs.cvslib; - -/** - * Represents a RCS File change. - * - * @version $Revision$ $Date$ - */ -class RCSFile { - private String m_name; - private String m_fullName; - private String m_revision; - private String m_previousRevision; - private boolean m_dead; - private String m_branch; - - - RCSFile(final String name, - final String fullName, - final String revision, - final String previousRevision, - final String branch, - final boolean dead) { - m_name = name; - m_fullName = fullName; - m_revision = revision; - if (!revision.equals(previousRevision)) { - m_previousRevision = previousRevision; - } - m_branch = branch; - m_dead = dead; - } - - - String getName() { - return m_name; - } - - public String getFullName() { - return m_fullName; - } - - String getRevision() { - return m_revision; - } - - String getPreviousRevision() { - return m_previousRevision; - } - - boolean isDead() { - return m_dead; - } - - /** - * Gets the name of this branch, if available. - */ - String getBranch() { - return m_branch; - } -} - diff --git a/core/src/main/java/hudson/org/apache/tools/ant/taskdefs/cvslib/RedirectingOutputStream.java b/core/src/main/java/hudson/org/apache/tools/ant/taskdefs/cvslib/RedirectingOutputStream.java deleted file mode 100644 index b3a8adf80c393c3c37c9e08743930b898bc29364..0000000000000000000000000000000000000000 --- a/core/src/main/java/hudson/org/apache/tools/ant/taskdefs/cvslib/RedirectingOutputStream.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright 2002,2004 The Apache Software Foundation - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ -package hudson.org.apache.tools.ant.taskdefs.cvslib; - -import org.apache.tools.ant.taskdefs.LogOutputStream; - -/** - * A dummy stream that just passes stuff to the parser. - * - * @version $Revision$ $Date$ - */ -class RedirectingOutputStream - extends LogOutputStream { - private final ChangeLogParser parser; - - - /** - * Creates a new instance of this class. - * - * @param parser the parser to which output is sent. - */ - public RedirectingOutputStream(final ChangeLogParser parser) { - super(null, 0); - this.parser = parser; - } - - - /** - * Logs a line to the log system of ant. - * - * @param line the line to log. - */ - protected void processLine(final String line) { - parser.stdout(line); - } -} - diff --git a/core/src/main/java/hudson/org/apache/tools/ant/taskdefs/cvslib/RedirectingStreamHandler.java b/core/src/main/java/hudson/org/apache/tools/ant/taskdefs/cvslib/RedirectingStreamHandler.java deleted file mode 100644 index 8058a7bd48a04aa3b3141b6c832a462d28e421ae..0000000000000000000000000000000000000000 --- a/core/src/main/java/hudson/org/apache/tools/ant/taskdefs/cvslib/RedirectingStreamHandler.java +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Copyright 2002,2004 The Apache Software Foundation - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ -package hudson.org.apache.tools.ant.taskdefs.cvslib; - -import org.apache.tools.ant.BuildException; -import org.apache.tools.ant.taskdefs.PumpStreamHandler; - -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; - -/** - * A dummy stream handler that just passes stuff to the parser. - * - * @version $Revision$ $Date$ - */ -class RedirectingStreamHandler extends PumpStreamHandler { - RedirectingStreamHandler(final ChangeLogParser parser) { - this(new RedirectingOutputStream(parser), null); - } - - RedirectingStreamHandler(OutputStream out, InputStream in) { - this(out, new ByteArrayOutputStream(), in); - } - - RedirectingStreamHandler(OutputStream out, OutputStream err, InputStream in) { - super(out, err, in); - } - - String getErrors() { - try { - final ByteArrayOutputStream error - = (ByteArrayOutputStream) getErr(); - - return error.toString("ASCII"); - } catch (final Exception e) { - return null; - } - } - - - public void stop() { - super.stop(); - try { - getErr().close(); - getOut().close(); - } catch (final IOException e) { - // plain impossible - throw new BuildException(e); - } - } -} - diff --git a/core/src/main/java/hudson/org/apache/tools/ant/taskdefs/cvslib/package.html b/core/src/main/java/hudson/org/apache/tools/ant/taskdefs/cvslib/package.html deleted file mode 100644 index b051ae62d04ae5e9600f0e165afdc61e4fc6835e..0000000000000000000000000000000000000000 --- a/core/src/main/java/hudson/org/apache/tools/ant/taskdefs/cvslib/package.html +++ /dev/null @@ -1,27 +0,0 @@ - - - -Fork of Ant CVS changelog task to work around issues. - \ No newline at end of file diff --git a/core/src/main/java/hudson/org/apache/tools/tar/TarInputStream.java b/core/src/main/java/hudson/org/apache/tools/tar/TarInputStream.java new file mode 100644 index 0000000000000000000000000000000000000000..f2d10c1c39960b09cb7ee9fd89505ba8fc9cb79a --- /dev/null +++ b/core/src/main/java/hudson/org/apache/tools/tar/TarInputStream.java @@ -0,0 +1,398 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +/* + * This package is based on the work done by Timothy Gerard Endres + * (time@ice.com) to whom the Ant project is very grateful for his great code. + */ + +package hudson.org.apache.tools.tar; + +import org.apache.tools.tar.TarBuffer; +import org.apache.tools.tar.TarEntry; + +import java.io.FilterInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.io.ByteArrayOutputStream; + +/** + * The TarInputStream reads a UNIX tar archive as an InputStream. + * methods are provided to position at each successive entry in + * the archive, and the read each entry as a normal input stream + * using read(). + * + */ +public class TarInputStream extends FilterInputStream { + + // CheckStyle:VisibilityModifier OFF - bc + protected boolean debug; + protected boolean hasHitEOF; + protected long entrySize; + protected long entryOffset; + protected byte[] readBuf; + protected TarBuffer buffer; + protected TarEntry currEntry; + + /** + * This contents of this array is not used at all in this class, + * it is only here to avoid repreated object creation during calls + * to the no-arg read method. + */ + protected byte[] oneBuf; + + // CheckStyle:VisibilityModifier ON + + /** + * Constructor for TarInputStream. + * @param is the input stream to use + */ + public TarInputStream(InputStream is) { + this(is, TarBuffer.DEFAULT_BLKSIZE, TarBuffer.DEFAULT_RCDSIZE); + } + + /** + * Constructor for TarInputStream. + * @param is the input stream to use + * @param blockSize the block size to use + */ + public TarInputStream(InputStream is, int blockSize) { + this(is, blockSize, TarBuffer.DEFAULT_RCDSIZE); + } + + /** + * Constructor for TarInputStream. + * @param is the input stream to use + * @param blockSize the block size to use + * @param recordSize the record size to use + */ + public TarInputStream(InputStream is, int blockSize, int recordSize) { + super(is); + + this.buffer = new TarBuffer(is, blockSize, recordSize); + this.readBuf = null; + this.oneBuf = new byte[1]; + this.debug = false; + this.hasHitEOF = false; + } + + /** + * Sets the debugging flag. + * + * @param debug True to turn on debugging. + */ + public void setDebug(boolean debug) { + this.debug = debug; + this.buffer.setDebug(debug); + } + + /** + * Closes this stream. Calls the TarBuffer's close() method. + * @throws IOException on error + */ + public void close() throws IOException { + this.buffer.close(); + } + + /** + * Get the record size being used by this stream's TarBuffer. + * + * @return The TarBuffer record size. + */ + public int getRecordSize() { + return this.buffer.getRecordSize(); + } + + /** + * Get the available data that can be read from the current + * entry in the archive. This does not indicate how much data + * is left in the entire archive, only in the current entry. + * This value is determined from the entry's size header field + * and the amount of data already read from the current entry. + * Integer.MAX_VALUE is returen in case more than Integer.MAX_VALUE + * bytes are left in the current entry in the archive. + * + * @return The number of available bytes for the current entry. + * @throws IOException for signature + */ + public int available() throws IOException { + if (this.entrySize - this.entryOffset > Integer.MAX_VALUE) { + return Integer.MAX_VALUE; + } + return (int) (this.entrySize - this.entryOffset); + } + + /** + * Skip bytes in the input buffer. This skips bytes in the + * current entry's data, not the entire archive, and will + * stop at the end of the current entry's data if the number + * to skip extends beyond that point. + * + * @param numToSkip The number of bytes to skip. + * @return the number actually skipped + * @throws IOException on error + */ + public long skip(long numToSkip) throws IOException { + // REVIEW + // This is horribly inefficient, but it ensures that we + // properly skip over bytes via the TarBuffer... + // + byte[] skipBuf = new byte[8 * 1024]; + long skip = numToSkip; + while (skip > 0) { + int realSkip = (int) (skip > skipBuf.length ? skipBuf.length : skip); + int numRead = this.read(skipBuf, 0, realSkip); + if (numRead == -1) { + break; + } + skip -= numRead; + } + return (numToSkip - skip); + } + + /** + * Since we do not support marking just yet, we return false. + * + * @return False. + */ + public boolean markSupported() { + return false; + } + + /** + * Since we do not support marking just yet, we do nothing. + * + * @param markLimit The limit to mark. + */ + public void mark(int markLimit) { + } + + /** + * Since we do not support marking just yet, we do nothing. + */ + public void reset() { + } + + /** + * Get the next entry in this tar archive. This will skip + * over any remaining data in the current entry, if there + * is one, and place the input stream at the header of the + * next entry, and read the header and instantiate a new + * TarEntry from the header bytes and return that entry. + * If there are no more entries in the archive, null will + * be returned to indicate that the end of the archive has + * been reached. + * + * @return The next TarEntry in the archive, or null. + * @throws IOException on error + */ + public TarEntry getNextEntry() throws IOException { + if (this.hasHitEOF) { + return null; + } + + if (this.currEntry != null) { + long numToSkip = this.entrySize - this.entryOffset; + + if (this.debug) { + System.err.println("TarInputStream: SKIP currENTRY '" + + this.currEntry.getName() + "' SZ " + + this.entrySize + " OFF " + + this.entryOffset + " skipping " + + numToSkip + " bytes"); + } + + if (numToSkip > 0) { + this.skip(numToSkip); + } + + this.readBuf = null; + } + + byte[] headerBuf = this.buffer.readRecord(); + + if (headerBuf == null) { + if (this.debug) { + System.err.println("READ NULL RECORD"); + } + this.hasHitEOF = true; + } else if (this.buffer.isEOFRecord(headerBuf)) { + if (this.debug) { + System.err.println("READ EOF RECORD"); + } + this.hasHitEOF = true; + } + + if (this.hasHitEOF) { + this.currEntry = null; + } else { + this.currEntry = new TarEntry(headerBuf); + + if (this.debug) { + System.err.println("TarInputStream: SET CURRENTRY '" + + this.currEntry.getName() + + "' size = " + + this.currEntry.getSize()); + } + + this.entryOffset = 0; + + this.entrySize = this.currEntry.getSize(); + } + + if (this.currEntry != null && this.currEntry.isGNULongNameEntry()) { + // read in the name + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + byte[] buf = new byte[256]; + int length; + while ((length = read(buf)) >= 0) { + baos.write(buf,0,length); + } + getNextEntry(); + if (this.currEntry == null) { + // Bugzilla: 40334 + // Malformed tar file - long entry name not followed by entry + return null; + } + String longName = baos.toString("UTF-8"); + // remove trailing null terminator + if (longName.length() > 0 + && longName.charAt(longName.length() - 1) == 0) { + longName = longName.substring(0,longName.length()-1); + } + this.currEntry.setName(longName); + } + + return this.currEntry; + } + + /** + * Reads a byte from the current tar archive entry. + * + * This method simply calls read( byte[], int, int ). + * + * @return The byte read, or -1 at EOF. + * @throws IOException on error + */ + public int read() throws IOException { + int num = this.read(this.oneBuf, 0, 1); + return num == -1 ? -1 : ((int) this.oneBuf[0]) & 0xFF; + } + + /** + * Reads bytes from the current tar archive entry. + * + * This method is aware of the boundaries of the current + * entry in the archive and will deal with them as if they + * were this stream's start and EOF. + * + * @param buf The buffer into which to place bytes read. + * @param offset The offset at which to place bytes read. + * @param numToRead The number of bytes to read. + * @return The number of bytes read, or -1 at EOF. + * @throws IOException on error + */ + public int read(byte[] buf, int offset, int numToRead) throws IOException { + int totalRead = 0; + + if (this.entryOffset >= this.entrySize) { + return -1; + } + + if ((numToRead + this.entryOffset) > this.entrySize) { + numToRead = (int) (this.entrySize - this.entryOffset); + } + + if (this.readBuf != null) { + int sz = (numToRead > this.readBuf.length) ? this.readBuf.length + : numToRead; + + System.arraycopy(this.readBuf, 0, buf, offset, sz); + + if (sz >= this.readBuf.length) { + this.readBuf = null; + } else { + int newLen = this.readBuf.length - sz; + byte[] newBuf = new byte[newLen]; + + System.arraycopy(this.readBuf, sz, newBuf, 0, newLen); + + this.readBuf = newBuf; + } + + totalRead += sz; + numToRead -= sz; + offset += sz; + } + + while (numToRead > 0) { + byte[] rec = this.buffer.readRecord(); + + if (rec == null) { + // Unexpected EOF! + throw new IOException("unexpected EOF with " + numToRead + + " bytes unread"); + } + + int sz = numToRead; + int recLen = rec.length; + + if (recLen > sz) { + System.arraycopy(rec, 0, buf, offset, sz); + + this.readBuf = new byte[recLen - sz]; + + System.arraycopy(rec, sz, this.readBuf, 0, recLen - sz); + } else { + sz = recLen; + + System.arraycopy(rec, 0, buf, offset, recLen); + } + + totalRead += sz; + numToRead -= sz; + offset += sz; + } + + this.entryOffset += totalRead; + + return totalRead; + } + + /** + * Copies the contents of the current tar archive entry directly into + * an output stream. + * + * @param out The OutputStream into which to write the entry's data. + * @throws IOException on error + */ + public void copyEntryContents(OutputStream out) throws IOException { + byte[] buf = new byte[32 * 1024]; + + while (true) { + int numRead = this.read(buf, 0, buf.length); + + if (numRead == -1) { + break; + } + + out.write(buf, 0, numRead); + } + } +} diff --git a/core/src/main/java/hudson/org/apache/tools/tar/TarOutputStream.java b/core/src/main/java/hudson/org/apache/tools/tar/TarOutputStream.java new file mode 100644 index 0000000000000000000000000000000000000000..e60a927e550928e87fd38345e26600c130a7ffd6 --- /dev/null +++ b/core/src/main/java/hudson/org/apache/tools/tar/TarOutputStream.java @@ -0,0 +1,360 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +/* + * This package is based on the work done by Timothy Gerard Endres + * (time@ice.com) to whom the Ant project is very grateful for his great code. + */ + +package hudson.org.apache.tools.tar; + +import org.apache.tools.tar.TarBuffer; +import org.apache.tools.tar.TarConstants; +import org.apache.tools.tar.TarEntry; + +import java.io.FilterOutputStream; +import java.io.OutputStream; +import java.io.IOException; + +/** + * The TarOutputStream writes a UNIX tar archive as an OutputStream. + * Methods are provided to put entries, and then write their contents + * by writing to this stream using write(). + * + */ +public class TarOutputStream extends FilterOutputStream { + /** Fail if a long file name is required in the archive. */ + public static final int LONGFILE_ERROR = 0; + + /** Long paths will be truncated in the archive. */ + public static final int LONGFILE_TRUNCATE = 1; + + /** GNU tar extensions are used to store long file names in the archive. */ + public static final int LONGFILE_GNU = 2; + + // CheckStyle:VisibilityModifier OFF - bc + protected boolean debug; + protected long currSize; + protected String currName; + protected long currBytes; + protected byte[] oneBuf; + protected byte[] recordBuf; + protected int assemLen; + protected byte[] assemBuf; + protected TarBuffer buffer; + protected int longFileMode = LONGFILE_ERROR; + // CheckStyle:VisibilityModifier ON + + private boolean closed = false; + + /** + * Constructor for TarInputStream. + * @param os the output stream to use + */ + public TarOutputStream(OutputStream os) { + this(os, TarBuffer.DEFAULT_BLKSIZE, TarBuffer.DEFAULT_RCDSIZE); + } + + /** + * Constructor for TarInputStream. + * @param os the output stream to use + * @param blockSize the block size to use + */ + public TarOutputStream(OutputStream os, int blockSize) { + this(os, blockSize, TarBuffer.DEFAULT_RCDSIZE); + } + + /** + * Constructor for TarInputStream. + * @param os the output stream to use + * @param blockSize the block size to use + * @param recordSize the record size to use + */ + public TarOutputStream(OutputStream os, int blockSize, int recordSize) { + super(os); + + this.buffer = new TarBuffer(os, blockSize, recordSize); + this.debug = false; + this.assemLen = 0; + this.assemBuf = new byte[recordSize]; + this.recordBuf = new byte[recordSize]; + this.oneBuf = new byte[1]; + } + + /** + * Set the long file mode. + * This can be LONGFILE_ERROR(0), LONGFILE_TRUNCATE(1) or LONGFILE_GNU(2). + * This specifies the treatment of long file names (names >= TarConstants.NAMELEN). + * Default is LONGFILE_ERROR. + * @param longFileMode the mode to use + */ + public void setLongFileMode(int longFileMode) { + this.longFileMode = longFileMode; + } + + + /** + * Sets the debugging flag. + * + * @param debugF True to turn on debugging. + */ + public void setDebug(boolean debugF) { + this.debug = debugF; + } + + /** + * Sets the debugging flag in this stream's TarBuffer. + * + * @param debug True to turn on debugging. + */ + public void setBufferDebug(boolean debug) { + this.buffer.setDebug(debug); + } + + /** + * Ends the TAR archive without closing the underlying OutputStream. + * The result is that the two EOF records of nulls are written. + * @throws IOException on error + */ + public void finish() throws IOException { + // See Bugzilla 28776 for a discussion on this + // http://issues.apache.org/bugzilla/show_bug.cgi?id=28776 + this.writeEOFRecord(); + this.writeEOFRecord(); + } + + /** + * Ends the TAR archive and closes the underlying OutputStream. + * This means that finish() is called followed by calling the + * TarBuffer's close(). + * @throws IOException on error + */ + public void close() throws IOException { + if (!closed) { + this.finish(); + this.buffer.close(); + out.close(); + closed = true; + } + } + + /** + * Get the record size being used by this stream's TarBuffer. + * + * @return The TarBuffer record size. + */ + public int getRecordSize() { + return this.buffer.getRecordSize(); + } + + /** + * Put an entry on the output stream. This writes the entry's + * header record and positions the output stream for writing + * the contents of the entry. Once this method is called, the + * stream is ready for calls to write() to write the entry's + * contents. Once the contents are written, closeEntry() + * MUST be called to ensure that all buffered data + * is completely written to the output stream. + * + * @param entry The TarEntry to be written to the archive. + * @throws IOException on error + */ + public void putNextEntry(TarEntry entry) throws IOException { + if (entry.getName().length() >= TarConstants.NAMELEN) { + + if (longFileMode == LONGFILE_GNU) { + // create a TarEntry for the LongLink, the contents + // of which are the entry's name + TarEntry longLinkEntry = new TarEntry(TarConstants.GNU_LONGLINK, + TarConstants.LF_GNUTYPE_LONGNAME); + + byte[] name = entry.getName().getBytes("UTF-8"); + longLinkEntry.setSize(name.length + 1); + putNextEntry(longLinkEntry); + write(name); + write(0); + closeEntry(); + } else if (longFileMode != LONGFILE_TRUNCATE) { + throw new RuntimeException("file name '" + entry.getName() + + "' is too long ( > " + + TarConstants.NAMELEN + " bytes)"); + } + } + + entry.writeEntryHeader(this.recordBuf); + this.buffer.writeRecord(this.recordBuf); + + this.currBytes = 0; + + if (entry.isDirectory()) { + this.currSize = 0; + } else { + this.currSize = entry.getSize(); + } + currName = entry.getName(); + } + + /** + * Close an entry. This method MUST be called for all file + * entries that contain data. The reason is that we must + * buffer data written to the stream in order to satisfy + * the buffer's record based writes. Thus, there may be + * data fragments still being assembled that must be written + * to the output stream before this entry is closed and the + * next entry written. + * @throws IOException on error + */ + public void closeEntry() throws IOException { + if (this.assemLen > 0) { + for (int i = this.assemLen; i < this.assemBuf.length; ++i) { + this.assemBuf[i] = 0; + } + + this.buffer.writeRecord(this.assemBuf); + + this.currBytes += this.assemLen; + this.assemLen = 0; + } + + if (this.currBytes < this.currSize) { + throw new IOException("entry '" + currName + "' closed at '" + + this.currBytes + + "' before the '" + this.currSize + + "' bytes specified in the header were written"); + } + } + + /** + * Writes a byte to the current tar archive entry. + * + * This method simply calls read( byte[], int, int ). + * + * @param b The byte written. + * @throws IOException on error + */ + public void write(int b) throws IOException { + this.oneBuf[0] = (byte) b; + + this.write(this.oneBuf, 0, 1); + } + + /** + * Writes bytes to the current tar archive entry. + * + * This method simply calls write( byte[], int, int ). + * + * @param wBuf The buffer to write to the archive. + * @throws IOException on error + */ + public void write(byte[] wBuf) throws IOException { + this.write(wBuf, 0, wBuf.length); + } + + /** + * Writes bytes to the current tar archive entry. This method + * is aware of the current entry and will throw an exception if + * you attempt to write bytes past the length specified for the + * current entry. The method is also (painfully) aware of the + * record buffering required by TarBuffer, and manages buffers + * that are not a multiple of recordsize in length, including + * assembling records from small buffers. + * + * @param wBuf The buffer to write to the archive. + * @param wOffset The offset in the buffer from which to get bytes. + * @param numToWrite The number of bytes to write. + * @throws IOException on error + */ + public void write(byte[] wBuf, int wOffset, int numToWrite) throws IOException { + if ((this.currBytes + numToWrite) > this.currSize) { + throw new IOException("request to write '" + numToWrite + + "' bytes exceeds size in header of '" + + this.currSize + "' bytes for entry '" + + currName + "'"); + + // + // We have to deal with assembly!!! + // The programmer can be writing little 32 byte chunks for all + // we know, and we must assemble complete records for writing. + // REVIEW Maybe this should be in TarBuffer? Could that help to + // eliminate some of the buffer copying. + // + } + + if (this.assemLen > 0) { + if ((this.assemLen + numToWrite) >= this.recordBuf.length) { + int aLen = this.recordBuf.length - this.assemLen; + + System.arraycopy(this.assemBuf, 0, this.recordBuf, 0, + this.assemLen); + System.arraycopy(wBuf, wOffset, this.recordBuf, + this.assemLen, aLen); + this.buffer.writeRecord(this.recordBuf); + + this.currBytes += this.recordBuf.length; + wOffset += aLen; + numToWrite -= aLen; + this.assemLen = 0; + } else { + System.arraycopy(wBuf, wOffset, this.assemBuf, this.assemLen, + numToWrite); + + wOffset += numToWrite; + this.assemLen += numToWrite; + numToWrite -= numToWrite; + } + } + + // + // When we get here we have EITHER: + // o An empty "assemble" buffer. + // o No bytes to write (numToWrite == 0) + // + while (numToWrite > 0) { + if (numToWrite < this.recordBuf.length) { + System.arraycopy(wBuf, wOffset, this.assemBuf, this.assemLen, + numToWrite); + + this.assemLen += numToWrite; + + break; + } + + this.buffer.writeRecord(wBuf, wOffset); + + int num = this.recordBuf.length; + + this.currBytes += num; + numToWrite -= num; + wOffset += num; + } + } + + /** + * Write an EOF (end of archive) record to the tar archive. + * An EOF record consists of a record of all zeros. + */ + private void writeEOFRecord() throws IOException { + for (int i = 0; i < this.recordBuf.length; ++i) { + this.recordBuf[i] = 0; + } + + this.buffer.writeRecord(this.recordBuf); + } +} + + diff --git a/core/src/main/java/hudson/os/PosixAPI.java b/core/src/main/java/hudson/os/PosixAPI.java new file mode 100644 index 0000000000000000000000000000000000000000..a36cbddf1c6f8c0de42c0a820046a0ee38db8b07 --- /dev/null +++ b/core/src/main/java/hudson/os/PosixAPI.java @@ -0,0 +1,81 @@ +package hudson.os; + +import org.jruby.ext.posix.JavaPOSIX; +import org.jruby.ext.posix.POSIX; +import org.jruby.ext.posix.POSIXFactory; +import org.jruby.ext.posix.POSIXHandler; +import org.jruby.ext.posix.POSIX.ERRORS; + +import java.io.File; +import java.io.InputStream; +import java.io.PrintStream; +import java.util.logging.Logger; + +/** + * POSIX API wrapper. + * + * @author Kohsuke Kawaguchi + */ +public class PosixAPI { + public static POSIX get() { + return posix; + } + + /** + * Determine if the jna-posix library could not provide native support, and + * used a fallback java implementation which does not support many operations. + */ + public boolean isNative() { + return !(posix instanceof JavaPOSIX); + } + + private static final POSIX posix = POSIXFactory.getPOSIX(new POSIXHandler() { + public void error(ERRORS errors, String s) { + throw new PosixException(s,errors); + } + + public void unimplementedError(String s) { + throw new UnsupportedOperationException(s); + } + + public void warn(WARNING_ID warning_id, String s, Object... objects) { + LOGGER.fine(s); + } + + public boolean isVerbose() { + return false; + } + + public File getCurrentWorkingDirectory() { + // TODO + throw new UnsupportedOperationException(); + } + + public String[] getEnv() { + // TODO + throw new UnsupportedOperationException(); + } + + public InputStream getInputStream() { + // TODO + throw new UnsupportedOperationException(); + } + + public PrintStream getOutputStream() { + // TODO + throw new UnsupportedOperationException(); + } + + public int getPID() { + // TODO + throw new UnsupportedOperationException(); + } + + public PrintStream getErrorStream() { + // TODO + throw new UnsupportedOperationException(); + } + }, true); + + private static final Logger LOGGER = Logger.getLogger(PosixAPI.class.getName()); +} diff --git a/core/src/main/java/hudson/os/PosixException.java b/core/src/main/java/hudson/os/PosixException.java new file mode 100644 index 0000000000000000000000000000000000000000..93e96ef5d0d1aec7a7ad23968ca62068741a9cec --- /dev/null +++ b/core/src/main/java/hudson/os/PosixException.java @@ -0,0 +1,26 @@ +package hudson.os; + +import org.jruby.ext.posix.POSIX.ERRORS; + +/** + * Indicates an error during POSIX API call. + * + * @author Kohsuke Kawaguchi + */ +public class PosixException extends RuntimeException { + private final ERRORS errors; + + public PosixException(String message, ERRORS errors) { + super(message); + this.errors = errors; + } + + public ERRORS getErrorCode() { + return errors; + } + + @Override + public String toString() { + return super.toString()+" "+errors; + } +} diff --git a/core/src/main/java/hudson/os/SU.java b/core/src/main/java/hudson/os/SU.java index d3ef54eb2f56570e55409cada8a7cf6e19d8aa84..4d21501f69f5d6bb26a458441ae424a32518dfb5 100644 --- a/core/src/main/java/hudson/os/SU.java +++ b/core/src/main/java/hudson/os/SU.java @@ -103,7 +103,9 @@ public abstract class SU { ProcessBuilder pb = new ProcessBuilder(args.prepend(sudoExe()).toCommandArray()); return EmbeddedSu.startWithSu(rootUsername, rootPassword, pb); } - }.start(listener,rootPassword); + // in solaris, pfexec never asks for a password, so username==null means + // we won't be using password. this helps disambiguate empty password + }.start(listener,rootUsername==null?null:rootPassword); // TODO: Mac? diff --git a/core/src/main/java/hudson/os/solaris/ZFSInstaller.java b/core/src/main/java/hudson/os/solaris/ZFSInstaller.java index 8f43568282c784ed721d1429331fd4bde81170b0..b63ee603baef6b75dc8a9dec014b2969ac5d9153 100644 --- a/core/src/main/java/hudson/os/solaris/ZFSInstaller.java +++ b/core/src/main/java/hudson/os/solaris/ZFSInstaller.java @@ -25,7 +25,6 @@ package hudson.os.solaris; import com.sun.akuma.Daemon; import com.sun.akuma.JavaVMArguments; -import hudson.FilePath; import hudson.Launcher.LocalLauncher; import hudson.Util; import hudson.Extension; @@ -49,6 +48,9 @@ import org.jvnet.solaris.mount.MountFlags; import org.kohsuke.stapler.StaplerRequest; import org.kohsuke.stapler.StaplerResponse; import org.kohsuke.stapler.QueryParameter; +import org.kohsuke.stapler.HttpResponse; +import org.kohsuke.stapler.HttpResponses; +import org.kohsuke.stapler.HttpRedirect; import javax.servlet.ServletException; import java.io.File; @@ -89,7 +91,7 @@ public class ZFSInstaller extends AdministrativeMonitor implements Serializable } private boolean shouldBeActive() { - if(!System.getProperty("os.name").equals("SunOS")) + if(!System.getProperty("os.name").equals("SunOS") || disabled) // on systems that don't have ZFS, we don't need this monitor return false; @@ -122,18 +124,17 @@ public class ZFSInstaller extends AdministrativeMonitor implements Serializable /** * Called from the management screen. */ - public void doAct(StaplerRequest req, StaplerResponse rsp) throws ServletException, IOException { + public HttpResponse doAct(StaplerRequest req) throws ServletException, IOException { requirePOST(); Hudson.getInstance().checkPermission(Hudson.ADMINISTER); if(req.hasParameter("n")) { // we'll shut up disable(true); - rsp.sendRedirect2(req.getContextPath()+"/manage"); - return; + return HttpResponses.redirectViaContextPath("/manage"); } - rsp.sendRedirect2("confirm"); + return new HttpRedirect("confirm"); } /** @@ -383,7 +384,7 @@ public class ZFSInstaller extends AdministrativeMonitor implements Serializable } private static int system(File pwd, TaskListener listener, String... args) throws IOException, InterruptedException { - return new LocalLauncher(listener).launch(args, new String[0], System.out, new FilePath(pwd)).join(); + return new LocalLauncher(listener).launch().cmds(args).stdout(System.out).pwd(pwd).join(); } private static String computeHudsonFileSystemName(LibZFS zfs, ZFSFileSystem top) { @@ -425,4 +426,9 @@ public class ZFSInstaller extends AdministrativeMonitor implements Serializable } private static final Logger LOGGER = Logger.getLogger(ZFSInstaller.class.getName()); + + /** + * Escape hatch in case JNI calls fatally crash, like in HUDSON-3733. + */ + public static boolean disabled = Boolean.getBoolean(ZFSInstaller.class.getName()+".disabled"); } diff --git a/core/src/main/java/hudson/os/solaris/ZFSProvisioner.java b/core/src/main/java/hudson/os/solaris/ZFSProvisioner.java index 3c45a12011025663e649d974c67831439f6a4de9..78a7abb00cf794a84d60d720434ce57eb2c7123e 100644 --- a/core/src/main/java/hudson/os/solaris/ZFSProvisioner.java +++ b/core/src/main/java/hudson/os/solaris/ZFSProvisioner.java @@ -95,10 +95,17 @@ public class ZFSProvisioner extends FileSystemProvisioner implements Serializabl }); } + /** + * @deprecated as of 1.350 + */ public WorkspaceSnapshot snapshot(AbstractBuild build, FilePath ws, TaskListener listener) throws IOException, InterruptedException { throw new UnsupportedOperationException(); } + public WorkspaceSnapshot snapshot(AbstractBuild build, FilePath ws, String glob, TaskListener listener) throws IOException, InterruptedException { + throw new UnsupportedOperationException(); + } + @Extension public static final class DescriptorImpl extends FileSystemProvisionerDescriptor { public boolean discard(FilePath ws, TaskListener listener) throws IOException, InterruptedException { diff --git a/core/src/main/java/hudson/os/windows/ManagedWindowsServiceConnector.java b/core/src/main/java/hudson/os/windows/ManagedWindowsServiceConnector.java new file mode 100644 index 0000000000000000000000000000000000000000..02e2793fd8ada84db2ecc8c7a2278f9fb75e3bff --- /dev/null +++ b/core/src/main/java/hudson/os/windows/ManagedWindowsServiceConnector.java @@ -0,0 +1,60 @@ +package hudson.os.windows; + +import hudson.Extension; +import hudson.model.Computer; +import hudson.model.Descriptor; +import hudson.model.Hudson; +import hudson.model.TaskListener; +import hudson.slaves.ComputerConnector; +import hudson.slaves.ComputerConnectorDescriptor; +import hudson.slaves.ComputerLauncher; +import hudson.util.Secret; +import org.kohsuke.stapler.DataBoundConstructor; + +import java.io.IOException; + +/** + * {@link ComputerConnector} that delegates to {@link ManagedWindowsServiceLauncher}. + * @author Kohsuke Kawaguchi + */ +public class ManagedWindowsServiceConnector extends ComputerConnector { + /** + * "[DOMAIN\\]USERNAME" to follow the Windows convention. + */ + public final String userName; + + public final Secret password; + + @DataBoundConstructor + public ManagedWindowsServiceConnector(String userName, String password) { + this.userName = userName; + this.password = Secret.fromString(password); + } + + @Override + public ManagedWindowsServiceLauncher launch(final String host, TaskListener listener) throws IOException, InterruptedException { + return new ManagedWindowsServiceLauncher(userName,Secret.toString(password)) { + @Override + protected String determineHost(Computer c) throws IOException, InterruptedException { + return host; + } + + @Override + public Descriptor getDescriptor() { + return Hudson.getInstance().getDescriptor(ManagedWindowsServiceLauncher.class); + } + }; + } + + @Extension +// Fix broken trunk (temporary) +// public static class DescriptorImpl extends Descriptor { + public static class DescriptorImpl extends ComputerConnectorDescriptor { + public String getDisplayName() { + return Messages.ManagedWindowsServiceLauncher_DisplayName(); + } + + // used by Jelly + public static final Class CONFIG_DELEGATE_TO = ManagedWindowsServiceLauncher.class; + } +} diff --git a/core/src/main/java/hudson/os/windows/ManagedWindowsServiceLauncher.java b/core/src/main/java/hudson/os/windows/ManagedWindowsServiceLauncher.java index cae43eb2f410c751086be97c597bc3c5c5f52666..7b9700eba51df530b36254d79b634aceebb37a78 100644 --- a/core/src/main/java/hudson/os/windows/ManagedWindowsServiceLauncher.java +++ b/core/src/main/java/hudson/os/windows/ManagedWindowsServiceLauncher.java @@ -23,47 +23,56 @@ */ package hudson.os.windows; +import hudson.Extension; import hudson.lifecycle.WindowsSlaveInstaller; +import hudson.model.Computer; import hudson.model.Descriptor; import hudson.model.Hudson; import hudson.model.TaskListener; +import hudson.remoting.Channel; +import hudson.remoting.Channel.Listener; +import hudson.remoting.SocketInputStream; +import hudson.remoting.SocketOutputStream; import hudson.slaves.ComputerLauncher; import hudson.slaves.SlaveComputer; +import hudson.tools.JDKInstaller; +import hudson.tools.JDKInstaller.CPU; +import hudson.tools.JDKInstaller.Platform; +import hudson.util.IOUtils; import hudson.util.Secret; import hudson.util.jna.DotNet; -import hudson.remoting.Channel; -import hudson.remoting.SocketInputStream; -import hudson.remoting.SocketOutputStream; -import hudson.remoting.Channel.Listener; -import hudson.Extension; -import jcifs.smb.SmbFile; -import jcifs.smb.SmbException; import jcifs.smb.NtlmPasswordAuthentication; -import org.apache.commons.io.IOUtils; -import org.jinterop.dcom.common.JIException; +import jcifs.smb.SmbException; +import jcifs.smb.SmbFile; +import org.dom4j.Document; +import org.dom4j.DocumentException; +import org.dom4j.io.SAXReader; import org.jinterop.dcom.common.JIDefaultAuthInfoImpl; +import org.jinterop.dcom.common.JIException; import org.jinterop.dcom.core.JISession; -import org.kohsuke.stapler.DataBoundConstructor; -import org.jvnet.hudson.wmi.WMI; +import org.jvnet.hudson.remcom.WindowsRemoteProcessLauncher; import org.jvnet.hudson.wmi.SWbemServices; +import org.jvnet.hudson.wmi.WMI; import org.jvnet.hudson.wmi.Win32Service; -import static org.jvnet.hudson.wmi.Win32Service.Win32OwnProcess; -import org.dom4j.io.SAXReader; -import org.dom4j.Document; -import org.dom4j.DocumentException; +import org.kohsuke.stapler.DataBoundConstructor; +import java.io.BufferedInputStream; +import java.io.BufferedOutputStream; import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; -import java.io.OutputStream; -import java.io.StringReader; import java.io.PrintStream; -import java.io.BufferedInputStream; -import java.io.BufferedOutputStream; -import java.net.UnknownHostException; +import java.io.StringReader; +import java.net.InetAddress; +import java.net.InetSocketAddress; import java.net.Socket; -import java.util.logging.Logger; +import java.net.URL; +import java.net.UnknownHostException; import java.util.logging.Level; +import java.util.logging.Logger; + +import static hudson.Util.copyStreamAndClose; +import static org.jvnet.hudson.wmi.Win32Service.Win32OwnProcess; /** * Windows slave installed/managed as a service entirely remotely @@ -87,8 +96,8 @@ public class ManagedWindowsServiceLauncher extends ComputerLauncher { private JIDefaultAuthInfoImpl createAuth() { String[] tokens = userName.split("\\\\"); if(tokens.length==2) - return new JIDefaultAuthInfoImpl(tokens[0], tokens[1], password.toString()); - return new JIDefaultAuthInfoImpl("", userName, password.toString()); + return new JIDefaultAuthInfoImpl(tokens[0], tokens[1], Secret.toString(password)); + return new JIDefaultAuthInfoImpl("", userName, Secret.toString(password)); } private NtlmPasswordAuthentication createSmbAuth() { @@ -96,57 +105,136 @@ public class ManagedWindowsServiceLauncher extends ComputerLauncher { return new NtlmPasswordAuthentication(auth.getDomain(), auth.getUserName(), auth.getPassword()); } + @Override public void launch(final SlaveComputer computer, final TaskListener listener) throws IOException, InterruptedException { try { - PrintStream logger = listener.getLogger(); + final PrintStream logger = listener.getLogger(); + final String name = determineHost(computer); + + logger.println(Messages.ManagedWindowsServiceLauncher_ConnectingTo(name)); + + InetAddress host = InetAddress.getByName(name); + + /* + Somehow this didn't work for me, so I'm disabling it. + */ + // ping check +// if (!host.isReachable(3000)) { +// logger.println("Failed to ping "+name+". Is this a valid reachable host name?"); +// // continue anyway, just in case it's just ICMP that's getting filtered +// } + + try { + Socket s = new Socket(); + s.connect(new InetSocketAddress(host,135),5000); + s.close(); + } catch (IOException e) { + logger.println("Failed to connect to port 135 of "+name+". Is Windows firewall blocking this port? Or did you disable DCOM service?"); + // again, let it continue. + } - logger.println(Messages.ManagedWindowsServiceLauncher_ConnectingTo(computer.getName())); JIDefaultAuthInfoImpl auth = createAuth(); JISession session = JISession.createSession(auth); session.setGlobalSocketTimeout(60000); - SWbemServices services = WMI.connect(session, computer.getName()); + SWbemServices services = WMI.connect(session, name); + String path = computer.getNode().getRemoteFS(); - SmbFile remoteRoot = new SmbFile("smb://" + computer.getName() + "/" + path.replace('\\', '/').replace(':', '$')+"/",createSmbAuth()); + if (path.indexOf(':')==-1) throw new IOException("Remote file system root path of the slave needs to be absolute: "+path); + SmbFile remoteRoot = new SmbFile("smb://" + name + "/" + path.replace('\\', '/').replace(':', '$')+"/",createSmbAuth()); - Win32Service slaveService = services.getService("hudsonslave"); + if(!remoteRoot.exists()) + remoteRoot.mkdirs(); + + try {// does Java exist? + logger.println("Checking if Java exists"); + WindowsRemoteProcessLauncher wrpl = new WindowsRemoteProcessLauncher(name,auth); + Process proc = wrpl.launch("java -fullversion","c:\\"); + proc.getOutputStream().close(); + IOUtils.copy(proc.getInputStream(),logger); + proc.getInputStream().close(); + int exitCode = proc.waitFor(); + if (exitCode==1) {// we'll get this error code if Java is not found + logger.println("No Java found. Downloading JDK"); + JDKInstaller jdki = new JDKInstaller("jdk-6u16-oth-JPR@CDS-CDS_Developer",true); + URL jdk = jdki.locate(listener, Platform.WINDOWS, CPU.i386); + + listener.getLogger().println("Installing JDK"); + copyStreamAndClose(jdk.openStream(), new SmbFile(remoteRoot, "jdk.exe").getOutputStream()); + + String javaDir = path + "\\jdk"; // this is where we install Java to + + WindowsRemoteFileSystem fs = new WindowsRemoteFileSystem(name, createSmbAuth()); + fs.mkdirs(javaDir); + + jdki.install(new WindowsRemoteLauncher(listener,wrpl), Platform.WINDOWS, + fs, listener, javaDir ,path+"\\jdk.exe"); + } + } catch (Exception e) { + e.printStackTrace(listener.error("Failed to prepare Java")); + } + +// this just doesn't work --- trying to obtain the type or check the existence of smb://server/C$/ results in "access denied" +// {// check if the administrative share exists +// String fullpath = remoteRoot.getPath(); +// int idx = fullpath.indexOf("$/"); +// if (idx>=0) {// this must be true but be defensive since all we are trying to do here is a friendlier error check +// boolean exists; +// try { +// // SmbFile.exists() doesn't work on a share +// new SmbFile(fullpath.substring(0, idx + 2)).getType(); +// exists = true; +// } catch (SmbException e) { +// // on Windows XP that I was using for the test, if the share doesn't exist I get this error +// // a thread in jcifs library ML confirms this, too: +// // http://old.nabble.com/"The-network-name-cannot-be-found"-after-30-seconds-td18859163.html +// if (e.getNtStatus()== NtStatus.NT_STATUS_BAD_NETWORK_NAME) +// exists = false; +// else +// throw e; +// } +// if (!exists) { +// logger.println(name +" appears to be missing the administrative share "+fullpath.substring(idx-1,idx+1)/*C$*/); +// return; +// } +// } +// } + + String id = WindowsSlaveInstaller.generateServiceId(path); + Win32Service slaveService = services.getService(id); if(slaveService==null) { logger.println(Messages.ManagedWindowsServiceLauncher_InstallingSlaveService()); - if(!DotNet.isInstalled(2,0,computer.getName(), auth)) { + if(!DotNet.isInstalled(2,0, name, auth)) { // abort the launch logger.println(Messages.ManagedWindowsServiceLauncher_DotNetRequired()); return; } - - remoteRoot.mkdirs(); // copy exe logger.println(Messages.ManagedWindowsServiceLauncher_CopyingSlaveExe()); - copyAndClose(getClass().getResource("/windows-service/hudson.exe").openStream(), - new SmbFile(remoteRoot,"hudson-slave.exe").getOutputStream()); + copyStreamAndClose(getClass().getResource("/windows-service/hudson.exe").openStream(), new SmbFile(remoteRoot,"hudson-slave.exe").getOutputStream()); copySlaveJar(logger, remoteRoot); // copy hudson-slave.xml logger.println(Messages.ManagedWindowsServiceLauncher_CopyingSlaveXml()); - String xml = WindowsSlaveInstaller.generateSlaveXml("javaw.exe","-tcp %BASE%\\port.txt"); - copyAndClose(new ByteArrayInputStream(xml.getBytes("UTF-8")), - new SmbFile(remoteRoot,"hudson-slave.xml").getOutputStream()); + String xml = WindowsSlaveInstaller.generateSlaveXml(id,"javaw.exe","-tcp %BASE%\\port.txt"); + copyStreamAndClose(new ByteArrayInputStream(xml.getBytes("UTF-8")), new SmbFile(remoteRoot,"hudson-slave.xml").getOutputStream()); // install it as a service logger.println(Messages.ManagedWindowsServiceLauncher_RegisteringService()); Document dom = new SAXReader().read(new StringReader(xml)); Win32Service svc = services.Get("Win32_Service").cast(Win32Service.class); int r = svc.Create( - dom.selectSingleNode("/service/id").getText(), - dom.selectSingleNode("/service/name").getText(), + id, + dom.selectSingleNode("/service/name").getText()+" at "+path, path+"\\hudson-slave.exe", Win32OwnProcess, 0, "Manual", true); if(r!=0) { listener.error("Failed to create a service: "+svc.getErrorMessage(r)); return; } - slaveService = services.getService("hudsonslave"); + slaveService = services.getService(id); } else { copySlaveJar(logger, remoteRoot); } @@ -168,12 +256,13 @@ public class ManagedWindowsServiceLauncher extends ComputerLauncher { // connect logger.println(Messages.ManagedWindowsServiceLauncher_ConnectingToPort(p)); - final Socket s = new Socket(computer.getName(),p); + final Socket s = new Socket(name,p); // ready computer.setChannel(new BufferedInputStream(new SocketInputStream(s)), new BufferedOutputStream(new SocketOutputStream(s)), listener.getLogger(),new Listener() { + @Override public void onClosed(Channel channel, IOException cause) { afterDisconnect(computer,listener); } @@ -181,17 +270,27 @@ public class ManagedWindowsServiceLauncher extends ComputerLauncher { } catch (SmbException e) { e.printStackTrace(listener.error(e.getMessage())); } catch (JIException e) { - e.printStackTrace(listener.error(e.getMessage())); + if(e.getErrorCode()==5) + // access denied error + e.printStackTrace(listener.error(Messages.ManagedWindowsServiceLauncher_AccessDenied())); + else + e.printStackTrace(listener.error(e.getMessage())); } catch (DocumentException e) { e.printStackTrace(listener.error(e.getMessage())); } } + /** + * Determines the host name (or the IP address) to connect to. + */ + protected String determineHost(Computer c) throws IOException, InterruptedException { + return c.getName(); + } + private void copySlaveJar(PrintStream logger, SmbFile remoteRoot) throws IOException { // copy slave.jar logger.println("Copying slave.jar"); - copyAndClose(Hudson.getInstance().getJnlpJars("slave.jar").getURL().openStream(), - new SmbFile(remoteRoot,"slave.jar").getOutputStream()); + copyStreamAndClose(Hudson.getInstance().getJnlpJars("slave.jar").getURL().openStream(), new SmbFile(remoteRoot,"slave.jar").getOutputStream()); } private int readSmbFile(SmbFile f) throws IOException { @@ -223,17 +322,6 @@ public class ManagedWindowsServiceLauncher extends ComputerLauncher { } } - private static void copyAndClose(InputStream in, OutputStream out) { - try { - IOUtils.copy(in,out); - } catch (IOException e) { - e.printStackTrace(); - } finally { - IOUtils.closeQuietly(in); - IOUtils.closeQuietly(out); - } - } - @Extension public static class DescriptorImpl extends Descriptor { public String getDisplayName() { diff --git a/core/src/main/java/hudson/os/windows/WindowsRemoteFileSystem.java b/core/src/main/java/hudson/os/windows/WindowsRemoteFileSystem.java new file mode 100644 index 0000000000000000000000000000000000000000..f1b73f3f4a67aa7165eadd26fcb563e300d6381d --- /dev/null +++ b/core/src/main/java/hudson/os/windows/WindowsRemoteFileSystem.java @@ -0,0 +1,60 @@ +package hudson.os.windows; + +import hudson.tools.JDKInstaller.FileSystem; +import jcifs.smb.NtlmPasswordAuthentication; +import jcifs.smb.SmbFile; + +import java.io.IOException; +import java.io.InputStream; +import java.net.MalformedURLException; +import java.util.List; + +import static java.util.Arrays.asList; + +/** + * {@link FileSystem} implementation for remote Windows system. + * + * @author Kohsuke Kawaguchi + */ +public class WindowsRemoteFileSystem implements FileSystem { + private final String hostName; + private final NtlmPasswordAuthentication auth; + + public WindowsRemoteFileSystem(String hostName, NtlmPasswordAuthentication auth) { + this.hostName = hostName; + this.auth = auth; + } + + private SmbFile $(String path) throws MalformedURLException { + return new SmbFile("smb://" + hostName + "/" + path.replace('\\', '/').replace(':', '$')+"/",auth); + } + + public void delete(String file) throws IOException, InterruptedException { + $(file).delete(); + } + + public void chmod(String file, int mode) throws IOException, InterruptedException { + // no-op on Windows + } + + public InputStream read(String file) throws IOException { + return $(file).getInputStream(); + } + + public List listSubDirectories(String dir) throws IOException, InterruptedException { + return asList($(dir).list()); + } + + public void pullUp(String from, String to) throws IOException, InterruptedException { + SmbFile src = $(from); + SmbFile dst = $(to); + for (SmbFile e : src.listFiles()) { + e.renameTo(new SmbFile(dst,e.getName())); + } + src.delete(); + } + + public void mkdirs(String path) throws IOException { + $(path).mkdirs(); + } +} diff --git a/core/src/main/java/hudson/os/windows/WindowsRemoteLauncher.java b/core/src/main/java/hudson/os/windows/WindowsRemoteLauncher.java new file mode 100644 index 0000000000000000000000000000000000000000..5e4115f3afe3c7350438befca475df075acc5e6d --- /dev/null +++ b/core/src/main/java/hudson/os/windows/WindowsRemoteLauncher.java @@ -0,0 +1,111 @@ +package hudson.os.windows; + +import hudson.FilePath; +import hudson.Launcher; +import hudson.Proc; +import hudson.Util; +import hudson.model.Computer; +import hudson.model.TaskListener; +import hudson.remoting.Channel; +import hudson.util.IOException2; +import hudson.util.StreamCopyThread; +import org.jinterop.dcom.common.JIException; +import org.jvnet.hudson.remcom.WindowsRemoteProcessLauncher; + +import java.io.BufferedOutputStream; +import java.io.IOException; +import java.io.OutputStream; +import java.util.Map; + +import static java.util.Arrays.asList; + +/** + * Pseudo-{@link Launcher} implementation that uses {@link WindowsRemoteProcessLauncher} + * + * @author Kohsuke Kawaguchi + */ +public class WindowsRemoteLauncher extends Launcher { + private final WindowsRemoteProcessLauncher launcher; + + public WindowsRemoteLauncher(TaskListener listener, WindowsRemoteProcessLauncher launcher) { + super(listener,null); + this.launcher = launcher; + } + + private String buildCommandLine(ProcStarter ps) { + StringBuilder b = new StringBuilder(); + for (String cmd : ps.cmds()) { + if (b.length()>0) b.append(' '); + if (cmd.indexOf(' ')>=0) + b.append('"').append(cmd).append('"'); + else + b.append(cmd); + } + return b.toString(); + } + + public Proc launch(ProcStarter ps) throws IOException { + maskedPrintCommandLine(ps.cmds(), ps.masks(), ps.pwd()); + + // TODO: environment variable handling + + String name = ps.cmds().toString(); + + final Process proc; + try { + proc = launcher.launch(buildCommandLine(ps), ps.pwd().getRemote()); + } catch (JIException e) { + throw new IOException2(e); + } catch (InterruptedException e) { + throw new IOException2(e); + } + final Thread t1 = new StreamCopyThread("stdout copier: "+name, proc.getInputStream(), ps.stdout(),false); + t1.start(); + final Thread t2 = new StreamCopyThread("stdin copier: "+name,ps.stdin(), proc.getOutputStream(),true); + t2.start(); + + return new Proc() { + public boolean isAlive() throws IOException, InterruptedException { + try { + proc.exitValue(); + return false; + } catch (IllegalThreadStateException e) { + return true; + } + } + + public void kill() throws IOException, InterruptedException { + t1.interrupt(); + t2.interrupt(); + proc.destroy(); + } + + public int join() throws IOException, InterruptedException { + try { + t1.join(); + t2.join(); + return proc.waitFor(); + } finally { + proc.destroy(); + } + } + }; + } + + public Channel launchChannel(String[] cmd, OutputStream out, FilePath _workDir, Map envVars) throws IOException, InterruptedException { + printCommandLine(cmd, _workDir); + + try { + Process proc = launcher.launch(Util.join(asList(cmd), " "), _workDir.getRemote()); + + return new Channel("channel over named pipe to "+launcher.getHostName(), + Computer.threadPoolForRemoting, proc.getInputStream(), new BufferedOutputStream(proc.getOutputStream())); + } catch (JIException e) { + throw new IOException2(e); + } + } + + public void kill(Map modelEnvVars) throws IOException, InterruptedException { + // no way to do this + } +} diff --git a/core/src/main/java/hudson/scheduler/CronTab.java b/core/src/main/java/hudson/scheduler/CronTab.java index 3f4c8b899efb657f05ea56c6e55415cf18d8a5c9..2cd380230855bab3cc06bd8fcbc3912c294a299a 100644 --- a/core/src/main/java/hudson/scheduler/CronTab.java +++ b/core/src/main/java/hudson/scheduler/CronTab.java @@ -1,7 +1,7 @@ /* * The MIT License * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi + * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, InfraDNA, Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -27,6 +27,9 @@ import antlr.ANTLRException; import java.io.StringReader; import java.util.Calendar; +import java.util.GregorianCalendar; + +import static java.util.Calendar.*; /** * Table for driving scheduled tasks. @@ -75,13 +78,13 @@ public final class CronTab { * Returns true if the given calendar matches */ boolean check(Calendar cal) { - if(!checkBits(bits[0],cal.get(Calendar.MINUTE))) + if(!checkBits(bits[0],cal.get(MINUTE))) return false; - if(!checkBits(bits[1],cal.get(Calendar.HOUR_OF_DAY))) + if(!checkBits(bits[1],cal.get(HOUR_OF_DAY))) return false; - if(!checkBits(bits[2],cal.get(Calendar.DAY_OF_MONTH))) + if(!checkBits(bits[2],cal.get(DAY_OF_MONTH))) return false; - if(!checkBits(bits[3],cal.get(Calendar.MONTH)+1)) + if(!checkBits(bits[3],cal.get(MONTH)+1)) return false; if(!checkBits(dayOfWeek,cal.get(Calendar.DAY_OF_WEEK)-1)) return false; @@ -89,6 +92,243 @@ public final class CronTab { return true; } + private static abstract class CalendarField { + /** + * {@link Calendar} field ID. + */ + private final int field; + /** + * Lower field is a calendar field whose value needs to be reset when we change the value in this field. + * For example, if we modify the value in HOUR, MINUTES must be reset. + */ + private final CalendarField lowerField; + private final int offset; + /** + * When we reset this field, we set the field to this value. + * For example, resetting {@link Calendar#DAY_OF_MONTH} means setting it to 1. + */ + private final int min; + /** + * If this calendar field has other aliases such that a change in this field + * modifies other field values, then true. + */ + private final boolean redoAdjustmentIfModified; + + private CalendarField(int field, int min, int offset, boolean redoAdjustmentIfModified, CalendarField lowerField) { + this.field = field; + this.min = min; + this.redoAdjustmentIfModified= redoAdjustmentIfModified; + this.lowerField = lowerField; + this.offset = offset; + } + + /** + * Gets the current value of this field in the given calendar. + */ + private int valueOf(Calendar c) { + return c.get(field)+offset; + } + + private void addTo(Calendar c, int i) { + c.add(field,i); + } + + private void setTo(Calendar c, int i) { + c.set(field,i-offset); + } + + private void clear(Calendar c) { + setTo(c, min); + } + + /** + * Given the value 'n' (which represents the current value), finds the smallest x such that: + * 1) x matches the specified {@link CronTab} (as far as this field is concerned.) + * 2) x>=n (inclusive) + * + * If there's no such bit, return -1. Note that if 'n' already matches the crontab, the same n will be returned. + */ + private int ceil(CronTab c, int n) { + long bits = bits(c); + while ((bits|(1L<60) return -1; + n++; + } + return n; + } + + /** + * Given a bit mask, finds the first bit that's on, and return its index. + */ + private int first(CronTab c) { + return ceil(c,0); + } + + private int floor(CronTab c, int n) { + long bits = bits(c); + while ((bits|(1L< + * More precisely, given the time 't', computes another smallest time x such that: + * + *
      + *
    • x >= t (inclusive) + *
    • x matches this crontab + *
    + * + *

    + * Note that if t already matches this cron, it's returned as is. + */ + public Calendar ceil(long t) { + Calendar cal = new GregorianCalendar(); + cal.setTimeInMillis(t); + return ceil(cal); + } + + /** + * See {@link #ceil(long)}. + * + * This method modifies the given calendar and returns the same object. + */ + public Calendar ceil(Calendar cal) { + OUTER: + while (true) { + for (CalendarField f : CalendarField.ADJUST_ORDER) { + int cur = f.valueOf(cal); + int next = f.ceil(this,cur); + if (cur==next) continue; // this field is already in a good shape. move on to next + + // we are modifying this field, so clear all the lower level fields + for (CalendarField l=f.lowerField; l!=null; l=l.lowerField) + l.clear(cal); + + if (next<0) { + // we need to roll over to the next field. + f.rollUp(cal, 1); + f.setTo(cal,f.first(this)); + // since higher order field is affected by this, we need to restart from all over + continue OUTER; + } else { + f.setTo(cal,next); + if (f.redoAdjustmentIfModified) + continue OUTER; // when we modify DAY_OF_MONTH and DAY_OF_WEEK, do it all over from the top + } + } + return cal; // all fields adjusted + } + } + + /** + * Computes the nearest past timestamp that matched this cron tab. + *

    + * More precisely, given the time 't', computes another smallest time x such that: + * + *

      + *
    • x <= t (inclusive) + *
    • x matches this crontab + *
    + * + *

    + * Note that if t already matches this cron, it's returned as is. + */ + public Calendar floor(long t) { + Calendar cal = new GregorianCalendar(); + cal.setTimeInMillis(t); + return floor(cal); + } + + /** + * See {@link #floor(long)} + * + * This method modifies the given calendar and returns the same object. + */ + public Calendar floor(Calendar cal) { + OUTER: + while (true) { + for (CalendarField f : CalendarField.ADJUST_ORDER) { + int cur = f.valueOf(cal); + int next = f.floor(this,cur); + if (cur==next) continue; // this field is already in a good shape. move on to next + + // we are modifying this field, so clear all the lower level fields + for (CalendarField l=f.lowerField; l!=null; l=l.lowerField) + l.clear(cal); + + if (next<0) { + // we need to borrow from the next field. + f.rollUp(cal,-1); + // the problem here, in contrast with the ceil method, is that + // the maximum value of the field is not always a fixed value (that is, day of month) + // so we zero-clear all the lower fields, set the desired value +1, + f.setTo(cal,f.last(this)); + f.addTo(cal,1); + // then subtract a minute to achieve maximum values on all the lower fields, + // with the desired value in 'f' + CalendarField.MINUTE.addTo(cal,-1); + // since higher order field is affected by this, we need to restart from all over + continue OUTER; + } else { + f.setTo(cal,next); + f.addTo(cal,1); + CalendarField.MINUTE.addTo(cal,-1); + if (f.redoAdjustmentIfModified) + continue OUTER; // when we modify DAY_OF_MONTH and DAY_OF_WEEK, do it all over from the top + } + } + return cal; // all fields adjusted + } + } + void set(String format) throws ANTLRException { set(format,1); } diff --git a/core/src/main/java/hudson/scheduler/package.html b/core/src/main/java/hudson/scheduler/package.html index 741b8fe951ef5b501267727941d687ed61cfa3e9..6809b27ad9a6e44761a906190ef5ec7601fc3879 100644 --- a/core/src/main/java/hudson/scheduler/package.html +++ b/core/src/main/java/hudson/scheduler/package.html @@ -1,7 +1,7 @@ - - - Classes that implement cron-like features - - \ No newline at end of file + +Classes that implement cron-like features + \ No newline at end of file diff --git a/core/src/main/java/hudson/scm/AutoBrowserHolder.java b/core/src/main/java/hudson/scm/AutoBrowserHolder.java index d2d35e718c17c645f45cb4791e80cf4033156f2a..e57722dbe5f0d88d8518d59e91cc90549a11f7d8 100644 --- a/core/src/main/java/hudson/scm/AutoBrowserHolder.java +++ b/core/src/main/java/hudson/scm/AutoBrowserHolder.java @@ -27,12 +27,12 @@ import hudson.model.AbstractProject; import hudson.model.Hudson; /** - * Maintains the automatically infered {@link RepositoryBrowser} instance. + * Maintains the automatically inferred {@link RepositoryBrowser} instance. * *

    * To reduce the user's work, Hudson tries to infer applicable {@link RepositoryBrowser} * from configurations of other jobs. But this needs caution — for example, - * such infered {@link RepositoryBrowser} must be recalculated whenever + * such inferred {@link RepositoryBrowser} must be recalculated whenever * a job configuration changes somewhere. * *

    @@ -57,8 +57,8 @@ final class AutoBrowserHolder { } /** - * Picks up a {@link CVSRepositoryBrowser} that matches the - * given {@link CVSSCM} from existing other jobs. + * Picks up a {@link RepositoryBrowser} that matches the + * given {@link SCM} from existing other jobs. * * @return * null if no applicable configuration was found. diff --git a/core/src/main/java/hudson/scm/CVSChangeLogParser.java b/core/src/main/java/hudson/scm/CVSChangeLogParser.java deleted file mode 100644 index 6018ea9033bb5295c688ad7b1746e04060375201..0000000000000000000000000000000000000000 --- a/core/src/main/java/hudson/scm/CVSChangeLogParser.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - * The MIT License - * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ -package hudson.scm; - -import hudson.model.AbstractBuild; -import org.xml.sax.SAXException; - -import java.io.File; -import java.io.IOException; - -/** - * {@link ChangeLogParser} for CVS. - * @author Kohsuke Kawaguchi - */ -public class CVSChangeLogParser extends ChangeLogParser { - public CVSChangeLogSet parse(AbstractBuild build, File changelogFile) throws IOException, SAXException { - return CVSChangeLogSet.parse(build,changelogFile); - } -} diff --git a/core/src/main/java/hudson/scm/CVSChangeLogSet.java b/core/src/main/java/hudson/scm/CVSChangeLogSet.java deleted file mode 100644 index ab4a6d17127925d0847b1a0a9daad2918c3ebb23..0000000000000000000000000000000000000000 --- a/core/src/main/java/hudson/scm/CVSChangeLogSet.java +++ /dev/null @@ -1,400 +0,0 @@ -/* - * The MIT License - * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ -package hudson.scm; - -import hudson.model.AbstractBuild; -import hudson.model.User; -import hudson.scm.CVSChangeLogSet.CVSChangeLog; -import hudson.util.IOException2; -import hudson.util.Digester2; -import org.kohsuke.stapler.export.Exported; -import org.kohsuke.stapler.export.ExportedBean; -import org.apache.commons.digester.Digester; -import org.xml.sax.SAXException; - -import java.io.IOException; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Iterator; -import java.util.List; -import java.util.Collection; -import java.util.AbstractList; - -/** - * {@link ChangeLogSet} for CVS. - * @author Kohsuke Kawaguchi - */ -public final class CVSChangeLogSet extends ChangeLogSet { - private List logs; - - public CVSChangeLogSet(AbstractBuild build, List logs) { - super(build); - this.logs = Collections.unmodifiableList(logs); - for (CVSChangeLog log : logs) - log.setParent(this); - } - - /** - * Returns the read-only list of changes. - */ - public List getLogs() { - return logs; - } - - @Override - public boolean isEmptySet() { - return logs.isEmpty(); - } - - - public Iterator iterator() { - return logs.iterator(); - } - - @Override - public String getKind() { - return "cvs"; - } - - public static CVSChangeLogSet parse( AbstractBuild build, java.io.File f ) throws IOException, SAXException { - Digester digester = new Digester2(); - ArrayList r = new ArrayList(); - digester.push(r); - - digester.addObjectCreate("*/entry",CVSChangeLog.class); - digester.addBeanPropertySetter("*/entry/date"); - digester.addBeanPropertySetter("*/entry/time"); - digester.addBeanPropertySetter("*/entry/author","user"); - digester.addBeanPropertySetter("*/entry/msg"); - digester.addSetNext("*/entry","add"); - - digester.addObjectCreate("*/entry/file",File.class); - digester.addBeanPropertySetter("*/entry/file/name"); - digester.addBeanPropertySetter("*/entry/file/fullName"); - digester.addBeanPropertySetter("*/entry/file/revision"); - digester.addBeanPropertySetter("*/entry/file/prevrevision"); - digester.addCallMethod("*/entry/file/dead","setDead"); - digester.addSetNext("*/entry/file","addFile"); - - try { - digester.parse(f); - } catch (IOException e) { - throw new IOException2("Failed to parse "+f,e); - } catch (SAXException e) { - throw new IOException2("Failed to parse "+f,e); - } - - // merge duplicate entries. Ant task somehow seems to report duplicate entries. - for(int i=r.size()-1; i>=0; i--) { - CVSChangeLog log = r.get(i); - boolean merged = false; - if(!log.isComplete()) { - r.remove(log); - continue; - } - for(int j=0;j files = new ArrayList(); - - /** - * Returns true if all the fields that are supposed to be non-null is present. - * This is used to make sure the XML file was correct. - */ - public boolean isComplete() { - return date!=null && time!=null && msg!=null; - } - - /** - * Checks if two {@link CVSChangeLog} entries can be merged. - * This is to work around the duplicate entry problems. - */ - public boolean canBeMergedWith(CVSChangeLog that) { - if(!this.date.equals(that.date)) - return false; - if(!this.time.equals(that.time)) // TODO: perhaps check this loosely? - return false; - if(this.author==null || that.author==null || !this.author.equals(that.author)) - return false; - if(!this.msg.equals(that.msg)) - return false; - return true; - } - - public void merge(CVSChangeLog that) { - this.files.addAll(that.files); - for (File f : that.files) - f.parent = this; - } - - @Exported - public String getDate() { - return date; - } - - public void setDate(String date) { - this.date = date; - } - - @Exported - public String getTime() { - return time; - } - - public void setTime(String time) { - this.time = time; - } - - @Exported - public User getAuthor() { - if(author==null) - return User.getUnknown(); - return author; - } - - public Collection getAffectedPaths() { - return new AbstractList() { - public String get(int index) { - return files.get(index).getName(); - } - - public int size() { - return files.size(); - } - }; - } - - public void setUser(String author) { - this.author = User.get(author); - } - - @Exported - public String getUser() {// digester wants read/write property, even though it never reads. Duh. - return author.getDisplayName(); - } - - @Exported - public String getMsg() { - return msg; - } - - public void setMsg(String msg) { - this.msg = msg; - } - - public void addFile( File f ) { - f.parent = this; - files.add(f); - } - - @Exported - public List getFiles() { - return files; - } - } - - @ExportedBean(defaultVisibility=999) - public static class File { - private String name; - private String fullName; - private String revision; - private String prevrevision; - private boolean dead; - private CVSChangeLog parent; - - /** - * Gets the path name in the CVS repository, like - * "foo/bar/zot.c" - * - *

    - * The path is relative to the workspace root. - */ - @Exported - public String getName() { - return name; - } - - /** - * Gets the full path name in the CVS repository, - * like "/module/foo/bar/zot.c" - * - *

    - * Unlike {@link #getName()}, this method returns - * a full name from the root of the CVS repository. - */ - @Exported - public String getFullName() { - if(fullName==null) { - // Hudson < 1.91 doesn't record full path name for CVS, - // so try to infer that from the current CVS setting. - // This is an approximation since the config could have changed - // since this build has done. - SCM scm = parent.getParent().build.getProject().getScm(); - if(scm instanceof CVSSCM) { - CVSSCM cvsscm = (CVSSCM) scm; - if(cvsscm.isFlatten()) { - fullName = '/'+cvsscm.getAllModules()+'/'+name; - } else { - // multi-module set up. - fullName = '/'+name; - } - } else { - // no way to infer. - fullName = '/'+name; - } - } - return fullName; - } - - public void setFullName(String fullName) { - this.fullName = fullName; - } - - /** - * Gets just the last component of the path, like "zot.c" - */ - public String getSimpleName() { - int idx = name.lastIndexOf('/'); - if(idx>0) return name.substring(idx+1); - return name; - } - - public void setName(String name) { - this.name = name; - } - - @Exported - public String getRevision() { - return revision; - } - - public void setRevision(String revision) { - this.revision = revision; - } - - @Exported - public String getPrevrevision() { - return prevrevision; - } - - public void setPrevrevision(String prevrevision) { - this.prevrevision = prevrevision; - } - - @Exported - public boolean isDead() { - return dead; - } - - public void setDead() { - this.dead = true; - } - - @Exported - public EditType getEditType() { - // see issue #73. Can't do much better right now - if(dead) - return EditType.DELETE; - if(revision.equals("1.1")) - return EditType.ADD; - return EditType.EDIT; - } - - public CVSChangeLog getParent() { - return parent; - } - } - - /** - * Represents CVS revision number like "1.5.3.2". Immutable. - */ - public static class Revision { - public final int[] numbers; - - public Revision(int[] numbers) { - this.numbers = numbers; - assert numbers.length%2==0; - } - - public Revision(String s) { - String[] tokens = s.split("\\."); - numbers = new int[tokens.length]; - for( int i=0; i"1.4", "1.5.2.13"->"1.5.2.12", "1.5.2.1"->"1.5" - * - * @return - * null if there's no previous version, meaning this is "1.1" - */ - public Revision getPrevious() { - if(numbers[numbers.length-1]==1) { - // x.y.z.1 => x.y - int[] p = new int[numbers.length-2]; - System.arraycopy(numbers,0,p,0,p.length); - if(p.length==0) return null; - return new Revision(p); - } - - int[] p = numbers.clone(); - p[p.length-1]--; - - return new Revision(p); - } - - public String toString() { - StringBuilder buf = new StringBuilder(); - for (int n : numbers) { - if(buf.length()>0) buf.append('.'); - buf.append(n); - } - return buf.toString(); - } - } -} diff --git a/core/src/main/java/hudson/scm/CVSRepositoryBrowser.java b/core/src/main/java/hudson/scm/CVSRepositoryBrowser.java deleted file mode 100644 index bb257beb3fc8782e4bdf65f00eb691ca83ac64ad..0000000000000000000000000000000000000000 --- a/core/src/main/java/hudson/scm/CVSRepositoryBrowser.java +++ /dev/null @@ -1,56 +0,0 @@ -/* - * The MIT License - * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ -package hudson.scm; - -import hudson.scm.CVSChangeLogSet.CVSChangeLog; - -import java.io.IOException; -import java.net.URL; - -/** - * {@link RepositoryBrowser} for CVS. - * - * @author Kohsuke Kawaguchi - */ -public abstract class CVSRepositoryBrowser extends RepositoryBrowser { - /** - * Determines the link to the diff between the version - * in the {@link CVSChangeLogSet.File} to its previous version. - * - * @return - * null if the browser doesn't have any URL for diff. - */ - public abstract URL getDiffLink(CVSChangeLogSet.File file) throws IOException; - - /** - * Determines the link to a single file under CVS. - * This page should display all the past revisions of this file, etc. - * - * @return - * null if the browser doesn't have any suitable URL. - */ - public abstract URL getFileLink(CVSChangeLogSet.File file) throws IOException; - - private static final long serialVersionUID = 1L; -} diff --git a/core/src/main/java/hudson/scm/CVSSCM.java b/core/src/main/java/hudson/scm/CVSSCM.java deleted file mode 100644 index b020d36c6a3e5bd3db48016b0c10d6556f771582..0000000000000000000000000000000000000000 --- a/core/src/main/java/hudson/scm/CVSSCM.java +++ /dev/null @@ -1,1578 +0,0 @@ -/* - * The MIT License - * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Jene Jasper, Stephen Connolly - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ -package hudson.scm; - -import hudson.EnvVars; -import hudson.FilePath; -import hudson.FilePath.FileCallable; -import hudson.Launcher; -import hudson.Proc; -import hudson.Util; -import hudson.Extension; -import static hudson.Util.fixEmpty; -import static hudson.Util.fixNull; -import hudson.model.AbstractBuild; -import hudson.model.AbstractProject; -import hudson.model.BuildListener; -import hudson.model.Hudson; -import hudson.model.ModelObject; -import hudson.model.Run; -import hudson.model.TaskListener; -import hudson.model.TaskThread; -import hudson.model.Item; -import hudson.org.apache.tools.ant.taskdefs.cvslib.ChangeLogTask; -import hudson.remoting.Future; -import hudson.remoting.RemoteOutputStream; -import hudson.remoting.VirtualChannel; -import hudson.security.Permission; -import hudson.util.ArgumentListBuilder; -import hudson.util.ForkOutputStream; -import hudson.util.IOException2; -import hudson.util.FormValidation; -import org.apache.commons.io.FileUtils; -import org.apache.commons.io.IOUtils; -import org.apache.tools.ant.BuildException; -import org.apache.tools.ant.taskdefs.Expand; -import org.apache.tools.zip.ZipEntry; -import org.apache.tools.zip.ZipOutputStream; -import org.kohsuke.stapler.StaplerRequest; -import org.kohsuke.stapler.StaplerResponse; -import org.kohsuke.stapler.DataBoundConstructor; -import org.kohsuke.stapler.QueryParameter; -import org.kohsuke.stapler.AncestorInPath; -import org.kohsuke.stapler.framework.io.ByteBuffer; - -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletResponse; -import java.io.BufferedOutputStream; -import java.io.BufferedReader; -import java.io.ByteArrayInputStream; -import java.io.ByteArrayOutputStream; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.FileReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.io.OutputStream; -import java.io.PrintWriter; -import java.io.Serializable; -import java.io.StringWriter; -import java.text.DateFormat; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Date; -import java.util.Enumeration; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Locale; -import java.util.Map; -import java.util.Map.Entry; -import java.util.Set; -import java.util.TimeZone; -import java.util.TreeSet; -import java.util.concurrent.ExecutionException; -import java.util.regex.Matcher; -import java.util.regex.Pattern; -import java.util.regex.PatternSyntaxException; - -import net.sf.json.JSONObject; - -/** - * CVS. - * - *

    - * I couldn't call this class "CVS" because that would cause the view folder name - * to collide with CVS control files. - * - *

    - * This object gets shipped to the remote machine to perform some of the work, - * so it implements {@link Serializable}. - * - * @author Kohsuke Kawaguchi - */ -public class CVSSCM extends SCM implements Serializable { - /** - * CVSSCM connection string, like ":pserver:me@host:/cvs" - */ - private String cvsroot; - - /** - * Module names. - * - * This could be a whitespace/NL-separated list of multiple modules. - * Modules could be either directories or files. "\ " is used to escape - * " ", which is needed for modules with whitespace in it. - */ - private String module; - - private String branch; - - private String cvsRsh; - - private boolean canUseUpdate; - - /** - * True to avoid creating a sub-directory inside the workspace. - * (Works only when there's just one module.) - */ - private boolean flatten; - - private CVSRepositoryBrowser repositoryBrowser; - - private boolean isTag; - - private String excludedRegions; - - @DataBoundConstructor - public CVSSCM(String cvsRoot, String module,String branch,String cvsRsh,boolean canUseUpdate, boolean legacy, boolean isTag, String excludedRegions) { - if(fixNull(branch).equals("HEAD")) - branch = null; - - this.cvsroot = cvsRoot; - this.module = module.trim(); - this.branch = nullify(branch); - this.cvsRsh = nullify(cvsRsh); - this.canUseUpdate = canUseUpdate; - this.flatten = !legacy && getAllModulesNormalized().length==1; - this.isTag = isTag; - this.excludedRegions = excludedRegions; - } - - @Override - public CVSRepositoryBrowser getBrowser() { - return repositoryBrowser; - } - - private String compression() { - if(getDescriptor().isNoCompression()) - return null; - - // CVS 1.11.22 manual: - // If the access method is omitted, then if the repository starts with - // `/', then `:local:' is assumed. If it does not start with `/' then - // either `:ext:' or `:server:' is assumed. - boolean local = cvsroot.startsWith("/") || cvsroot.startsWith(":local:") || cvsroot.startsWith(":fork:"); - // For local access, compression is senseless. For remote, use z3: - // http://root.cern.ch/root/CVS.html#checkout - return local ? "-z0" : "-z3"; - } - - public String getCvsRoot() { - return cvsroot; - } - - /** - * Returns true if {@link #getBranch()} represents a tag. - *

    - * This causes Hudson to stop using "-D" option while check out and update. - */ - public boolean isTag() { - return isTag; - } - - /** - * If there are multiple modules, return the module directory of the first one. - * @param workspace - */ - public FilePath getModuleRoot(FilePath workspace) { - if(flatten) - return workspace; - - return workspace.child(getAllModulesNormalized()[0]); - } - - public FilePath[] getModuleRoots(FilePath workspace) { - if (!flatten) { - final String[] moduleLocations = getAllModulesNormalized(); - FilePath[] moduleRoots = new FilePath[moduleLocations.length]; - for (int i = 0; i < moduleLocations.length; i++) { - moduleRoots[i] = workspace.child(moduleLocations[i]); - } - return moduleRoots; - } - return new FilePath[]{getModuleRoot(workspace)}; - } - - public ChangeLogParser createChangeLogParser() { - return new CVSChangeLogParser(); - } - - public String getAllModules() { - return module; - } - - public String getExcludedRegions() { - return excludedRegions; - } - - public String[] getExcludedRegionsNormalized() { - return excludedRegions == null ? null : excludedRegions.split("[\\r\\n]+"); - } - - private Pattern[] getExcludedRegionsPatterns() { - String[] excludedRegions = getExcludedRegionsNormalized(); - if (excludedRegions != null) - { - Pattern[] patterns = new Pattern[excludedRegions.length]; - - int i = 0; - for (String excludedRegion : excludedRegions) - { - patterns[i++] = Pattern.compile(excludedRegion); - } - - return patterns; - } - - return null; - } - - /** - * List up all modules to check out. - */ - public String[] getAllModulesNormalized() { - // split by whitespace, except "\ " - String[] r = module.split("(? changedFiles = update(true, launcher, dir, listener, new Date()); - - if (changedFiles != null && !changedFiles.isEmpty()) - { - Pattern[] patterns = getExcludedRegionsPatterns(); - - if (patterns != null) - { - boolean areThereChanges = false; - - for (String changedFile : changedFiles) - { - boolean patternMatched = false; - - for (Pattern pattern : patterns) - { - if (pattern.matcher(changedFile).matches()) - { - patternMatched = true; - break; - } - } - - if (!patternMatched) - { - areThereChanges = true; - break; - } - } - - return areThereChanges; - } - - // no excluded patterns so just return true as - // changedFiles != null && !changedFiles.isEmpty() is true - return true; - } - - return false; - } - - private void configureDate(ArgumentListBuilder cmd, Date date) { // #192 - if(isTag) return; // don't use the -D option. - DateFormat df = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL, Locale.US); - df.setTimeZone(TimeZone.getTimeZone("UTC")); // #209 - cmd.add("-D", df.format(date)); - } - - public boolean checkout(AbstractBuild build, Launcher launcher, FilePath ws, BuildListener listener, File changelogFile) throws IOException, InterruptedException { - List changedFiles = null; // files that were affected by update. null this is a check out - - if(canUseUpdate && isUpdatable(ws)==null) { - changedFiles = update(false, launcher, ws, listener, build.getTimestamp().getTime()); - if(changedFiles==null) - return false; // failed - } else { - if(!checkout(launcher,ws,listener,build.getTimestamp().getTime())) - return false; - } - - // archive the workspace to support later tagging - File archiveFile = getArchiveFile(build); - final OutputStream os = new RemoteOutputStream(new FileOutputStream(archiveFile)); - - ws.act(new FileCallable() { - public Void invoke(File ws, VirtualChannel channel) throws IOException { - ZipOutputStream zos = new ZipOutputStream(new BufferedOutputStream(os)); - - if(flatten) { - archive(ws, module, zos,true); - } else { - for (String m : getAllModulesNormalized()) { - File mf = new File(ws, m); - - if(!mf.exists()) - // directory doesn't exist. This happens if a directory that was checked out - // didn't include any file. - continue; - - if(!mf.isDirectory()) { - // this module is just a file, say "foo/bar.txt". - // to record "foo/CVS/*", we need to start by archiving "foo". - int idx = m.lastIndexOf('/'); - if(idx==-1) - throw new Error("Kohsuke probe: m="+m); - m = m.substring(0, idx); - mf = mf.getParentFile(); - } - archive(mf,m,zos,true); - } - } - zos.close(); - return null; - } - }); - - // contribute the tag action - build.getActions().add(new TagAction(build)); - - return calcChangeLog(build, ws, changedFiles, changelogFile, listener); - } - - public boolean checkout(Launcher launcher, FilePath dir, TaskListener listener) throws IOException, InterruptedException { - Date now = new Date(); - if(canUseUpdate && isUpdatable(dir)==null) { - return update(false, launcher, dir, listener, now)!=null; - } else { - return checkout(launcher,dir,listener, now); - } - } - - private boolean checkout(Launcher launcher, FilePath dir, TaskListener listener, Date dt) throws IOException, InterruptedException { - dir.deleteContents(); - - ArgumentListBuilder cmd = new ArgumentListBuilder(); - cmd.add(getDescriptor().getCvsExeOrDefault(), debug ?"-t":"-Q",compression(),"-d",cvsroot,"co","-P"); - if(branch!=null) - cmd.add("-r",branch); - if(flatten) - cmd.add("-d",dir.getName()); - configureDate(cmd,dt); - cmd.add(getAllModulesNormalized()); - - if(!run(launcher,cmd,listener, flatten ? dir.getParent() : dir)) - return false; - - // clean up the sticky tag - if(flatten) - dir.act(new StickyDateCleanUpTask()); - else { - for (String module : getAllModulesNormalized()) { - dir.child(module).act(new StickyDateCleanUpTask()); - } - } - return true; - } - - /** - * Returns the file name used to archive the build. - */ - private static File getArchiveFile(AbstractBuild build) { - return new File(build.getRootDir(),"workspace.zip"); - } - - /** - * Archives all the CVS-controlled files in {@code dir}. - * - * @param relPath - * The path name in ZIP to store this directory with. - */ - private void archive(File dir,String relPath,ZipOutputStream zos, boolean isRoot) throws IOException { - Set knownFiles = new HashSet(); - // see http://www.monkey.org/openbsd/archive/misc/9607/msg00056.html for what Entries.Log is for - parseCVSEntries(new File(dir,"CVS/Entries"),knownFiles); - parseCVSEntries(new File(dir,"CVS/Entries.Log"),knownFiles); - parseCVSEntries(new File(dir,"CVS/Entries.Extra"),knownFiles); - boolean hasCVSdirs = !knownFiles.isEmpty(); - knownFiles.add("CVS"); - - File[] files = dir.listFiles(); - if(files==null) { - if(isRoot) - throw new IOException("No such directory exists. Did you specify the correct branch? Perhaps you specified a tag: "+dir); - else - throw new IOException("No such directory exists. Looks like someone is modifying the workspace concurrently: "+dir); - } - for( File f : files ) { - String name = relPath+'/'+f.getName(); - if(f.isDirectory()) { - if(hasCVSdirs && !knownFiles.contains(f.getName())) { - // not controlled in CVS. Skip. - // but also make sure that we archive CVS/*, which doesn't have CVS/CVS - continue; - } - archive(f,name,zos,false); - } else { - if(!dir.getName().equals("CVS")) - // we only need to archive CVS control files, not the actual workspace files - continue; - zos.putNextEntry(new ZipEntry(name)); - FileInputStream fis = new FileInputStream(f); - Util.copyStream(fis,zos); - fis.close(); - zos.closeEntry(); - } - } - } - - /** - * Parses the CVS/Entries file and adds file/directory names to the list. - */ - private void parseCVSEntries(File entries, Set knownFiles) throws IOException { - if(!entries.exists()) - return; - - BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(entries))); - String line; - while((line=in.readLine())!=null) { - String[] tokens = line.split("/+"); - if(tokens==null || tokens.length<2) continue; // invalid format - knownFiles.add(tokens[1]); - } - in.close(); - } - - /** - * Updates the workspace as well as locate changes. - * - * @return - * List of affected file names, relative to the workspace directory. - * Null if the operation failed. - */ - private List update(boolean dryRun, Launcher launcher, FilePath workspace, TaskListener listener, Date date) throws IOException, InterruptedException { - - List changedFileNames = new ArrayList(); // file names relative to the workspace - - ArgumentListBuilder cmd = new ArgumentListBuilder(); - cmd.add(getDescriptor().getCvsExeOrDefault(),"-q",compression()); - if(dryRun) - cmd.add("-n"); - cmd.add("update","-PdC"); - if (branch != null) { - cmd.add("-r", branch); - } - configureDate(cmd, date); - - if(flatten) { - ByteArrayOutputStream baos = new ByteArrayOutputStream(); - - if(!run(launcher,cmd,listener,workspace, - new ForkOutputStream(baos,listener.getLogger()))) - return null; - - // asynchronously start cleaning up the sticky tag while we work on parsing the result - Future task = workspace.actAsync(new StickyDateCleanUpTask()); - parseUpdateOutput("",baos, changedFileNames); - join(task); - } else { - @SuppressWarnings("unchecked") // StringTokenizer oddly has the wrong type - final Set moduleNames = new TreeSet(Arrays.asList(getAllModulesNormalized())); - - // Add in any existing CVS dirs, in case project checked out its own. - moduleNames.addAll(workspace.act(new FileCallable>() { - public Set invoke(File ws, VirtualChannel channel) throws IOException { - File[] subdirs = ws.listFiles(); - if (subdirs != null) { - SUBDIR: for (File s : subdirs) { - if (new File(s, "CVS").isDirectory()) { - String top = s.getName(); - for (String mod : moduleNames) { - if (mod.startsWith(top + "/")) { - // #190: user asked to check out foo/bar foo/baz quux - // Our top-level dirs are "foo" and "quux". - // Do not add "foo" to checkout or we will check out foo/*! - continue SUBDIR; - } - } - moduleNames.add(top); - } - } - } - return moduleNames; - } - })); - - for (String moduleName : moduleNames) { - // capture the output during update - ByteArrayOutputStream baos = new ByteArrayOutputStream(); - FilePath modulePath = new FilePath(workspace, moduleName); - - ArgumentListBuilder actualCmd = cmd; - String baseName = moduleName; - - if(!modulePath.isDirectory()) { - // updating just one file, like "foo/bar.txt". - // run update command from "foo" directory with "bar.txt" as the command line argument - actualCmd = cmd.clone(); - actualCmd.add(modulePath.getName()); - modulePath = modulePath.getParent(); - int slash = baseName.lastIndexOf('/'); - if (slash > 0) { - baseName = baseName.substring(0, slash); - } - } - - if(!run(launcher,actualCmd,listener, - modulePath, - new ForkOutputStream(baos,listener.getLogger()))) - return null; - - // asynchronously start cleaning up the sticky tag while we work on parsing the result - Future task = modulePath.actAsync(new StickyDateCleanUpTask()); - - // we'll run one "cvs log" command with workspace as the base, - // so use path names that are relative to moduleName. - parseUpdateOutput(baseName+'/',baos, changedFileNames); - - join(task); - } - } - - return changedFileNames; - } - - private void join(Future task) throws InterruptedException, IOException { - try { - task.get(); - } catch (ExecutionException e) { - throw new IOException2(e); - } - } - - // see http://www.network-theory.co.uk/docs/cvsmanual/cvs_153.html for the output format. - // we don't care '?' because that's not in the repository - private static final Pattern UPDATE_LINE = Pattern.compile("[UPARMC] (.+)"); - - private static final Pattern REMOVAL_LINE = Pattern.compile("cvs (server|update): `?(.+?)'? is no longer in the repository"); - //private static final Pattern NEWDIRECTORY_LINE = Pattern.compile("cvs server: New directory `(.+)' -- ignored"); - - /** - * Parses the output from CVS update and list up files that might have been changed. - * - * @param result - * list of file names whose changelog should be checked. This may include files - * that are no longer present. The path names are relative to the workspace, - * hence "String", not {@link File}. - */ - private void parseUpdateOutput(String baseName, ByteArrayOutputStream output, List result) throws IOException { - BufferedReader in = new BufferedReader(new InputStreamReader( - new ByteArrayInputStream(output.toByteArray()))); - String line; - while((line=in.readLine())!=null) { - Matcher matcher = UPDATE_LINE.matcher(line); - if(matcher.matches()) { - result.add(baseName+matcher.group(1)); - continue; - } - - matcher= REMOVAL_LINE.matcher(line); - if(matcher.matches()) { - result.add(baseName+matcher.group(2)); - continue; - } - - // this line is added in an attempt to capture newly created directories in the repository, - // but it turns out that this line always hit if the workspace is missing a directory - // that the server has, even if that directory contains nothing in it - //matcher= NEWDIRECTORY_LINE.matcher(line); - //if(matcher.matches()) { - // result.add(baseName+matcher.group(1)); - //} - } - } - - /** - * Returns null if we can use "cvs update" instead of "cvs checkout" - * - * @return - * If update is impossible, return the text explaining why. - */ - private String isUpdatable(FilePath dir) throws IOException, InterruptedException { - return dir.act(new FileCallable() { - public String invoke(File dir, VirtualChannel channel) throws IOException { - if(flatten) { - return isUpdatableModule(dir); - } else { - for (String m : getAllModulesNormalized()) { - File module = new File(dir,m); - String reason = isUpdatableModule(module); - if(reason!=null) - return reason; - } - return null; - } - } - - private String isUpdatableModule(File module) { - try { - if(!module.isDirectory()) - // module is a file, like "foo/bar.txt". Then CVS information is "foo/CVS". - module = module.getParentFile(); - - File cvs = new File(module,"CVS"); - if(!cvs.exists()) - return "No CVS dir in "+module; - - // check cvsroot - File cvsRootFile = new File(cvs, "Root"); - if(!checkContents(cvsRootFile,cvsroot)) - return cvs+"/Root content mismatch: expected "+cvsroot+" but found "+FileUtils.readFileToString(cvsRootFile); - if(branch!=null) { - if(!checkContents(new File(cvs,"Tag"),(isTag()?'N':'T')+branch)) - return cvs+" branch mismatch"; - } else { - File tag = new File(cvs,"Tag"); - if (tag.exists()) { - BufferedReader r = new BufferedReader(new FileReader(tag)); - try { - String s = r.readLine(); - if(s != null && s.startsWith("D")) return null; // OK - return "Workspace is on branch "+s; - } finally { - r.close(); - } - } - } - - return null; - } catch (IOException e) { - return e.getMessage(); - } - } - }); - } - - /** - * Returns true if the contents of the file is equal to the given string. - * - * @return false in all the other cases. - */ - private boolean checkContents(File file, String contents) { - try { - BufferedReader r = new BufferedReader(new FileReader(file)); - try { - String s = r.readLine(); - if (s == null) return false; - return massageForCheckContents(s).equals(massageForCheckContents(contents)); - } finally { - r.close(); - } - } catch (IOException e) { - return false; - } - } - - /** - * Normalize the string for comparison in {@link #checkContents(File, String)}. - */ - private String massageForCheckContents(String s) { - s=s.trim(); - // this is somewhat ugly because we only want to do this for CVS/Root but still ended up doing this - // for all checks. OTOH, there shouldn'be really any false positive. - Matcher m = PSERVER_CVSROOT_WITH_PASSWORD.matcher(s); - if(m.matches()) - s = m.group(1)+m.group(2); // cut off password - return s; - } - - /** - * Looks for CVSROOT that includes password, like ":pserver:uid:pwd@server:/path". - * - *

    - * Some CVS client (likely CVSNT?) appears to add the password despite the fact that CVSROOT Hudson is setting - * doesn't include one. So when we compare CVSROOT, we need to remove the password. - * - *

    - * Since the password equivalence shouldn't really affect the {@link #checkContents(File, String)}, we use - * this pattern to ignore password from both {@link #cvsroot} and the string found in path/CVS/Root - * and then compare. - * - * See http://www.nabble.com/Problem-with-polling-CVS%2C-from-version-1.181-tt15799926.html for the user report. - */ - private static final Pattern PSERVER_CVSROOT_WITH_PASSWORD = Pattern.compile("(:pserver:[^@:]+):[^@:]+(@.+)"); - - /** - * Used to communicate the result of the detection in {@link CVSSCM#calcChangeLog(AbstractBuild, FilePath, List, File, BuildListener)} - */ - static class ChangeLogResult implements Serializable { - boolean hadError; - String errorOutput; - - public ChangeLogResult(boolean hadError, String errorOutput) { - this.hadError = hadError; - if(hadError) - this.errorOutput = errorOutput; - } - private static final long serialVersionUID = 1L; - } - - /** - * Used to propagate {@link BuildException} and error log at the same time. - */ - static class BuildExceptionWithLog extends RuntimeException { - final String errorOutput; - - public BuildExceptionWithLog(BuildException cause, String errorOutput) { - super(cause); - this.errorOutput = errorOutput; - } - - private static final long serialVersionUID = 1L; - } - - /** - * Computes the changelog into an XML file. - * - *

    - * When we update the workspace, we'll compute the changelog by using its output to - * make it faster. In general case, we'll fall back to the slower approach where - * we check all files in the workspace. - * - * @param changedFiles - * Files whose changelog should be checked for updates. - * This is provided if the previous operation is update, otherwise null, - * which means we have to fall back to the default slow computation. - */ - private boolean calcChangeLog(AbstractBuild build, FilePath ws, final List changedFiles, File changelogFile, final BuildListener listener) throws InterruptedException { - if(build.getPreviousBuild()==null || (changedFiles!=null && changedFiles.isEmpty())) { - // nothing to compare against, or no changes - // (note that changedFiles==null means fallback, so we have to run cvs log. - listener.getLogger().println("$ no changes detected"); - return createEmptyChangeLog(changelogFile,listener, "changelog"); - } - if(skipChangeLog) { - listener.getLogger().println("Skipping changelog computation"); - return createEmptyChangeLog(changelogFile,listener, "changelog"); - } - - listener.getLogger().println("$ computing changelog"); - - final String cvspassFile = getDescriptor().getCvspassFile(); - final String cvsExe = getDescriptor().getCvsExeOrDefault(); - - OutputStream o = null; - try { - // range of time for detecting changes - final Date startTime = build.getPreviousBuild().getTimestamp().getTime(); - final Date endTime = build.getTimestamp().getTime(); - final OutputStream out = o = new RemoteOutputStream(new FileOutputStream(changelogFile)); - - ChangeLogResult result = ws.act(new FileCallable() { - public ChangeLogResult invoke(File ws, VirtualChannel channel) throws IOException { - final StringWriter errorOutput = new StringWriter(); - final boolean[] hadError = new boolean[1]; - - ChangeLogTask task = new ChangeLogTask() { - public void log(String msg, int msgLevel) { - if(msgLevel==org.apache.tools.ant.Project.MSG_ERR) - hadError[0] = true; - // send error to listener. This seems like the route in which the changelog task - // sends output. - // Also in ChangeLogTask.getExecuteStreamHandler, we send stderr from CVS - // at WARN level. - if(msgLevel<=org.apache.tools.ant.Project.MSG_WARN) { - errorOutput.write(msg); - errorOutput.write('\n'); - return; - } - if(debug) { - listener.getLogger().println(msg); - } - } - }; - task.setProject(new org.apache.tools.ant.Project()); - task.setCvsExe(cvsExe); - task.setDir(ws); - if(cvspassFile.length()!=0) - task.setPassfile(new File(cvspassFile)); - if (canUseUpdate && cvsroot.startsWith("/")) { - // cvs log of built source trees unreliable in local access method: - // https://savannah.nongnu.org/bugs/index.php?15223 - task.setCvsRoot(":fork:" + cvsroot); - } else if (canUseUpdate && cvsroot.startsWith(":local:")) { - task.setCvsRoot(":fork:" + cvsroot.substring(7)); - } else { - task.setCvsRoot(cvsroot); - } - task.setCvsRsh(cvsRsh); - task.setFailOnError(true); - BufferedOutputStream bufferedOutput = new BufferedOutputStream(out); - task.setDeststream(bufferedOutput); - task.setBranch(branch); - task.setStart(startTime); - task.setEnd(endTime); - if(changedFiles!=null) { - // we can optimize the processing if we know what files have changed. - // but also try not to make the command line too long so as no to hit - // the system call limit to the command line length (see issue #389) - // the choice of the number is arbitrary, but normally we don't really - // expect continuous builds to have too many changes, so this should be OK. - if(changedFiles.size()<100 || !Hudson.isWindows()) { - // if the directory doesn't exist, cvs changelog will die, so filter them out. - // this means we'll lose the log of those changes - for (String filePath : changedFiles) { - if(new File(ws,filePath).getParentFile().exists()) - task.addFile(filePath); - } - } - } else { - // fallback - if(!flatten) - task.setPackage(getAllModulesNormalized()); - } - - try { - task.execute(); - } catch (BuildException e) { - throw new BuildExceptionWithLog(e,errorOutput.toString()); - } finally { - bufferedOutput.close(); - } - - return new ChangeLogResult(hadError[0],errorOutput.toString()); - } - }); - - if(result.hadError) { - // non-fatal error must have occurred, such as cvs changelog parsing error.s - listener.getLogger().print(result.errorOutput); - } - return true; - } catch( BuildExceptionWithLog e ) { - // capture output from the task for diagnosis - listener.getLogger().print(e.errorOutput); - // then report an error - BuildException x = (BuildException) e.getCause(); - PrintWriter w = listener.error(x.getMessage()); - w.println("Working directory is "+ ws); - x.printStackTrace(w); - return false; - } catch( RuntimeException e ) { - // an user reported a NPE inside the changeLog task. - // we don't want a bug in Ant to prevent a build. - e.printStackTrace(listener.error(e.getMessage())); - return true; // so record the message but continue - } catch( IOException e ) { - e.printStackTrace(listener.error("Failed to detect changlog")); - return true; - } finally { - IOUtils.closeQuietly(o); - } - } - - public DescriptorImpl getDescriptor() { - return (DescriptorImpl)super.getDescriptor(); - } - - public void buildEnvVars(AbstractBuild build, Map env) { - if(cvsRsh!=null) - env.put("CVS_RSH",cvsRsh); - if(branch!=null) - env.put("CVS_BRANCH",branch); - String cvspass = getDescriptor().getCvspassFile(); - if(cvspass.length()!=0) - env.put("CVS_PASSFILE",cvspass); - } - - /** - * Invokes the command with the specified command line option and wait for its completion. - * - * @param dir - * if launching locally this is a local path, otherwise a remote path. - * @param out - * Receives output from the executed program. - */ - protected final boolean run(Launcher launcher, ArgumentListBuilder cmd, TaskListener listener, FilePath dir, OutputStream out) throws IOException, InterruptedException { - Map env = createEnvVarMap(true); - - int r = launcher.launch(cmd.toCommandArray(),env,out,dir).join(); - if(r!=0) - listener.fatalError(getDescriptor().getDisplayName()+" failed. exit code="+r); - - return r==0; - } - - protected final boolean run(Launcher launcher, ArgumentListBuilder cmd, TaskListener listener, FilePath dir) throws IOException, InterruptedException { - return run(launcher,cmd,listener,dir,listener.getLogger()); - } - - /** - * - * @param overrideOnly - * true to indicate that the returned map shall only contain - * properties that need to be overridden. This is for use with {@link Launcher}. - * false to indicate that the map should contain complete map. - * This is to invoke {@link Proc} directly. - */ - protected final Map createEnvVarMap(boolean overrideOnly) { - Map env = new HashMap(); - if(!overrideOnly) - env.putAll(EnvVars.masterEnvVars); - buildEnvVars(null/*TODO*/,env); - return env; - } - - /** - * Recursively visits directories and get rid of the sticky date in CVS/Entries folder. - */ - private static final class StickyDateCleanUpTask implements FileCallable { - public Void invoke(File f, VirtualChannel channel) throws IOException { - process(f); - return null; - } - - private void process(File f) throws IOException { - File entries = new File(f,"CVS/Entries"); - if(!entries.exists()) - return; // not a CVS-controlled directory. No point in recursing - - boolean modified = false; - String contents = FileUtils.readFileToString(entries); - StringBuilder newContents = new StringBuilder(contents.length()); - String[] lines = contents.split("\n"); - - for (String line : lines) { - int idx = line.lastIndexOf('/'); - if(idx==-1) continue; // something is seriously wrong with this line. just skip. - - String date = line.substring(idx+1); - if(STICKY_DATE.matcher(date.trim()).matches()) { - // the format is like "D2008.01.21.23.30.44" - line = line.substring(0,idx+1); - modified = true; - } - - newContents.append(line).append('\n'); - } - - if(modified) { - // write it back - File tmp = new File(f, "CVS/Entries.tmp"); - FileUtils.writeStringToFile(tmp,newContents.toString()); - entries.delete(); - tmp.renameTo(entries); - } - - // recursively process children - File[] children = f.listFiles(); - if(children!=null) { - for (File child : children) - process(child); - } - } - - private static final Pattern STICKY_DATE = Pattern.compile("D\\d\\d\\d\\d\\.\\d\\d\\.\\d\\d\\.\\d\\d\\.\\d\\d\\.\\d\\d"); - } - - @Extension - public static final class DescriptorImpl extends SCMDescriptor implements ModelObject { - /** - * Path to .cvspass. Null to default. - */ - private String cvsPassFile; - - /** - * Path to cvs executable. Null to just use "cvs". - */ - private String cvsExe; - - /** - * Disable CVS compression support. - */ - private boolean noCompression; - - // compatibility only - private transient Map browsers; - - // compatibility only - class RepositoryBrowser { - String diffURL; - String browseURL; - } - - public DescriptorImpl() { - super(CVSRepositoryBrowser.class); - load(); - } - - protected void convert(Map oldPropertyBag) { - cvsPassFile = (String)oldPropertyBag.get("cvspass"); - } - - public String getDisplayName() { - return "CVS"; - } - - @Override - public SCM newInstance(StaplerRequest req, JSONObject formData) throws FormException { - CVSSCM scm = req.bindJSON(CVSSCM.class,formData); - scm.repositoryBrowser = RepositoryBrowsers.createInstance(CVSRepositoryBrowser.class,req,formData,"browser"); - return scm; - } - - public String getCvspassFile() { - String value = cvsPassFile; - if(value==null) - value = ""; - return value; - } - - public String getCvsExe() { - return cvsExe; - } - - public String getCvsExeOrDefault() { - if(Util.fixEmpty(cvsExe)==null) return "cvs"; - else return cvsExe; - } - - public void setCvspassFile(String value) { - cvsPassFile = value; - save(); - } - - public boolean isNoCompression() { - return noCompression; - } - - public boolean configure( StaplerRequest req, JSONObject o ) { - cvsPassFile = fixEmpty(req.getParameter("cvs_cvspass").trim()); - cvsExe = fixEmpty(req.getParameter("cvs_exe").trim()); - noCompression = req.getParameter("cvs_noCompression")!=null; - save(); - - return true; - } - - @Override - public boolean isBrowserReusable(CVSSCM x, CVSSCM y) { - return x.getCvsRoot().equals(y.getCvsRoot()); - } - - // - // web methods - // - - public FormValidation doCvsPassCheck(@QueryParameter String value) { - // this method can be used to check if a file exists anywhere in the file system, - // so it should be protected. - if(!Hudson.getInstance().hasPermission(Hudson.ADMINISTER)) - return FormValidation.ok(); - - value = fixEmpty(value); - if(value==null) // not entered - return FormValidation.ok(); - - File cvsPassFile = new File(value); - - if(cvsPassFile.exists()) { - if(cvsPassFile.isDirectory()) - return FormValidation.error(cvsPassFile+" is a directory"); - else - return FormValidation.ok(); - } - - return FormValidation.error("No such file exists"); - } - - /** - * Checks if cvs executable exists. - */ - public FormValidation doCvsExeCheck(@QueryParameter String value) { - return FormValidation.validateExecutable(value); - } - - /** - * Displays "cvs --version" for trouble shooting. - */ - public void doVersion(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException, InterruptedException { - ByteBuffer baos = new ByteBuffer(); - try { - Proc proc = Hudson.getInstance().createLauncher(TaskListener.NULL).launch( - new String[]{getCvsExeOrDefault(), "--version"}, new String[0], baos, null); - proc.join(); - rsp.setContentType("text/plain"); - baos.writeTo(rsp.getOutputStream()); - } catch (IOException e) { - req.setAttribute("error",e); - rsp.forward(this,"versionCheckError",req); - } - } - - /** - * Checks the correctness of the branch name. - */ - public FormValidation doCheckBranch(@QueryParameter String value) { - String v = fixNull(value); - - if(v.equals("HEAD")) - return FormValidation.error(Messages.CVSSCM_HeadIsNotBranch()); - - return FormValidation.ok(); - } - - /** - * Checks the entry to the CVSROOT field. - *

    - * Also checks if .cvspass file contains the entry for this. - */ - public FormValidation doCheckCvsRoot(@QueryParameter String value) throws IOException { - String v = fixEmpty(value); - if(v==null) - return FormValidation.error(Messages.CVSSCM_MissingCvsroot()); - - Matcher m = CVSROOT_PSERVER_PATTERN.matcher(v); - - // CVSROOT format isn't really that well defined. So it's hard to check this rigorously. - if(v.startsWith(":pserver") || v.startsWith(":ext")) { - if(!m.matches()) - return FormValidation.error(Messages.CVSSCM_InvalidCvsroot()); - // I can't really test if the machine name exists, either. - // some cvs, such as SOCKS-enabled cvs can resolve host names that Hudson might not - // be able to. If :ext is used, all bets are off anyway. - } - - // check .cvspass file to see if it has entry. - // CVS handles authentication only if it's pserver. - if(v.startsWith(":pserver")) { - if(m.group(2)==null) {// if password is not specified in CVSROOT - String cvspass = getCvspassFile(); - File passfile; - if(cvspass.equals("")) { - passfile = new File(new File(System.getProperty("user.home")),".cvspass"); - } else { - passfile = new File(cvspass); - } - - if(passfile.exists()) { - // It's possible that we failed to locate the correct .cvspass file location, - // so don't report an error if we couldn't locate this file. - // - // if this is explicitly specified, then our system config page should have - // reported an error. - if(!scanCvsPassFile(passfile, v)) - return FormValidation.error(Messages.CVSSCM_PasswordNotSet()); - } - } - } - return FormValidation.ok(); - } - - /** - * Validates the excludeRegions Regex - */ - public FormValidation doCheckExcludeRegions(@QueryParameter String value) { - String v = fixNull(value).trim(); - - for (String region : v.split("[\\r\\n]+")) - try { - Pattern.compile(region); - } catch (PatternSyntaxException e) { - return FormValidation.error("Invalid regular expression. " + e.getMessage()); - } - return FormValidation.ok(); - } - - /** - * Checks if the given pserver CVSROOT value exists in the pass file. - */ - private boolean scanCvsPassFile(File passfile, String cvsroot) throws IOException { - cvsroot += ' '; - String cvsroot2 = "/1 "+cvsroot; // see http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5006835 - BufferedReader in = new BufferedReader(new FileReader(passfile)); - try { - String line; - while((line=in.readLine())!=null) { - // "/1 " version always have the port number in it, so examine a much with - // default port 2401 left out - int portIndex = line.indexOf(":2401/"); - String line2 = ""; - if(portIndex>=0) - line2 = line.substring(0,portIndex+1)+line.substring(portIndex+5); // leave '/' - - if(line.startsWith(cvsroot) || line.startsWith(cvsroot2) || line2.startsWith(cvsroot2)) - return true; - } - return false; - } finally { - in.close(); - } - } - - private static final Pattern CVSROOT_PSERVER_PATTERN = - Pattern.compile(":(ext|extssh|pserver):[^@:]+(:[^@:]+)?@[^:]+:(\\d+:)?.+"); - - /** - * Runs cvs login command. - * - * TODO: this apparently doesn't work. Probably related to the fact that - * cvs does some tty magic to disable echo back or whatever. - */ - public void doPostPassword(StaplerRequest req, StaplerResponse rsp) throws IOException, InterruptedException { - Hudson.getInstance().checkPermission(Hudson.ADMINISTER); - - String cvsroot = req.getParameter("cvsroot"); - String password = req.getParameter("password"); - - if(cvsroot==null || password==null) { - rsp.setStatus(HttpServletResponse.SC_BAD_REQUEST); - return; - } - - rsp.setContentType("text/plain"); - Proc proc = Hudson.getInstance().createLauncher(TaskListener.NULL).launch( - new String[]{getCvsExeOrDefault(), "-d",cvsroot,"login"}, new String[0], - new ByteArrayInputStream((password+"\n").getBytes()), - rsp.getOutputStream()); - proc.join(); - } - } - - /** - * Action for a build that performs the tagging. - */ - public final class TagAction extends AbstractScmTagAction { - - /** - * If non-null, that means the build is already tagged. - * If multiple tags are created, those are whitespace-separated. - */ - private volatile String tagName; - - public TagAction(AbstractBuild build) { - super(build); - } - - public String getIconFileName() { - if(tagName==null && !build.getParent().getACL().hasPermission(TAG)) - return null; - return "save.gif"; - } - - public String getDisplayName() { - if(tagName==null) - return Messages.CVSSCM_TagThisBuild(); - if(tagName.indexOf(' ')>=0) - return Messages.CVSSCM_DisplayName2(); - else - return Messages.CVSSCM_DisplayName1(); - } - - public String[] getTagNames() { - if(tagName==null) return new String[0]; - return tagName.split(" "); - } - - /** - * Checks if the value is a valid CVS tag name. - */ - public synchronized FormValidation doCheckTag(@QueryParameter String value) { - String tag = fixNull(value).trim(); - if(tag.length()==0) // nothing entered yet - return FormValidation.ok(); - return FormValidation.error(isInvalidTag(tag)); - } - - @Override - public Permission getPermission() { - return TAG; - } - - @Override - public String getTooltip() { - if(tagName!=null) return "Tag: "+tagName; - else return null; - } - - @Override - public boolean isTagged() { - return tagName!=null; - } - - /** - * Invoked to actually tag the workspace. - */ - public synchronized void doSubmit(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException { - build.checkPermission(getPermission()); - - Map tagSet = new HashMap(); - - String name = fixNull(req.getParameter("name")).trim(); - String reason = isInvalidTag(name); - if(reason!=null) { - sendError(reason,req,rsp); - return; - } - - tagSet.put(build,name); - - if(req.getParameter("upstream")!=null) { - // tag all upstream builds - Enumeration e = req.getParameterNames(); - Map upstreams = build.getUpstreamBuilds(); // TODO: define them at AbstractBuild level - - while(e.hasMoreElements()) { - String upName = (String) e.nextElement(); - if(!upName.startsWith("upstream.")) - continue; - - String tag = fixNull(req.getParameter(upName)).trim(); - reason = isInvalidTag(tag); - if(reason!=null) { - sendError(Messages.CVSSCM_NoValidTagNameGivenFor(upName,reason),req,rsp); - return; - } - - upName = upName.substring(9); // trim off 'upstream.' - AbstractProject p = Hudson.getInstance().getItemByFullName(upName,AbstractProject.class); - if(p==null) { - sendError(Messages.CVSSCM_NoSuchJobExists(upName),req,rsp); - return; - } - - Run build = p.getBuildByNumber(upstreams.get(p)); - tagSet.put((AbstractBuild) build,tag); - } - } - - new TagWorkerThread(this,tagSet).start(); - - doIndex(req,rsp); - } - - /** - * Checks if the given value is a valid CVS tag. - * - * If it's invalid, this method gives you the reason as string. - */ - private String isInvalidTag(String name) { - // source code from CVS rcs.c - //void - //RCS_check_tag (tag) - // const char *tag; - //{ - // char *invalid = "$,.:;@"; /* invalid RCS tag characters */ - // const char *cp; - // - // /* - // * The first character must be an alphabetic letter. The remaining - // * characters cannot be non-visible graphic characters, and must not be - // * in the set of "invalid" RCS identifier characters. - // */ - // if (isalpha ((unsigned char) *tag)) - // { - // for (cp = tag; *cp; cp++) - // { - // if (!isgraph ((unsigned char) *cp)) - // error (1, 0, "tag `%s' has non-visible graphic characters", - // tag); - // if (strchr (invalid, *cp)) - // error (1, 0, "tag `%s' must not contain the characters `%s'", - // tag, invalid); - // } - // } - // else - // error (1, 0, "tag `%s' must start with a letter", tag); - //} - if(name==null || name.length()==0) - return Messages.CVSSCM_TagIsEmpty(); - - char ch = name.charAt(0); - if(!(('A'<=ch && ch<='Z') || ('a'<=ch && ch<='z'))) - return Messages.CVSSCM_TagNeedsToStartWithAlphabet(); - - for( char invalid : "$,.:;@".toCharArray() ) { - if(name.indexOf(invalid)>=0) - return Messages.CVSSCM_TagContainsIllegalChar(invalid); - } - - return null; - } - - /** - * Performs tagging. - */ - public void perform(String tagName, TaskListener listener) { - File destdir = null; - try { - destdir = Util.createTempDir(); - - // unzip the archive - listener.getLogger().println(Messages.CVSSCM_ExpandingWorkspaceArchive(destdir)); - Expand e = new Expand(); - e.setProject(new org.apache.tools.ant.Project()); - e.setDest(destdir); - e.setSrc(getArchiveFile(build)); - e.setTaskType("unzip"); - e.execute(); - - // run cvs tag command - listener.getLogger().println(Messages.CVSSCM_TaggingWorkspace()); - for (String m : getAllModulesNormalized()) { - FilePath path = new FilePath(destdir).child(m); - boolean isDir = path.isDirectory(); - - ArgumentListBuilder cmd = new ArgumentListBuilder(); - cmd.add(getDescriptor().getCvsExeOrDefault(),"tag"); - if(isDir) { - cmd.add("-R"); - } - cmd.add(tagName); - if(!isDir) { - cmd.add(path.getName()); - path = path.getParent(); - } - - if(!CVSSCM.this.run(new Launcher.LocalLauncher(listener),cmd,listener, path)) { - listener.getLogger().println(Messages.CVSSCM_TaggingFailed()); - return; - } - } - - // completed successfully - onTagCompleted(tagName); - build.save(); - } catch (Throwable e) { - e.printStackTrace(listener.fatalError(e.getMessage())); - } finally { - try { - if(destdir!=null) { - listener.getLogger().println("cleaning up "+destdir); - Util.deleteRecursive(destdir); - } - } catch (IOException e) { - e.printStackTrace(listener.fatalError(e.getMessage())); - } - } - } - - /** - * Atomically set the tag name and then be done with {@link TagWorkerThread}. - */ - private synchronized void onTagCompleted(String tagName) { - if(this.tagName!=null) - this.tagName += ' '+tagName; - else - this.tagName = tagName; - this.workerThread = null; - } - } - - public static final class TagWorkerThread extends TaskThread { - private final Map tagSet; - - public TagWorkerThread(TagAction owner,Map tagSet) { - super(owner,ListenerAndText.forMemory()); - this.tagSet = tagSet; - } - - public synchronized void start() { - for (Entry e : tagSet.entrySet()) { - TagAction ta = e.getKey().getAction(TagAction.class); - if(ta!=null) - associateWith(ta); - } - - super.start(); - } - - protected void perform(TaskListener listener) { - for (Entry e : tagSet.entrySet()) { - TagAction ta = e.getKey().getAction(TagAction.class); - if(ta==null) { - listener.error(e.getKey()+" doesn't have CVS tag associated with it. Skipping"); - continue; - } - listener.getLogger().println(Messages.CVSSCM_TagginXasY(e.getKey(),e.getValue())); - try { - e.getKey().keepLog(); - } catch (IOException x) { - x.printStackTrace(listener.error(Messages.CVSSCM_FailedToMarkForKeep(e.getKey()))); - } - ta.perform(e.getValue(), listener); - listener.getLogger().println(); - } - } - } - - /** - * Temporary hack for assisting trouble-shooting. - * - *

    - * Setting this property to true would cause cvs log to dump a lot of messages. - */ - public static boolean debug = false; - - private static final long serialVersionUID = 1L; - - /** - * True to avoid computing the changelog. Useful with ancient versions of CVS that doesn't support - * the -d option in the log command. See #1346. - */ - public static boolean skipChangeLog = Boolean.getBoolean(CVSSCM.class.getName()+".skipChangeLog"); -} diff --git a/core/src/main/java/hudson/scm/ChangeLogSet.java b/core/src/main/java/hudson/scm/ChangeLogSet.java index e58b6296422b42e87ed381f619321edd370e715c..a54ebbd9b4eb43391f79eabff292bf8c57f918c5 100644 --- a/core/src/main/java/hudson/scm/ChangeLogSet.java +++ b/core/src/main/java/hudson/scm/ChangeLogSet.java @@ -32,7 +32,6 @@ import org.kohsuke.stapler.export.ExportedBean; import java.util.ArrayList; import java.util.Collection; -import java.util.Collections; import java.util.Iterator; import java.util.List; @@ -67,7 +66,7 @@ public abstract class ChangeLogSet implements Iter public abstract boolean isEmptySet(); /** - * All changes in the change set. + * All changes in this change set. */ // method for the remote API. @Exported @@ -92,7 +91,7 @@ public abstract class ChangeLogSet implements Iter * Constant instance that represents no changes. */ public static ChangeLogSet createEmpty(AbstractBuild build) { - return new CVSChangeLogSet(build,Collections.emptyList()); + return new EmptyChangeLogSet(build); } @ExportedBean(defaultVisibility=999) @@ -140,16 +139,40 @@ public abstract class ChangeLogSet implements Iter * @return never null. */ public abstract Collection getAffectedPaths(); + + /** + * Returns a set of paths in the workspace that was + * affected by this change. + *

    + * Noted: since this is a new interface, some of the SCMs may not have + * implemented this interface. The default implementation for this + * interface is throw UnsupportedOperationException + *

    + * It doesn't throw NoSuchMethodException because I rather to throw a + * runtime exception + * + * @return AffectedFile never null. + * @since 1.309 + */ + public Collection getAffectedFiles() { + String scm = "this SCM"; + ChangeLogSet parent = getParent(); + if ( null != parent ) { + String kind = parent.getKind(); + if ( null != kind && kind.trim().length() > 0 ) scm = kind; + } + throw new UnsupportedOperationException("getAffectedFiles() is not implemented by " + scm); + } /** * Gets the text fully marked up by {@link ChangeLogAnnotator}. */ public String getMsgAnnotated() { - MarkupText markup = new MarkupText(getMsgEscaped()); + MarkupText markup = new MarkupText(getMsg()); for (ChangeLogAnnotator a : ChangeLogAnnotator.all()) a.annotate(parent.build,this,markup); - return markup.toString(); + return markup.toString(false); } /** @@ -159,4 +182,30 @@ public abstract class ChangeLogSet implements Iter return Util.escape(getMsg()); } } + + /** + * Represents a file change. Contains filename, edit type, etc. + * + * I checked the API names against some some major SCMs and most SCMs + * can adapt to this interface with very little changes + * + * @see ChangeLogSet.Entry#getAffectedFiles() + */ + public interface AffectedFile { + /** + * The path in the workspace that was affected + *

    + * Contains string like 'foo/bar/zot'. No leading/trailing '/', + * and separator must be normalized to '/'. + * + * @return never null. + */ + String getPath(); + + + /** + * Return whether the file is new/modified/deleted + */ + EditType getEditType(); + } } diff --git a/core/src/main/java/hudson/scm/EmptyChangeLogSet.java b/core/src/main/java/hudson/scm/EmptyChangeLogSet.java new file mode 100644 index 0000000000000000000000000000000000000000..3f0e60c6a093939486c82f7ef1d893d4043459c6 --- /dev/null +++ b/core/src/main/java/hudson/scm/EmptyChangeLogSet.java @@ -0,0 +1,26 @@ +package hudson.scm; + +import hudson.model.AbstractBuild; + +import java.util.Collections; +import java.util.Iterator; + +/** + * {@link ChangeLogSet} that's empty. + * + * @author Kohsuke Kawaguchi + */ +final class EmptyChangeLogSet extends ChangeLogSet { + /*package*/ EmptyChangeLogSet(AbstractBuild build) { + super(build); + } + + @Override + public boolean isEmptySet() { + return true; + } + + public Iterator iterator() { + return Collections.emptySet().iterator(); + } +} diff --git a/core/src/main/java/hudson/scm/FilterSVNAuthenticationManager.java b/core/src/main/java/hudson/scm/FilterSVNAuthenticationManager.java deleted file mode 100644 index 8b7d7a5112a1a3b29b7e9ebb1e4ab2fd53063708..0000000000000000000000000000000000000000 --- a/core/src/main/java/hudson/scm/FilterSVNAuthenticationManager.java +++ /dev/null @@ -1,64 +0,0 @@ -package hudson.scm; - -import org.tmatesoft.svn.core.auth.ISVNAuthenticationManager; -import org.tmatesoft.svn.core.auth.ISVNAuthenticationProvider; -import org.tmatesoft.svn.core.auth.ISVNProxyManager; -import org.tmatesoft.svn.core.auth.SVNAuthentication; -import org.tmatesoft.svn.core.SVNURL; -import org.tmatesoft.svn.core.SVNException; -import org.tmatesoft.svn.core.SVNErrorMessage; -import org.tmatesoft.svn.core.io.SVNRepository; - -import javax.net.ssl.TrustManager; - -/** - * {@link ISVNAuthenticationManager} filter. Useful for customizing the behavior by delegation. - * @author Kohsuke Kawaguchi - */ -public class FilterSVNAuthenticationManager implements ISVNAuthenticationManager { - protected ISVNAuthenticationManager core; - - public FilterSVNAuthenticationManager(ISVNAuthenticationManager core) { - this.core = core; - } - - public void setAuthenticationProvider(ISVNAuthenticationProvider provider) { - core.setAuthenticationProvider(provider); - } - - public ISVNProxyManager getProxyManager(SVNURL url) throws SVNException { - return core.getProxyManager(url); - } - - public TrustManager getTrustManager(SVNURL url) throws SVNException { - return core.getTrustManager(url); - } - - public SVNAuthentication getFirstAuthentication(String kind, String realm, SVNURL url) throws SVNException { - return core.getFirstAuthentication(kind, realm, url); - } - - public SVNAuthentication getNextAuthentication(String kind, String realm, SVNURL url) throws SVNException { - return core.getNextAuthentication(kind, realm, url); - } - - public void acknowledgeAuthentication(boolean accepted, String kind, String realm, SVNErrorMessage errorMessage, SVNAuthentication authentication) throws SVNException { - core.acknowledgeAuthentication(accepted, kind, realm, errorMessage, authentication); - } - - public void acknowledgeTrustManager(TrustManager manager) { - core.acknowledgeTrustManager(manager); - } - - public boolean isAuthenticationForced() { - return core.isAuthenticationForced(); - } - - public int getReadTimeout(SVNRepository repository) { - return core.getReadTimeout(repository); - } - - public int getConnectTimeout(SVNRepository repository) { - return core.getConnectTimeout(repository); - } -} diff --git a/core/src/main/java/hudson/scm/NullSCM.java b/core/src/main/java/hudson/scm/NullSCM.java index ac3cdf0da39d3c45f3cb68dc47fd22d810d5aaaa..419c5fbe3e3adf6ed7927fd8323d171347857ccc 100644 --- a/core/src/main/java/hudson/scm/NullSCM.java +++ b/core/src/main/java/hudson/scm/NullSCM.java @@ -42,12 +42,15 @@ import java.io.IOException; * @author Kohsuke Kawaguchi */ public class NullSCM extends SCM { - public boolean pollChanges(AbstractProject project, Launcher launcher, FilePath dir, TaskListener listener) throws IOException { - // no change - return false; + public SCMRevisionState calcRevisionsFromBuild(AbstractBuild build, Launcher launcher, TaskListener listener) throws IOException, InterruptedException { + return null; } - public boolean checkout(AbstractBuild build, Launcher launcher, FilePath remoteDir, BuildListener listener, File changeLogFile) throws IOException, InterruptedException { + protected PollingResult compareRemoteRevisionWith(AbstractProject project, Launcher launcher, FilePath workspace, TaskListener listener, SCMRevisionState baseline) throws IOException, InterruptedException { + return PollingResult.NO_CHANGES; + } + + public boolean checkout(AbstractBuild build, Launcher launcher, FilePath remoteDir, BuildListener listener, File changeLogFile) throws IOException, InterruptedException { return createEmptyChangeLog(changeLogFile, listener, "log"); } @@ -65,6 +68,7 @@ public class NullSCM extends SCM { return Messages.NullSCM_DisplayName(); } + @Override public SCM newInstance(StaplerRequest req, JSONObject formData) throws FormException { return new NullSCM(); } diff --git a/core/src/main/java/hudson/scm/PollingResult.java b/core/src/main/java/hudson/scm/PollingResult.java new file mode 100644 index 0000000000000000000000000000000000000000..43982732c84b22c14da58f538e7cef30aadf4b3a --- /dev/null +++ b/core/src/main/java/hudson/scm/PollingResult.java @@ -0,0 +1,104 @@ +package hudson.scm; + + +import java.io.Serializable; + +/** + * Immutable object that represents the result of {@linkplain SCM#poll(AbstractProject, Launcher, FilePath, TaskListener, SCMRevisionState) SCM polling}. + * + *

    + * This object is marked serializable just to be remoting friendly — Hudson by itself + * doesn't persist this object. + * + * @author Kohsuke Kawaguchi + * @since 1.345 + */ +public final class PollingResult implements Serializable { + /** + * Baseline of the comparison. + * (This comes from either the workspace, or from the remote repository as of the last polling. + * Can be null. + */ + public final SCMRevisionState baseline; + + /** + * Current state of the remote repository. To be passed to the next invocation of the polling method. + * Can be null. + */ + public final SCMRevisionState remote; + + /** + * Degree of the change between baseline and remote. Never null. + *

    + * The fact that this field is independent from {@link #baseline} and {@link #remote} are + * used to (1) allow the {@linkplain Change#INCOMPARABLE incomparable} state which forces + * the immediate rebuild, and (2) allow SCM to ignore some changes in the repository to implement + * exclusion feature. + */ + public final Change change; + + /** + * Degree of changes between the previous state and this state. + */ + public enum Change { + /** + * No change. Two {@link SCMRevisionState}s point to the same state of the same repository / the same commit. + */ + NONE, + /** + * There are some changes between states, but those changes are not significant enough to consider + * a new build. For example, some SCMs allow certain commits to be marked as excluded, and this is how + * you can do it. + */ + INSIGNIFICANT, + /** + * There are changes between states that warrant a new build. Hudson will eventually + * schedule a new build for this change, subject to other considerations + * such as the quiet period. + */ + SIGNIFICANT, + /** + * The state as of baseline is so different from the current state that they are incomparable + * (for example, the workspace and the remote repository points to two unrelated repositories + * because the configuration has changed.) This forces Hudson to schedule a build right away. + *

    + * This is primarily useful in SCM implementations that require a workspace to be able + * to perform a polling. SCMs that can always compare remote revisions regardless of the local + * state should do so, and never return this constant, to let Hudson maintain the quiet period + * behavior all the time. + *

    + * This constant is not to be confused with the errors encountered during polling, which + * should result in an exception and eventual retry by Hudson. + */ + INCOMPARABLE + } + + public PollingResult(SCMRevisionState baseline, SCMRevisionState remote, Change change) { + if (change==null) throw new IllegalArgumentException(); + this.baseline = baseline; + this.remote = remote; + this.change = change; + } + + public PollingResult(Change change) { + this(null,null,change); + } + + public boolean hasChanges() { + return change.ordinal() > Change.INSIGNIFICANT.ordinal(); + } + + /** + * Constant to indicate no changes in the remote repository. + */ + public static final PollingResult NO_CHANGES = new PollingResult(Change.NONE); + + public static final PollingResult SIGNIFICANT = new PollingResult(Change.SIGNIFICANT); + + /** + * Constant that uses {@link Change#INCOMPARABLE} which forces an immediate build. + */ + public static final PollingResult BUILD_NOW = new PollingResult(Change.INCOMPARABLE); + + private static final long serialVersionUID = 1L; +} diff --git a/core/src/main/java/hudson/scm/RepositoryBrowser.java b/core/src/main/java/hudson/scm/RepositoryBrowser.java index 1dbc57b7314cc7528a8a2be9a66090427367b485..1ce8767b378990684c7b62cf3157936f958c97dd 100644 --- a/core/src/main/java/hudson/scm/RepositoryBrowser.java +++ b/core/src/main/java/hudson/scm/RepositoryBrowser.java @@ -26,8 +26,7 @@ package hudson.scm; import hudson.ExtensionPoint; import hudson.DescriptorExtensionList; import hudson.Extension; -import hudson.tasks.BuildWrapper; -import hudson.model.Describable; +import hudson.model.AbstractDescribableImpl; import hudson.model.Descriptor; import hudson.model.Hudson; @@ -35,6 +34,7 @@ import java.io.IOException; import java.io.Serializable; import java.net.URL; import java.net.MalformedURLException; +import org.kohsuke.stapler.export.ExportedBean; /** * Connects Hudson to repository browsers like ViewCVS or FishEye, @@ -55,7 +55,8 @@ import java.net.MalformedURLException; * @since 1.89 * @see RepositoryBrowsers */ -public abstract class RepositoryBrowser implements ExtensionPoint, Describable>, Serializable { +@ExportedBean +public abstract class RepositoryBrowser extends AbstractDescribableImpl> implements ExtensionPoint, Serializable { /** * Determines the link to the given change set. * @@ -94,10 +95,6 @@ public abstract class RepositoryBrowser implements } } - public Descriptor> getDescriptor() { - return Hudson.getInstance().getDescriptor(getClass()); - } - /** * Returns all the registered {@link RepositoryBrowser} descriptors. */ diff --git a/core/src/main/java/hudson/scm/RepositoryBrowsers.java b/core/src/main/java/hudson/scm/RepositoryBrowsers.java index ced9128be6c04d0e62dd14a6e4ac06be80600d21..3c5dd86c0edc5648dac0d4b29bcdf0c93e47caab 100644 --- a/core/src/main/java/hudson/scm/RepositoryBrowsers.java +++ b/core/src/main/java/hudson/scm/RepositoryBrowsers.java @@ -24,9 +24,7 @@ package hudson.scm; import hudson.model.Descriptor; -import hudson.model.Hudson; import hudson.model.Descriptor.FormException; -import hudson.scm.browsers.*; import hudson.util.DescriptorList; import hudson.Extension; import org.kohsuke.stapler.StaplerRequest; @@ -35,7 +33,6 @@ import java.util.ArrayList; import java.util.List; import net.sf.json.JSONObject; -import net.sf.json.JSONArray; /** * List of all installed {@link RepositoryBrowsers}. @@ -57,7 +54,7 @@ public class RepositoryBrowsers { public static List>> filter(Class t) { List>> r = new ArrayList>>(); for (Descriptor> d : RepositoryBrowser.all()) - if(t.isAssignableFrom(d.clazz)) + if(d.isSubTypeOf(t)) r.add(d); return r; } @@ -65,7 +62,7 @@ public class RepositoryBrowsers { /** * Creates an instance of {@link RepositoryBrowser} from a form submission. * - * @deprecated + * @deprecated since 2008-06-19. * Use {@link #createInstance(Class, StaplerRequest, JSONObject, String)}. */ public static diff --git a/core/src/main/java/hudson/scm/SCM.java b/core/src/main/java/hudson/scm/SCM.java index cd38c8dd4b992cedb619f3738954050a1315e3e8..b6970249eb9c058f46167958cdff895a6dc76386 100644 --- a/core/src/main/java/hudson/scm/SCM.java +++ b/core/src/main/java/hudson/scm/SCM.java @@ -1,7 +1,7 @@ /* * The MIT License * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Stephen Connolly + * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Stephen Connolly, InfraDNA, Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -28,6 +28,7 @@ import hudson.FilePath; import hudson.Launcher; import hudson.DescriptorExtensionList; import hudson.Extension; +import hudson.Util; import hudson.security.PermissionGroup; import hudson.security.Permission; import hudson.tasks.Builder; @@ -40,6 +41,8 @@ import hudson.model.Node; import hudson.model.WorkspaceCleanupThread; import hudson.model.Hudson; import hudson.model.Descriptor; +import hudson.model.Api; +import hudson.model.Action; import hudson.model.AbstractProject.AbstractProjectDescriptor; import java.io.File; @@ -49,6 +52,9 @@ import java.util.Map; import java.util.List; import java.util.ArrayList; +import org.kohsuke.stapler.export.Exported; +import org.kohsuke.stapler.export.ExportedBean; + /** * Captures the configuration information in it. * @@ -70,12 +76,20 @@ import java.util.ArrayList; * * @author Kohsuke Kawaguchi */ +@ExportedBean public abstract class SCM implements Describable, ExtensionPoint { /** * Stores {@link AutoBrowserHolder}. Lazily created. */ private transient AutoBrowserHolder autoBrowserHolder; + /** + * Expose {@link SCM} to the remote API. + */ + public Api getApi() { + return new Api(this); + } + /** * Returns the {@link RepositoryBrowser} for files * controlled by this {@link SCM}. @@ -86,10 +100,20 @@ public abstract class SCM implements Describable, ExtensionPoint { * * @see #getEffectiveBrowser() */ - public RepositoryBrowser getBrowser() { + public RepositoryBrowser getBrowser() { return null; } + /** + * Type of this SCM. + * + * Exposed so that the client of the remote API can tell what SCM this is. + */ + @Exported + public String getType() { + return getClass().getName(); + } + /** * Returns the applicable {@link RepositoryBrowser} for files * controlled by this {@link SCM}. @@ -98,8 +122,9 @@ public abstract class SCM implements Describable, ExtensionPoint { * This method attempts to find applicable browser * from other job configurations. */ - public final RepositoryBrowser getEffectiveBrowser() { - RepositoryBrowser b = getBrowser(); + @Exported(name="browser") + public final RepositoryBrowser getEffectiveBrowser() { + RepositoryBrowser b = getBrowser(); if(b!=null) return b; if(autoBrowserHolder==null) @@ -110,7 +135,7 @@ public abstract class SCM implements Describable, ExtensionPoint { /** * Returns true if this SCM supports - * {@link #pollChanges(AbstractProject, Launcher, FilePath, TaskListener) polling}. + * {@link #poll(AbstractProject, Launcher, FilePath, TaskListener, SCMRevisionState) poling}. * * @since 1.105 */ @@ -127,6 +152,12 @@ public abstract class SCM implements Describable, ExtensionPoint { * polling is configured, then that would immediately trigger a new build. * *

    + * This flag also affects the mutual exclusion control between builds and polling. + * If this methods returns false, polling will continu asynchronously even + * when a build is in progress, but otherwise the polling activity is blocked + * if a build is currently using a workspace. + * + *

    * The default implementation returns true. * *

    @@ -157,8 +188,11 @@ public abstract class SCM implements Describable, ExtensionPoint { * *

    * Note that this method does not guarantee that such a clean up will happen. For example, slaves can be - * taken offline by being physically removed from the network, and in such a case there's no opporunity - * to perform this clean up. Similarly, when a project is deleted or renamed, SCMs do not get any notifications. + * taken offline by being physically removed from the network, and in such a case there's no opportunity + * to perform this clean up. + * + *

    + * This method is also invoked when the project is deleted. * * @param project * The project that owns this {@link SCM}. This is always the same object for a particular instance @@ -191,9 +225,11 @@ public abstract class SCM implements Describable, ExtensionPoint { * @param project * The project to check for updates * @param launcher - * Abstraction of the machine where the polling will take place. + * Abstraction of the machine where the polling will take place. If SCM declares + * that {@linkplain #requiresWorkspaceForPolling() the polling doesn't require a workspace}, this parameter is null. * @param workspace - * The workspace directory that contains baseline files. + * The workspace directory that contains baseline files. If SCM declares + * that {@linkplain #requiresWorkspaceForPolling() the polling doesn't require a workspace}, this parameter is null. * @param listener * Logs during the polling should be sent here. * @@ -205,8 +241,148 @@ public abstract class SCM implements Describable, ExtensionPoint { * this exception should be simply propagated all the way up. * * @see #supportsPolling() + * + * @deprecated as of 1.345 + * Override {@link #calcRevisionsFromBuild(AbstractBuild, Launcher, TaskListener)} and + * {@link #compareRemoteRevisionWith(AbstractProject, Launcher, FilePath, TaskListener, SCMRevisionState)} for implementation. + * + * The implementation is now separated in two pieces, one that computes the revision of the current workspace, + * and the other that computes the revision of the remote repository. + * + * Call {@link #poll(AbstractProject, Launcher, FilePath, TaskListener, SCMRevisionState)} for use instead. */ - public abstract boolean pollChanges(AbstractProject project, Launcher launcher, FilePath workspace, TaskListener listener) throws IOException, InterruptedException; + public boolean pollChanges(AbstractProject project, Launcher launcher, FilePath workspace, TaskListener listener) throws IOException, InterruptedException { + // up until 1.336, this method was abstract, so everyone should have overridden this method + // without calling super.pollChanges. So the compatibility implementation is purely for + // new implementations that doesn't override this method. + + // not sure if this can be implemented any better + return false; + } + + /** + * Calculates the {@link SCMRevisionState} that represents the state of the workspace of the given build. + * + *

    + * The returned object is then fed into the + * {@link #compareRemoteRevisionWith(AbstractProject, Launcher, FilePath, TaskListener, SCMRevisionState)} method + * as the baseline {@link SCMRevisionState} to determine if the build is necessary. + * + *

    + * This method is called after source code is checked out for the given build (that is, after + * {@link SCM#checkout(AbstractBuild, Launcher, FilePath, BuildListener, File)} has finished successfully.) + * + *

    + * The obtained object is added to the build as an {@link Action} for later retrieval. As an optimization, + * {@link SCM} implementation can choose to compute {@link SCMRevisionState} and add it as an action + * during check out, in which case this method will not called. + * + * @param build + * The calculated {@link SCMRevisionState} is for the files checked out in this build. Never null. + * If {@link #requiresWorkspaceForPolling()} returns true, Hudson makes sure that the workspace of this + * build is available and accessible by the callee. + * @param launcher + * Abstraction of the machine where the polling will take place. If SCM declares + * that {@linkplain #requiresWorkspaceForPolling() the polling doesn't require a workspace}, + * this parameter is null. Otherwise never null. + * @param listener + * Logs during the polling should be sent here. + * + * @return can be null. + * + * @throws InterruptedException + * interruption is usually caused by the user aborting the computation. + * this exception should be simply propagated all the way up. + */ + public abstract SCMRevisionState calcRevisionsFromBuild(AbstractBuild build, Launcher launcher, TaskListener listener) throws IOException, InterruptedException; + + /** + * A pointless function to work around what appears to be a HotSpot problem. See HUDSON-5756 and bug 6933067 + * on BugParade for more details. + */ + public SCMRevisionState _calcRevisionsFromBuild(AbstractBuild build, Launcher launcher, TaskListener listener) throws IOException, InterruptedException { + return calcRevisionsFromBuild(build, launcher, listener); + } + + /** + * Compares the current state of the remote repository against the given baseline {@link SCMRevisionState}. + * + *

    + * Conceptually, the act of polling is to take two states of the repository and to compare them to see + * if there's any difference. In practice, however, comparing two arbitrary repository states is an expensive + * operation, so in this abstraction, we chose to mix (1) the act of building up a repository state and + * (2) the act of comparing it with the earlier state, so that SCM implementations can implement this + * more easily. + * + *

    + * Multiple invocations of this method may happen over time to make sure that the remote repository + * is "quiet" before Hudson schedules a new build. + * + * @param project + * The project to check for updates + * @param launcher + * Abstraction of the machine where the polling will take place. If SCM declares + * that {@linkplain #requiresWorkspaceForPolling() the polling doesn't require a workspace}, this parameter is null. + * @param workspace + * The workspace directory that contains baseline files. If SCM declares + * that {@linkplain #requiresWorkspaceForPolling() the polling doesn't require a workspace}, this parameter is null. + * @param listener + * Logs during the polling should be sent here. + * @param baseline + * The baseline of the comparison. This object is the return value from earlier + * {@link #compareRemoteRevisionWith(AbstractProject, Launcher, FilePath, TaskListener, SCMRevisionState)} or + * {@link #calcRevisionsFromBuild(AbstractBuild, Launcher, TaskListener)}. + * + * @return + * This method returns multiple values that are bundled together into the {@link PollingResult} value type. + * {@link PollingResult#baseline} should be the value of the baseline parameter, {@link PollingResult#remote} + * is the current state of the remote repository (this object only needs to be understandable to the future + * invocations of this method), + * and {@link PollingResult#change} that indicates the degree of changes found during the comparison. + * + * @throws InterruptedException + * interruption is usually caused by the user aborting the computation. + * this exception should be simply propagated all the way up. + */ + protected abstract PollingResult compareRemoteRevisionWith(AbstractProject project, Launcher launcher, FilePath workspace, TaskListener listener, SCMRevisionState baseline) throws IOException, InterruptedException; + + /** + * A pointless function to work around what appears to be a HotSpot problem. See HUDSON-5756 and bug 6933067 + * on BugParade for more details. + */ + private PollingResult _compareRemoteRevisionWith(AbstractProject project, Launcher launcher, FilePath workspace, TaskListener listener, SCMRevisionState baseline2) throws IOException, InterruptedException { + return compareRemoteRevisionWith(project, launcher, workspace, listener, baseline2); + } + + /** + * Convenience method for the caller to handle the backward compatibility between pre 1.345 SCMs. + */ + public final PollingResult poll(AbstractProject project, Launcher launcher, FilePath workspace, TaskListener listener, SCMRevisionState baseline) throws IOException, InterruptedException { + if (is1_346OrLater()) { + // This is to work around HUDSON-5827 in a general way. + // don't let the SCM.compareRemoteRevisionWith(...) see SCMRevisionState that it didn't produce. + SCMRevisionState baseline2; + if (baseline!=SCMRevisionState.NONE) { + baseline2 = baseline; + } else { + baseline2 = _calcRevisionsFromBuild(project.getLastBuild(), launcher, listener); + } + + return _compareRemoteRevisionWith(project, launcher, workspace, listener, baseline2); + } else { + return pollChanges(project,launcher,workspace,listener) ? PollingResult.SIGNIFICANT : PollingResult.NO_CHANGES; + } + } + + private boolean is1_346OrLater() { + for (Class c = getClass(); c != SCM.class; c = c.getSuperclass()) { + try { + c.getDeclaredMethod("compareRemoteRevisionWith", AbstractProject.class, Launcher.class, FilePath.class, TaskListener.class, SCMRevisionState.class); + return true; + } catch (NoSuchMethodException e) { } + } + return false; + } /** * Obtains a fresh workspace of the module(s) into the specified directory @@ -236,7 +412,7 @@ public abstract class SCM implements Describable, ExtensionPoint { * interruption is usually caused by the user aborting the build. * this exception will cause the build to fail. */ - public abstract boolean checkout(AbstractBuild build, Launcher launcher, FilePath workspace, BuildListener listener, File changelogFile) throws IOException, InterruptedException; + public abstract boolean checkout(AbstractBuild build, Launcher launcher, FilePath workspace, BuildListener listener, File changelogFile) throws IOException, InterruptedException; /** * Adds environmental variables for the builds to the given map. @@ -244,8 +420,14 @@ public abstract class SCM implements Describable, ExtensionPoint { *

    * This can be used to propagate information from SCM to builds * (for example, SVN revision number.) + * + *

    + * This method is invoked whenever someone does {@link AbstractBuild#getEnvironment(TaskListener)}, which + * can be before/after your checkout method is invoked. So if you are going to provide information about + * check out (like SVN revision number that was checked out), be prepared for the possibility that the + * check out hasn't happened yet. */ - public void buildEnvVars(AbstractBuild build, Map env) { + public void buildEnvVars(AbstractBuild build, Map env) { // default implementation is noop. } @@ -289,8 +471,27 @@ public abstract class SCM implements Describable, ExtensionPoint { * * @param workspace * The workspace root directory. + * @param build + * The build for which the module root is desired. + * This parameter is null when existing legacy code calls deprecated {@link #getModuleRoot(FilePath)}. + * Handle this situation gracefully if your can, but otherwise you can just fail with an exception, too. + * + * @since 1.382 + */ + public FilePath getModuleRoot(FilePath workspace, AbstractBuild build) { + // For backwards compatibility, call the one argument version of the method. + return getModuleRoot(workspace); + } + + /** + * @deprecated since 1.382 + * Use/override {@link #getModuleRoot(FilePath, AbstractBuild)} instead. */ public FilePath getModuleRoot(FilePath workspace) { + if (Util.isOverridden(SCM.class,getClass(),"getModuleRoot", FilePath.class,AbstractBuild.class)) + // if the subtype already implements newer getModuleRoot(FilePath,AbstractBuild), call that. + return getModuleRoot(workspace,null); + return workspace; } @@ -316,12 +517,36 @@ public abstract class SCM implements Describable, ExtensionPoint { * *

    * For normal SCMs, the array will be of length 1 and it's contents - * will be identical to calling {@link #getModuleRoot(FilePath)}. + * will be identical to calling {@link #getModuleRoot(FilePath, AbstractBuild)}. * * @param workspace The workspace root directory + * @param build + * The build for which the module roots are desired. + * This parameter is null when existing legacy code calls deprecated {@link #getModuleRoot(FilePath)}. + * Handle this situation gracefully if your can, but otherwise you can just fail with an exception, too. + * * @return An array of all module roots. + * @since 1.382 + */ + public FilePath[] getModuleRoots(FilePath workspace, AbstractBuild build) { + if (Util.isOverridden(SCM.class,getClass(),"getModuleRoots", FilePath.class)) + // if the subtype derives legacy getModuleRoots(FilePath), delegate to it + return getModuleRoots(workspace); + + // otherwise the default implementation + return new FilePath[]{getModuleRoot(workspace,build)}; + } + + /** + * @deprecated as of 1.382. + * Use/derive from {@link #getModuleRoots(FilePath, AbstractBuild)} instead. */ public FilePath[] getModuleRoots(FilePath workspace) { + if (Util.isOverridden(SCM.class,getClass(),"getModuleRoots", FilePath.class, AbstractBuild.class)) + // if the subtype already derives newer getModuleRoots(FilePath,AbstractBuild), delegate to it + return getModuleRoots(workspace,null); + + // otherwise the default implementation return new FilePath[] { getModuleRoot(workspace), }; } @@ -331,9 +556,13 @@ public abstract class SCM implements Describable, ExtensionPoint { public abstract ChangeLogParser createChangeLogParser(); public SCMDescriptor getDescriptor() { - return (SCMDescriptor)Hudson.getInstance().getDescriptor(getClass()); + return (SCMDescriptor)Hudson.getInstance().getDescriptorOrDie(getClass()); } +// +// convenience methods +// + protected final boolean createEmptyChangeLog(File changelogFile, BuildListener listener, String rootTag) { try { FileWriter w = new FileWriter(changelogFile); @@ -363,7 +592,7 @@ public abstract class SCM implements Describable, ExtensionPoint { * Returns all the registered {@link SCMDescriptor}s. */ public static DescriptorExtensionList> all() { - return Hudson.getInstance().getDescriptorList(SCM.class); + return Hudson.getInstance().>getDescriptorList(SCM.class); } /** diff --git a/core/src/main/java/hudson/scm/SCMDescriptor.java b/core/src/main/java/hudson/scm/SCMDescriptor.java index 9845d54035723d1f9573a54ac740b636637d0668..2e51b23e6806fc45ba7dccf20105de0bc69d986c 100644 --- a/core/src/main/java/hudson/scm/SCMDescriptor.java +++ b/core/src/main/java/hudson/scm/SCMDescriptor.java @@ -24,11 +24,13 @@ package hudson.scm; import hudson.model.Descriptor; -import hudson.model.Describable; import hudson.model.AbstractProject; import java.util.List; import java.util.Collections; +import java.util.logging.Logger; +import static java.util.logging.Level.WARNING; +import java.lang.reflect.Field; /** * {@link Descriptor} for {@link SCM}. @@ -43,7 +45,7 @@ public abstract class SCMDescriptor extends Descriptor { * If this SCM has corresponding {@link RepositoryBrowser}, * that type. Otherwise this SCM will not have any repository browser. */ - public final Class repositoryBrowser; + public transient final Class repositoryBrowser; /** * Incremented every time a new {@link SCM} instance is created from this descriptor. @@ -69,6 +71,26 @@ public abstract class SCMDescriptor extends Descriptor { this.repositoryBrowser = repositoryBrowser; } + // work around HUDSON-4514. The repositoryBrowser field was marked as non-transient until 1.325, + // causing the field to be persisted and overwritten on the load method. + @SuppressWarnings({"ConstantConditions"}) + @Override + public void load() { + Class rb = repositoryBrowser; + super.load(); + if (repositoryBrowser!=rb) { // XStream may overwrite even the final field. + try { + Field f = SCMDescriptor.class.getDeclaredField("repositoryBrowser"); + f.setAccessible(true); + f.set(this,rb); + } catch (NoSuchFieldException e) { + LOGGER.log(WARNING, "Failed to overwrite the repositoryBrowser field",e); + } catch (IllegalAccessException e) { + LOGGER.log(WARNING, "Failed to overwrite the repositoryBrowser field",e); + } + } + } + /** * Optional method used by the automatic SCM browser inference. * @@ -108,4 +130,6 @@ public abstract class SCMDescriptor extends Descriptor { if(repositoryBrowser==null) return Collections.emptyList(); return RepositoryBrowsers.filter(repositoryBrowser); } + + private static final Logger LOGGER = Logger.getLogger(SCMDescriptor.class.getName()); } diff --git a/core/src/main/java/hudson/scm/SCMRevisionState.java b/core/src/main/java/hudson/scm/SCMRevisionState.java new file mode 100644 index 0000000000000000000000000000000000000000..86c2630f38f3fae66ccb3199683818e9b2d73928 --- /dev/null +++ b/core/src/main/java/hudson/scm/SCMRevisionState.java @@ -0,0 +1,47 @@ +package hudson.scm; + +import hudson.model.AbstractBuild; +import hudson.model.Action; + +/** + * Immutable object that represents revisions of the files in the repository, + * used to represent the result of + * {@linkplain SCM#poll(AbstractProject, Launcher, FilePath, TaskListener, SCMRevisionState) a SCM polling}. + * + *

    + * This object is used so that the successive polling can compare the tip of the repository now vs + * what it was when it was last polled. (Before 1.345, Hudson was only able to compare the tip + * of the repository vs the state of the workspace, which resulted in a problem like HUDSON-2180. + * + *

    + * {@link SCMRevisionState} is persisted as an action to {@link AbstractBuild}. + * + * @author Kohsuke Kawaguchi + * @since 1.345 + */ +public abstract class SCMRevisionState implements Action { + public String getIconFileName() { + return null; + } + + public String getDisplayName() { + return null; + } + + public String getUrlName() { + return null; + } + + /* + I can't really make this comparable because comparing two revision states often requires + non-trivial computation and conversations with the repository (mainly to figure out + which changes are insignificant and which are not.) + + So instead, here we opt to a design where we tell SCM upfront about what we are comparing + against (baseline), and have it give us the new state and degree of change in PollingResult. + */ + + public static SCMRevisionState NONE = new None(); + + private static final class None extends SCMRevisionState {} +} diff --git a/core/src/main/java/hudson/scm/SCMS.java b/core/src/main/java/hudson/scm/SCMS.java index aec68f43d806d2bf65db7d8e68ae82fbe7ada9d8..351d1b6a4782566ae668cd9818ed9215cacfa844 100644 --- a/core/src/main/java/hudson/scm/SCMS.java +++ b/core/src/main/java/hudson/scm/SCMS.java @@ -23,12 +23,9 @@ */ package hudson.scm; -import hudson.model.Descriptor; -import hudson.model.Hudson; import hudson.model.AbstractProject; import hudson.model.Descriptor.FormException; import hudson.util.DescriptorList; -import hudson.DescriptorExtensionList; import hudson.Extension; import java.util.List; diff --git a/core/src/main/java/hudson/scm/SubversionChangeLogBuilder.java b/core/src/main/java/hudson/scm/SubversionChangeLogBuilder.java deleted file mode 100644 index 0a9617d3b6cf674dcc3337c2d37bc71c9bf0dba5..0000000000000000000000000000000000000000 --- a/core/src/main/java/hudson/scm/SubversionChangeLogBuilder.java +++ /dev/null @@ -1,225 +0,0 @@ -/* - * The MIT License - * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Daniel Dyer, Jean-Baptiste Quenot, Luca Domenico Milanesio, Renaud Bruyeron - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ -package hudson.scm; - -import hudson.model.AbstractBuild; -import hudson.model.BuildListener; -import hudson.model.Hudson; -import hudson.scm.SubversionSCM.ModuleLocation; -import hudson.FilePath; -import hudson.util.IOException2; -import hudson.remoting.VirtualChannel; -import hudson.FilePath.FileCallable; -import org.tmatesoft.svn.core.SVNException; -import org.tmatesoft.svn.core.SVNURL; -import org.tmatesoft.svn.core.ISVNLogEntryHandler; -import org.tmatesoft.svn.core.SVNLogEntry; -import org.tmatesoft.svn.core.auth.ISVNAuthenticationProvider; -import org.tmatesoft.svn.core.wc.SVNClientManager; -import org.tmatesoft.svn.core.wc.SVNLogClient; -import org.tmatesoft.svn.core.wc.SVNRevision; -import org.tmatesoft.svn.core.wc.SVNWCClient; -import org.tmatesoft.svn.core.wc.SVNInfo; -import org.tmatesoft.svn.core.wc.xml.SVNXMLLogHandler; -import org.xml.sax.helpers.LocatorImpl; - -import javax.xml.transform.Result; -import javax.xml.transform.TransformerConfigurationException; -import javax.xml.transform.sax.SAXTransformerFactory; -import javax.xml.transform.sax.TransformerHandler; -import java.io.IOException; -import java.io.PrintStream; -import java.io.File; -import java.util.Map; -import java.util.Collection; - -/** - * Builds changelog.xml for {@link SubversionSCM}. - * - * @author Kohsuke Kawaguchi - */ -public final class SubversionChangeLogBuilder { - /** - * Revisions of the workspace before the update/checkout. - */ - private final Map previousRevisions; - /** - * Revisions of the workspace after the update/checkout. - */ - private final Map thisRevisions; - - private final BuildListener listener; - private final SubversionSCM scm; - private final AbstractBuild build; - - public SubversionChangeLogBuilder(AbstractBuild build, BuildListener listener, SubversionSCM scm) throws IOException { - previousRevisions = SubversionSCM.parseRevisionFile(build.getPreviousBuild()); - thisRevisions = SubversionSCM.parseRevisionFile(build); - this.listener = listener; - this.scm = scm; - this.build = build; - - } - - public boolean run(Collection externals, Result changeLog) throws IOException, InterruptedException { - boolean changelogFileCreated = false; - - final SVNClientManager manager = SubversionSCM.createSvnClientManager(); - try { - SVNLogClient svnlc = manager.getLogClient(); - TransformerHandler th = createTransformerHandler(); - th.setResult(changeLog); - SVNXMLLogHandler logHandler = new SVNXMLLogHandler(th); - // work around for http://svnkit.com/tracker/view.php?id=175 - th.setDocumentLocator(DUMMY_LOCATOR); - logHandler.startDocument(); - - for (ModuleLocation l : scm.getLocations(build)) { - changelogFileCreated |= buildModule(l.getURL(), svnlc, logHandler); - } - for(SubversionSCM.External ext : externals) { - changelogFileCreated |= buildModule( - getUrlForPath(build.getProject().getWorkspace().child(ext.path)), svnlc, logHandler); - } - - if(changelogFileCreated) { - logHandler.endDocument(); - } - - return changelogFileCreated; - } finally { - manager.dispose(); - } - } - - private String getUrlForPath(FilePath path) throws IOException, InterruptedException { - return path.act(new GetUrlForPath(createAuthenticationProvider())); - } - - private ISVNAuthenticationProvider createAuthenticationProvider() { - return Hudson.getInstance().getDescriptorByType(SubversionSCM.DescriptorImpl.class).createAuthenticationProvider(); - } - - private boolean buildModule(String url, SVNLogClient svnlc, SVNXMLLogHandler logHandler) throws IOException2 { - PrintStream logger = listener.getLogger(); - Long prevRev = previousRevisions.get(url); - if(prevRev==null) { - logger.println("no revision recorded for "+url+" in the previous build"); - return false; - } - Long thisRev = thisRevisions.get(url); - if (thisRev == null) { - listener.error("No revision found for URL: " + url + " in " + SubversionSCM.getRevisionFile(build) + ". Revision file contains: " + thisRevisions.keySet()); - return true; - } - if(thisRev.equals(prevRev)) { - logger.println("no change for "+url+" since the previous build"); - return false; - } - - try { - if(debug) - listener.getLogger().printf("Computing changelog of %1s from %2s to %3s\n", - SVNURL.parseURIEncoded(url), prevRev+1, thisRev); - svnlc.doLog(SVNURL.parseURIEncoded(url), - null, - SVNRevision.UNDEFINED, - SVNRevision.create(prevRev+1), - SVNRevision.create(thisRev), - false, // Don't stop on copy. - true, // Report paths. - 0, // Retrieve log entries for unlimited number of revisions. - debug ? new DebugSVNLogHandler(logHandler) : logHandler); - if(debug) - listener.getLogger().println("done"); - } catch (SVNException e) { - throw new IOException2("revision check failed on "+url,e); - } - return true; - } - - /** - * Filter {@link ISVNLogEntryHandler} that dumps information. Used only for debugging. - */ - private class DebugSVNLogHandler implements ISVNLogEntryHandler { - private final ISVNLogEntryHandler core; - - private DebugSVNLogHandler(ISVNLogEntryHandler core) { - this.core = core; - } - - public void handleLogEntry(SVNLogEntry logEntry) throws SVNException { - listener.getLogger().println("SVNLogEntry="+logEntry); - core.handleLogEntry(logEntry); - } - } - - /** - * Creates an identity transformer. - */ - private static TransformerHandler createTransformerHandler() { - try { - return ((SAXTransformerFactory) SAXTransformerFactory.newInstance()).newTransformerHandler(); - } catch (TransformerConfigurationException e) { - throw new Error(e); // impossible - } - } - - private static final LocatorImpl DUMMY_LOCATOR = new LocatorImpl(); - - public static boolean debug = false; - - static { - DUMMY_LOCATOR.setLineNumber(-1); - DUMMY_LOCATOR.setColumnNumber(-1); - } - - private static class GetUrlForPath implements FileCallable { - private final ISVNAuthenticationProvider authProvider; - - public GetUrlForPath(ISVNAuthenticationProvider authProvider) { - this.authProvider = authProvider; - } - - public String invoke(File p, VirtualChannel channel) throws IOException { - final SVNClientManager manager = SubversionSCM.createSvnClientManager(authProvider); - try { - final SVNWCClient svnwc = manager.getWCClient(); - - SVNInfo info; - try { - info = svnwc.doInfo(p, SVNRevision.WORKING); - return info.getURL().toDecodedString(); - } catch (SVNException e) { - e.printStackTrace(); - return null; - } - } finally { - manager.dispose(); - } - } - - private static final long serialVersionUID = 1L; - } -} diff --git a/core/src/main/java/hudson/scm/SubversionChangeLogParser.java b/core/src/main/java/hudson/scm/SubversionChangeLogParser.java deleted file mode 100644 index afeaa0f2fd654475590340542e79f5e596393f2f..0000000000000000000000000000000000000000 --- a/core/src/main/java/hudson/scm/SubversionChangeLogParser.java +++ /dev/null @@ -1,76 +0,0 @@ -/* - * The MIT License - * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ -package hudson.scm; - -import hudson.model.AbstractBuild; -import hudson.scm.SubversionChangeLogSet.LogEntry; -import hudson.scm.SubversionChangeLogSet.Path; -import hudson.util.Digester2; -import hudson.util.IOException2; -import org.apache.commons.digester.Digester; -import org.xml.sax.SAXException; - -import java.io.File; -import java.io.IOException; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Comparator; - -/** - * {@link ChangeLogParser} for Subversion. - * - * @author Kohsuke Kawaguchi - */ -public class SubversionChangeLogParser extends ChangeLogParser { - public SubversionChangeLogSet parse(AbstractBuild build, File changelogFile) throws IOException, SAXException { - // http://svn.collab.net/repos/svn/trunk/subversion/svn/schema/ - - Digester digester = new Digester2(); - ArrayList r = new ArrayList(); - digester.push(r); - - digester.addObjectCreate("*/logentry", LogEntry.class); - digester.addSetProperties("*/logentry"); - digester.addBeanPropertySetter("*/logentry/author","user"); - digester.addBeanPropertySetter("*/logentry/date"); - digester.addBeanPropertySetter("*/logentry/msg"); - digester.addSetNext("*/logentry","add"); - - digester.addObjectCreate("*/logentry/paths/path", Path.class); - digester.addSetProperties("*/logentry/paths/path"); - digester.addBeanPropertySetter("*/logentry/paths/path","value"); - digester.addSetNext("*/logentry/paths/path","addPath"); - - try { - digester.parse(changelogFile); - } catch (IOException e) { - throw new IOException2("Failed to parse "+changelogFile,e); - } catch (SAXException e) { - throw new IOException2("Failed to parse "+changelogFile,e); - } - - return new SubversionChangeLogSet(build,r); - } - -} diff --git a/core/src/main/java/hudson/scm/SubversionChangeLogSet.java b/core/src/main/java/hudson/scm/SubversionChangeLogSet.java deleted file mode 100644 index d411640e3e751c38603f79e9f45b639df1ab0c6f..0000000000000000000000000000000000000000 --- a/core/src/main/java/hudson/scm/SubversionChangeLogSet.java +++ /dev/null @@ -1,259 +0,0 @@ -/* - * The MIT License - * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Erik Ramfelt - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ -package hudson.scm; - -import hudson.model.AbstractBuild; -import hudson.model.User; -import hudson.scm.SubversionChangeLogSet.LogEntry; -import org.kohsuke.stapler.export.Exported; -import org.kohsuke.stapler.export.ExportedBean; - -import java.io.IOException; -import java.util.AbstractList; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Comparator; - -/** - * {@link ChangeLogSet} for Subversion. - * - * @author Kohsuke Kawaguchi - */ -public final class SubversionChangeLogSet extends ChangeLogSet { - private final List logs; - - /** - * @GuardedBy this - */ - private Map revisionMap; - - /*package*/ SubversionChangeLogSet(AbstractBuild build, List logs) { - super(build); - // we want recent changes first - Collections.sort(logs,new Comparator() { - public int compare(LogEntry a, LogEntry b) { - return b.getRevision()-a.getRevision(); - } - }); - this.logs = Collections.unmodifiableList(logs); - for (LogEntry log : logs) - log.setParent(this); - } - - public boolean isEmptySet() { - return logs.isEmpty(); - } - - public List getLogs() { - return logs; - } - - - public Iterator iterator() { - return logs.iterator(); - } - - @Override - public String getKind() { - return "svn"; - } - - public synchronized Map getRevisionMap() throws IOException { - if(revisionMap==null) - revisionMap = SubversionSCM.parseRevisionFile(build); - return revisionMap; - } - - @Exported - public List getRevisions() throws IOException { - List r = new ArrayList(); - for (Map.Entry e : getRevisionMap().entrySet()) - r.add(new RevisionInfo(e.getKey(),e.getValue())); - return r; - } - - @ExportedBean(defaultVisibility=999) - public static final class RevisionInfo { - @Exported public final String module; - @Exported public final long revision; - public RevisionInfo(String module, long revision) { - this.module = module; - this.revision = revision; - } - } - - /** - * One commit. - *

    - * Setter methods are public only so that the objects can be constructed from Digester. - * So please consider this object read-only. - */ - public static class LogEntry extends ChangeLogSet.Entry { - private int revision; - private User author; - private String date; - private String msg; - private List paths = new ArrayList(); - - /** - * Gets the {@link SubversionChangeLogSet} to which this change set belongs. - */ - public SubversionChangeLogSet getParent() { - return (SubversionChangeLogSet)super.getParent(); - } - - /** - * Gets the revision of the commit. - * - *

    - * If the commit made the repository revision 1532, this - * method returns 1532. - */ - @Exported - public int getRevision() { - return revision; - } - - public void setRevision(int revision) { - this.revision = revision; - } - - @Override - public User getAuthor() { - if(author==null) - return User.getUnknown(); - return author; - } - - @Override - public Collection getAffectedPaths() { - return new AbstractList() { - public String get(int index) { - return paths.get(index).value; - } - public int size() { - return paths.size(); - } - }; - } - - public void setUser(String author) { - this.author = User.get(author); - } - - @Exported - public String getUser() {// digester wants read/write property, even though it never reads. Duh. - return author.getDisplayName(); - } - - @Exported - public String getDate() { - return date; - } - - public void setDate(String date) { - this.date = date; - } - - @Override @Exported - public String getMsg() { - return msg; - } - - public void setMsg(String msg) { - this.msg = msg; - } - - public void addPath( Path p ) { - p.entry = this; - paths.add(p); - } - - /** - * Gets the files that are changed in this commit. - * @return - * can be empty but never null. - */ - @Exported - public List getPaths() { - return paths; - } - } - - /** - * A file in a commit. - *

    - * Setter methods are public only so that the objects can be constructed from Digester. - * So please consider this object read-only. - */ - @ExportedBean(defaultVisibility=999) - public static class Path { - private LogEntry entry; - private char action; - private String value; - - /** - * Gets the {@link LogEntry} of which this path is a member. - */ - public LogEntry getLogEntry() { - return entry; - } - - /** - * Sets the {@link LogEntry} of which this path is a member. - */ - public void setLogEntry(LogEntry entry) { - this.entry = entry; - } - - public void setAction(String action) { - this.action = action.charAt(0); - } - - /** - * Path in the repository. Such as /test/trunk/foo.c - */ - @Exported(name="file") - public String getValue() { - return value; - } - - public void setValue(String value) { - this.value = value; - } - - @Exported - public EditType getEditType() { - if( action=='A' ) - return EditType.ADD; - if( action=='D' ) - return EditType.DELETE; - return EditType.EDIT; - } - } -} diff --git a/core/src/main/java/hudson/scm/SubversionCredentialProvider.java b/core/src/main/java/hudson/scm/SubversionCredentialProvider.java deleted file mode 100644 index d9d8c0daf5cf3527bccbcb0076873494ca05a982..0000000000000000000000000000000000000000 --- a/core/src/main/java/hudson/scm/SubversionCredentialProvider.java +++ /dev/null @@ -1,64 +0,0 @@ -/* - * The MIT License - * - * Copyright (c) 2004-2009, Sun Microsystems, Inc. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ -package hudson.scm; - -import hudson.ExtensionList; -import hudson.ExtensionPoint; -import hudson.Extension; -import hudson.model.Hudson; -import hudson.scm.SubversionSCM.DescriptorImpl.Credential; -import org.tmatesoft.svn.core.SVNURL; - -/** - * Extension point for programmatically providing a credential (such as username/password) for - * Subversion access. - * - *

    - * Put {@link Extension} on your implementation to have it registered. - * - * @author Kohsuke Kawaguchi - * @since 1.301 - */ -public abstract class SubversionCredentialProvider implements ExtensionPoint { - /** - * Called whenever Hudson needs to connect to an authenticated subversion repository, - * to obtain a credential. - * - * @param realm - * This is a non-null string that represents the realm of authentication. - * @param url - * URL that is being accessed. Never null. - * @return - * null if the implementation doesn't understand the given realm. When null is returned, - * Hudson searches other sources of credentials to come up with one. - */ - public abstract Credential getCredential(SVNURL url, String realm); - - /** - * All regsitered instances. - */ - public static ExtensionList all() { - return Hudson.getInstance().getExtensionList(SubversionCredentialProvider.class); - } -} diff --git a/core/src/main/java/hudson/scm/SubversionEventHandlerImpl.java b/core/src/main/java/hudson/scm/SubversionEventHandlerImpl.java deleted file mode 100644 index 307f853b0f7c24f5f7ea40187625cd6f36f294d2..0000000000000000000000000000000000000000 --- a/core/src/main/java/hudson/scm/SubversionEventHandlerImpl.java +++ /dev/null @@ -1,223 +0,0 @@ -/* - * ==================================================================== - * Copyright (c) 2004-2007 TMate Software Ltd. All rights reserved. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://svnkit.com/license.html - * If newer versions of this license are posted there, you may use a - * newer version instead, at your option. - * ==================================================================== - */ -package hudson.scm; - -import org.tmatesoft.svn.core.SVNErrorCode; -import org.tmatesoft.svn.core.SVNErrorMessage; -import org.tmatesoft.svn.core.SVNException; -import org.tmatesoft.svn.core.internal.util.SVNPathUtil; -import org.tmatesoft.svn.core.internal.wc.SVNFileUtil; -import org.tmatesoft.svn.core.wc.SVNEvent; -import org.tmatesoft.svn.core.wc.SVNEventAction; -import org.tmatesoft.svn.core.wc.SVNEventAdapter; -import org.tmatesoft.svn.core.wc.SVNStatusType; -import org.tmatesoft.svn.core.wc.ISVNEventHandler; - -import java.io.File; -import java.io.IOException; -import java.io.PrintStream; - -/** - * {@link ISVNEventHandler} that emulates the SVN CLI behavior. - * - * @author Kohsuke Kawaguchi - */ -public class SubversionEventHandlerImpl extends SVNEventAdapter { - protected final PrintStream out; - - protected final File baseDir; - - public SubversionEventHandlerImpl(PrintStream out, File baseDir) { - this.out = out; - this.baseDir = baseDir; - } - - public void handleEvent(SVNEvent event, double progress) throws SVNException { - File file = event.getFile(); - String path = null; - if (file != null) { - try { - path = getRelativePath(file); - } catch (IOException e) { - throw new SVNException(SVNErrorMessage.create(SVNErrorCode.FS_GENERAL), e); - } - path = getLocalPath(path); - } - - SVNEventAction action = event.getAction(); - - {// commit notifications - if (action == SVNEventAction.COMMIT_ADDED) { - out.println("Adding "+path); - return; - } - if (action == SVNEventAction.COMMIT_DELETED) { - out.println("Deleting "+path); - return; - } - if (action == SVNEventAction.COMMIT_MODIFIED) { - out.println("Sending "+path); - return; - } - if (action == SVNEventAction.COMMIT_REPLACED) { - out.println("Replacing "+path); - return; - } - if (action == SVNEventAction.COMMIT_DELTA_SENT) { - out.println("Transmitting file data...."); - return; - } - } - - String pathChangeType = " "; - if (action == SVNEventAction.UPDATE_ADD) { - pathChangeType = "A"; - SVNStatusType contentsStatus = event.getContentsStatus(); - if(contentsStatus== SVNStatusType.UNCHANGED) { - // happens a lot with merges - pathChangeType = " "; - }else if (contentsStatus == SVNStatusType.CONFLICTED) { - pathChangeType = "C"; - } else if (contentsStatus == SVNStatusType.MERGED) { - pathChangeType = "G"; - } - } else if (action == SVNEventAction.UPDATE_DELETE) { - pathChangeType = "D"; - } else if (action == SVNEventAction.UPDATE_UPDATE) { - SVNStatusType contentsStatus = event.getContentsStatus(); - if (contentsStatus == SVNStatusType.CHANGED) { - /* - * the item was modified in the repository (got the changes - * from the repository - */ - pathChangeType = "U"; - }else if (contentsStatus == SVNStatusType.CONFLICTED) { - /* - * The file item is in a state of Conflict. That is, changes - * received from the repository during an update, overlap with - * local changes the user has in his working copy. - */ - pathChangeType = "C"; - } else if (contentsStatus == SVNStatusType.MERGED) { - /* - * The file item was merGed (those changes that came from the - * repository did not overlap local changes and were merged - * into the file). - */ - pathChangeType = "G"; - } - } else if (action == SVNEventAction.UPDATE_COMPLETED) { - // finished updating - out.println("At revision " + event.getRevision()); - return; - } else if (action == SVNEventAction.ADD){ - out.println("A " + path); - return; - } else if (action == SVNEventAction.DELETE){ - out.println("D " + path); - return; - } else if (action == SVNEventAction.LOCKED){ - out.println("L " + path); - return; - } else if (action == SVNEventAction.LOCK_FAILED){ - out.println("failed to lock " + path); - return; - } - - /* - * Now getting the status of properties of an item. SVNStatusType also - * contains information on the properties state. - */ - SVNStatusType propertiesStatus = event.getPropertiesStatus(); - String propertiesChangeType = " "; - if (propertiesStatus == SVNStatusType.CHANGED) { - propertiesChangeType = "U"; - } else if (propertiesStatus == SVNStatusType.CONFLICTED) { - propertiesChangeType = "C"; - } else if (propertiesStatus == SVNStatusType.MERGED) { - propertiesChangeType = "G"; - } - - String lockLabel = " "; - SVNStatusType lockType = event.getLockStatus(); - if (lockType == SVNStatusType.LOCK_UNLOCKED) { - // The lock is broken by someone. - lockLabel = "B"; - } - - if(pathChangeType.equals(" ") && propertiesChangeType.equals(" ") && lockLabel.equals(" ")) - // nothing to display here. - return; - - out.println(pathChangeType - + propertiesChangeType - + lockLabel - + " " - + path); - } - - public String getRelativePath(File file) throws IOException { - String inPath = file.getCanonicalPath().replace(File.separatorChar, '/'); - String basePath = baseDir.getCanonicalPath().replace(File.separatorChar, '/'); - String commonRoot = getCommonAncestor(inPath, basePath); - - String relativePath = inPath; - if (commonRoot != null) { - if (equals(inPath , commonRoot)) { - return ""; - } else if (startsWith(inPath, commonRoot + "/")) { - relativePath = inPath.substring(commonRoot.length() + 1); - } - } - if (relativePath.endsWith("/")) { - relativePath = relativePath.substring(0, relativePath.length() - 1); - } - return relativePath; - } - - private static String getCommonAncestor(String p1, String p2) { - if (SVNFileUtil.isWindows || SVNFileUtil.isOpenVMS) { - String ancestor = SVNPathUtil.getCommonPathAncestor(p1.toLowerCase(), p2.toLowerCase()); - if (equals(ancestor, p1)) { - return p1; - } else if (equals(ancestor, p2)) { - return p2; - } else if (startsWith(p1, ancestor)) { - return p1.substring(0, ancestor.length()); - } - return ancestor; - } - return SVNPathUtil.getCommonPathAncestor(p1, p2); - } - - private static boolean startsWith(String p1, String p2) { - if (SVNFileUtil.isWindows || SVNFileUtil.isOpenVMS) { - return p1.toLowerCase().startsWith(p2.toLowerCase()); - } - return p1.startsWith(p2); - } - - private static boolean equals(String p1, String p2) { - if (SVNFileUtil.isWindows || SVNFileUtil.isOpenVMS) { - return p1.toLowerCase().equals(p2.toLowerCase()); - } - return p1.equals(p2); - } - - public static String getLocalPath(String path) { - path = path.replace('/', File.separatorChar); - if ("".equals(path)) { - path = "."; - } - return path; - } -} diff --git a/core/src/main/java/hudson/scm/SubversionRepositoryBrowser.java b/core/src/main/java/hudson/scm/SubversionRepositoryBrowser.java deleted file mode 100644 index 93393314412354ef5a94bb6bf300637067260476..0000000000000000000000000000000000000000 --- a/core/src/main/java/hudson/scm/SubversionRepositoryBrowser.java +++ /dev/null @@ -1,54 +0,0 @@ -/* - * The MIT License - * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ -package hudson.scm; - -import java.io.IOException; -import java.net.URL; - -/** - * {@link RepositoryBrowser} for Subversion. - * - * @author Kohsuke Kawaguchi - */ -public abstract class SubversionRepositoryBrowser extends RepositoryBrowser { - /** - * Determines the link to the diff between the version - * in the specified revision of {@link SubversionChangeLogSet.Path} to its previous version. - * - * @return - * null if the browser doesn't have any URL for diff. - */ - public abstract URL getDiffLink(SubversionChangeLogSet.Path path) throws IOException; - - /** - * Determines the link to a single file under Subversion. - * This page should display all the past revisions of this file, etc. - * - * @return - * null if the browser doesn't have any suitable URL. - */ - public abstract URL getFileLink(SubversionChangeLogSet.Path path) throws IOException; - - private static final long serialVersionUID = 1L; -} diff --git a/core/src/main/java/hudson/scm/SubversionSCM.java b/core/src/main/java/hudson/scm/SubversionSCM.java deleted file mode 100644 index 073272e59302f72f6bc2b823b3e6c6a6eabd59b1..0000000000000000000000000000000000000000 --- a/core/src/main/java/hudson/scm/SubversionSCM.java +++ /dev/null @@ -1,1785 +0,0 @@ -/* - * The MIT License - * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Fulvio Cavarretta, Jean-Baptiste Quenot, Luca Domenico Milanesio, Renaud Bruyeron, Stephen Connolly, Tom Huybrechts - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ -package hudson.scm; - -import com.thoughtworks.xstream.XStream; -import com.trilead.ssh2.DebugLogger; -import com.trilead.ssh2.SCPClient; -import hudson.FilePath; -import hudson.FilePath.FileCallable; -import hudson.Launcher; -import hudson.Util; -import hudson.XmlFile; -import hudson.Functions; -import hudson.Extension; -import hudson.model.AbstractBuild; -import hudson.model.AbstractProject; -import hudson.model.BuildListener; -import hudson.model.Hudson; -import hudson.model.ParameterValue; -import hudson.model.ParametersAction; -import hudson.model.TaskListener; -import hudson.remoting.Callable; -import hudson.remoting.Channel; -import hudson.remoting.VirtualChannel; -import hudson.triggers.SCMTrigger; -import hudson.util.EditDistance; -import hudson.util.IOException2; -import hudson.util.MultipartFormDataParser; -import hudson.util.Scrambler; -import hudson.util.StreamCopyThread; -import hudson.util.XStream2; -import hudson.util.FormValidation; -import org.apache.commons.fileupload.FileItem; -import org.apache.commons.io.FileUtils; -import org.apache.tools.ant.Project; -import org.apache.tools.ant.taskdefs.Chmod; -import org.kohsuke.stapler.StaplerRequest; -import org.kohsuke.stapler.StaplerResponse; -import org.kohsuke.stapler.QueryParameter; -import org.kohsuke.putty.PuTTYKey; -import org.tmatesoft.svn.core.SVNDirEntry; -import org.tmatesoft.svn.core.SVNErrorCode; -import org.tmatesoft.svn.core.SVNErrorMessage; -import org.tmatesoft.svn.core.SVNException; -import org.tmatesoft.svn.core.SVNNodeKind; -import org.tmatesoft.svn.core.SVNURL; -import org.tmatesoft.svn.core.SVNCancelException; -import org.tmatesoft.svn.core.ISVNLogEntryHandler; -import org.tmatesoft.svn.core.SVNLogEntry; -import org.tmatesoft.svn.core.SVNLogEntryPath; -import org.tmatesoft.svn.core.auth.ISVNAuthenticationManager; -import org.tmatesoft.svn.core.auth.ISVNAuthenticationProvider; -import org.tmatesoft.svn.core.auth.SVNAuthentication; -import org.tmatesoft.svn.core.auth.SVNPasswordAuthentication; -import org.tmatesoft.svn.core.auth.SVNSSHAuthentication; -import org.tmatesoft.svn.core.auth.SVNSSLAuthentication; -import org.tmatesoft.svn.core.auth.SVNUserNameAuthentication; -import org.tmatesoft.svn.core.internal.io.dav.DAVRepositoryFactory; -import org.tmatesoft.svn.core.internal.io.dav.http.DefaultHTTPConnectionFactory; -import org.tmatesoft.svn.core.internal.io.fs.FSRepositoryFactory; -import org.tmatesoft.svn.core.internal.io.svn.SVNRepositoryFactoryImpl; -import org.tmatesoft.svn.core.internal.util.SVNPathUtil; -import org.tmatesoft.svn.core.internal.wc.DefaultSVNAuthenticationManager; -import org.tmatesoft.svn.core.internal.wc.SVNErrorManager; -import org.tmatesoft.svn.core.internal.wc.SVNExternal; -import org.tmatesoft.svn.core.internal.wc.admin.SVNAdminAreaFactory; -import org.tmatesoft.svn.core.io.SVNRepository; -import org.tmatesoft.svn.core.io.SVNRepositoryFactory; -import org.tmatesoft.svn.core.wc.SVNClientManager; -import org.tmatesoft.svn.core.wc.SVNInfo; -import org.tmatesoft.svn.core.wc.SVNRevision; -import org.tmatesoft.svn.core.wc.SVNUpdateClient; -import org.tmatesoft.svn.core.wc.SVNWCClient; -import org.tmatesoft.svn.core.wc.SVNWCUtil; -import org.tmatesoft.svn.core.wc.SVNLogClient; - -import javax.servlet.ServletException; -import javax.xml.transform.stream.StreamResult; -import java.io.BufferedOutputStream; -import java.io.BufferedReader; -import java.io.File; -import java.io.FileOutputStream; -import java.io.FileReader; -import java.io.IOException; -import java.io.OutputStream; -import java.io.PipedInputStream; -import java.io.PipedOutputStream; -import java.io.PrintStream; -import java.io.PrintWriter; -import java.io.Serializable; -import java.io.StringWriter; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.Date; -import java.util.HashMap; -import java.util.Hashtable; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; -import java.util.Random; -import java.util.StringTokenizer; -import java.util.logging.Level; -import java.util.logging.Logger; -import java.util.regex.Pattern; -import java.util.regex.PatternSyntaxException; - -import net.sf.json.JSONObject; - -/** - * Subversion SCM. - * - *

    Plugin Developer Notes

    - *

    - * Plugins that interact with Subversion can use {@link DescriptorImpl#createAuthenticationProvider()} - * so that it can use the credentials (username, password, etc.) that the user entered for Hudson. - * See the javadoc of this method for the precautions you need to take if you run Subversion operations - * remotely on slaves. - * - *

    Implementation Notes

    - *

    - * Because this instance refers to some other classes that are not necessarily - * Java serializable (like {@link #browser}), remotable {@link FileCallable}s all - * need to be declared as static inner classes. - * - * @author Kohsuke Kawaguchi - */ -public class SubversionSCM extends SCM implements Serializable { - /** - * the locations field is used to store all configured SVN locations (with - * their local and remote part). Direct access to this filed should be - * avoided and the getLocations() method should be used instead. This is - * needed to make importing of old hudson-configurations possible as - * getLocations() will check if the modules field has been set and import - * the data. - * - * @since 1.91 - */ - private ModuleLocation[] locations = new ModuleLocation[0]; - - private boolean useUpdate; - private final SubversionRepositoryBrowser browser; - private String excludedRegions; - - // No longer in use but left for serialization compatibility. - @Deprecated - private String modules; - - /** - * @deprecated as of 1.286 - */ - public SubversionSCM(String[] remoteLocations, String[] localLocations, - boolean useUpdate, SubversionRepositoryBrowser browser) { - this(remoteLocations,localLocations, useUpdate, browser, null); - } - - public SubversionSCM(String[] remoteLocations, String[] localLocations, - boolean useUpdate, SubversionRepositoryBrowser browser, String excludedRegions) { - - List modules = new ArrayList(); - if (remoteLocations != null && localLocations != null) { - int entries = Math.min(remoteLocations.length, localLocations.length); - - for (int i = 0; i < entries; i++) { - // the remote (repository) location - String remoteLoc = nullify(remoteLocations[i]); - - if (remoteLoc != null) {// null if skipped - remoteLoc = Util.removeTrailingSlash(remoteLoc.trim()); - modules.add(new ModuleLocation(remoteLoc, nullify(localLocations[i]))); - } - } - } - locations = modules.toArray(new ModuleLocation[modules.size()]); - - this.useUpdate = useUpdate; - this.browser = browser; - this.excludedRegions = excludedRegions; - } - - /** - * Convenience constructor, especially during testing. - */ - public SubversionSCM(String svnUrl) { - this(new String[]{svnUrl},new String[]{null},true,null,null); - } - - /** - * @deprecated - * as of 1.91. Use {@link #getLocations()} instead. - */ - public String getModules() { - return null; - } - - /** - * list of all configured svn locations - * - * @since 1.91 - */ - public ModuleLocation[] getLocations() { - return getLocations(null); - } - - /** - * list of all configured svn locations, expanded according to - * build parameters values; - * - * @param build - * If non-null, variable expansions are performed against the build parameters. - * - * @since 1.252 - */ - public ModuleLocation[] getLocations(AbstractBuild build) { - // check if we've got a old location - if (modules != null) { - // import the old configuration - List oldLocations = new ArrayList(); - StringTokenizer tokens = new StringTokenizer(modules); - while (tokens.hasMoreTokens()) { - // the remote (repository location) - // the normalized name is always without the trailing '/' - String remoteLoc = Util.removeTrailingSlash(tokens.nextToken()); - - oldLocations.add(new ModuleLocation(remoteLoc, null)); - } - - locations = oldLocations.toArray(new ModuleLocation[oldLocations.size()]); - modules = null; - } - - if(build == null) - return locations; - - ModuleLocation[] outLocations = new ModuleLocation[locations.length]; - for (int i = 0; i < outLocations.length; i++) { - outLocations[i] = locations[i].getExpandedLocation(build); - } - - return outLocations; - } - - public boolean isUseUpdate() { - return useUpdate; - } - - @Override - public SubversionRepositoryBrowser getBrowser() { - return browser; - } - - public String getExcludedRegions() { - return excludedRegions; - } - - public String[] getExcludedRegionsNormalized() { - return excludedRegions == null ? null : excludedRegions.split("[\\r\\n]+"); - } - - private Pattern[] getExcludedRegionsPatterns() { - String[] excludedRegions = getExcludedRegionsNormalized(); - if (excludedRegions != null) { - Pattern[] patterns = new Pattern[excludedRegions.length]; - - int i = 0; - for (String excludedRegion : excludedRegions) { - patterns[i++] = Pattern.compile(excludedRegion); - } - - return patterns; - } - - return null; - } - - /** - * Sets the SVN_REVISION environment variable during the build. - */ - @Override - public void buildEnvVars(AbstractBuild build, Map env) { - super.buildEnvVars(build, env); - - ModuleLocation[] locations = getLocations(build); - - try { - Map revisions = parseRevisionFile(build); - if(locations.length==1) { - Long rev = revisions.get(locations[0].remote); - if(rev!=null) - env.put("SVN_REVISION",rev.toString()); - } - // it's not clear what to do if there are more than one modules. - // if we always return locations[0].remote, it'll be difficult - // to change this later (to something more sensible, such as - // choosing the "root module" or whatever), so let's not set - // anything for now. - // besides, one can always use 'svnversion' to obtain the revision more explicitly. - } catch (IOException e) { - // ignore this error - } - } - - /** - * Called after checkout/update has finished to compute the changelog. - */ - private boolean calcChangeLog(AbstractBuild build, File changelogFile, BuildListener listener, List externals) throws IOException, InterruptedException { - if(build.getPreviousBuild()==null) { - // nothing to compare against - return createEmptyChangeLog(changelogFile, listener, "log"); - } - - // some users reported that the file gets created with size 0. I suspect - // maybe some XSLT engine doesn't close the stream properly. - // so let's do it by ourselves to be really sure that the stream gets closed. - OutputStream os = new BufferedOutputStream(new FileOutputStream(changelogFile)); - boolean created; - try { - created = new SubversionChangeLogBuilder(build, listener, this).run(externals, new StreamResult(os)); - } finally { - os.close(); - } - if(!created) - createEmptyChangeLog(changelogFile, listener, "log"); - - return true; - } - - - /** - * Reads the revision file of the specified build. - * - * @return - * map from {@link SvnInfo#url Subversion URL} to its revision. - */ - /*package*/ static Map parseRevisionFile(AbstractBuild build) throws IOException { - Map revisions = new HashMap(); // module -> revision - {// read the revision file of the last build - File file = getRevisionFile(build); - if(!file.exists()) - // nothing to compare against - return revisions; - - BufferedReader br = new BufferedReader(new FileReader(file)); - try { - String line; - while((line=br.readLine())!=null) { - int index = line.lastIndexOf('/'); - if(index<0) { - continue; // invalid line? - } - try { - revisions.put(line.substring(0,index), Long.parseLong(line.substring(index+1))); - } catch (NumberFormatException e) { - // perhaps a corrupted line. ignore - } - } - } finally { - br.close(); - } - } - - return revisions; - } - - /** - * Parses the file that stores the locations in the workspace where modules loaded by svn:external - * is placed. - * - *

    - * Note that the format of the file has changed in 1.180 from simple text file to XML. - * - * @return - * immutable list. Can be empty but never null. - */ - /*package*/ static List parseExternalsFile(AbstractProject project) throws IOException { - File file = getExternalsFile(project); - if(file.exists()) { - try { - return (List)new XmlFile(External.XSTREAM,file).read(); - } catch (IOException e) { - // in < 1.180 this file was a text file, so it may fail to parse as XML, - // in which case let's just fall back - } - } - - return Collections.emptyList(); - } - - /** - * Polling can happen on the master and does not require a workspace. - */ - @Override - public boolean requiresWorkspaceForPolling() { - return false; - } - - public boolean checkout(AbstractBuild build, Launcher launcher, FilePath workspace, final BuildListener listener, File changelogFile) throws IOException, InterruptedException { - List externals = checkout(build,workspace,listener); - - if(externals==null) - return false; - - // write out the revision file - PrintWriter w = new PrintWriter(new FileOutputStream(getRevisionFile(build))); - try { - Map revMap = workspace.act(new BuildRevisionMapTask(build, this, listener, externals)); - for (Entry e : revMap.entrySet()) { - w.println( e.getKey() +'/'+ e.getValue().revision ); - } - build.addAction(new SubversionTagAction(build,revMap.values())); - } finally { - w.close(); - } - - // write out the externals info - new XmlFile(External.XSTREAM,getExternalsFile(build.getProject())).write(externals); - - return calcChangeLog(build, changelogFile, listener, externals); - } - - /** - * Performs the checkout or update, depending on the configuration and workspace state. - * - *

    - * Use canonical path to avoid SVNKit/symlink problem as described in - * https://wiki.svnkit.com/SVNKit_FAQ - * - * @return null - * if the operation failed. Otherwise the set of local workspace paths - * (relative to the workspace root) that has loaded due to svn:external. - */ - private List checkout(AbstractBuild build, FilePath workspace, TaskListener listener) throws IOException, InterruptedException { - try { - - if (!repositoryLocationsExist(build, listener) && build.getProject().getLastSuccessfulBuild()!=null) { - // Disable this project, see issue #763 - // but only do so if there was at least some successful build, - // to make sure that initial configuration error won't disable the build. see issue #1567 - - listener.getLogger().println("One or more repository locations do not exist anymore for " + build.getProject().getName() + ", project will be disabled."); - build.getProject().makeDisabled(true); - return null; - } - } catch (SVNException e) { - e.printStackTrace(listener.error(e.getMessage())); - return null; - } - Boolean isUpdatable = useUpdate && workspace.act(new IsUpdatableTask(build, this, listener)); - return workspace.act(new CheckOutTask(build, this, build.getTimestamp().getTime(), isUpdatable, listener)); - } - - - /** - * Either run "svn co" or "svn up" equivalent. - */ - private static class CheckOutTask implements FileCallable> { - private final ISVNAuthenticationProvider authProvider; - private final Date timestamp; - // true to "svn update", false to "svn checkout". - private boolean update; - private final TaskListener listener; - private final ModuleLocation[] locations; - - public CheckOutTask(AbstractBuild build, SubversionSCM parent, Date timestamp, boolean update, TaskListener listener) { - this.authProvider = parent.getDescriptor().createAuthenticationProvider(); - this.timestamp = timestamp; - this.update = update; - this.listener = listener; - this.locations = parent.getLocations(build); - } - - public List invoke(File ws, VirtualChannel channel) throws IOException { - final SVNClientManager manager = createSvnClientManager(authProvider); - try { - final SVNUpdateClient svnuc = manager.getUpdateClient(); - final List externals = new ArrayList(); // store discovered externals to here - final SVNRevision revision = SVNRevision.create(timestamp); - if(update) { - for (final ModuleLocation l : locations) { - try { - listener.getLogger().println("Updating "+ l.remote); - - File local = new File(ws, l.local); - svnuc.setEventHandler(new SubversionUpdateEventHandler(listener.getLogger(), externals,local,l.local)); - svnuc.doUpdate(local.getCanonicalFile(), l.getRevision(revision), true); - - } catch (final SVNException e) { - if(e.getErrorMessage().getErrorCode()== SVNErrorCode.WC_LOCKED) { - // work space locked. try fresh check out - listener.getLogger().println("Workspace appear to be locked, so getting a fresh workspace"); - update = false; - return invoke(ws,channel); - } - if(e.getErrorMessage().getErrorCode()== SVNErrorCode.WC_OBSTRUCTED_UPDATE) { - // HUDSON-1882. If existence of local files cause an update to fail, - // revert to fresh check out - listener.getLogger().println(e.getMessage()); // show why this happened. Sometimes this is caused by having a build artifact in the repository. - listener.getLogger().println("Updated failed due to local files. Getting a fresh workspace"); - update = false; - return invoke(ws,channel); - } - - e.printStackTrace(listener.error("Failed to update "+l.remote)); - // trouble-shooting probe for #591 - if(e.getErrorMessage().getErrorCode()== SVNErrorCode.WC_NOT_LOCKED) { - listener.getLogger().println("Polled jobs are "+ Hudson.getInstance().getDescriptorByType(SCMTrigger.DescriptorImpl.class).getItemsBeingPolled()); - } - return null; - } - } - } else { - Util.deleteContentsRecursive(ws); - - // buffer the output by a separate thread so that the update operation - // won't be blocked by the remoting of the data - PipedOutputStream pos = new PipedOutputStream(); - StreamCopyThread sct = new StreamCopyThread("svn log copier", new PipedInputStream(pos), listener.getLogger()); - sct.start(); - - for (final ModuleLocation l : locations) { - try { - listener.getLogger().println("Checking out "+l.remote); - - File local = new File(ws, l.local); - svnuc.setEventHandler(new SubversionUpdateEventHandler(new PrintStream(pos), externals, local, l.local)); - svnuc.doCheckout(l.getSVNURL(), local.getCanonicalFile(), SVNRevision.HEAD, l.getRevision(revision), true); - } catch (SVNException e) { - e.printStackTrace(listener.error("Failed to check out "+l.remote)); - return null; - } - } - - pos.close(); - try { - sct.join(); // wait for all data to be piped. - } catch (InterruptedException e) { - throw new IOException2("interrupted",e); - } - } - - try { - for (final ModuleLocation l : locations) { - SVNDirEntry dir = manager.createRepository(l.getSVNURL(),true).info("/",-1); - if(dir!=null) {// I don't think this can ever be null, but be defensive - if(dir.getDate()!=null && dir.getDate().after(new Date())) // see http://www.nabble.com/NullPointerException-in-SVN-Checkout-Update-td21609781.html that reported this being null. - listener.getLogger().println(Messages.SubversionSCM_ClockOutOfSync()); - } - } - } catch (SVNException e) { - LOGGER.log(Level.INFO,"Failed to estimate the remote time stamp",e); - } - - return externals; - } finally { - manager.dispose(); - } - } - - private static final long serialVersionUID = 1L; - } - - /** - * Creates {@link SVNClientManager}. - * - *

    - * This method must be executed on the slave where svn operations are performed. - * - * @param authProvider - * The value obtained from {@link DescriptorImpl#createAuthenticationProvider()}. - * If the operation runs on slaves, - * (and properly remoted, if the svn operations run on slaves.) - */ - public static SVNClientManager createSvnClientManager(ISVNAuthenticationProvider authProvider) { - ISVNAuthenticationManager sam = SVNWCUtil.createDefaultAuthenticationManager(); - sam.setAuthenticationProvider(authProvider); - return SVNClientManager.newInstance(SVNWCUtil.createDefaultOptions(true),sam); - } - - /** - * Creates {@link SVNClientManager} for code running on the master. - *

    - * CAUTION: this code only works when invoked on master. On slaves, use - * {@link #createSvnClientManager(ISVNAuthenticationProvider)} and get {@link ISVNAuthenticationProvider} - * from the master via remoting. - */ - public static SVNClientManager createSvnClientManager() { - return createSvnClientManager(Hudson.getInstance().getDescriptorByType(DescriptorImpl.class).createAuthenticationProvider()); - } - - public static final class SvnInfo implements Serializable, Comparable { - /** - * Decoded repository URL. - */ - public final String url; - public final long revision; - - public SvnInfo(String url, long revision) { - this.url = url; - this.revision = revision; - } - - public SvnInfo(SVNInfo info) { - this( info.getURL().toDecodedString(), info.getCommittedRevision().getNumber() ); - } - - public SVNURL getSVNURL() throws SVNException { - return SVNURL.parseURIDecoded(url); - } - - public int compareTo(SvnInfo that) { - int r = this.url.compareTo(that.url); - if(r!=0) return r; - - if(this.revisionthat.revision) return +1; - return 0; - } - - public boolean equals(Object o) { - if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; - - SvnInfo svnInfo = (SvnInfo) o; - - if (revision != svnInfo.revision) return false; - return url.equals(svnInfo.url); - - } - - public int hashCode() { - int result; - result = url.hashCode(); - result = 31 * result + (int) (revision ^ (revision >>> 32)); - return result; - } - - public String toString() { - return String.format("%s (rev.%s)",url,revision); - } - - private static final long serialVersionUID = 1L; - } - - /** - * Information about svn:external - */ - static final class External implements Serializable { - /** - * Relative path within the workspace where this svn:exteranls exist. - */ - final String path; - - /** - * External SVN URL to be fetched. - */ - final String url; - - /** - * If the svn:external link is with the -r option, its number. - * Otherwise -1 to indicate that the head revision of the external repository should be fetched. - */ - final long revision; - - /** - * @param modulePath - * The root of the current module that svn was checking out when it hits 'ext'. - * Since we call svnkit multiple times in general case to check out from multiple locations, - * we use this to make the path relative to the entire workspace, not just the particular module. - */ - External(String modulePath,SVNExternal ext) { - this.path = modulePath+'/'+ext.getPath(); - this.url = ext.getResolvedURL().toDecodedString(); - this.revision = ext.getRevision().getNumber(); - } - - /** - * Returns true if this reference is to a fixed revision. - */ - boolean isRevisionFixed() { - return revision!=-1; - } - - private static final long serialVersionUID = 1L; - - private static final XStream XSTREAM = new XStream2(); - static { - XSTREAM.alias("external",External.class); - } - } - - /** - * Gets the SVN metadata for the given local workspace. - * - * @param workspace - * The target to run "svn info". - */ - private static SVNInfo parseSvnInfo(File workspace, ISVNAuthenticationProvider authProvider) throws SVNException { - final SVNClientManager manager = createSvnClientManager(authProvider); - try { - final SVNWCClient svnWc = manager.getWCClient(); - return svnWc.doInfo(workspace,SVNRevision.WORKING); - } finally { - manager.dispose(); - } - } - - /** - * Gets the SVN metadata for the remote repository. - * - * @param remoteUrl - * The target to run "svn info". - */ - private static SVNInfo parseSvnInfo(SVNURL remoteUrl, ISVNAuthenticationProvider authProvider) throws SVNException { - final SVNClientManager manager = createSvnClientManager(authProvider); - try { - final SVNWCClient svnWc = manager.getWCClient(); - return svnWc.doInfo(remoteUrl, SVNRevision.HEAD, SVNRevision.HEAD); - } finally { - manager.dispose(); - } - } - - /** - * Checks .svn files in the workspace and finds out revisions of the modules - * that the workspace has. - * - * @return - * null if the parsing somehow fails. Otherwise a map from the repository URL to revisions. - */ - private static class BuildRevisionMapTask implements FileCallable> { - private final ISVNAuthenticationProvider authProvider; - private final TaskListener listener; - private final List externals; - private final ModuleLocation[] locations; - - public BuildRevisionMapTask(AbstractBuild build, SubversionSCM parent, TaskListener listener, List externals) { - this.authProvider = parent.getDescriptor().createAuthenticationProvider(); - this.listener = listener; - this.externals = externals; - this.locations = parent.getLocations(build); - } - - public Map invoke(File ws, VirtualChannel channel) throws IOException { - Map revisions = new HashMap(); - - final SVNClientManager manager = createSvnClientManager(authProvider); - try { - final SVNWCClient svnWc = manager.getWCClient(); - // invoke the "svn info" - for( ModuleLocation module : locations ) { - try { - SvnInfo info = new SvnInfo(svnWc.doInfo(new File(ws,module.local), SVNRevision.WORKING)); - revisions.put(info.url,info); - } catch (SVNException e) { - e.printStackTrace(listener.error("Failed to parse svn info for "+module.remote)); - } - } - for(External ext : externals){ - try { - SvnInfo info = new SvnInfo(svnWc.doInfo(new File(ws,ext.path),SVNRevision.WORKING)); - revisions.put(info.url,info); - } catch (SVNException e) { - e.printStackTrace(listener.error("Failed to parse svn info for external "+ext.url+" at "+ext.path)); - } - - } - - return revisions; - } finally { - manager.dispose(); - } - } - private static final long serialVersionUID = 1L; - } - - /** - * Gets the file that stores the revision. - */ - public static File getRevisionFile(AbstractBuild build) { - return new File(build.getRootDir(),"revision.txt"); - } - - /** - * Gets the file that stores the externals. - */ - private static File getExternalsFile(AbstractProject project) { - return new File(project.getRootDir(),"svnexternals.txt"); - } - - /** - * Returns true if we can use "svn update" instead of "svn checkout" - */ - private static class IsUpdatableTask implements FileCallable { - private final TaskListener listener; - private final ISVNAuthenticationProvider authProvider; - private final ModuleLocation[] locations; - - IsUpdatableTask(AbstractBuild build, SubversionSCM parent,TaskListener listener) { - this.authProvider = parent.getDescriptor().createAuthenticationProvider(); - this.listener = listener; - this.locations = parent.getLocations(build); - } - - public Boolean invoke(File ws, VirtualChannel channel) throws IOException { - for (ModuleLocation l : locations) { - String moduleName = l.local; - File module = new File(ws,moduleName).getCanonicalFile(); // canonicalize to remove ".." and ".". See #474 - - if(!module.exists()) { - listener.getLogger().println("Checking out a fresh workspace because "+module+" doesn't exist"); - return false; - } - - try { - SVNInfo svnkitInfo = parseSvnInfo(module, authProvider); - SvnInfo svnInfo = new SvnInfo(svnkitInfo); - - String url = l.getURL(); - if(!svnInfo.url.equals(url)) { - listener.getLogger().println("Checking out a fresh workspace because the workspace is not "+url); - return false; - } - } catch (SVNException e) { - listener.getLogger().println("Checking out a fresh workspace because Hudson failed to detect the current workspace "+module); - e.printStackTrace(listener.error(e.getMessage())); - return false; - } - } - return true; - } - private static final long serialVersionUID = 1L; - } - - public boolean pollChanges(AbstractProject project, Launcher launcher, - FilePath workspace, TaskListener listener) throws IOException, - InterruptedException { - AbstractBuild lastBuild = (AbstractBuild) project.getLastBuild(); - if (lastBuild == null) { - listener.getLogger().println( - "No existing build. Starting a new one"); - return true; - } - - try { - if (!repositoryLocationsExist(lastBuild, listener)) { - // Disable this project, see issue #763 - - listener.getLogger().println( - "One or more repository locations do not exist anymore for " - + project + ", project will be disabled."); - project.makeDisabled(true); - return false; - } - } catch (SVNException e) { - e.printStackTrace(listener.error(e.getMessage())); - return false; - } - - // current workspace revision - Map wsRev = parseRevisionFile(lastBuild); - List externals = parseExternalsFile(project); - - // are the locations checked out in the workspace consistent with the current configuration? - for( ModuleLocation loc : getLocations(lastBuild) ) { - if(!wsRev.containsKey(loc.getURL())) { - listener.getLogger().println("Workspace doesn't contain "+loc.getURL()+". Need a new build"); - return true; - } - } - - ISVNAuthenticationProvider authProvider = getDescriptor().createAuthenticationProvider(); - - // check the corresponding remote revision - OUTER: - for (Map.Entry localInfo : wsRev.entrySet()) { - // skip if this is an external reference to a fixed revision - String url = localInfo.getKey(); - - for (External ext : externals) - if(ext.url.equals(url) && ext.isRevisionFixed()) - continue OUTER; - - try { - final SVNURL decodedURL = SVNURL.parseURIDecoded(url); - SvnInfo remoteInfo = new SvnInfo(parseSvnInfo(decodedURL,authProvider)); - listener.getLogger().println(Messages.SubversionSCM_pollChanges_remoteRevisionAt(url,remoteInfo.revision)); - if(remoteInfo.revision > localInfo.getValue()) { - boolean changesFound = true; - Pattern[] excludedPatterns = getExcludedRegionsPatterns(); - if (excludedPatterns != null) { - SVNLogHandler handler = new SVNLogHandler(excludedPatterns); - final SVNClientManager manager = createSvnClientManager(authProvider); - try { - final SVNLogClient svnlc = manager.getLogClient(); - svnlc.doLog(decodedURL, null, SVNRevision.UNDEFINED, - SVNRevision.create(localInfo.getValue()+1), // get log entries from the local revision + 1 - SVNRevision.create(remoteInfo.revision), // to the remote revision - false, // Don't stop on copy. - true, // Report paths. - 0, // Retrieve log entries for unlimited number of revisions. - handler); - } finally { - manager.dispose(); - } - - changesFound = handler.isChangesFound(); - } - - if (changesFound) { - listener.getLogger().println(Messages.SubversionSCM_pollChanges_changedFrom(localInfo.getValue())); - return true; - } - } - } catch (SVNException e) { - e.printStackTrace(listener.error("Failed to check repository revision for "+ url)); - } - } - - return false; // no change - } - - private final class SVNLogHandler implements ISVNLogEntryHandler { - private boolean changesFound = false; - - private Pattern[] excludedPatterns; - - private SVNLogHandler(Pattern[] excludedPatterns) { - this.excludedPatterns = excludedPatterns; - } - - public boolean isChangesFound() { - return changesFound; - } - - /** - * Handles a log entry passed. - * Check for paths that should be excluded from triggering a build. - * If a path is not a path that should be excluded, set changesFound to true - * - * @param logEntry an {@link org.tmatesoft.svn.core.SVNLogEntry} object - * that represents per revision information - * (committed paths, log message, etc.) - * @throws org.tmatesoft.svn.core.SVNException - */ - public void handleLogEntry(SVNLogEntry logEntry) throws SVNException { - if (excludedPatterns != null && excludedPatterns.length > 0) { - Map changedPaths = logEntry.getChangedPaths(); - for (Object paths : changedPaths.values()) { - SVNLogEntryPath logEntryPath = (SVNLogEntryPath) paths; - String path = logEntryPath.getPath(); - - boolean patternMatched = false; - - for (Pattern pattern : excludedPatterns) { - if (pattern.matcher(path).matches()) { - patternMatched = true; - break; - } - } - - if (!patternMatched) { - changesFound = true; - break; - } - } - } else if (!logEntry.getChangedPaths().isEmpty()) { - // no excluded patterns and paths have changed, so just return true - changesFound = true; - } - } - } - - public ChangeLogParser createChangeLogParser() { - return new SubversionChangeLogParser(); - } - - - public DescriptorImpl getDescriptor() { - return (DescriptorImpl)super.getDescriptor(); - } - - public FilePath getModuleRoot(FilePath workspace) { - if (getLocations().length > 0) - return workspace.child(getLocations()[0].local); - return workspace; - } - - public FilePath[] getModuleRoots(FilePath workspace) { - final ModuleLocation[] moduleLocations = getLocations(); - if (moduleLocations.length > 0) { - FilePath[] moduleRoots = new FilePath[moduleLocations.length]; - for (int i = 0; i < moduleLocations.length; i++) { - moduleRoots[i] = workspace.child(moduleLocations[i].local); - } - return moduleRoots; - } - return new FilePath[] { getModuleRoot(workspace) }; - } - - private static String getLastPathComponent(String s) { - String[] tokens = s.split("/"); - return tokens[tokens.length-1]; // return the last token - } - - @Extension - public static class DescriptorImpl extends SCMDescriptor { - /** - * SVN authentication realm to its associated credentials. - */ - private final Map credentials = new Hashtable(); - - /** - * Stores {@link SVNAuthentication} for a single realm. - * - *

    - * {@link Credential} holds data in a persistence-friendly way, - * and it's capable of creating {@link SVNAuthentication} object, - * to be passed to SVNKit. - */ - public static abstract class Credential implements Serializable { - /** - * @param kind - * One of the constants defined in {@link ISVNAuthenticationManager}, - * indicating what subype of {@link SVNAuthentication} is expected. - */ - public abstract SVNAuthentication createSVNAuthentication(String kind) throws SVNException; - } - - /** - * Username/password based authentication. - */ - private static final class PasswordCredential extends Credential { - private final String userName; - private final String password; // scrambled by base64 - - public PasswordCredential(String userName, String password) { - this.userName = userName; - this.password = Scrambler.scramble(password); - } - - @Override - public SVNAuthentication createSVNAuthentication(String kind) { - if(kind.equals(ISVNAuthenticationManager.SSH)) - return new SVNSSHAuthentication(userName,Scrambler.descramble(password),-1,false); - else - return new SVNPasswordAuthentication(userName,Scrambler.descramble(password),false); - } - } - - /** - * Publickey authentication for Subversion over SSH. - */ - private static final class SshPublicKeyCredential extends Credential { - private final String userName; - private final String passphrase; // scrambled by base64 - private final String id; - - /** - * @param keyFile - * stores SSH private key. The file will be copied. - */ - public SshPublicKeyCredential(String userName, String passphrase, File keyFile) throws SVNException { - this.userName = userName; - this.passphrase = Scrambler.scramble(passphrase); - - Random r = new Random(); - StringBuilder buf = new StringBuilder(); - for(int i=0;i<16;i++) - buf.append(Integer.toHexString(r.nextInt(16))); - this.id = buf.toString(); - - try { - FileUtils.copyFile(keyFile,getKeyFile()); - } catch (IOException e) { - throw new SVNException(SVNErrorMessage.create(SVNErrorCode.AUTHN_CREDS_UNAVAILABLE,"Unable to save private key"),e); - } - } - - /** - * Gets the location where the private key will be permanently stored. - */ - private File getKeyFile() { - File dir = new File(Hudson.getInstance().getRootDir(),"subversion-credentials"); - if(dir.mkdirs()) { - // make sure the directory exists. if we created it, try to set the permission to 600 - // since this is sensitive information - try { - Chmod chmod = new Chmod(); - chmod.setProject(new Project()); - chmod.setFile(dir); - chmod.setPerm("600"); - chmod.execute(); - } catch (Throwable e) { - // if we failed to set the permission, that's fine. - LOGGER.log(Level.WARNING, "Failed to set directory permission of "+dir,e); - } - } - return new File(dir,id); - } - - @Override - public SVNSSHAuthentication createSVNAuthentication(String kind) throws SVNException { - if(kind.equals(ISVNAuthenticationManager.SSH)) { - try { - Channel channel = Channel.current(); - String privateKey; - if(channel!=null) { - // remote - privateKey = channel.call(new Callable() { - public String call() throws IOException { - return FileUtils.readFileToString(getKeyFile(),"iso-8859-1"); - } - }); - } else { - privateKey = FileUtils.readFileToString(getKeyFile(),"iso-8859-1"); - } - return new SVNSSHAuthentication(userName, privateKey.toCharArray(), Scrambler.descramble(passphrase),-1,false); - } catch (IOException e) { - throw new SVNException(SVNErrorMessage.create(SVNErrorCode.AUTHN_CREDS_UNAVAILABLE,"Unable to load private key"),e); - } catch (InterruptedException e) { - throw new SVNException(SVNErrorMessage.create(SVNErrorCode.AUTHN_CREDS_UNAVAILABLE,"Unable to load private key"),e); - } - } else - return null; // unknown - } - } - - /** - * SSL client certificate based authentication. - */ - private static final class SslClientCertificateCredential extends Credential { - private final String password; // scrambled by base64 - - public SslClientCertificateCredential(File certificate, String password) { - this.password = Scrambler.scramble(password); - } - - @Override - public SVNAuthentication createSVNAuthentication(String kind) { - if(kind.equals(ISVNAuthenticationManager.SSL)) - return new SVNSSLAuthentication(null,Scrambler.descramble(password),false); - else - return null; // unexpected authentication type - } - } - - /** - * Remoting interface that allows remote {@link ISVNAuthenticationProvider} - * to read from local {@link DescriptorImpl#credentials}. - */ - private interface RemotableSVNAuthenticationProvider { - Credential getCredential(SVNURL url, String realm); - } - - /** - * There's no point in exporting multiple {@link RemotableSVNAuthenticationProviderImpl} instances, - * so let's just use one instance. - */ - private transient final RemotableSVNAuthenticationProviderImpl remotableProvider = new RemotableSVNAuthenticationProviderImpl(); - - private final class RemotableSVNAuthenticationProviderImpl implements RemotableSVNAuthenticationProvider, Serializable { - public Credential getCredential(SVNURL url, String realm) { - for (SubversionCredentialProvider p : SubversionCredentialProvider.all()) { - Credential c = p.getCredential(url,realm); - if(c!=null) { - LOGGER.fine(String.format("getCredential(%s)=>%s by %s",realm,c,p)); - return c; - } - } - LOGGER.fine(String.format("getCredential(%s)=>%s",realm,credentials.get(realm))); - return credentials.get(realm); - } - - /** - * When sent to the remote node, send a proxy. - */ - private Object writeReplace() { - return Channel.current().export(RemotableSVNAuthenticationProvider.class, this); - } - } - - /** - * See {@link DescriptorImpl#createAuthenticationProvider()}. - */ - private static final class SVNAuthenticationProviderImpl implements ISVNAuthenticationProvider, Serializable { - private final RemotableSVNAuthenticationProvider source; - - public SVNAuthenticationProviderImpl(RemotableSVNAuthenticationProvider source) { - this.source = source; - } - - public SVNAuthentication requestClientAuthentication(String kind, SVNURL url, String realm, SVNErrorMessage errorMessage, SVNAuthentication previousAuth, boolean authMayBeStored) { - Credential cred = source.getCredential(url,realm); - LOGGER.fine(String.format("requestClientAuthentication(%s,%s,%s)=>%s",kind,url,realm,cred)); - - try { - SVNAuthentication auth=null; - if(cred!=null) - auth = cred.createSVNAuthentication(kind); - - if(auth==null && ISVNAuthenticationManager.USERNAME.equals(kind)) { - // this happens with file:// URL and svn+ssh (in this case this method gets invoked twice.) - // The base class does this, too. - // user auth shouldn't be null. - return new SVNUserNameAuthentication("",false); - } - - return auth; - } catch (SVNException e) { - LOGGER.log(Level.SEVERE, "Failed to authorize",e); - throw new RuntimeException("Failed to authorize",e); - } - } - - public int acceptServerAuthentication(SVNURL url, String realm, Object certificate, boolean resultMayBeStored) { - return ACCEPTED_TEMPORARY; - } - - private static final long serialVersionUID = 1L; - } - - public DescriptorImpl() { - super(SubversionRepositoryBrowser.class); - load(); - } - - protected DescriptorImpl(Class clazz, Class repositoryBrowser) { - super(clazz,repositoryBrowser); - } - - public String getDisplayName() { - return "Subversion"; - } - - public SCM newInstance(StaplerRequest req, JSONObject formData) throws FormException { - return new SubversionSCM( - req.getParameterValues("svn.location_remote"), - req.getParameterValues("svn.location_local"), - req.getParameter("svn_use_update") != null, - RepositoryBrowsers.createInstance(SubversionRepositoryBrowser.class, req, formData, "browser"), - req.getParameter("svn.excludedRegions")); - } - - /** - * Creates {@link ISVNAuthenticationProvider} backed by {@link #credentials}. - * This method must be invoked on the master, but the returned object is remotable. - * - *

    - * Therefore, to access {@link ISVNAuthenticationProvider}, you need to call this method - * on the master, then pass the object to the slave side, then call - * {@link SubversionSCM#createSvnClientManager(ISVNAuthenticationProvider)} on the slave. - * - * @see SubversionSCM#createSvnClientManager(ISVNAuthenticationProvider) - */ - public ISVNAuthenticationProvider createAuthenticationProvider() { - return new SVNAuthenticationProviderImpl(remotableProvider); - } - - /** - * Submits the authentication info. - */ - // TODO: stapler should do multipart/form-data handling - public void doPostCredential(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException { - Hudson.getInstance().checkPermission(Hudson.ADMINISTER); - - MultipartFormDataParser parser = new MultipartFormDataParser(req); - - String url = parser.get("url"); - - String kind = parser.get("kind"); - int idx = Arrays.asList("","password","publickey","certificate").indexOf(kind); - - final String username = parser.get("username"+idx); - final String password = parser.get("password"+idx); - - - // SVNKit wants a key in a file - final File keyFile; - FileItem item=null; - if(idx <= 1) { - keyFile = null; - } else { - item = parser.getFileItem(kind.equals("publickey")?"privateKey":"certificate"); - keyFile = File.createTempFile("hudson","key"); - if(item!=null) { - try { - item.write(keyFile); - } catch (Exception e) { - throw new IOException2(e); - } - if(PuTTYKey.isPuTTYKeyFile(keyFile)) { - // TODO: we need a passphrase support - LOGGER.info("Converting "+keyFile+" from PuTTY format to OpenSSH format"); - new PuTTYKey(keyFile,null).toOpenSSH(keyFile); - } - } - } - - // we'll record what credential we are trying here. - StringWriter log = new StringWriter(); - final PrintWriter logWriter = new PrintWriter(log); - - try { - postCredential(url, username, password, keyFile, logWriter); - rsp.sendRedirect("credentialOK"); - } catch (SVNException e) { - logWriter.println("FAILED: "+e.getErrorMessage()); - req.setAttribute("message",log.toString()); - req.setAttribute("pre",true); - req.setAttribute("exception",e); - rsp.forward(Hudson.getInstance(),"error",req); - } finally { - if(keyFile!=null) - keyFile.delete(); - if(item!=null) - item.delete(); - } - } - - /** - * Submits the authentication info. - * - * This code is fairly ugly because of the way SVNKit handles credentials. - */ - public void postCredential(String url, final String username, final String password, final File keyFile, final PrintWriter logWriter) throws SVNException, IOException { - SVNRepository repository = null; - - try { - final boolean[] authenticationAttemped = new boolean[1]; - final boolean[] authenticationAcknowled = new boolean[1]; - - // the way it works with SVNKit is that - // 1) svnkit calls AuthenticationManager asking for a credential. - // this is when we can see the 'realm', which identifies the user domain. - // 2) DefaultSVNAuthenticationManager returns the username and password we set below - // 3) if the authentication is successful, svnkit calls back acknowledgeAuthentication - // (so we store the password info here) - repository = SVNRepositoryFactory.create(SVNURL.parseURIDecoded(url)); - repository.setTunnelProvider(SVNWCUtil.createDefaultOptions(true)); - repository.setAuthenticationManager(new DefaultSVNAuthenticationManager(SVNWCUtil.getDefaultConfigurationDirectory(), true, username, password, keyFile, password) { - Credential cred = null; - - @Override - public SVNAuthentication getFirstAuthentication(String kind, String realm, SVNURL url) throws SVNException { - authenticationAttemped[0] = true; - if (kind.equals(ISVNAuthenticationManager.USERNAME)) - // when using svn+ssh, svnkit first asks for ISVNAuthenticationManager.SSH - // authentication to connect via SSH, then calls this method one more time - // to get the user name. Perhaps svn takes user name on its own, separate - // from OS user name? In any case, we need to return the same user name. - // I don't set the cred field here, so that the 1st credential for ssh - // won't get clobbered. - return new SVNUserNameAuthentication(username, false); - if (kind.equals(ISVNAuthenticationManager.PASSWORD)) { - logWriter.println("Passing user name " + username + " and password you entered"); - cred = new PasswordCredential(username, password); - } - if (kind.equals(ISVNAuthenticationManager.SSH)) { - if (keyFile == null) { - logWriter.println("Passing user name " + username + " and password you entered to SSH"); - cred = new PasswordCredential(username, password); - } else { - logWriter.println("Attempting a public key authentication with username " + username); - cred = new SshPublicKeyCredential(username, password, keyFile); - } - } - if (kind.equals(ISVNAuthenticationManager.SSL)) { - logWriter.println("Attempting an SSL client certificate authentcation"); - cred = new SslClientCertificateCredential(keyFile, password); - } - - if (cred == null) { - logWriter.println("Unknown authentication method: " + kind); - return null; - } - return cred.createSVNAuthentication(kind); - } - - /** - * Getting here means the authentication tried in {@link #getFirstAuthentication(String, String, SVNURL)} - * didn't work. - */ - @Override - public SVNAuthentication getNextAuthentication(String kind, String realm, SVNURL url) throws SVNException { - SVNErrorManager.authenticationFailed("Authentication failed for " + url, null); - return null; - } - - @Override - public void acknowledgeAuthentication(boolean accepted, String kind, String realm, SVNErrorMessage errorMessage, SVNAuthentication authentication) throws SVNException { - authenticationAcknowled[0] = true; - if (accepted) { - assert cred != null; - credentials.put(realm, cred); - save(); - } else { - logWriter.println("Failed to authenticate: " + errorMessage); - if (errorMessage.getCause() != null) - errorMessage.getCause().printStackTrace(logWriter); - } - super.acknowledgeAuthentication(accepted, kind, realm, errorMessage, authentication); - } - }); - repository.testConnection(); - - if(!authenticationAttemped[0]) { - logWriter.println("No authentication was attemped."); - throw new SVNCancelException(); - } - if (!authenticationAcknowled[0]) { - logWriter.println("Authentication was not acknowledged."); - throw new SVNCancelException(); - } - } finally { - if (repository != null) - repository.closeSession(); - } - } - - /** - * validate the value for a remote (repository) location. - */ - public FormValidation doSvnRemoteLocationCheck(StaplerRequest req, @QueryParameter String value) { - // syntax check first - String url = Util.nullify(value); - if (url == null) - return FormValidation.ok(); - - // remove unneeded whitespaces - url = url.trim(); - if(!URL_PATTERN.matcher(url).matches()) - return FormValidation.errorWithMarkup("Invalid URL syntax. See " - + "this " - + "for information about valid URLs."); - - // Test the connection only if we have admin permission - if (!Hudson.getInstance().hasPermission(Hudson.ADMINISTER)) - return FormValidation.ok(); - - try { - SVNURL repoURL = SVNURL.parseURIDecoded(url); - if (checkRepositoryPath(repoURL)!=SVNNodeKind.NONE) - // something exists - return FormValidation.ok(); - - SVNRepository repository = null; - try { - repository = getRepository(repoURL); - long rev = repository.getLatestRevision(); - // now go back the tree and find if there's anything that exists - String repoPath = getRelativePath(repoURL, repository); - String p = repoPath; - while(p.length()>0) { - p = SVNPathUtil.removeTail(p); - if(repository.checkPath(p,rev)==SVNNodeKind.DIR) { - // found a matching path - List entries = new ArrayList(); - repository.getDir(p,rev,false,entries); - - // build up the name list - List paths = new ArrayList(); - for (SVNDirEntry e : entries) - if(e.getKind()==SVNNodeKind.DIR) - paths.add(e.getName()); - - String head = SVNPathUtil.head(repoPath.substring(p.length() + 1)); - String candidate = EditDistance.findNearest(head,paths); - - return FormValidation.error("'%1$s/%2$s' doesn't exist in the repository. Maybe you meant '%1$s/%3$s'?", - p, head, candidate); - } - } - - return FormValidation.error(repoPath+" doesn't exist in the repository"); - } finally { - if (repository != null) - repository.closeSession(); - } - } catch (SVNException e) { - String message=""; - message += "Unable to access "+Util.escape(url)+" : "+Util.escape( e.getErrorMessage().getFullMessage()); - message += " (show details)"; - message += "

    "; - message += " (Maybe you need to enter credential?)"; - message += "
    "; - LOGGER.log(Level.INFO, "Failed to access subversion repository "+url,e); - return FormValidation.errorWithMarkup(message); - } - } - - public SVNNodeKind checkRepositoryPath(SVNURL repoURL) throws SVNException { - SVNRepository repository = null; - - try { - repository = getRepository(repoURL); - repository.testConnection(); - - long rev = repository.getLatestRevision(); - String repoPath = getRelativePath(repoURL, repository); - return repository.checkPath(repoPath, rev); - } finally { - if (repository != null) - repository.closeSession(); - } - } - - protected SVNRepository getRepository(SVNURL repoURL) throws SVNException { - SVNRepository repository = SVNRepositoryFactory.create(repoURL); - - ISVNAuthenticationManager sam = SVNWCUtil.createDefaultAuthenticationManager(); - sam = new FilterSVNAuthenticationManager(sam) { - // If there's no time out, the blocking read operation may hang forever, because TCP itself - // has no timeout. So always use some time out. If the underlying implementation gives us some - // value (which may come from ~/.subversion), honor that, as long as it sets some timeout value. - @Override - public int getReadTimeout(SVNRepository repository) { - int r = super.getReadTimeout(repository); - if(r<=0) r = DEFAULT_TIMEOUT; - return r; - } - }; - sam.setAuthenticationProvider(createAuthenticationProvider()); - repository.setAuthenticationManager(sam); - - return repository; - } - - public static String getRelativePath(SVNURL repoURL, SVNRepository repository) throws SVNException { - String repoPath = repoURL.getPath().substring(repository.getRepositoryRoot(false).getPath().length()); - if(!repoPath.startsWith("/")) repoPath="/"+repoPath; - return repoPath; - } - - /** - * validate the value for a local location (local checkout directory). - */ - public FormValidation doSvnLocalLocationCheck(@QueryParameter String value) throws IOException, ServletException { - String v = Util.nullify(value); - if (v == null) - // local directory is optional so this is ok - return FormValidation.ok(); - - v = v.trim(); - - // check if a absolute path has been supplied - // (the last check with the regex will match windows drives) - if (v.startsWith("/") || v.startsWith("\\") || v.startsWith("..") || v.matches("^[A-Za-z]:")) - return FormValidation.error("absolute path is not allowed"); - - // all tests passed so far - return FormValidation.ok(); - } - - /** - * Validates the excludeRegions Regex - */ - public FormValidation doExcludeRegionsCheck(@QueryParameter String value) throws IOException, ServletException { - for (String region : Util.fixNull(value).trim().split("[\\r\\n]+")) - try { - Pattern.compile(region); - } catch (PatternSyntaxException e) { - return FormValidation.error("Invalid regular expression. " + e.getMessage()); - } - return FormValidation.ok(); - } - - static { - new Initializer(); - } - } - - public boolean repositoryLocationsExist(AbstractBuild build, - TaskListener listener) throws SVNException { - - PrintStream out = listener.getLogger(); - - for (ModuleLocation l : getLocations(build)) - if (getDescriptor().checkRepositoryPath(l.getSVNURL()) == SVNNodeKind.NONE) { - out.println("Location '" + l.remote + "' does not exist"); - - ParametersAction params = build - .getAction(ParametersAction.class); - if (params != null) { - out.println("Location could be expanded on build '" + build - + "' parameters values:"); - - for (ParameterValue paramValue : params) { - out.println(" " + paramValue); - } - } - return false; - } - return true; - } - - static final Pattern URL_PATTERN = Pattern.compile("(https?|svn(\\+[a-z0-9]+)?|file)://.+"); - - private static final long serialVersionUID = 1L; - - // noop, but this forces the initializer to run. - public static void init() {} - - static { - new Initializer(); - } - - private static final class Initializer { - static { - if(Boolean.getBoolean("hudson.spool-svn")) - DAVRepositoryFactory.setup(new DefaultHTTPConnectionFactory(null,true,null)); - else - DAVRepositoryFactory.setup(); // http, https - SVNRepositoryFactoryImpl.setup(); // svn, svn+xxx - FSRepositoryFactory.setup(); // file - - // work around for http://www.nabble.com/Slow-SVN-Checkout-tf4486786.html - if(System.getProperty("svnkit.symlinks")==null) - System.setProperty("svnkit.symlinks","false"); - - // disable the connection pooling, which causes problems like - // http://www.nabble.com/SSH-connection-problems-p12028339.html - if(System.getProperty("svnkit.ssh2.persistent")==null) - System.setProperty("svnkit.ssh2.persistent","false"); - - // use SVN1.4 compatible workspace by default. - SVNAdminAreaFactory.setSelector(new SubversionWorkspaceSelector()); - } - } - - /** - * small structure to store local and remote (repository) location - * information of the repository. As a addition it holds the invalid field - * to make failure messages when doing a checkout possible - */ - public static final class ModuleLocation implements Serializable { - /** - * Subversion URL to check out. - * - * This may include "@NNN" at the end to indicate a fixed revision. - */ - public final String remote; - /** - * Local directory to place the file to. - * Relative to the workspace root. - */ - public final String local; - - public ModuleLocation(String remote, String local) { - if(local==null) - local = getLastPathComponent(remote); - - this.remote = remote.trim(); - this.local = local.trim(); - } - - /** - * Returns the pure URL portion of {@link #remote} by removing - * possible "@NNN" suffix. - */ - public String getURL() { - int idx = remote.lastIndexOf('@'); - if(idx>0) { - try { - String n = remote.substring(idx+1); - Long.parseLong(n); - return remote.substring(0,idx); - } catch (NumberFormatException e) { - // not a revision number - } - } - return remote; - } - - /** - * Gets {@link #remote} as {@link SVNURL}. - */ - public SVNURL getSVNURL() throws SVNException { - return SVNURL.parseURIEncoded(getURL()); - } - - /** - * Figures out which revision to check out. - * - * If {@link #remote} is {@code url@rev}, then this method - * returns that specific revision. - * - * @param defaultValue - * If "@NNN" portion is not in the URL, this value will be returned. - * Normally, this is the SVN revision timestamped at the build date. - */ - public SVNRevision getRevision(SVNRevision defaultValue) { - int idx = remote.lastIndexOf('@'); - if(idx>0) { - try { - String n = remote.substring(idx+1); - return SVNRevision.create(Long.parseLong(n)); - } catch (NumberFormatException e) { - // not a revision number - } - } - return defaultValue; - } - - private String getExpandedRemote(AbstractBuild build) { - String outRemote = remote; - - ParametersAction parameters = build.getAction(ParametersAction.class); - if (parameters != null) - outRemote = parameters.substitute(build, remote); - - return outRemote; - } - - /** - * Expand location value based on Build parametric execution. - * - * @param build - * Build instance for expanding parameters into their values - * - * @return Output ModuleLocation expanded according to Build parameters - * values. - */ - public ModuleLocation getExpandedLocation(AbstractBuild build) { - return new ModuleLocation(getExpandedRemote(build), local); - } - - public String toString() { - return remote; - } - - private static final long serialVersionUID = 1L; - } - - private static final Logger LOGGER = Logger.getLogger(SubversionSCM.class.getName()); - - /** - * Network timeout in milliseconds. - * The main point of this is to prevent infinite hang, so it should be a rather long value to avoid - * accidental time out problem. - */ - public static int DEFAULT_TIMEOUT = Integer.getInteger(SubversionSCM.class.getName()+".timeout",3600*1000); - - /** - * Enables trace logging of Ganymed SSH library. - *

    - * Intended to be invoked from Groovy console. - */ - public static void enableSshDebug(Level level) { - if(level==null) level= Level.FINEST; // default - - final Level lv = level; - - com.trilead.ssh2.log.Logger.enabled=true; - com.trilead.ssh2.log.Logger.logger = new DebugLogger() { - private final Logger LOGGER = Logger.getLogger(SCPClient.class.getPackage().getName()); - public void log(int level, String className, String message) { - LOGGER.log(lv,className+' '+message); - } - }; - } -} diff --git a/core/src/main/java/hudson/scm/SubversionTagAction.java b/core/src/main/java/hudson/scm/SubversionTagAction.java deleted file mode 100644 index a36ac470b8e78d3e241a5a633380cfb7186c16aa..0000000000000000000000000000000000000000 --- a/core/src/main/java/hudson/scm/SubversionTagAction.java +++ /dev/null @@ -1,226 +0,0 @@ -/* - * The MIT License - * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Jean-Baptiste Quenot, Seiji Sogabe, Vojtech Habarta - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ -package hudson.scm; - -import hudson.model.AbstractBuild; -import hudson.model.Action; -import hudson.model.TaskListener; -import hudson.model.TaskThread; -import hudson.scm.SubversionSCM.SvnInfo; -import hudson.util.CopyOnWriteMap; -import hudson.security.Permission; -import org.kohsuke.stapler.StaplerRequest; -import org.kohsuke.stapler.StaplerResponse; -import org.tmatesoft.svn.core.SVNException; -import org.tmatesoft.svn.core.SVNURL; -import org.tmatesoft.svn.core.wc.SVNClientManager; -import org.tmatesoft.svn.core.wc.SVNCopyClient; -import org.tmatesoft.svn.core.wc.SVNRevision; -import org.tmatesoft.svn.core.wc.SVNCopySource; - -import javax.servlet.ServletException; -import java.io.IOException; -import java.io.PrintStream; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -/** - * {@link Action} that lets people create tag for the given build. - * - * @author Kohsuke Kawaguchi - */ -public class SubversionTagAction extends AbstractScmTagAction { - - /** - * Map is from the repository URL to the URLs of tags. - * If a module is not tagged, the value will be empty list. - * Never an empty map. - */ - private final Map> tags = new CopyOnWriteMap.Tree>(); - - /*package*/ SubversionTagAction(AbstractBuild build,Collection svnInfos) { - super(build); - Map> m = new HashMap>(); - for (SvnInfo si : svnInfos) - m.put(si,new ArrayList()); - tags.putAll(m); - } - - /** - * Was any tag created by the user already? - */ - public boolean hasTags() { - for (Entry> e : tags.entrySet()) - if(!e.getValue().isEmpty()) - return true; - return false; - } - - public String getIconFileName() { - if(!hasTags() && !getACL().hasPermission(getPermission())) - return null; - return "save.gif"; - } - - public String getDisplayName() { - int nonNullTag = 0; - for (List v : tags.values()) { - if(!v.isEmpty()) { - nonNullTag++; - if(nonNullTag>1) - break; - } - } - if(nonNullTag==0) - return Messages.SubversionTagAction_DisplayName_HasNoTag(); - if(nonNullTag==1) - return Messages.SubversionTagAction_DisplayName_HasATag(); - else - return Messages.SubversionTagAction_DisplayName_HasTags(); - } - - /** - * @see #tags - */ - public Map> getTags() { - return Collections.unmodifiableMap(tags); - } - - /** - * Returns true if this build has already been tagged at least once. - */ - @Override - public boolean isTagged() { - for (List t : tags.values()) { - if(!t.isEmpty()) return true; - } - return false; - } - - @Override - public String getTooltip() { - if(isTagged()) return Messages.SubversionTagAction_Tooltip(); - else return null; - } - - private static final Pattern TRUNK_BRANCH_MARKER = Pattern.compile("/(trunk|branches)(/|$)"); - - /** - * Creates a URL, to be used as the default value of the module tag URL. - * - * @return - * null if failed to guess. - */ - public String makeTagURL(SvnInfo si) { - // assume the standard trunk/branches/tags repository layout - Matcher m = TRUNK_BRANCH_MARKER.matcher(si.url); - if(!m.find()) - return null; // doesn't have 'trunk' nor 'branches' - - return si.url.substring(0,m.start())+"/tags/"+build.getProject().getName()+"-"+build.getNumber(); - } - - /** - * Invoked to actually tag the workspace. - */ - public synchronized void doSubmit(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException { - getACL().checkPermission(getPermission()); - - Map newTags = new HashMap(); - - int i=-1; - for (SvnInfo e : tags.keySet()) { - i++; - if(tags.size()>1 && req.getParameter("tag"+i)==null) - continue; // when tags.size()==1, UI won't show the checkbox. - newTags.put(e,req.getParameter("name" + i)); - } - - new TagWorkerThread(newTags).start(); - - rsp.sendRedirect("."); - } - - @Override - public Permission getPermission() { - return SubversionSCM.TAG; - } - - /** - * The thread that performs tagging operation asynchronously. - */ - public final class TagWorkerThread extends TaskThread { - private final Map tagSet; - - public TagWorkerThread(Map tagSet) { - super(SubversionTagAction.this,ListenerAndText.forMemory()); - this.tagSet = tagSet; - } - - @Override - protected void perform(TaskListener listener) { - try { - final SVNClientManager cm = SubversionSCM.createSvnClientManager(); - try { - for (Entry e : tagSet.entrySet()) { - PrintStream logger = listener.getLogger(); - logger.println("Tagging "+e.getKey()+" to "+e.getValue()); - - try { - SVNURL src = SVNURL.parseURIDecoded(e.getKey().url); - SVNURL dst = SVNURL.parseURIDecoded(e.getValue()); - - SVNCopyClient svncc = cm.getCopyClient(); - SVNRevision sourceRevision = SVNRevision.create(e.getKey().revision); - SVNCopySource csrc = new SVNCopySource(sourceRevision, sourceRevision, src); - svncc.doCopy( - new SVNCopySource[]{csrc}, - dst, false, true, false, "Tagged from "+build, null ); - } catch (SVNException x) { - x.printStackTrace(listener.error("Failed to tag")); - return; - } - } - - // completed successfully - for (Entry e : tagSet.entrySet()) - SubversionTagAction.this.tags.get(e.getKey()).add(e.getValue()); - build.save(); - workerThread = null; - } finally { - cm.dispose(); - } - } catch (Throwable e) { - e.printStackTrace(listener.fatalError(e.getMessage())); - } - } - } -} diff --git a/core/src/main/java/hudson/scm/SubversionUpdateEventHandler.java b/core/src/main/java/hudson/scm/SubversionUpdateEventHandler.java deleted file mode 100644 index b93ac1f9579b7d32e0a436685562d0b94098eb56..0000000000000000000000000000000000000000 --- a/core/src/main/java/hudson/scm/SubversionUpdateEventHandler.java +++ /dev/null @@ -1,113 +0,0 @@ -/* - * The MIT License - * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, David Seymore, Renaud Bruyeron - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ -package hudson.scm; - -import hudson.remoting.Which; -import org.tmatesoft.svn.core.SVNCancelException; -import org.tmatesoft.svn.core.SVNErrorCode; -import org.tmatesoft.svn.core.SVNErrorMessage; -import org.tmatesoft.svn.core.SVNException; -import org.tmatesoft.svn.core.internal.wc.SVNExternal; -import org.tmatesoft.svn.core.wc.SVNEvent; -import org.tmatesoft.svn.core.wc.SVNEventAction; - -import java.io.File; -import java.io.IOException; -import java.io.PrintStream; -import java.net.URL; -import java.util.List; - -/** - * Just prints out the progress of svn update/checkout operation in a way similar to - * the svn CLI. - * - * This code also records all the referenced external locations. - */ -final class SubversionUpdateEventHandler extends SubversionEventHandlerImpl { - - /** - * External urls that are fetched through svn:externals. - * We add to this collection as we find them. - */ - private final List externals; - /** - * Relative path from the workspace root to the module root. - */ - private final String modulePath; - - public SubversionUpdateEventHandler(PrintStream out, List externals, File moduleDir, String modulePath) { - super(out,moduleDir); - this.externals = externals; - this.modulePath = modulePath; - } - - public void handleEvent(SVNEvent event, double progress) throws SVNException { - File file = event.getFile(); - String path = null; - if (file != null) { - try { - path = getRelativePath(file); - } catch (IOException e) { - throw new SVNException(SVNErrorMessage.create(SVNErrorCode.FS_GENERAL), e); - } - path = getLocalPath(path); - } - - /* - * Gets the current action. An action is represented by SVNEventAction. - * In case of an update an action can be determined via comparing - * SVNEvent.getAction() and SVNEventAction.UPDATE_-like constants. - */ - SVNEventAction action = event.getAction(); - if (action == SVNEventAction.UPDATE_EXTERNAL) { - // for externals definitions - SVNExternal ext = event.getExternalInfo(); - if(ext==null) { - // prepare for the situation where the user created their own svnkit - URL jarFile = null; - try { - jarFile = Which.jarURL(SVNEvent.class); - } catch (IOException e) { - // ignore this failure - } - out.println("AssertionError: appears to be using unpatched svnkit at "+ jarFile); - } else { - out.println(Messages.SubversionUpdateEventHandler_FetchExternal( - ext.getResolvedURL(), ext.getRevision().getNumber(), event.getFile())); - //#1539 - an external inside an external needs to have the path appended - externals.add(new SubversionSCM.External(modulePath + "/" + path.substring(0 - ,path.length() - ext.getPath().length()) - ,ext)); - } - return; - } - - super.handleEvent(event,progress); - } - - public void checkCancelled() throws SVNCancelException { - if(Thread.interrupted()) - throw new SVNCancelException(); - } -} \ No newline at end of file diff --git a/core/src/main/java/hudson/scm/SubversionWorkspaceSelector.java b/core/src/main/java/hudson/scm/SubversionWorkspaceSelector.java deleted file mode 100644 index 3ce7098f57826cb9930c087a60fd0943ed84ce2d..0000000000000000000000000000000000000000 --- a/core/src/main/java/hudson/scm/SubversionWorkspaceSelector.java +++ /dev/null @@ -1,70 +0,0 @@ -/* - * The MIT License - * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ -package hudson.scm; - -import org.tmatesoft.svn.core.SVNException; -import org.tmatesoft.svn.core.internal.wc.admin.ISVNAdminAreaFactorySelector; -import org.tmatesoft.svn.core.internal.wc.admin.SVNAdminArea14; -import org.tmatesoft.svn.core.internal.wc.admin.SVNAdminAreaFactory; - -import java.io.File; -import java.util.ArrayList; -import java.util.Collection; - -/** - * {@link ISVNAdminAreaFactorySelector} that uses 1.4 compatible workspace for new check out, - * but still supports 1.5 workspace, if asked to work with it. - * - *

    - * Since there are many tools out there that still don't support Subversion 1.5 (including - * all the major Unix distributions that haven't bundled Subversion 1.5), using 1.4 as the - * default would reduce the likelihood of the user running into "this SVN client can't work - * with this workspace version..." problem when using other SVN tools. - * - *

    - * The primary scenario of this is the use of command-line SVN client, either from shell - * script, Ant, or Maven. - * - * @author Kohsuke Kawaguchi - */ -public class SubversionWorkspaceSelector implements ISVNAdminAreaFactorySelector { - public SubversionWorkspaceSelector() { - // don't upgrade the workspace. - SVNAdminAreaFactory.setUpgradeEnabled(false); - } - - @SuppressWarnings({"cast", "unchecked"}) - public Collection getEnabledFactories(File path, Collection factories, boolean writeAccess) throws SVNException { - if(!writeAccess) // for reading, use all our available factories - return factories; - - // for writing, use 1.4 - Collection enabledFactories = new ArrayList(); - for (SVNAdminAreaFactory factory : (Collection)factories) - if (factory.getSupportedVersion() == SVNAdminArea14.WC_FORMAT) - enabledFactories.add(factory); - - return enabledFactories; - } -} diff --git a/core/src/main/java/hudson/scm/browsers/CollabNetSVN.java b/core/src/main/java/hudson/scm/browsers/CollabNetSVN.java deleted file mode 100644 index 411a32dd334c8f2bf1fc89df480973d0fb858fe2..0000000000000000000000000000000000000000 --- a/core/src/main/java/hudson/scm/browsers/CollabNetSVN.java +++ /dev/null @@ -1,114 +0,0 @@ -/* - * The MIT License - * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Daniel Dyer - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ -package hudson.scm.browsers; - -import hudson.model.Descriptor; -import hudson.model.Descriptor.FormException; -import hudson.scm.EditType; -import hudson.scm.RepositoryBrowser; -import hudson.scm.SubversionChangeLogSet; -import hudson.scm.SubversionRepositoryBrowser; -import hudson.Extension; - -import java.io.IOException; -import java.net.URL; -import net.sf.json.JSONObject; -import org.kohsuke.stapler.DataBoundConstructor; -import org.kohsuke.stapler.StaplerRequest; - -/** - * {@link RepositoryBrowser} implementation for CollabNet hosted Subversion repositories. - * This enables Hudson to integrate with the repository browsers built-in to CollabNet-powered - * sites such as Java.net and Tigris.org. - * @author Daniel Dyer - */ -public class CollabNetSVN extends SubversionRepositoryBrowser -{ - @Extension - public static class DescriptorImpl extends Descriptor> { - public String getDisplayName() { - return "CollabNet"; - } - - @Override - public RepositoryBrowser newInstance(StaplerRequest req, JSONObject formData) throws FormException { - return req.bindParameters(CollabNetSVN.class, "collabnet.svn."); - } - } - - - public final URL url; - - - /** - * @param url The repository browser URL for the root of the project. - * For example, a Java.net project called "myproject" would use - * https://myproject.dev.java.net/source/browse/myproject - */ - @DataBoundConstructor - public CollabNetSVN(URL url) { - this.url = normalizeToEndWithSlash(url); - } - - - /** - * {@inheritDoc} - */ - public URL getDiffLink(SubversionChangeLogSet.Path path) throws IOException { - if (path.getEditType() != EditType.EDIT) { - // No diff if the file is being added or deleted. - return null; - } - - int revision = path.getLogEntry().getRevision(); - QueryBuilder query = new QueryBuilder(null); - query.add("r1=" + (revision - 1)); - query.add("r2=" + revision); - return new URL(url, trimHeadSlash(path.getValue()) + query); - } - - - /** - * {@inheritDoc} - */ - public URL getFileLink(SubversionChangeLogSet.Path path) throws IOException { - int revision = path.getLogEntry().getRevision(); - QueryBuilder query = new QueryBuilder(null); - query.add("rev=" + revision); - query.add("view=log"); - return new URL(url, trimHeadSlash(path.getValue()) + query); - } - - - /** - * {@inheritDoc} - */ - public URL getChangeSetLink(SubversionChangeLogSet.LogEntry changeSet) throws IOException { - int revision = changeSet.getRevision(); - QueryBuilder query = new QueryBuilder(null); - query.add("rev=" + revision); - query.add("view=rev"); - return new URL(url, query.toString()); - } -} diff --git a/core/src/main/java/hudson/scm/browsers/FishEyeCVS.java b/core/src/main/java/hudson/scm/browsers/FishEyeCVS.java deleted file mode 100644 index 0a821ce36643d4aa57ea15152e430034e75b3781..0000000000000000000000000000000000000000 --- a/core/src/main/java/hudson/scm/browsers/FishEyeCVS.java +++ /dev/null @@ -1,121 +0,0 @@ -/* - * The MIT License - * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ -package hudson.scm.browsers; - -import hudson.Extension; -import hudson.Util; -import hudson.model.Descriptor; -import hudson.model.Hudson; -import hudson.scm.CVSChangeLogSet; -import hudson.scm.CVSChangeLogSet.File; -import hudson.scm.CVSChangeLogSet.Revision; -import hudson.scm.CVSRepositoryBrowser; -import hudson.scm.RepositoryBrowser; -import hudson.util.FormValidation; -import org.kohsuke.stapler.DataBoundConstructor; -import org.kohsuke.stapler.QueryParameter; - -import javax.servlet.ServletException; -import java.io.IOException; -import java.net.URL; -import java.util.regex.Pattern; - -/** - * Repository browser for CVS in a FishEye server. - */ -public final class FishEyeCVS extends CVSRepositoryBrowser { - - /** - * The URL of the FishEye repository, e.g. - * http://deadlock.netbeans.org/fisheye/browse/netbeans/ - */ - public final URL url; - - @DataBoundConstructor - public FishEyeCVS(URL url) { - this.url = normalizeToEndWithSlash(url); - } - - @Override - public URL getDiffLink(File file) throws IOException { - Revision r = new Revision(file.getRevision()); - Revision p = r.getPrevious(); - if (p == null) { - return null; - } - return new URL(url, trimHeadSlash(file.getFullName()) + new QueryBuilder(url.getQuery()).add("r1=" + p).add("r2=" + r)); - } - - @Override - public URL getFileLink(File file) throws IOException { - return new URL(url, trimHeadSlash(file.getFullName()) + new QueryBuilder(url.getQuery())); - } - - @Override - public URL getChangeSetLink(CVSChangeLogSet.CVSChangeLog changeSet) throws IOException { - return null; - } - - @Extension - public static class DescriptorImpl extends Descriptor> { - @Override - public String getDisplayName() { - return "FishEye"; - } - - public FormValidation doCheck(@QueryParameter String value) throws IOException, ServletException { - value = Util.fixEmpty(value); - if (value == null) return FormValidation.ok(); - if (!value.endsWith("/")) value += '/'; - if (!URL_PATTERN.matcher(value).matches()) - return FormValidation.errorWithMarkup("The URL should end like .../browse/foobar/"); - - // Connect to URL and check content only if we have admin permission - if (!Hudson.getInstance().hasPermission(Hudson.ADMINISTER)) - return FormValidation.ok(); - - final String finalValue = value; - return new FormValidation.URLCheck() { - @Override - protected FormValidation check() throws IOException, ServletException { - try { - if (findText(open(new URL(finalValue)), "FishEye")) { - return FormValidation.ok(); - } else { - return FormValidation.error("This is a valid URL but it doesn't look like FishEye"); - } - } catch (IOException e) { - return handleIOException(finalValue, e); - } - } - }.check(); - } - - private static final Pattern URL_PATTERN = Pattern.compile(".+/browse/[^/]+/"); - - } - - private static final long serialVersionUID = 1L; - -} diff --git a/core/src/main/java/hudson/scm/browsers/FishEyeSVN.java b/core/src/main/java/hudson/scm/browsers/FishEyeSVN.java deleted file mode 100644 index caa253dec6407a6d5c80593b527867d99a717b5c..0000000000000000000000000000000000000000 --- a/core/src/main/java/hudson/scm/browsers/FishEyeSVN.java +++ /dev/null @@ -1,166 +0,0 @@ -/* - * The MIT License - * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ -package hudson.scm.browsers; - -import hudson.Extension; -import hudson.model.Descriptor; -import hudson.model.Hudson; -import hudson.scm.EditType; -import hudson.scm.RepositoryBrowser; -import hudson.scm.SubversionChangeLogSet.LogEntry; -import hudson.scm.SubversionChangeLogSet.Path; -import hudson.scm.SubversionRepositoryBrowser; -import hudson.util.FormValidation; -import hudson.util.FormValidation.URLCheck; -import org.kohsuke.stapler.DataBoundConstructor; -import org.kohsuke.stapler.QueryParameter; - -import javax.servlet.ServletException; -import java.io.IOException; -import java.net.MalformedURLException; -import java.net.URL; -import java.util.regex.Pattern; - -/** - * {@link RepositoryBrowser} for FishEye SVN. - * - * @author Kohsuke Kawaguchi - */ -public class FishEyeSVN extends SubversionRepositoryBrowser { - /** - * The URL of the FishEye repository. - * - * This is normally like http://fisheye5.cenqua.com/browse/glassfish/ - * Normalized to have '/' at the tail. - */ - public final URL url; - - /** - * Root SVN module name (like 'foo/bar' — normalized to - * have no leading nor trailing slash.) Can be empty. - */ - private final String rootModule; - - @DataBoundConstructor - public FishEyeSVN(URL url, String rootModule) throws MalformedURLException { - this.url = normalizeToEndWithSlash(url); - - // normalize - rootModule = rootModule.trim(); - if(rootModule.startsWith("/")) - rootModule = rootModule.substring(1); - if(rootModule.endsWith("/")) - rootModule = rootModule.substring(0,rootModule.length()-1); - - this.rootModule = rootModule; - } - - public String getRootModule() { - if(rootModule==null) - return ""; // compatibility - return rootModule; - } - - @Override - public URL getDiffLink(Path path) throws IOException { - if(path.getEditType()!= EditType.EDIT) - return null; // no diff if this is not an edit change - int r = path.getLogEntry().getRevision(); - return new URL(url, getPath(path)+String.format("?r1=%d&r2=%d",r-1,r)); - } - - @Override - public URL getFileLink(Path path) throws IOException { - return new URL(url, getPath(path)); - } - - /** - * Trims off the root module portion to compute the path within FishEye. - */ - private String getPath(Path path) { - String s = trimHeadSlash(path.getValue()); - if(s.startsWith(rootModule)) // this should be always true, but be defensive - s = trimHeadSlash(s.substring(rootModule.length())); - return s; - } - - /** - * Pick up "FOOBAR" from "http://site/browse/FOOBAR/" - */ - private String getProjectName() { - String p = url.getPath(); - if(p.endsWith("/")) p = p.substring(0,p.length()-1); - - int idx = p.lastIndexOf('/'); - return p.substring(idx+1); - } - - @Override - public URL getChangeSetLink(LogEntry changeSet) throws IOException { - return new URL(url,"../../changelog/"+getProjectName()+"/?cs="+changeSet.getRevision()); - } - - @Extension - public static class DescriptorImpl extends Descriptor> { - public String getDisplayName() { - return "FishEye"; - } - - /** - * Performs on-the-fly validation of the URL. - */ - public FormValidation doCheck(@QueryParameter(fixEmpty=true) String value) throws IOException, ServletException { - if(value==null) // nothing entered yet - return FormValidation.ok(); - - if(!value.endsWith("/")) value+='/'; - if(!URL_PATTERN.matcher(value).matches()) - return FormValidation.errorWithMarkup("The URL should end like .../browse/foobar/"); - - // Connect to URL and check content only if we have admin permission - if (!Hudson.getInstance().hasPermission(Hudson.ADMINISTER)) - return FormValidation.ok(); - - final String finalValue = value; - return new URLCheck() { - @Override - protected FormValidation check() throws IOException, ServletException { - try { - if(findText(open(new URL(finalValue)),"FishEye")) { - return FormValidation.ok(); - } else { - return FormValidation.error("This is a valid URL but it doesn't look like FishEye"); - } - } catch (IOException e) { - return handleIOException(finalValue,e); - } - } - }.check(); - } - - private static final Pattern URL_PATTERN = Pattern.compile(".+/browse/[^/]+/"); - } - - private static final long serialVersionUID = 1L; -} diff --git a/core/src/main/java/hudson/scm/browsers/QueryBuilder.java b/core/src/main/java/hudson/scm/browsers/QueryBuilder.java index d8e47d214517fadaa6ffff11322941cd1b5c8cd3..f80ca8a8068e3abb72b51a9569b3bfe5c464b47f 100644 --- a/core/src/main/java/hudson/scm/browsers/QueryBuilder.java +++ b/core/src/main/java/hudson/scm/browsers/QueryBuilder.java @@ -24,12 +24,14 @@ package hudson.scm.browsers; /** + * Builds up a query string. + * * @author Kohsuke Kawaguchi */ -final class QueryBuilder { +public final class QueryBuilder { private final StringBuilder buf = new StringBuilder(); - QueryBuilder(String s) { + public QueryBuilder(String s) { add(s); } @@ -41,6 +43,7 @@ final class QueryBuilder { return this; } + @Override public String toString() { return buf.toString(); } diff --git a/core/src/main/java/hudson/scm/browsers/Sventon.java b/core/src/main/java/hudson/scm/browsers/Sventon.java deleted file mode 100644 index 4559cd6411860f10e5c73044611d0d2060eee10c..0000000000000000000000000000000000000000 --- a/core/src/main/java/hudson/scm/browsers/Sventon.java +++ /dev/null @@ -1,157 +0,0 @@ -/* - * The MIT License - * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Stephen Connolly - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ -package hudson.scm.browsers; - -import hudson.Extension; -import hudson.model.AbstractProject; -import hudson.model.Descriptor; -import hudson.model.Item; -import hudson.scm.EditType; -import hudson.scm.RepositoryBrowser; -import hudson.scm.SubversionChangeLogSet.LogEntry; -import hudson.scm.SubversionChangeLogSet.Path; -import hudson.scm.SubversionRepositoryBrowser; -import hudson.util.FormValidation; -import hudson.util.FormValidation.URLCheck; -import org.kohsuke.stapler.AncestorInPath; -import org.kohsuke.stapler.DataBoundConstructor; -import org.kohsuke.stapler.QueryParameter; - -import javax.servlet.ServletException; -import java.io.IOException; -import java.net.MalformedURLException; -import java.net.URL; -import java.net.URLEncoder; - -/** - * {@link RepositoryBrowser} for Sventon 1.x. - * - * @author Stephen Connolly - */ -public class Sventon extends SubversionRepositoryBrowser { - /** - * The URL of the Sventon 1.x repository. - * - * This is normally like http://somehost.com/svn/ - * Normalized to have '/' at the tail. - */ - public final URL url; - - /** - * Repository instance. Cannot be empty - */ - private final String repositoryInstance; - - /** - * The charset to use when encoding paths in an URI (specified in RFC 3986). - */ - private static final String URL_CHARSET = "UTF-8"; - - @DataBoundConstructor - public Sventon(URL url, String repositoryInstance) throws MalformedURLException { - this.url = normalizeToEndWithSlash(url); - - // normalize - repositoryInstance = repositoryInstance.trim(); - - this.repositoryInstance = repositoryInstance == null ? "" : repositoryInstance; - } - - public String getRepositoryInstance() { - return repositoryInstance; - } - - @Override - public URL getDiffLink(Path path) throws IOException { - if(path.getEditType()!= EditType.EDIT) - return null; // no diff if this is not an edit change - int r = path.getLogEntry().getRevision(); - return new URL(url, String.format("diffprev.svn?name=%s&commitrev=%d&committedRevision=%d&revision=%d&path=%s", - repositoryInstance,r,r,r,URLEncoder.encode(getPath(path), URL_CHARSET))); - } - - @Override - public URL getFileLink(Path path) throws IOException { - if (path.getEditType() == EditType.DELETE) - return null; // no file if it's gone - int r = path.getLogEntry().getRevision(); - return new URL(url, String.format("goto.svn?name=%s&revision=%d&path=%s", - repositoryInstance,r,URLEncoder.encode(getPath(path), URL_CHARSET))); - } - - /** - * Trims off the root module portion to compute the path within FishEye. - */ - private String getPath(Path path) { - String s = trimHeadSlash(path.getValue()); - if(s.startsWith(repositoryInstance)) // this should be always true, but be defensive - s = trimHeadSlash(s.substring(repositoryInstance.length())); - return s; - } - - @Override - public URL getChangeSetLink(LogEntry changeSet) throws IOException { - return new URL(url, String.format("revinfo.svn?name=%s&revision=%d", - repositoryInstance,changeSet.getRevision())); - } - - @Extension - public static class DescriptorImpl extends Descriptor> { - public String getDisplayName() { - return "Sventon 1.x"; - } - - /** - * Performs on-the-fly validation of the URL. - */ - public FormValidation doCheckUrl(@AncestorInPath AbstractProject project, - @QueryParameter(fixEmpty=true) final String value) - throws IOException, ServletException { - if(!project.hasPermission(Item.CONFIGURE)) return FormValidation.ok(); // can't check - if(value==null) // nothing entered yet - return FormValidation.ok(); - - return new URLCheck() { - protected FormValidation check() throws IOException, ServletException { - String v = value; - if(!v.endsWith("/")) v+='/'; - - try { - if (findText(open(new URL(v)),"sventon 1")) { - return FormValidation.ok(); - } else if (findText(open(new URL(v)),"sventon")) { - return FormValidation.error("This is a valid Sventon URL but it doesn't look like Sventon 1.x"); - } else{ - return FormValidation.error("This is a valid URL but it doesn't look like Sventon"); - } - } catch (IOException e) { - return handleIOException(v,e); - } - } - }.check(); - } - } - - private static final long serialVersionUID = 1L; -} diff --git a/core/src/main/java/hudson/scm/browsers/Sventon2.java b/core/src/main/java/hudson/scm/browsers/Sventon2.java deleted file mode 100644 index 00223983c173515407d739f663a9329541e4411f..0000000000000000000000000000000000000000 --- a/core/src/main/java/hudson/scm/browsers/Sventon2.java +++ /dev/null @@ -1,157 +0,0 @@ -/* - * The MIT License - * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Stephen Connolly - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ -package hudson.scm.browsers; - -import hudson.Extension; -import hudson.model.AbstractProject; -import hudson.model.Descriptor; -import hudson.model.Item; -import hudson.scm.EditType; -import hudson.scm.RepositoryBrowser; -import hudson.scm.SubversionChangeLogSet.LogEntry; -import hudson.scm.SubversionChangeLogSet.Path; -import hudson.scm.SubversionRepositoryBrowser; -import hudson.util.FormValidation; -import hudson.util.FormValidation.URLCheck; -import org.kohsuke.stapler.AncestorInPath; -import org.kohsuke.stapler.DataBoundConstructor; -import org.kohsuke.stapler.QueryParameter; - -import javax.servlet.ServletException; -import java.io.IOException; -import java.net.MalformedURLException; -import java.net.URL; -import java.net.URLEncoder; - -/** - * {@link RepositoryBrowser} for Sventon 2.x. - * - * @author Stephen Connolly - */ -public class Sventon2 extends SubversionRepositoryBrowser { - /** - * The URL of the Sventon 2.x repository. - * - * This is normally like http://somehost.com/svn/ - * Normalized to have '/' at the tail. - */ - public final URL url; - - /** - * Repository instance. Cannot be empty - */ - private final String repositoryInstance; - - /** - * The charset to use when encoding paths in an URI (specified in RFC 3986). - */ - private static final String URL_CHARSET = "UTF-8"; - - @DataBoundConstructor - public Sventon2(URL url, String repositoryInstance) throws MalformedURLException { - this.url = normalizeToEndWithSlash(url); - - // normalize - repositoryInstance = repositoryInstance.trim(); - - this.repositoryInstance = repositoryInstance == null ? "" : repositoryInstance; - } - - public String getRepositoryInstance() { - return repositoryInstance; - } - - @Override - public URL getDiffLink(Path path) throws IOException { - if(path.getEditType()!= EditType.EDIT) - return null; // no diff if this is not an edit change - int r = path.getLogEntry().getRevision(); - return new URL(url, String.format("repos/%s/diff/%s?revision=%d", - repositoryInstance,URLEncoder.encode(getPath(path), URL_CHARSET), r)); - } - - @Override - public URL getFileLink(Path path) throws IOException { - if (path.getEditType() == EditType.DELETE) - return null; // no file if it's gone - int r = path.getLogEntry().getRevision(); - return new URL(url, String.format("repos/%s/goto/%s?revision=%d", - repositoryInstance,URLEncoder.encode(getPath(path), URL_CHARSET), r)); - } - - /** - * Trims off the root module portion to compute the path within FishEye. - */ - private String getPath(Path path) { - String s = trimHeadSlash(path.getValue()); - if(s.startsWith(repositoryInstance)) // this should be always true, but be defensive - s = trimHeadSlash(s.substring(repositoryInstance.length())); - return s; - } - - @Override - public URL getChangeSetLink(LogEntry changeSet) throws IOException { - return new URL(url, String.format("repos/%s/info?revision=%d", - repositoryInstance,changeSet.getRevision())); - } - - @Extension - public static class DescriptorImpl extends Descriptor> { - public String getDisplayName() { - return "Sventon 2.x"; - } - - /** - * Performs on-the-fly validation of the URL. - */ - public FormValidation doCheckUrl(@AncestorInPath AbstractProject project, - @QueryParameter(fixEmpty=true) final String value) - throws IOException, ServletException { - if(!project.hasPermission(Item.CONFIGURE)) return FormValidation.ok(); // can't check - if(value==null) // nothing entered yet - return FormValidation.ok(); - - return new URLCheck() { - protected FormValidation check() throws IOException, ServletException { - String v = value; - if(!v.endsWith("/")) v+='/'; - - try { - if (findText(open(new URL(v)),"sventon 2")) { - return FormValidation.ok(); - } else if (findText(open(new URL(v)),"sventon")) { - return FormValidation.error("This is a valid Sventon URL but it doesn't look like Sventon 2.x"); - } else{ - return FormValidation.error("This is a valid URL but it doesn't look like Sventon"); - } - } catch (IOException e) { - return handleIOException(v,e); - } - } - }.check(); - } - } - - private static final long serialVersionUID = 1L; -} diff --git a/core/src/main/java/hudson/scm/browsers/ViewCVS.java b/core/src/main/java/hudson/scm/browsers/ViewCVS.java deleted file mode 100644 index b5106cd2f4c1564fadead91dd1469502d77c702b..0000000000000000000000000000000000000000 --- a/core/src/main/java/hudson/scm/browsers/ViewCVS.java +++ /dev/null @@ -1,91 +0,0 @@ -/* - * The MIT License - * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ -package hudson.scm.browsers; - -import hudson.model.Descriptor; -import hudson.scm.CVSChangeLogSet.CVSChangeLog; -import hudson.scm.CVSChangeLogSet.File; -import hudson.scm.CVSChangeLogSet.Revision; -import hudson.scm.CVSRepositoryBrowser; -import hudson.scm.RepositoryBrowser; -import hudson.Extension; -import org.kohsuke.stapler.StaplerRequest; -import org.kohsuke.stapler.DataBoundConstructor; - -import java.io.IOException; -import java.net.MalformedURLException; -import java.net.URL; - -/** - * {@link RepositoryBrowser} for CVS. - * @author Kohsuke Kawaguchi - */ -// See http://viewvc.tigris.org/source/browse/*checkout*/viewvc/trunk/docs/url-reference.html -public final class ViewCVS extends CVSRepositoryBrowser { - /** - * The URL of the top of the site. - * - * Normalized to ends with '/', like http://isscvs.cern.ch/cgi-bin/viewcvs-all.cgi/ - * It may contain a query parameter like ?cvsroot=foobar, so relative URL - * construction needs to be done with care. - */ - public final URL url; - - @DataBoundConstructor - public ViewCVS(URL url) throws MalformedURLException { - this.url = normalizeToEndWithSlash(url); - } - - public URL getFileLink(File file) throws IOException { - return new URL(url,trimHeadSlash(file.getFullName())+param()); - } - - public URL getDiffLink(File file) throws IOException { - Revision r = new Revision(file.getRevision()); - Revision p = r.getPrevious(); - if(p==null) return null; - - return new URL(getFileLink(file), file.getSimpleName()+".diff"+param().add("r1="+p).add("r2="+r)); - } - - /** - * No changeset support in ViewCVS. - */ - public URL getChangeSetLink(CVSChangeLog changeSet) throws IOException { - return null; - } - - private QueryBuilder param() { - return new QueryBuilder(url.getQuery()); - } - - @Extension - public static class DescriptorImpl extends Descriptor> { - public String getDisplayName() { - return "ViewCVS"; - } - } - - private static final long serialVersionUID = 1L; -} diff --git a/core/src/main/java/hudson/scm/browsers/ViewSVN.java b/core/src/main/java/hudson/scm/browsers/ViewSVN.java deleted file mode 100644 index 16827e254585693764e769a6dac52530293cd159..0000000000000000000000000000000000000000 --- a/core/src/main/java/hudson/scm/browsers/ViewSVN.java +++ /dev/null @@ -1,92 +0,0 @@ -/* - * The MIT License - * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ -package hudson.scm.browsers; - -import hudson.model.Descriptor; -import hudson.scm.EditType; -import hudson.scm.RepositoryBrowser; -import hudson.scm.SubversionChangeLogSet; -import hudson.scm.SubversionChangeLogSet.Path; -import hudson.scm.SubversionRepositoryBrowser; -import hudson.Extension; -import org.kohsuke.stapler.StaplerRequest; -import org.kohsuke.stapler.DataBoundConstructor; - -import java.io.IOException; -import java.net.MalformedURLException; -import java.net.URL; - -/** - * {@link RepositoryBrowser} for Subversion. - * - * @author Kohsuke Kawaguchi - * @since 1.90 - */ -// See http://viewvc.tigris.org/source/browse/*checkout*/viewvc/trunk/docs/url-reference.html -public class ViewSVN extends SubversionRepositoryBrowser { - /** - * The URL of the top of the site. - * - * Normalized to ends with '/', like http://svn.apache.org/viewvc/ - * It may contain a query parameter like ?root=foobar, so relative URL - * construction needs to be done with care. - */ - public final URL url; - - @DataBoundConstructor - public ViewSVN(URL url) throws MalformedURLException { - this.url = normalizeToEndWithSlash(url); - } - - @Override - public URL getDiffLink(Path path) throws IOException { - if(path.getEditType()!= EditType.EDIT) - return null; // no diff if this is not an edit change - int r = path.getLogEntry().getRevision(); - return new URL(url,trimHeadSlash(path.getValue())+param().add("r1="+(r-1)).add("r2="+r)); - } - - @Override - public URL getFileLink(Path path) throws IOException { - return new URL(url,trimHeadSlash(path.getValue())+param()); - } - - @Override - public URL getChangeSetLink(SubversionChangeLogSet.LogEntry changeSet) throws IOException { - return new URL(url,"."+param().add("view=rev").add("rev="+changeSet.getRevision())); - } - - private QueryBuilder param() { - return new QueryBuilder(url.getQuery()); - } - - private static final long serialVersionUID = 1L; - - @Extension - public static final class DescriptorImpl extends Descriptor> { - public String getDisplayName() { - return "ViewSVN"; - } - } -} diff --git a/core/src/main/java/hudson/scm/browsers/WebSVN.java b/core/src/main/java/hudson/scm/browsers/WebSVN.java deleted file mode 100644 index 68d5eb6fdecc7c8bdd24224cf03d4b1f112d4177..0000000000000000000000000000000000000000 --- a/core/src/main/java/hudson/scm/browsers/WebSVN.java +++ /dev/null @@ -1,139 +0,0 @@ -/* - * The MIT License - * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Daniel Dyer - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ -package hudson.scm.browsers; - -import hudson.model.Descriptor; - -import hudson.scm.EditType; -import hudson.scm.RepositoryBrowser; -import hudson.scm.SubversionChangeLogSet; - -import hudson.scm.SubversionChangeLogSet.Path; - -import hudson.scm.SubversionRepositoryBrowser; -import hudson.Extension; - -import org.kohsuke.stapler.StaplerRequest; -import org.kohsuke.stapler.DataBoundConstructor; - -import java.io.IOException; - -import java.net.MalformedURLException; -import java.net.URL; - - -/** - * {@link RepositoryBrowser} for Subversion. Assumes that WebSVN is - * configured with Multiviews enabled. - * - * @author jasonchaffee at dev.java.net - * @since 1.139 - */ -public class WebSVN extends SubversionRepositoryBrowser { - - @Extension - public static class DescriptorImpl extends Descriptor> { - public String getDisplayName() { - return "WebSVN"; - } - } - - - private static final long serialVersionUID = 1L; - - /** - * The URL of the top of the site. - * - *

    Normalized to ends with '/', like http://svn.apache.org/wsvn/ - * It may contain a query parameter like ?root=foobar, so relative - * URL construction needs to be done with care.

    - */ - public final URL url; - - /** - * Creates a new WebSVN object. - * - * @param url DOCUMENT ME! - * - * @throws MalformedURLException DOCUMENT ME! - */ - @DataBoundConstructor - public WebSVN(URL url) throws MalformedURLException { - this.url = normalizeToEndWithSlash(url); - } - - /** - * Returns the diff link value. - * - * @param path the given path value. - * - * @return the diff link value. - * - * @throws IOException DOCUMENT ME! - */ - @Override public URL getDiffLink(Path path) throws IOException { - if (path.getEditType() != EditType.EDIT) { - return null; // no diff if this is not an edit change - } - - int r = path.getLogEntry().getRevision(); - - return new URL(url, - trimHeadSlash(path.getValue()) + - param().add("op=diff").add("rev=" + r)); - } - - /** - * Returns the file link value. - * - * @param path the given path value. - * - * @return the file link value. - * - * @throws IOException DOCUMENT ME! - */ - @Override public URL getFileLink(Path path) throws IOException { - return new URL(url, trimHeadSlash(path.getValue()) + param()); - } - - /** - * Returns the change set link value. - * - * @param changeSet the given changeSet value. - * - * @return the change set link value. - * - * @throws IOException DOCUMENT ME! - */ - @Override public URL getChangeSetLink(SubversionChangeLogSet.LogEntry changeSet) - throws IOException { - return new URL(url, - "." + - param().add("rev=" + changeSet.getRevision()).add("sc=1")); - } - - private QueryBuilder param() { - return new QueryBuilder(url.getQuery()); - } -} diff --git a/core/src/main/java/hudson/scm/browsers/package.html b/core/src/main/java/hudson/scm/browsers/package.html index 01fc54a487b55cd38a5a4769612cba63e8ce98b3..34cdf0e8aff1d23295795ea0291d3f026ff33e90 100644 --- a/core/src/main/java/hudson/scm/browsers/package.html +++ b/core/src/main/java/hudson/scm/browsers/package.html @@ -1,7 +1,7 @@ - + Code that computes links to external source code repository browsers. \ No newline at end of file diff --git a/core/src/main/java/hudson/scm/package.html b/core/src/main/java/hudson/scm/package.html index 52fa7499da217ec006fad8c5e1d8ac96365e8b10..610f57991d9931e3ee1ea5e658fafa90b5d076ca 100644 --- a/core/src/main/java/hudson/scm/package.html +++ b/core/src/main/java/hudson/scm/package.html @@ -1,7 +1,7 @@ - + Hudson's interface with source code management systems. Start with SCM \ No newline at end of file diff --git a/core/src/main/java/hudson/search/package.html b/core/src/main/java/hudson/search/package.html index 9ef29c20390564629dc6eb5529ddb19af4a7956f..2598614378a293f979284a65d8b03e8b29144c3a 100644 --- a/core/src/main/java/hudson/search/package.html +++ b/core/src/main/java/hudson/search/package.html @@ -1,7 +1,7 @@ - + QuickSilver-like search/jump capability for better navigation around the website. \ No newline at end of file diff --git a/core/src/main/java/hudson/security/ACL.java b/core/src/main/java/hudson/security/ACL.java index c57c6e863b9a44a90fdcb3ec68b056e6eb32e87c..5f4be83c9a86c3b76983600f2d50c5b39e83091e 100644 --- a/core/src/main/java/hudson/security/ACL.java +++ b/core/src/main/java/hudson/security/ACL.java @@ -84,7 +84,12 @@ public abstract class ACL { * but {@link ACL} is responsible for checking it nontheless, as if it was the * last entry in the granted authority. */ - public static final Sid EVERYONE = new Sid() {}; + public static final Sid EVERYONE = new Sid() { + @Override + public String toString() { + return "EVERYONE"; + } + }; /** * {@link Sid} that represents the anonymous unauthenticated users. @@ -94,6 +99,8 @@ public abstract class ACL { */ public static final Sid ANONYMOUS = new PrincipalSid("anonymous"); + protected static final Sid[] AUTOMATIC_SIDS = new Sid[]{EVERYONE,ANONYMOUS}; + /** * {@link Sid} that represents the Hudson itself. *

    diff --git a/core/src/main/java/hudson/security/AbstractPasswordBasedSecurityRealm.java b/core/src/main/java/hudson/security/AbstractPasswordBasedSecurityRealm.java new file mode 100644 index 0000000000000000000000000000000000000000..a278f4f7db27530fac3fdc518b9e7da6d95e8cae --- /dev/null +++ b/core/src/main/java/hudson/security/AbstractPasswordBasedSecurityRealm.java @@ -0,0 +1,157 @@ +package hudson.security; + +import groovy.lang.Binding; +import hudson.FilePath; +import hudson.cli.CLICommand; +import hudson.model.Hudson; +import hudson.remoting.Callable; +import hudson.tasks.MailAddressResolver; +import hudson.util.spring.BeanBuilder; +import org.acegisecurity.Authentication; +import org.acegisecurity.AuthenticationException; +import org.acegisecurity.AuthenticationManager; +import org.acegisecurity.BadCredentialsException; +import org.acegisecurity.providers.UsernamePasswordAuthenticationToken; +import org.acegisecurity.providers.dao.AbstractUserDetailsAuthenticationProvider; +import org.acegisecurity.userdetails.UserDetails; +import org.acegisecurity.userdetails.UserDetailsService; +import org.acegisecurity.userdetails.UsernameNotFoundException; +import org.jvnet.animal_sniffer.IgnoreJRERequirement; +import org.kohsuke.args4j.Option; +import org.springframework.dao.DataAccessException; +import org.springframework.web.context.WebApplicationContext; + +import java.io.Console; +import java.io.IOException; + +/** + * Partial implementation of {@link SecurityRealm} for username/password based authentication. + * This is a convenience base class if all you are trying to do is to check the given username + * and password with the information stored in somewhere else, and you don't want to do anything + * with Acegi. + * + *

    + * This {@link SecurityRealm} uses the standard login form (and a few other optional mechanisms like BASIC auth) + * to gather the username/password information. Subtypes are responsible for authenticating this information. + * + * @author Kohsuke Kawaguchi + * @since 1.317 + */ +public abstract class AbstractPasswordBasedSecurityRealm extends SecurityRealm implements UserDetailsService { + @Override + public SecurityComponents createSecurityComponents() { + Binding binding = new Binding(); + binding.setVariable("authenticator", new Authenticator()); + + BeanBuilder builder = new BeanBuilder(); + builder.parse(Hudson.getInstance().servletContext.getResourceAsStream("/WEB-INF/security/AbstractPasswordBasedSecurityRealm.groovy"),binding); + WebApplicationContext context = builder.createApplicationContext(); + return new SecurityComponents( + findBean(AuthenticationManager.class, context),this); + } + + @Override + public CliAuthenticator createCliAuthenticator(final CLICommand command) { + return new CliAuthenticator() { + @Option(name="--username",usage="User name to authenticate yourself to Hudson") + public String userName; + + @Option(name="--password",usage="Password for authentication. Note that passing a password in arguments is insecure.") + public String password; + + @Option(name="--password-file",usage="File that contains the password") + public String passwordFile; + + public Authentication authenticate() throws AuthenticationException, IOException, InterruptedException { + if (userName==null) + return Hudson.ANONYMOUS; // no authentication parameter. run as anonymous + + if (passwordFile!=null) + try { + password = new FilePath(command.channel,passwordFile).readToString().trim(); + } catch (IOException e) { + throw new BadCredentialsException("Failed to read "+passwordFile,e); + } + if (password==null) + password = command.channel.call(new InteractivelyAskForPassword()); + + if (password==null) + throw new BadCredentialsException("No password specified"); + + UserDetails d = AbstractPasswordBasedSecurityRealm.this.authenticate(userName, password); + return new UsernamePasswordAuthenticationToken(d, password, d.getAuthorities()); + } + }; + } + + /** + * Authenticate a login attempt. + * This method is the heart of a {@link AbstractPasswordBasedSecurityRealm}. + * + *

    + * If the user name and the password pair matches, retrieve the information about this user and + * return it as a {@link UserDetails} object. {@link org.acegisecurity.userdetails.User} is a convenient + * implementation to use, but if your backend offers additional data, you may want to use your own subtype + * so that the rest of Hudson can use those additional information (such as e-mail address --- see + * {@link MailAddressResolver}.) + * + *

    + * Properties like {@link UserDetails#getPassword()} make no sense, so just return an empty value from it. + * The only information that you need to pay real attention is {@link UserDetails#getAuthorities()}, which + * is a list of roles/groups that the user is in. At minimum, this must contain {@link #AUTHENTICATED_AUTHORITY} + * (which indicates that this user is authenticated and not anonymous), but if your backend supports a notion + * of groups, you should make sure that the authorities contain one entry per one group. This enables + * users to control authorization based on groups. + * + *

    + * If the user name and the password pair doesn't match, throw {@link AuthenticationException} to reject the login + * attempt. + */ + protected abstract UserDetails authenticate(String username, String password) throws AuthenticationException; + + /** + * Retrieves information about an user by its name. + * + *

    + * This method is used, for example, to validate if the given token is a valid user name when the user is configuring an ACL. + * This is an optional method that improves the user experience. If your backend doesn't support + * a query like this, just always throw {@link UsernameNotFoundException}. + */ + @Override + public abstract UserDetails loadUserByUsername(String username) throws UsernameNotFoundException, DataAccessException; + + /** + * Retrieves information about a group by its name. + * + * This method is the group version of the {@link #loadUserByUsername(String)}. + */ + @Override + public abstract GroupDetails loadGroupByGroupname(String groupname) throws UsernameNotFoundException, DataAccessException; + + class Authenticator extends AbstractUserDetailsAuthenticationProvider { + protected void additionalAuthenticationChecks(UserDetails userDetails, UsernamePasswordAuthenticationToken authentication) throws AuthenticationException { + // authentication is assumed to be done already in the retrieveUser method + } + + protected UserDetails retrieveUser(String username, UsernamePasswordAuthenticationToken authentication) throws AuthenticationException { + return AbstractPasswordBasedSecurityRealm.this.authenticate(username,authentication.getCredentials().toString()); + } + } + + /** + * Asks for the password. + */ + private static class InteractivelyAskForPassword implements Callable { + @IgnoreJRERequirement + public String call() throws IOException { + Console console = System.console(); + if (console == null) return null; // no terminal + + char[] w = console.readPassword("Password:"); + if (w==null) return null; + return new String(w); + } + + private static final long serialVersionUID = 1L; + } +} diff --git a/core/src/main/java/hudson/security/AccessDeniedHandlerImpl.java b/core/src/main/java/hudson/security/AccessDeniedHandlerImpl.java index d917f2d3414f216379be2db64e407f9b15094248..e7dba3bec91605e6a5eb4ea6dd7a8b5941500021 100644 --- a/core/src/main/java/hudson/security/AccessDeniedHandlerImpl.java +++ b/core/src/main/java/hudson/security/AccessDeniedHandlerImpl.java @@ -55,7 +55,7 @@ public class AccessDeniedHandlerImpl implements AccessDeniedHandler { Stapler stapler = new Stapler(); stapler.init(new ServletConfig() { public String getServletName() { - throw new UnsupportedOperationException(); + return "Stapler"; } public ServletContext getServletContext() { diff --git a/core/src/main/java/hudson/security/AuthorizationMatrixProperty.java b/core/src/main/java/hudson/security/AuthorizationMatrixProperty.java index e6afcca90e6b7965d75c7024fd43c80d54b46fa0..89cc85dc0afae76cce8b701af2f45a993129689b 100644 --- a/core/src/main/java/hudson/security/AuthorizationMatrixProperty.java +++ b/core/src/main/java/hudson/security/AuthorizationMatrixProperty.java @@ -1,7 +1,7 @@ /* * The MIT License * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Yahoo! Inc., Peter Hayes, Tom Huybrechts + * Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Yahoo! Inc., Peter Hayes, Tom Huybrechts * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -23,6 +23,7 @@ */ package hudson.security; +import hudson.diagnosis.OldDataMonitor; import hudson.model.AbstractProject; import hudson.model.Item; import hudson.model.Job; @@ -32,6 +33,7 @@ import hudson.model.Hudson; import hudson.model.Run; import hudson.Extension; import hudson.util.FormValidation; +import hudson.util.RobustReflectionConverter; import java.util.Arrays; import java.util.HashMap; @@ -39,7 +41,10 @@ import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; +import java.util.Collections; import java.util.Map.Entry; +import java.util.logging.Level; +import java.util.logging.Logger; import java.io.IOException; import net.sf.json.JSONObject; @@ -59,21 +64,14 @@ import javax.servlet.ServletException; /** * {@link JobProperty} to associate ACL for each project. + * + *

    + * Once created (and initialized), this object becomes immutable. */ public class AuthorizationMatrixProperty extends JobProperty> { private transient SidACL acl = new AclImpl(); - private boolean useProjectSecurity; - - public boolean isUseProjectSecurity() { - return useProjectSecurity; - } - - public void setUseProjectSecurity(boolean useProjectSecurity) { - this.useProjectSecurity = useProjectSecurity; - } - /** * List up all permissions that are granted. * @@ -84,6 +82,15 @@ public class AuthorizationMatrixProperty extends JobProperty> { private Set sids = new HashSet(); + private AuthorizationMatrixProperty() { + } + + public AuthorizationMatrixProperty(Map> grantedPermissions) { + // do a deep copy to be safe + for (Entry> e : grantedPermissions.entrySet()) + this.grantedPermissions.put(e.getKey(),new HashSet(e.getValue())); + } + public Set getGroups() { return sids; } @@ -104,7 +111,17 @@ public class AuthorizationMatrixProperty extends JobProperty> { return Arrays.asList(data); } - /** + /** + * Returns all the (Permission,sid) pairs that are granted, in the multi-map form. + * + * @return + * read-only. never null. + */ + public Map> getGrantedPermissions() { + return Collections.unmodifiableMap(grantedPermissions); + } + + /** * Adds to {@link #grantedPermissions}. Use of this method should be limited * during construction, as this object itself is considered immutable once * populated. @@ -118,24 +135,22 @@ public class AuthorizationMatrixProperty extends JobProperty> { } @Extension - public static class DescriptorImpl extends JobPropertyDescriptor { + public static class DescriptorImpl extends JobPropertyDescriptor { @Override - public JobProperty newInstance(StaplerRequest req, - JSONObject formData) throws FormException { - AuthorizationMatrixProperty amp = new AuthorizationMatrixProperty(); + public JobProperty newInstance(StaplerRequest req, JSONObject formData) throws FormException { formData = formData.getJSONObject("useProjectSecurity"); + if (formData.isNullObject()) + return null; - if(!formData.isNullObject()) { - amp.setUseProjectSecurity(true); - for (Map.Entry r : (Set>) formData.getJSONObject("data").entrySet()) { - String sid = r.getKey(); - if (r.getValue() instanceof JSONObject) { - for (Map.Entry e : (Set>) ((JSONObject) r - .getValue()).entrySet()) { - if (e.getValue()) { - Permission p = Permission.fromId(e.getKey()); - amp.add(p, sid); - } + AuthorizationMatrixProperty amp = new AuthorizationMatrixProperty(); + for (Map.Entry r : (Set>) formData.getJSONObject("data").entrySet()) { + String sid = r.getKey(); + if (r.getValue() instanceof JSONObject) { + for (Map.Entry e : (Set>) ((JSONObject) r + .getValue()).entrySet()) { + if (e.getValue()) { + Permission p = Permission.fromId(e.getKey()); + amp.add(p, sid); } } } @@ -159,10 +174,10 @@ public class AuthorizationMatrixProperty extends JobProperty> { } public boolean showPermission(Permission p) { - return p!=Item.CREATE; + return p.getEnabled() && p!=Item.CREATE; } - public FormValidation doCheckName(@AncestorInPath AbstractProject project, @QueryParameter String value) throws IOException, ServletException { + public FormValidation doCheckName(@AncestorInPath Job project, @QueryParameter String value) throws IOException, ServletException { return GlobalMatrixAuthorizationStrategy.DESCRIPTOR.doCheckName(value, project, AbstractProject.CONFIGURE); } } @@ -175,12 +190,6 @@ public class AuthorizationMatrixProperty extends JobProperty> { } } - private Object readResolve() { - GlobalMatrixAuthorizationStrategy.migrateHudson2324(grantedPermissions); - acl = new AclImpl(); - return this; - } - public SidACL getACL() { return acl; } @@ -205,15 +214,17 @@ public class AuthorizationMatrixProperty extends JobProperty> { return set != null && set.contains(sid); } - /** - * Works like {@link #add(Permission, String)} but takes both parameters - * from a single string of the form PERMISSIONID:sid - */ - private void add(String shortForm) { - int idx = shortForm.indexOf(':'); - add(Permission.fromId(shortForm.substring(0, idx)), shortForm - .substring(idx + 1)); - } + /** + * Works like {@link #add(Permission, String)} but takes both parameters + * from a single string of the form PERMISSIONID:sid + */ + private void add(String shortForm) { + int idx = shortForm.indexOf(':'); + Permission p = Permission.fromId(shortForm.substring(0, idx)); + if (p==null) + throw new IllegalArgumentException("Failed to parse '"+shortForm+"' --- no such permission"); + add(p, shortForm.substring(idx + 1)); + } /** * Persist {@link ProjectMatrixAuthorizationStrategy} as a list of IDs that @@ -228,20 +239,15 @@ public class AuthorizationMatrixProperty extends JobProperty> { MarshallingContext context) { AuthorizationMatrixProperty amp = (AuthorizationMatrixProperty) source; - writer.startNode("useProjectSecurity"); - context.convertAnother(Boolean.valueOf(amp.isUseProjectSecurity())); - writer.endNode(); - for (Entry> e : amp.grantedPermissions .entrySet()) { String p = e.getKey().getId(); for (String sid : e.getValue()) { writer.startNode("permission"); - context.convertAnother(p + ':' + sid); + writer.setValue(p + ':' + sid); writer.endNode(); } } - } public Object unmarshal(HierarchicalStreamReader reader, @@ -251,20 +257,25 @@ public class AuthorizationMatrixProperty extends JobProperty> { String prop = reader.peekNextChild(); if (prop!=null && prop.equals("useProjectSecurity")) { reader.moveDown(); - Boolean useSecurity = (Boolean) context.convertAnother(as, Boolean.class); - as.setUseProjectSecurity(useSecurity.booleanValue()); - reader.moveUp(); - } - while (reader.hasMoreChildren()) { - reader.moveDown(); - String id = (String) context.convertAnother(as, String.class); - as.add(id); + reader.getValue(); // we used to use this but not any more. reader.moveUp(); } + while (reader.hasMoreChildren()) { + reader.moveDown(); + try { + as.add(reader.getValue()); + } catch (IllegalArgumentException ex) { + Logger.getLogger(AuthorizationMatrixProperty.class.getName()) + .log(Level.WARNING,"Skipping a non-existent permission",ex); + RobustReflectionConverter.addErrorInContext(context, ex); + } + reader.moveUp(); + } - GlobalMatrixAuthorizationStrategy.migrateHudson2324(as.grantedPermissions); + if (GlobalMatrixAuthorizationStrategy.migrateHudson2324(as.grantedPermissions)) + OldDataMonitor.report(context, "1.301"); - return as; - } - } + return as; + } + } } diff --git a/core/src/main/java/hudson/security/AuthorizationStrategy.java b/core/src/main/java/hudson/security/AuthorizationStrategy.java index 6303fc013b5a9422520eec85b5db9118d12f63e5..2a54be5a2fa7ea9b9a58ca100c138ba07286a519 100644 --- a/core/src/main/java/hudson/security/AuthorizationStrategy.java +++ b/core/src/main/java/hudson/security/AuthorizationStrategy.java @@ -23,21 +23,11 @@ */ package hudson.security; -import hudson.ExtensionPoint; -import hudson.Extension; import hudson.DescriptorExtensionList; +import hudson.Extension; +import hudson.ExtensionPoint; +import hudson.model.*; import hudson.slaves.Cloud; -import hudson.slaves.RetentionStrategy; -import hudson.model.AbstractItem; -import hudson.model.Computer; -import hudson.model.Describable; -import hudson.model.Descriptor; -import hudson.model.Hudson; -import hudson.model.Job; -import hudson.model.User; -import hudson.model.View; -import hudson.model.Node; -import hudson.model.AbstractProject; import hudson.util.DescriptorList; import java.io.Serializable; @@ -69,7 +59,7 @@ import org.kohsuke.stapler.StaplerRequest; * @author Kohsuke Kawaguchi * @see SecurityRealm */ -public abstract class AuthorizationStrategy implements Describable, ExtensionPoint { +public abstract class AuthorizationStrategy extends AbstractDescribableImpl implements ExtensionPoint { /** * Returns the instance of {@link ACL} where all the other {@link ACL} instances * for all the other model objects eventually delegate. @@ -79,9 +69,10 @@ public abstract class AuthorizationStrategy implements Describable project) { return getACL((Job)project); } @@ -95,14 +86,14 @@ public abstract class AuthorizationStrategy implements Describable - * The default implementation returns {@link #getRootACL()}. + * The default implementation returns the ACL of the ViewGroup. * * @since 1.220 */ public ACL getACL(View item) { - return getRootACL(); + return item.getOwner().getACL(); } - + /** * Implementation can choose to provide different ACL for different items. * This can be used as a basis for more fine-grained access control. @@ -175,21 +166,17 @@ public abstract class AuthorizationStrategy implements Describable getGroups(); - public Descriptor getDescriptor() { - return Hudson.getInstance().getDescriptor(getClass()); - } - /** * Returns all the registered {@link AuthorizationStrategy} descriptors. */ public static DescriptorExtensionList> all() { - return Hudson.getInstance().getDescriptorList(AuthorizationStrategy.class); + return Hudson.getInstance().>getDescriptorList(AuthorizationStrategy.class); } /** * All registered {@link SecurityRealm} implementations. * - * @deprecated + * @deprecated since 1.286 * Use {@link #all()} for read access, and {@link Extension} for registration. */ public static final DescriptorList LIST = new DescriptorList(AuthorizationStrategy.class); @@ -232,10 +219,12 @@ public abstract class AuthorizationStrategy implements Describable + * {@link CliAuthenticator} is used to authenticate an invocation of the CLI command, so that + * the thread carries the correct {@link Authentication} that represents the user who's invoking the command. + * + *

    Lifecycle

    + *

    + * Each time a CLI command is invoked, {@link SecurityRealm#createCliAuthenticator(CLICommand)} is called + * to allocate a fresh {@link CliAuthenticator} object. + * + *

    + * The {@link Option} and {@link Argument} annotations on the returned {@link CliAuthenticator} instance are + * scanned and added into the {@link CmdLineParser}, then that parser is used to parse command line arguments. + * This means subtypes can define fields/setters with those annotations to define authentication-specific options + * to CLI commands. + * + *

    + * Once the arguments and options are parsed and populated, {@link #authenticate()} method is called to + * perform the authentications. If the authentication succeeds, this method returns an {@link Authentication} + * instance that represents the user. If the authentication fails, this method throws {@link AuthenticationException}. + * To authenticate, the method can use parsed argument/option values, as well as interacting with the client + * via {@link CLICommand} by using its stdin/stdout and its channel (for example, if you want to interactively prompt + * a password, you can do so by using {@link CLICommand#channel}.) + * + *

    + * If no explicit credential is provided, or if the {@link SecurityRealm} depends on a mode of authentication + * that doesn't involve in explicit password (such as Kerberos), it's also often useful to fall back to + * {@link CLICommand#getTransportAuthentication()}, in case the user is authenticated at the transport level. + * + *

    + * Many commands do not require any authentication (for example, the "help" command), and still more commands + * can be run successfully with the anonymous permission. So the authenticator should normally allow unauthenticated + * CLI command invocations. For those, return {@link Hudson#ANONYMOUS} from the {@link #authenticate()} method. + * + *

    Example

    + *

    + * For a complete example, see the implementation of + * {@link AbstractPasswordBasedSecurityRealm#createCliAuthenticator(CLICommand)} + * + * @author Kohsuke Kawaguchi + * @since 1.350 + */ +public abstract class CliAuthenticator { + /** + * Authenticates the CLI invocation. See class javadoc for the semantics. + * + * @throws AuthenticationException + * If the authentication failed and hence the processing shouldn't proceed. + * @throws IOException + * Can be thrown if the {@link CliAuthenticator} fails to interact with the client. + * This exception is treated as a failure of authentication. It's just that allowing this + * would often simplify the callee. + * @throws InterruptedException + * Same motivation as {@link IOException}. Treated as an authentication failure. + */ + public abstract Authentication authenticate() throws AuthenticationException, IOException, InterruptedException; +} diff --git a/core/src/main/java/hudson/security/ContainerAuthentication.java b/core/src/main/java/hudson/security/ContainerAuthentication.java index 036fec8de88a8e26120504b7d8002bfa0f91fed6..23b001f71e476cd95eb52be5408a28eccbb4e415 100644 --- a/core/src/main/java/hudson/security/ContainerAuthentication.java +++ b/core/src/main/java/hudson/security/ContainerAuthentication.java @@ -27,6 +27,7 @@ import org.acegisecurity.Authentication; import org.acegisecurity.GrantedAuthority; import org.acegisecurity.GrantedAuthorityImpl; +import javax.servlet.ServletRequest; import javax.servlet.http.HttpServletRequest; import java.security.Principal; import java.util.List; @@ -45,25 +46,31 @@ import hudson.model.Hudson; * @author Kohsuke Kawaguchi */ public final class ContainerAuthentication implements Authentication { - private final HttpServletRequest request; + private final Principal principal; private GrantedAuthority[] authorities; + /** + * Servlet container can tie a {@link ServletRequest} to the request handling thread, + * so we need to capture all the information upfront to allow {@link Authentication} + * to be passed to other threads, like update center does. See HUDSON-5382. + */ public ContainerAuthentication(HttpServletRequest request) { - this.request = request; + this.principal = request.getUserPrincipal(); + if (principal==null) + throw new IllegalStateException(); // for anonymous users, we just don't call SecurityContextHolder.getContext().setAuthentication. + + // Servlet API doesn't provide a way to list up all roles the current user + // has, so we need to ask AuthorizationStrategy what roles it is going to check against. + List l = new ArrayList(); + for( String g : Hudson.getInstance().getAuthorizationStrategy().getGroups()) { + if(request.isUserInRole(g)) + l.add(new GrantedAuthorityImpl(g)); + } + l.add(SecurityRealm.AUTHENTICATED_AUTHORITY); + authorities = l.toArray(new GrantedAuthority[l.size()]); } public GrantedAuthority[] getAuthorities() { - if(authorities==null) { - // Servlet API doesn't provide a way to list up all roles the current user - // has, so we need to ask AuthorizationStrategy what roles it is going to check against. - List l = new ArrayList(); - for( String g : Hudson.getInstance().getAuthorizationStrategy().getGroups()) { - if(request.isUserInRole(g)) - l.add(new GrantedAuthorityImpl(g)); - } - l.add(SecurityRealm.AUTHENTICATED_AUTHORITY); - authorities = l.toArray(new GrantedAuthority[l.size()]); - } return authorities; } @@ -76,7 +83,7 @@ public final class ContainerAuthentication implements Authentication { } public String getPrincipal() { - return request.getUserPrincipal().getName(); + return principal.getName(); } public boolean isAuthenticated() { diff --git a/core/src/main/java/hudson/security/FullControlOnceLoggedInAuthorizationStrategy.java b/core/src/main/java/hudson/security/FullControlOnceLoggedInAuthorizationStrategy.java index fe1aba6810e18eb24a8d9ba7caacf804d9b840e7..9d9dd26629d31e383e998fbf0be529ef08570879 100644 --- a/core/src/main/java/hudson/security/FullControlOnceLoggedInAuthorizationStrategy.java +++ b/core/src/main/java/hudson/security/FullControlOnceLoggedInAuthorizationStrategy.java @@ -64,10 +64,12 @@ public class FullControlOnceLoggedInAuthorizationStrategy extends AuthorizationS return Messages.FullControlOnceLoggedInAuthorizationStrategy_DisplayName(); } + @Override public AuthorizationStrategy newInstance(StaplerRequest req, JSONObject formData) throws FormException { return new FullControlOnceLoggedInAuthorizationStrategy(); } + @Override public String getHelpFile() { return "/help/security/full-control-once-logged-in.html"; } diff --git a/core/src/main/java/hudson/security/GlobalMatrixAuthorizationStrategy.java b/core/src/main/java/hudson/security/GlobalMatrixAuthorizationStrategy.java index 960f9a2208bfb665373573c38fa860b77e38a9cb..f4e0e0d50826f8ed4b2c84fd7889d0a9771f5792 100644 --- a/core/src/main/java/hudson/security/GlobalMatrixAuthorizationStrategy.java +++ b/core/src/main/java/hudson/security/GlobalMatrixAuthorizationStrategy.java @@ -1,7 +1,7 @@ /* * The MIT License * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi + * Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Yahoo! Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -28,12 +28,14 @@ import com.thoughtworks.xstream.converters.MarshallingContext; import com.thoughtworks.xstream.converters.UnmarshallingContext; import com.thoughtworks.xstream.io.HierarchicalStreamReader; import com.thoughtworks.xstream.io.HierarchicalStreamWriter; +import hudson.diagnosis.OldDataMonitor; import hudson.model.Descriptor; import hudson.model.Hudson; import hudson.model.Item; import hudson.util.FormValidation; -import hudson.util.VersionNumber; import hudson.util.FormValidation.Kind; +import hudson.util.VersionNumber; +import hudson.util.RobustReflectionConverter; import hudson.Functions; import hudson.Extension; import net.sf.json.JSONObject; @@ -53,8 +55,12 @@ import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.Set; +import java.util.logging.Level; +import java.util.logging.Logger; import java.io.IOException; -import java.io.Serializable; +import java.util.Collections; +import java.util.SortedMap; +import java.util.TreeMap; /** * Role-based authorization via a matrix. @@ -81,6 +87,8 @@ public class GlobalMatrixAuthorizationStrategy extends AuthorizationStrategy { * as this object itself is considered immutable once populated. */ public void add(Permission p, String sid) { + if (p==null) + throw new IllegalArgumentException(); Set set = grantedPermissions.get(p); if(set==null) grantedPermissions.put(p,set = new HashSet()); @@ -94,7 +102,10 @@ public class GlobalMatrixAuthorizationStrategy extends AuthorizationStrategy { */ private void add(String shortForm) { int idx = shortForm.indexOf(':'); - add(Permission.fromId(shortForm.substring(0,idx)),shortForm.substring(idx+1)); + Permission p = Permission.fromId(shortForm.substring(0, idx)); + if (p==null) + throw new IllegalArgumentException("Failed to parse '"+shortForm+"' --- no such permission"); + add(p,shortForm.substring(idx+1)); } @Override @@ -106,31 +117,27 @@ public class GlobalMatrixAuthorizationStrategy extends AuthorizationStrategy { return sids; } - /** - * In earlier version of Hudson we used to use reflection converter, which calls this method. - * This is now unmarshaller via {@link ConverterImpl} - */ - private Object readResolve() { - migrateHudson2324(grantedPermissions); - acl = new AclImpl(); - return this; - } - /** * Due to HUDSON-2324, we want to inject Item.READ permission to everyone who has Hudson.READ, - * to remain backward compatible + * to remain backward compatible. * @param grantedPermissions */ - /*package*/ static void migrateHudson2324(Map> grantedPermissions) { + /*package*/ static boolean migrateHudson2324(Map> grantedPermissions) { + boolean result = false; if(Hudson.getInstance().isUpgradedFromBefore(new VersionNumber("1.300.*"))) { Set f = grantedPermissions.get(Hudson.READ); - if(f!=null) { + if (f!=null) { Set t = grantedPermissions.get(Item.READ); - if(t!=null) t.addAll(f); - else t=new HashSet(f); + if (t!=null) + result = t.addAll(f); + else { + t = new HashSet(f); + result = true; + } grantedPermissions.put(Item.READ,t); } } + return result; } /** @@ -139,7 +146,7 @@ public class GlobalMatrixAuthorizationStrategy extends AuthorizationStrategy { public boolean hasPermission(String sid, Permission p) { for(; p!=null; p=p.impliedBy) { Set set = grantedPermissions.get(p); - if(set!=null && set.contains(sid)) + if(set!=null && set.contains(sid) && p.getEnabled()) return true; } return false; @@ -150,7 +157,7 @@ public class GlobalMatrixAuthorizationStrategy extends AuthorizationStrategy { */ public boolean hasExplicitPermission(String sid, Permission p) { Set set = grantedPermissions.get(p); - return set != null && set.contains(sid); + return set != null && set.contains(sid) && p.getEnabled(); } /** @@ -193,11 +200,16 @@ public class GlobalMatrixAuthorizationStrategy extends AuthorizationStrategy { public void marshal(Object source, HierarchicalStreamWriter writer, MarshallingContext context) { GlobalMatrixAuthorizationStrategy strategy = (GlobalMatrixAuthorizationStrategy)source; - for (Entry> e : strategy.grantedPermissions.entrySet()) { + // Output in alphabetical order for readability. + SortedMap> sortedPermissions = new TreeMap>(Permission.ID_COMPARATOR); + sortedPermissions.putAll(strategy.grantedPermissions); + for (Entry> e : sortedPermissions.entrySet()) { String p = e.getKey().getId(); - for (String sid : e.getValue()) { + List sids = new ArrayList(e.getValue()); + Collections.sort(sids); + for (String sid : sids) { writer.startNode("permission"); - context.convertAnother(p+':'+sid); + writer.setValue(p+':'+sid); writer.endNode(); } } @@ -209,12 +221,18 @@ public class GlobalMatrixAuthorizationStrategy extends AuthorizationStrategy { while (reader.hasMoreChildren()) { reader.moveDown(); - String id = (String)context.convertAnother(as,String.class); - as.add(id); + try { + as.add(reader.getValue()); + } catch (IllegalArgumentException ex) { + Logger.getLogger(GlobalMatrixAuthorizationStrategy.class.getName()) + .log(Level.WARNING,"Skipping a non-existent permission",ex); + RobustReflectionConverter.addErrorInContext(context, ex); + } reader.moveUp(); } - migrateHudson2324(as.grantedPermissions); + if (migrateHudson2324(as.grantedPermissions)) + OldDataMonitor.report(context, "1.301"); return as; } @@ -236,6 +254,7 @@ public class GlobalMatrixAuthorizationStrategy extends AuthorizationStrategy { return Messages.GlobalMatrixAuthorizationStrategy_DisplayName(); } + @Override public AuthorizationStrategy newInstance(StaplerRequest req, JSONObject formData) throws FormException { GlobalMatrixAuthorizationStrategy gmas = create(); for(Map.Entry r : (Set>)formData.getJSONObject("data").entrySet()) { @@ -254,10 +273,6 @@ public class GlobalMatrixAuthorizationStrategy extends AuthorizationStrategy { return new GlobalMatrixAuthorizationStrategy(); } - public String getHelpFile() { - return "/help/security/global-matrix.html"; - } - public List getAllGroups() { List groups = new ArrayList(PermissionGroup.getAll()); groups.remove(PermissionGroup.get(Permission.class)); @@ -265,7 +280,7 @@ public class GlobalMatrixAuthorizationStrategy extends AuthorizationStrategy { } public boolean showPermission(Permission p) { - return true; + return p.getEnabled(); } public FormValidation doCheckName(@QueryParameter String value ) throws IOException, ServletException { @@ -280,7 +295,7 @@ public class GlobalMatrixAuthorizationStrategy extends AuthorizationStrategy { String ev = Functions.escape(v); if(v.equals("authenticated")) - // systerm reserved group + // system reserved group return FormValidation.respond(Kind.OK, makeImg("user.gif") +ev); try { @@ -307,7 +322,7 @@ public class GlobalMatrixAuthorizationStrategy extends AuthorizationStrategy { // fall through next } - // couldn't find it. it doesn't exit + // couldn't find it. it doesn't exist return FormValidation.respond(Kind.ERROR, makeImg("error.gif") +ev); } diff --git a/core/src/main/java/hudson/security/HudsonAuthenticationEntryPoint.java b/core/src/main/java/hudson/security/HudsonAuthenticationEntryPoint.java index e895b247c016efe63b5441be952f3f0a264ee039..f3c34a48d407b183bfcaa8ee1af2babdd6073abd 100644 --- a/core/src/main/java/hudson/security/HudsonAuthenticationEntryPoint.java +++ b/core/src/main/java/hudson/security/HudsonAuthenticationEntryPoint.java @@ -55,6 +55,7 @@ import java.text.MessageFormat; * @author Kohsuke Kawaguchi */ public class HudsonAuthenticationEntryPoint extends AuthenticationProcessingFilterEntryPoint { + @Override public void commence(ServletRequest request, ServletResponse response, AuthenticationException authException) throws IOException, ServletException { HttpServletRequest req = (HttpServletRequest) request; HttpServletResponse rsp = (HttpServletResponse) response; diff --git a/core/src/main/java/hudson/security/HudsonFilter.java b/core/src/main/java/hudson/security/HudsonFilter.java index 4a6a85434f064e7b0253d98bced59e5801d360a8..f4d6b43cd143f85cb03eb620821ea372d5f3748f 100644 --- a/core/src/main/java/hudson/security/HudsonFilter.java +++ b/core/src/main/java/hudson/security/HudsonFilter.java @@ -26,8 +26,8 @@ package hudson.security; import hudson.model.Hudson; import java.io.IOException; -import java.util.logging.Level; import java.util.logging.Logger; +import static java.util.logging.Level.SEVERE; import javax.servlet.Filter; import javax.servlet.FilterChain; @@ -53,7 +53,7 @@ import org.acegisecurity.userdetails.UserDetailsService; * @since 1.160 */ public class HudsonFilter implements Filter { - /** + /** * The SecurityRealm specific filter. */ private volatile Filter filter; @@ -99,14 +99,23 @@ public class HudsonFilter implements Filter { this.filterConfig = filterConfig; // this is how we make us available to the rest of Hudson. filterConfig.getServletContext().setAttribute(HudsonFilter.class.getName(),this); - Hudson hudson = Hudson.getInstance(); - if (hudson != null) { - // looks like we are initialized after Hudson came into being. initialize it now. See #3069 - LOGGER.fine("Security wasn't initialized; Initializing it..."); - SecurityRealm securityRealm = hudson.getSecurityRealm(); - reset(securityRealm); - LOGGER.fine("securityRealm is " + securityRealm); - LOGGER.fine("Security initialized"); + try { + Hudson hudson = Hudson.getInstance(); + if (hudson != null) { + // looks like we are initialized after Hudson came into being. initialize it now. See #3069 + LOGGER.fine("Security wasn't initialized; Initializing it..."); + SecurityRealm securityRealm = hudson.getSecurityRealm(); + reset(securityRealm); + LOGGER.fine("securityRealm is " + securityRealm); + LOGGER.fine("Security initialized"); + } + } catch (ExceptionInInitializerError e) { + // see HUDSON-4592. In some containers this happens before + // WebAppMain.contextInitialized kicks in, which makes + // the whole thing fail hard before a nicer error check + // in WebAppMain.contextInitialized. So for now, + // just report it here, and let the WebAppMain handle the failure gracefully. + LOGGER.log(SEVERE, "Failed to initialize Hudson",e); } } diff --git a/core/src/main/java/hudson/security/HudsonPrivateSecurityRealm.java b/core/src/main/java/hudson/security/HudsonPrivateSecurityRealm.java index cd18c92d301dc9089932dc38ab45f79916434884..be94866d44ed44d59f222fa7f5fd06c63a0cf57b 100644 --- a/core/src/main/java/hudson/security/HudsonPrivateSecurityRealm.java +++ b/core/src/main/java/hudson/security/HudsonPrivateSecurityRealm.java @@ -1,7 +1,7 @@ /* * The MIT License * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, David Calavera, Seiji Sogabe + * Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, David Calavera, Seiji Sogabe * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -23,8 +23,10 @@ */ package hudson.security; -import hudson.Util; +import com.thoughtworks.xstream.converters.UnmarshallingContext; import hudson.Extension; +import hudson.Util; +import hudson.diagnosis.OldDataMonitor; import hudson.model.Descriptor; import hudson.model.Hudson; import hudson.model.ManagementLink; @@ -33,37 +35,41 @@ import hudson.model.User; import hudson.model.UserProperty; import hudson.model.UserPropertyDescriptor; import hudson.tasks.Mailer; +import hudson.util.PluginServletFilter; import hudson.util.Protector; import hudson.util.Scrambler; -import hudson.util.spring.BeanBuilder; +import hudson.util.XStream2; import net.sf.json.JSONObject; import org.acegisecurity.Authentication; -import org.acegisecurity.AuthenticationManager; +import org.acegisecurity.AuthenticationException; +import org.acegisecurity.BadCredentialsException; import org.acegisecurity.GrantedAuthority; -import org.acegisecurity.GrantedAuthorityImpl; import org.acegisecurity.context.SecurityContextHolder; import org.acegisecurity.providers.UsernamePasswordAuthenticationToken; import org.acegisecurity.providers.encoding.PasswordEncoder; import org.acegisecurity.providers.encoding.ShaPasswordEncoder; import org.acegisecurity.userdetails.UserDetails; -import org.acegisecurity.userdetails.UserDetailsService; import org.acegisecurity.userdetails.UsernameNotFoundException; import org.kohsuke.stapler.DataBoundConstructor; import org.kohsuke.stapler.Stapler; import org.kohsuke.stapler.StaplerRequest; import org.kohsuke.stapler.StaplerResponse; import org.springframework.dao.DataAccessException; -import org.springframework.web.context.WebApplicationContext; +import javax.servlet.Filter; +import javax.servlet.FilterChain; +import javax.servlet.FilterConfig; import javax.servlet.ServletException; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import static javax.servlet.http.HttpServletResponse.SC_UNAUTHORIZED; import java.io.IOException; import java.security.SecureRandom; import java.util.ArrayList; -import java.util.List; import java.util.Collections; - -import groovy.lang.Binding; +import java.util.List; /** * {@link SecurityRealm} that performs authentication by looking up {@link User}. @@ -74,7 +80,7 @@ import groovy.lang.Binding; * * @author Kohsuke Kawaguchi */ -public class HudsonPrivateSecurityRealm extends SecurityRealm implements ModelObject, AccessControlled { +public class HudsonPrivateSecurityRealm extends AbstractPasswordBasedSecurityRealm implements ModelObject, AccessControlled { /** * If true, sign up is not allowed. *

    @@ -85,6 +91,15 @@ public class HudsonPrivateSecurityRealm extends SecurityRealm implements ModelOb @DataBoundConstructor public HudsonPrivateSecurityRealm(boolean allowsSignup) { this.disableSignup = !allowsSignup; + if(!allowsSignup && !hasSomeUser()) { + // if Hudson is newly set up with the security realm and there's no user account created yet, + // insert a filter that asks the user to create one + try { + PluginServletFilter.addFilter(CREATE_FIRST_USER_FILTER); + } catch (ServletException e) { + throw new AssertionError(e); // never happen because our Filter.init is no-op + } + } } @Override @@ -92,6 +107,19 @@ public class HudsonPrivateSecurityRealm extends SecurityRealm implements ModelOb return !disableSignup; } + /** + * Computes if this Hudson has some user accounts configured. + * + *

    + * This is used to check for the initial + */ + private static boolean hasSomeUser() { + for (User u : User.getAll()) + if(u.getProperty(Details.class)!=null) + return true; + return false; + } + /** * This implementation doesn't support groups. */ @@ -101,16 +129,22 @@ public class HudsonPrivateSecurityRealm extends SecurityRealm implements ModelOb } @Override - public SecurityComponents createSecurityComponents() { - Binding binding = new Binding(); - binding.setVariable("passwordEncoder", PASSWORD_ENCODER); - - BeanBuilder builder = new BeanBuilder(); - builder.parse(Hudson.getInstance().servletContext.getResourceAsStream("/WEB-INF/security/HudsonPrivateSecurityRealm.groovy"),binding); - WebApplicationContext context = builder.createApplicationContext(); - return new SecurityComponents( - findBean(AuthenticationManager.class, context), - findBean(UserDetailsService.class, context)); + public Details loadUserByUsername(String username) throws UsernameNotFoundException, DataAccessException { + User u = User.get(username,false); + Details p = u!=null ? u.getProperty(Details.class) : null; + if(p==null) + throw new UsernameNotFoundException("Password is not set: "+username); + if(p.getUser()==null) + throw new AssertionError(); + return p; + } + + @Override + protected Details authenticate(String username, String password) throws AuthenticationException { + Details u = loadUserByUsername(username); + if (!PASSWORD_ENCODER.isPasswordValid(u.getPassword(),password,null)) + throw new BadCredentialsException("Failed to login as "+username); + return u; } /** @@ -121,18 +155,28 @@ public class HudsonPrivateSecurityRealm extends SecurityRealm implements ModelOb rsp.sendError(SC_UNAUTHORIZED,"User sign up is prohibited"); return; } + boolean firstUser = !hasSomeUser(); User u = createAccount(req, rsp, true, "signup.jelly"); if(u!=null) { - // ... and let him login - Authentication a = new UsernamePasswordAuthenticationToken(u.getId(),req.getParameter("password1")); - a = this.getSecurityComponents().manager.authenticate(a); - SecurityContextHolder.getContext().setAuthentication(a); - - // then back to top - req.getView(this,"success.jelly").forward(req,rsp); + if(firstUser) + tryToMakeAdmin(u); // the first user should be admin, or else there's a risk of lock out + loginAndTakeBack(req, rsp, u); } } + /** + * Lets the current user silently login as the given user and report back accordingly. + */ + private void loginAndTakeBack(StaplerRequest req, StaplerResponse rsp, User u) throws ServletException, IOException { + // ... and let him login + Authentication a = new UsernamePasswordAuthenticationToken(u.getId(),req.getParameter("password1")); + a = this.getSecurityComponents().manager.authenticate(a); + SecurityContextHolder.getContext().setAuthentication(a); + + // then back to top + req.getView(this,"success.jelly").forward(req,rsp); + } + /** * Creates an user account. Used by admins. * @@ -146,12 +190,43 @@ public class HudsonPrivateSecurityRealm extends SecurityRealm implements ModelOb } } + /** + * Creates a first admin user account. + * + *

    + * This can be run by anyone, but only to create the very first user account. + */ + public void doCreateFirstAccount(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException { + if(hasSomeUser()) { + rsp.sendError(SC_UNAUTHORIZED,"First user was already created"); + return; + } + User u = createAccount(req, rsp, false, "firstUser.jelly"); + if (u!=null) { + tryToMakeAdmin(u); + loginAndTakeBack(req, rsp, u); + } + } + + /** + * Try to make this user a super-user + */ + private void tryToMakeAdmin(User u) { + AuthorizationStrategy as = Hudson.getInstance().getAuthorizationStrategy(); + if (as instanceof GlobalMatrixAuthorizationStrategy) { + GlobalMatrixAuthorizationStrategy ma = (GlobalMatrixAuthorizationStrategy) as; + ma.add(Hudson.ADMINISTER,u.getId()); + } + } + /** * @return * null if failed. The browser is already redirected to retry by the time this method returns. * a valid {@link User} object if the user creation was successful. */ private User createAccount(StaplerRequest req, StaplerResponse rsp, boolean selfRegistration, String formView) throws ServletException, IOException { + req.setCharacterEncoding("UTF-8"); + // form field validation // this pattern needs to be generalized and moved to stapler SignupInfo si = new SignupInfo(); @@ -336,11 +411,15 @@ public class HudsonPrivateSecurityRealm extends SecurityRealm implements ModelOb return user==null; } - private Object readResolve() { - // If we are being read back in from an older version - if (password!=null && passwordHash==null) - passwordHash = PASSWORD_ENCODER.encodePassword(Scrambler.descramble(password),null); - return this; + public static class ConverterImpl extends XStream2.PassthruConverter

    { + public ConverterImpl(XStream2 xstream) { super(xstream); } + @Override protected void callback(Details d, UnmarshallingContext context) { + // Convert to hashed password and report to monitor if we load old data + if (d.password!=null && d.passwordHash==null) { + d.passwordHash = PASSWORD_ENCODER.encodePassword(Scrambler.descramble(d.password),null); + OldDataMonitor.report(context, "1.283"); + } + } } @Extension @@ -353,6 +432,7 @@ public class HudsonPrivateSecurityRealm extends SecurityRealm implements ModelOb return null; } + @Override public Details newInstance(StaplerRequest req, JSONObject formData) throws FormException { String pwd = Util.fixEmpty(req.getParameter("user.password")); String pwd2= Util.fixEmpty(req.getParameter("user.password2")); @@ -369,6 +449,7 @@ public class HudsonPrivateSecurityRealm extends SecurityRealm implements ModelOb return Details.fromPlainPassword(Util.fixNull(pwd)); } + @Override public boolean isEnabled() { return Hudson.getInstance().getSecurityRealm() instanceof HudsonPrivateSecurityRealm; } @@ -379,20 +460,6 @@ public class HudsonPrivateSecurityRealm extends SecurityRealm implements ModelOb } } - /** - * {@link UserDetailsService} that loads user information from {@link User} object. - */ - public static final class HudsonUserDetailsService implements UserDetailsService { - public UserDetails loadUserByUsername(String username) { - Details p = User.get(username).getProperty(Details.class); - if(p==null) - throw new UsernameNotFoundException("Password is not set: "+username); - if(p.getUser()==null) - throw new AssertionError(); - return p; - } - } - /** * Displays "manage users" link in the system config if {@link HudsonPrivateSecurityRealm} * is in effect. @@ -476,8 +543,31 @@ public class HudsonPrivateSecurityRealm extends SecurityRealm implements ModelOb return Messages.HudsonPrivateSecurityRealm_DisplayName(); } + @Override public String getHelpFile() { return "/help/security/private-realm.html"; } } + + private static final Filter CREATE_FIRST_USER_FILTER = new Filter() { + public void init(FilterConfig config) throws ServletException { + } + + public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { + HttpServletRequest req = (HttpServletRequest) request; + + if(req.getRequestURI().equals(req.getContextPath()+"/")) { + if(hasSomeUser()) {// the first user already created. the role of this filter is over. + PluginServletFilter.removeFilter(this); + chain.doFilter(request,response); + } else { + ((HttpServletResponse)response).sendRedirect("securityRealm/firstUser"); + } + } else + chain.doFilter(request,response); + } + + public void destroy() { + } + }; } diff --git a/core/src/main/java/hudson/security/LDAPSecurityRealm.java b/core/src/main/java/hudson/security/LDAPSecurityRealm.java index bcc4479d01dc98985060edf99c47fbed667748bc..87ae5ae7f1e17231c2cbba4dadbc39157bbda8ce 100644 --- a/core/src/main/java/hudson/security/LDAPSecurityRealm.java +++ b/core/src/main/java/hudson/security/LDAPSecurityRealm.java @@ -1,7 +1,7 @@ /* * The MIT License * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe + * Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -23,10 +23,11 @@ */ package hudson.security; -import com.sun.jndi.ldap.LdapCtxFactory; import groovy.lang.Binding; import hudson.Extension; -import hudson.Util; +import static hudson.Util.fixNull; +import static hudson.Util.fixEmptyAndTrim; +import static hudson.Util.fixEmpty; import hudson.model.Descriptor; import hudson.model.Hudson; import hudson.model.User; @@ -36,11 +37,14 @@ import hudson.util.Scrambler; import hudson.util.spring.BeanBuilder; import org.acegisecurity.AuthenticationManager; import org.acegisecurity.GrantedAuthority; +import org.acegisecurity.AcegiSecurityException; +import org.acegisecurity.AuthenticationException; import org.acegisecurity.ldap.InitialDirContextFactory; import org.acegisecurity.ldap.LdapDataAccessException; import org.acegisecurity.ldap.LdapTemplate; import org.acegisecurity.ldap.LdapUserSearch; import org.acegisecurity.ldap.search.FilterBasedLdapUserSearch; +import org.acegisecurity.providers.UsernamePasswordAuthenticationToken; import org.acegisecurity.providers.ldap.LdapAuthoritiesPopulator; import org.acegisecurity.providers.ldap.populator.DefaultLdapAuthoritiesPopulator; import org.acegisecurity.userdetails.UserDetails; @@ -48,10 +52,9 @@ import org.acegisecurity.userdetails.UserDetailsService; import org.acegisecurity.userdetails.UsernameNotFoundException; import org.acegisecurity.userdetails.ldap.LdapUserDetails; import org.acegisecurity.userdetails.ldap.LdapUserDetailsImpl; +import org.apache.commons.collections.map.LRUMap; import org.kohsuke.stapler.DataBoundConstructor; import org.kohsuke.stapler.QueryParameter; -import org.kohsuke.stapler.StaplerRequest; -import org.kohsuke.stapler.StaplerResponse; import org.springframework.dao.DataAccessException; import org.springframework.web.context.WebApplicationContext; @@ -59,8 +62,9 @@ import javax.naming.Context; import javax.naming.NamingException; import javax.naming.directory.Attribute; import javax.naming.directory.Attributes; +import javax.naming.directory.BasicAttributes; import javax.naming.directory.DirContext; -import javax.servlet.ServletException; +import javax.naming.directory.InitialDirContext; import java.io.IOException; import java.net.InetAddress; import java.net.Socket; @@ -201,7 +205,7 @@ import java.util.regex.Pattern; * @author Kohsuke Kawaguchi * @since 1.166 */ -public class LDAPSecurityRealm extends SecurityRealm { +public class LDAPSecurityRealm extends AbstractPasswordBasedSecurityRealm { /** * LDAP server name, optionally with TCP port number, like "ldap.acme.org" * or "ldap.acme.org:389". @@ -276,14 +280,14 @@ public class LDAPSecurityRealm extends SecurityRealm { @DataBoundConstructor public LDAPSecurityRealm(String server, String rootDN, String userSearchBase, String userSearch, String groupSearchBase, String managerDN, String managerPassword) { this.server = server.trim(); - if(Util.fixEmptyAndTrim(rootDN)==null) rootDN=Util.fixNull(inferRootDN(server)); + this.managerDN = fixEmpty(managerDN); + this.managerPassword = Scrambler.scramble(fixEmpty(managerPassword)); + if(fixEmptyAndTrim(rootDN)==null) rootDN= fixNull(inferRootDN(server)); this.rootDN = rootDN.trim(); - this.userSearchBase = userSearchBase.trim(); - userSearch = Util.fixEmptyAndTrim(userSearch); + this.userSearchBase = fixNull(userSearchBase).trim(); + userSearch = fixEmptyAndTrim(userSearch); this.userSearch = userSearch!=null ? userSearch : "uid={0}"; - this.groupSearchBase = Util.fixEmptyAndTrim(groupSearchBase); - this.managerDN = Util.fixEmpty(managerDN); - this.managerPassword = Scrambler.scramble(Util.fixEmpty(managerPassword)); + this.groupSearchBase = fixEmptyAndTrim(groupSearchBase); } public String getServerUrl() { @@ -302,7 +306,10 @@ public class LDAPSecurityRealm extends SecurityRealm { props.put(Context.SECURITY_PRINCIPAL,managerDN); props.put(Context.SECURITY_CREDENTIALS,getManagerPassword()); } - DirContext ctx = LdapCtxFactory.getLdapCtxInstance(getServerUrl()+'/', props); + props.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory"); + props.put(Context.PROVIDER_URL, getServerUrl()+'/'); + + DirContext ctx = new InitialDirContext(props); Attributes atts = ctx.getAttributes(""); Attribute a = atts.get("defaultNamingContext"); if(a!=null) // this entry is available on Active Directory. See http://msdn2.microsoft.com/en-us/library/ms684291(VS.85).aspx @@ -325,7 +332,7 @@ public class LDAPSecurityRealm extends SecurityRealm { } public String getLDAPURL() { - return getServerUrl()+'/'+Util.fixNull(rootDN); + return getServerUrl()+'/'+ fixNull(rootDN); } public SecurityComponents createSecurityComponents() { @@ -334,39 +341,55 @@ public class LDAPSecurityRealm extends SecurityRealm { BeanBuilder builder = new BeanBuilder(); builder.parse(Hudson.getInstance().servletContext.getResourceAsStream("/WEB-INF/security/LDAPBindSecurityRealm.groovy"),binding); - final WebApplicationContext appContext = builder.createApplicationContext(); + WebApplicationContext appContext = builder.createApplicationContext(); ldapTemplate = new LdapTemplate(findBean(InitialDirContextFactory.class, appContext)); return new SecurityComponents( findBean(AuthenticationManager.class, appContext), - new UserDetailsService() { - final LdapUserSearch ldapSearch = findBean(LdapUserSearch.class, appContext); - final LdapAuthoritiesPopulator authoritiesPopulator = findBean(LdapAuthoritiesPopulator.class, appContext); - public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException, DataAccessException { - try { - LdapUserDetails ldapUser = ldapSearch.searchForUser(username); - // LdapUserSearch does not populate granted authorities (group search). - // Add those, as done in LdapAuthenticationProvider.createUserDetails(). - if (ldapUser != null) { - LdapUserDetailsImpl.Essence user = new LdapUserDetailsImpl.Essence(ldapUser); - GrantedAuthority[] extraAuthorities = authoritiesPopulator.getGrantedAuthorities(ldapUser); - for (int i = 0; i < extraAuthorities.length; i++) { - user.addAuthority(extraAuthorities[i]); - } - ldapUser = user.createUserDetails(); - } - return ldapUser; - } catch (LdapDataAccessException e) { - LOGGER.log(Level.WARNING, "Failed to search LDAP for username="+username,e); - throw new UserMayOrMayNotExistException(e.getMessage(),e); - } - } - }); + new LDAPUserDetailsService(appContext)); + } + + /** + * {@inheritDoc} + */ + @Override + protected UserDetails authenticate(String username, String password) throws AuthenticationException { + return (UserDetails) getSecurityComponents().manager.authenticate( + new UsernamePasswordAuthenticationToken(username, password)).getPrincipal(); + } + + /** + * {@inheritDoc} + */ + @Override + public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException, DataAccessException { + return getSecurityComponents().userDetails.loadUserByUsername(username); } + /** + * Lookup a group; given input must match the configured syntax for group names + * in WEB-INF/security/LDAPBindSecurityRealm.groovy's authoritiesPopulator entry. + * The defaults are a prefix of "ROLE_" and using all uppercase. This method will + * not return any data if the given name lacks the proper prefix and/or case. + */ @Override public GroupDetails loadGroupByGroupname(String groupname) throws UsernameNotFoundException, DataAccessException { + // Check proper syntax based on acegi configuration + String prefix = ""; + boolean onlyUpperCase = false; + try { + AuthoritiesPopulatorImpl api = (AuthoritiesPopulatorImpl) + ((LDAPUserDetailsService)getSecurityComponents().userDetails).authoritiesPopulator; + prefix = api.rolePrefix; + onlyUpperCase = api.convertToUpperCase; + } catch (Exception ignore) { } + if (onlyUpperCase && !groupname.equals(groupname.toUpperCase())) + throw new UsernameNotFoundException(groupname + " should be all uppercase"); + if (!groupname.startsWith(prefix)) + throw new UsernameNotFoundException(groupname + " is missing prefix: " + prefix); + groupname = groupname.substring(prefix.length()); + // TODO: obtain a DN instead so that we can obtain multiple attributes later String searchBase = groupSearchBase != null ? groupSearchBase : ""; final Set groups = (Set)ldapTemplate.searchForSingleAttributeValues(searchBase, GROUP_SEARCH, @@ -382,6 +405,56 @@ public class LDAPSecurityRealm extends SecurityRealm { }; } + public static class LDAPUserDetailsService implements UserDetailsService { + public final LdapUserSearch ldapSearch; + public final LdapAuthoritiesPopulator authoritiesPopulator; + /** + * {@link BasicAttributes} in LDAP tend to be bulky (about 20K at size), so interning them + * to keep the size under control. When a programmatic client is not smart enough to + * reuse a session, this helps keeping the memory consumption low. + */ + private final LRUMap attributesCache = new LRUMap(32); + + LDAPUserDetailsService(WebApplicationContext appContext) { + ldapSearch = findBean(LdapUserSearch.class, appContext); + authoritiesPopulator = findBean(LdapAuthoritiesPopulator.class, appContext); + } + + LDAPUserDetailsService(LdapUserSearch ldapSearch, LdapAuthoritiesPopulator authoritiesPopulator) { + this.ldapSearch = ldapSearch; + this.authoritiesPopulator = authoritiesPopulator; + } + + public LdapUserDetails loadUserByUsername(String username) throws UsernameNotFoundException, DataAccessException { + try { + LdapUserDetails ldapUser = ldapSearch.searchForUser(username); + // LdapUserSearch does not populate granted authorities (group search). + // Add those, as done in LdapAuthenticationProvider.createUserDetails(). + if (ldapUser != null) { + LdapUserDetailsImpl.Essence user = new LdapUserDetailsImpl.Essence(ldapUser); + + // intern attributes + Attributes v = ldapUser.getAttributes(); + if (v instanceof BasicAttributes) {// BasicAttributes.equals is what makes the interning possible + Attributes vv = (Attributes)attributesCache.get(v); + if (vv==null) attributesCache.put(v,vv=v); + user.setAttributes(vv); + } + + GrantedAuthority[] extraAuthorities = authoritiesPopulator.getGrantedAuthorities(ldapUser); + for (GrantedAuthority extraAuthority : extraAuthorities) { + user.addAuthority(extraAuthority); + } + ldapUser = user.createUserDetails(); + } + return ldapUser; + } catch (LdapDataAccessException e) { + LOGGER.log(Level.WARNING, "Failed to search LDAP for username="+username,e); + throw new UserMayOrMayNotExistException(e.getMessage(),e); + } + } + } + /** * If the security realm is LDAP, try to pick up e-mail address from LDAP. */ @@ -406,6 +479,9 @@ public class LDAPSecurityRealm extends SecurityRealm { } catch (NamingException e) { LOGGER.log(Level.FINE, "Failed to look up LDAP for e-mail address",e); return null; + } catch (AcegiSecurityException e) { + LOGGER.log(Level.FINE, "Failed to look up LDAP for e-mail address",e); + return null; } } } @@ -414,14 +490,32 @@ public class LDAPSecurityRealm extends SecurityRealm { * {@link LdapAuthoritiesPopulator} that adds the automatic 'authenticated' role. */ public static final class AuthoritiesPopulatorImpl extends DefaultLdapAuthoritiesPopulator { + // Make these available (private in parent class and no get methods!) + String rolePrefix; + boolean convertToUpperCase; public AuthoritiesPopulatorImpl(InitialDirContextFactory initialDirContextFactory, String groupSearchBase) { - super(initialDirContextFactory, groupSearchBase); + super(initialDirContextFactory, fixNull(groupSearchBase)); + // These match the defaults in acegi 1.0.5; set again to store in non-private fields: + setRolePrefix("ROLE_"); + setConvertToUpperCase(true); } @Override protected Set getAdditionalRoles(LdapUserDetails ldapUser) { return Collections.singleton(AUTHENTICATED_AUTHORITY); } + + @Override + public void setRolePrefix(String rolePrefix) { + super.setRolePrefix(rolePrefix); + this.rolePrefix = rolePrefix; + } + + @Override + public void setConvertToUpperCase(boolean convertToUpperCase) { + super.setConvertToUpperCase(convertToUpperCase); + this.convertToUpperCase = convertToUpperCase; + } } @Extension @@ -446,14 +540,17 @@ public class LDAPSecurityRealm extends SecurityRealm { if(managerPassword!=null && managerPassword.trim().length() > 0 && !"undefined".equals(managerPassword)) { props.put(Context.SECURITY_CREDENTIALS,managerPassword); } - DirContext ctx = LdapCtxFactory.getLdapCtxInstance(addPrefix(server)+'/', props); + props.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory"); + props.put(Context.PROVIDER_URL, addPrefix(server)+'/'); + + DirContext ctx = new InitialDirContext(props); ctx.getAttributes(""); return FormValidation.ok(); // connected } catch (NamingException e) { // trouble-shoot Matcher m = Pattern.compile("(ldaps://)?([^:]+)(?:\\:(\\d+))?").matcher(server.trim()); if(!m.matches()) - return FormValidation.error("Syntax of server field is SERVER or SERVER:PORT or ldaps://SERVER[:PORT]"); + return FormValidation.error(Messages.LDAPSecurityRealm_SyntaxOfServerField()); try { InetAddress adrs = InetAddress.getByName(m.group(2)); @@ -463,17 +560,17 @@ public class LDAPSecurityRealm extends SecurityRealm { Socket s = new Socket(adrs,port); s.close(); } catch (UnknownHostException x) { - return FormValidation.error("Unknown host: "+x.getMessage()); + return FormValidation.error(Messages.LDAPSecurityRealm_UnknownHost(x.getMessage())); } catch (IOException x) { - return FormValidation.error("Unable to connect to "+server+" : "+x.getMessage()); + return FormValidation.error(x,Messages.LDAPSecurityRealm_UnableToConnect(server, x.getMessage())); } // otherwise we don't know what caused it, so fall back to the general error report // getMessage() alone doesn't offer enough - return FormValidation.error("Unable to connect to "+server+": "+e); + return FormValidation.error(e,Messages.LDAPSecurityRealm_UnableToConnect(server, e)); } catch (NumberFormatException x) { // The getLdapCtxInstance method throws this if it fails to parse the port number - return FormValidation.error("Invalid port number"); + return FormValidation.error(Messages.LDAPSecurityRealm_InvalidPortNumber()); } } } diff --git a/core/src/main/java/hudson/security/NotSerilizableSecurityContext.java b/core/src/main/java/hudson/security/NotSerilizableSecurityContext.java index 68a848836740b2ce74253ec109326b4d42db1fd8..991bf3c5c03ebf0308403a758a02531cb21eda43 100644 --- a/core/src/main/java/hudson/security/NotSerilizableSecurityContext.java +++ b/core/src/main/java/hudson/security/NotSerilizableSecurityContext.java @@ -43,6 +43,7 @@ import javax.servlet.http.HttpSession; public class NotSerilizableSecurityContext implements SecurityContext { private transient Authentication authentication; + @Override public boolean equals(Object obj) { if (obj instanceof SecurityContextImpl) { SecurityContextImpl test = (SecurityContextImpl) obj; @@ -64,6 +65,7 @@ public class NotSerilizableSecurityContext implements SecurityContext { return authentication; } + @Override public int hashCode() { if (this.authentication == null) { return -1; @@ -76,6 +78,7 @@ public class NotSerilizableSecurityContext implements SecurityContext { this.authentication = authentication; } + @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append(super.toString()); diff --git a/core/src/main/java/hudson/security/PAMSecurityRealm.java b/core/src/main/java/hudson/security/PAMSecurityRealm.java index b66492ff78fec0ee2d0ae39fa6d633dbc0445747..fb5c657c4f085842612bb2def75c565b66be8a44 100644 --- a/core/src/main/java/hudson/security/PAMSecurityRealm.java +++ b/core/src/main/java/hudson/security/PAMSecurityRealm.java @@ -23,16 +23,22 @@ */ package hudson.security; +import groovy.lang.Binding; +import hudson.Functions; import hudson.model.Descriptor; import hudson.model.Hudson; import hudson.Util; import hudson.Extension; +import hudson.os.PosixAPI; +import hudson.util.FormValidation; +import hudson.util.spring.BeanBuilder; import org.acegisecurity.Authentication; import org.acegisecurity.AuthenticationException; import org.acegisecurity.AuthenticationManager; import org.acegisecurity.BadCredentialsException; import org.acegisecurity.GrantedAuthority; import org.acegisecurity.GrantedAuthorityImpl; +import org.acegisecurity.providers.AuthenticationProvider; import org.acegisecurity.providers.UsernamePasswordAuthenticationToken; import org.acegisecurity.userdetails.UsernameNotFoundException; import org.acegisecurity.userdetails.UserDetailsService; @@ -43,9 +49,15 @@ import org.jvnet.libpam.PAMException; import org.jvnet.libpam.UnixUser; import org.jvnet.libpam.impl.CLibrary; import org.springframework.dao.DataAccessException; +import org.springframework.web.context.WebApplicationContext; import org.kohsuke.stapler.DataBoundConstructor; +import org.jruby.ext.posix.POSIX; +import org.jruby.ext.posix.FileStat; +import org.jruby.ext.posix.Passwd; +import org.jruby.ext.posix.Group; import java.util.Set; +import java.io.File; /** * {@link SecurityRealm} that uses Unix PAM authentication. @@ -63,28 +75,46 @@ public class PAMSecurityRealm extends SecurityRealm { this.serviceName = serviceName; } + public static class PAMAuthenticationProvider implements AuthenticationProvider { + private String serviceName; + + public PAMAuthenticationProvider(String serviceName) { + this.serviceName = serviceName; + } + + public Authentication authenticate(Authentication authentication) throws AuthenticationException { + String username = authentication.getPrincipal().toString(); + String password = authentication.getCredentials().toString(); + + try { + UnixUser u = new PAM(serviceName).authenticate(username, password); + Set grps = u.getGroups(); + GrantedAuthority[] groups = new GrantedAuthority[grps.size()]; + int i=0; + for (String g : grps) + groups[i++] = new GrantedAuthorityImpl(g); + + // I never understood why Acegi insists on keeping the password... + return new UsernamePasswordAuthenticationToken(username, password, groups); + } catch (PAMException e) { + throw new BadCredentialsException(e.getMessage(),e); + } + } + + public boolean supports(Class clazz) { + return true; + } + } + public SecurityComponents createSecurityComponents() { + Binding binding = new Binding(); + binding.setVariable("instance", this); + + BeanBuilder builder = new BeanBuilder(); + builder.parse(Hudson.getInstance().servletContext.getResourceAsStream("/WEB-INF/security/PAMSecurityRealm.groovy"),binding); + WebApplicationContext context = builder.createApplicationContext(); return new SecurityComponents( - new AuthenticationManager() { - public Authentication authenticate(Authentication authentication) throws AuthenticationException { - String username = authentication.getPrincipal().toString(); - String password = authentication.getCredentials().toString(); - - try { - UnixUser u = new PAM(serviceName).authenticate(username, password); - Set grps = u.getGroups(); - GrantedAuthority[] groups = new GrantedAuthority[grps.size()]; - int i=0; - for (String g : grps) - groups[i++] = new GrantedAuthorityImpl(g); - - // I never understood why Acegi insists on keeping the password... - return new UsernamePasswordAuthenticationToken(username, password, groups); - } catch (PAMException e) { - throw new BadCredentialsException(e.getMessage(),e); - } - } - }, + findBean(AuthenticationManager.class, context), new UserDetailsService() { public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException, DataAccessException { if(!UnixUser.exists(username)) @@ -113,11 +143,46 @@ public class PAMSecurityRealm extends SecurityRealm { public String getDisplayName() { return Messages.PAMSecurityRealm_DisplayName(); } + + public FormValidation doTest() { + File s = new File("/etc/shadow"); + if(s.exists() && !s.canRead()) { + // it looks like shadow password is in use, but we don't have read access + System.out.println("Shadow in use"); + POSIX api = PosixAPI.get(); + FileStat st = api.stat("/etc/shadow"); + if(st==null) + return FormValidation.error(Messages.PAMSecurityRealm_ReadPermission()); + + Passwd pwd = api.getpwuid(api.geteuid()); + String user; + if(pwd!=null) user=Messages.PAMSecurityRealm_User(pwd.getLoginName()); + else user=Messages.PAMSecurityRealm_CurrentUser(); + + String group; + Group g = api.getgrgid(st.gid()); + if(g!=null) group=g.getName(); + else group=String.valueOf(st.gid()); + + if ((st.mode()&FileStat.S_IRGRP)!=0) { + // the file is readable to group. Hudson should be in the right group, then + return FormValidation.error(Messages.PAMSecurityRealm_BelongToGroup(user, group)); + } else { + Passwd opwd = api.getpwuid(st.uid()); + String owner; + if(opwd!=null) owner=opwd.getLoginName(); + else owner=Messages.PAMSecurityRealm_Uid(st.uid()); + + return FormValidation.error(Messages.PAMSecurityRealm_RunAsUserOrBelongToGroupAndChmod(owner, user, group)); + } + } + return FormValidation.ok(Messages.PAMSecurityRealm_Success()); + } } @Extension public static DescriptorImpl install() { - if(!Hudson.isWindows()) return new DescriptorImpl(); + if(!Functions.isWindows()) return new DescriptorImpl(); return null; } } diff --git a/core/src/main/java/hudson/security/Permission.java b/core/src/main/java/hudson/security/Permission.java index 1665aff014e71d13507d4347de9cabd3ac350fa2..6a01fc27e02f6173df24e9491ae0116760a8b96a 100644 --- a/core/src/main/java/hudson/security/Permission.java +++ b/core/src/main/java/hudson/security/Permission.java @@ -1,7 +1,7 @@ /* * The MIT License * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi + * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Yahoo! Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -27,6 +27,7 @@ import hudson.model.*; import net.sf.json.util.JSONUtils; import java.util.Collections; +import java.util.Comparator; import java.util.List; import java.util.concurrent.CopyOnWriteArrayList; @@ -42,6 +43,22 @@ import org.jvnet.localizer.Localizable; * @see http://hudson.gotdns.com/wiki/display/HUDSON/Making+your+plugin+behave+in+secured+Hudson */ public final class Permission { + + /** + * Comparator that orders {@link Permission} objects based on their ID. + */ + public static final Comparator ID_COMPARATOR = new Comparator() { + + /** + * {@inheritDoc} + */ + // break eclipse compilation + //Override + public int compare(Permission one, Permission two) { + return one.getId().compareTo(two.getId()); + } + }; + public final Class owner; public final PermissionGroup group; @@ -82,7 +99,43 @@ public final class Permission { */ public final Permission impliedBy; - public Permission(PermissionGroup group, String name, Localizable description, Permission impliedBy) { + /** + * Whether this permission is available for use. + * + *

    + * This allows us to dynamically enable or disable the visibility of + * permissions, so administrators can control the complexity of their + * permission matrix. + * + * @since 1.325 + */ + public boolean enabled; + + /** + * Defines a new permission. + * + * @param group + * Permissions are grouped per classes that own them. Specify the permission group + * created for that class. The idiom is: + * + *

    +     * class Foo {
    +     *     private static final PermissionGroup PERMISSIONS = new PermissionGroup(Foo.class,...);
    +     *     public static final Permission ABC = new Permisison(PERMISSION,...) ;
    +     * }
    +     * 
    + * + * Because of the classloading problems and the difficulty for Hudson to enumerate them, + * the permission constants really need to be static field of the owner class. + * + * @param name + * See {@link #name}. + * @param description + * See {@link #description}. + * @param impliedBy + * See {@link #impliedBy}. + */ + public Permission(PermissionGroup group, String name, Localizable description, Permission impliedBy, boolean enable) { if(!JSONUtils.isJavaIdentifier(name)) throw new IllegalArgumentException(name+" is not a Java identifier"); this.owner = group.owner; @@ -90,11 +143,16 @@ public final class Permission { this.name = name; this.description = description; this.impliedBy = impliedBy; + this.enabled = enable; group.add(this); ALL.add(this); } + public Permission(PermissionGroup group, String name, Localizable description, Permission impliedBy) { + this(group, name, description, impliedBy, true); + } + /** * @deprecated since 1.257. * Use {@link #Permission(PermissionGroup, String, Localizable, Permission)} @@ -104,7 +162,7 @@ public final class Permission { } private Permission(PermissionGroup group, String name) { - this(group,name,null); + this(group,name,null,null); } /** @@ -143,10 +201,19 @@ public final class Permission { } } + @Override public String toString() { return "Permission["+owner+','+name+']'; } + public void setEnabled(boolean enable) { + enabled = enable; + } + + public boolean getEnabled() { + return enabled; + } + /** * Returns all the {@link Permission}s available in the system. * @return @@ -172,7 +239,7 @@ public final class Permission { /** * {@link PermissionGroup} for {@link Hudson}. * - * @deprecated + * @deprecated since 2009-01-23. * Access {@link Hudson#PERMISSIONS} instead. */ public static final PermissionGroup HUDSON_PERMISSIONS = new PermissionGroup(Hudson.class, hudson.model.Messages._Hudson_Permissions_Title()); @@ -182,7 +249,7 @@ public final class Permission { *

    * All permissions are eventually {@linkplain Permission#impliedBy implied by} this permission. * - * @deprecated + * @deprecated since 2009-01-23. * Access {@link Hudson#ADMINISTER} instead. */ public static final Permission HUDSON_ADMINISTER = new Permission(HUDSON_PERMISSIONS,"Administer", hudson.model.Messages._Hudson_AdministerPermission_Description(),null); @@ -201,7 +268,7 @@ public final class Permission { * Historically this was separate from {@link #HUDSON_ADMINISTER} but such a distinction doesn't make sense * any more, so deprecated. * - * @deprecated + * @deprecated since 2009-01-23. * Use {@link Hudson#ADMINISTER}. */ public static final Permission FULL_CONTROL = new Permission(GROUP,"FullControl",HUDSON_ADMINISTER); @@ -209,30 +276,30 @@ public final class Permission { /** * Generic read access. */ - public static final Permission READ = new Permission(GROUP,"GenericRead",HUDSON_ADMINISTER); + public static final Permission READ = new Permission(GROUP,"GenericRead",null,HUDSON_ADMINISTER); /** * Generic write access. */ - public static final Permission WRITE = new Permission(GROUP,"GenericWrite",HUDSON_ADMINISTER); + public static final Permission WRITE = new Permission(GROUP,"GenericWrite",null,HUDSON_ADMINISTER); /** * Generic create access. */ - public static final Permission CREATE = new Permission(GROUP,"GenericCreate",WRITE); + public static final Permission CREATE = new Permission(GROUP,"GenericCreate",null,WRITE); /** * Generic update access. */ - public static final Permission UPDATE = new Permission(GROUP,"GenericUpdate",WRITE); + public static final Permission UPDATE = new Permission(GROUP,"GenericUpdate",null,WRITE); /** * Generic delete access. */ - public static final Permission DELETE = new Permission(GROUP,"GenericDelete",WRITE); + public static final Permission DELETE = new Permission(GROUP,"GenericDelete",null,WRITE); /** * Generic configuration access. */ - public static final Permission CONFIGURE = new Permission(GROUP,"GenericConfigure",UPDATE); + public static final Permission CONFIGURE = new Permission(GROUP,"GenericConfigure",null,UPDATE); } diff --git a/core/src/main/java/hudson/security/ProjectMatrixAuthorizationStrategy.java b/core/src/main/java/hudson/security/ProjectMatrixAuthorizationStrategy.java index 629dce8d24ac2bf4671dd67f1df249d75944cfc2..7383a12fc7d2296d90574be4f0530c9dca6910f7 100644 --- a/core/src/main/java/hudson/security/ProjectMatrixAuthorizationStrategy.java +++ b/core/src/main/java/hudson/security/ProjectMatrixAuthorizationStrategy.java @@ -44,7 +44,7 @@ public class ProjectMatrixAuthorizationStrategy extends GlobalMatrixAuthorizatio @Override public ACL getACL(Job project) { AuthorizationMatrixProperty amp = project.getProperty(AuthorizationMatrixProperty.class); - if (amp != null && amp.isUseProjectSecurity()) { + if (amp != null) { return amp.getACL().newInheritingACL(getRootACL()); } else { return getRootACL(); @@ -71,10 +71,12 @@ public class ProjectMatrixAuthorizationStrategy extends GlobalMatrixAuthorizatio ref = new RobustReflectionConverter(m,new JVM().bestReflectionProvider()); } + @Override protected GlobalMatrixAuthorizationStrategy create() { return new ProjectMatrixAuthorizationStrategy(); } + @Override public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext context) { String name = reader.peekNextChild(); if(name!=null && (name.equals("permission") || name.equals("useProjectSecurity"))) @@ -85,6 +87,7 @@ public class ProjectMatrixAuthorizationStrategy extends GlobalMatrixAuthorizatio return ref.unmarshal(reader,context); } + @Override public boolean canConvert(Class type) { return type==ProjectMatrixAuthorizationStrategy.class; } diff --git a/core/src/main/java/hudson/security/SecurityRealm.java b/core/src/main/java/hudson/security/SecurityRealm.java index b9c70f7452fee2a2116b4368ab2bd397c9cc8f08..e2f9ff631c2f4d6faa7fe67ead2c6548530a90ec 100644 --- a/core/src/main/java/hudson/security/SecurityRealm.java +++ b/core/src/main/java/hudson/security/SecurityRealm.java @@ -29,7 +29,8 @@ import groovy.lang.Binding; import hudson.ExtensionPoint; import hudson.DescriptorExtensionList; import hudson.Extension; -import hudson.model.Describable; +import hudson.cli.CLICommand; +import hudson.model.AbstractDescribableImpl; import hudson.model.Descriptor; import hudson.model.Hudson; import hudson.util.DescriptorList; @@ -40,7 +41,9 @@ import org.acegisecurity.AuthenticationManager; import org.acegisecurity.GrantedAuthorityImpl; import org.acegisecurity.GrantedAuthority; import org.acegisecurity.context.SecurityContext; +import org.acegisecurity.context.SecurityContextHolder; import org.acegisecurity.ui.rememberme.RememberMeServices; +import static org.acegisecurity.ui.rememberme.TokenBasedRememberMeServices.ACEGI_SECURITY_HASHED_REMEMBER_ME_COOKIE_KEY; import org.acegisecurity.userdetails.UserDetailsService; import org.acegisecurity.userdetails.UserDetails; import org.acegisecurity.userdetails.UsernameNotFoundException; @@ -54,6 +57,9 @@ import org.springframework.dao.DataAccessException; import javax.imageio.ImageIO; import javax.servlet.Filter; import javax.servlet.FilterConfig; +import javax.servlet.ServletException; +import javax.servlet.http.HttpSession; +import javax.servlet.http.Cookie; import java.io.IOException; import java.util.Map; import java.util.logging.Level; @@ -117,7 +123,7 @@ import java.util.logging.Logger; * @since 1.160 * @see PluginServletFilter */ -public abstract class SecurityRealm implements Describable, ExtensionPoint { +public abstract class SecurityRealm extends AbstractDescribableImpl implements ExtensionPoint { /** * Creates fully-configured {@link AuthenticationManager} that performs authentication * against the user realm. The implementation hides how such authentication manager @@ -136,6 +142,24 @@ public abstract class SecurityRealm implements Describable, Exten */ public abstract SecurityComponents createSecurityComponents(); + /** + * Creates a {@link CliAuthenticator} object that authenticates an invocation of a CLI command. + * See {@link CliAuthenticator} for more details. + * + * @param command + * The command about to be executed. + * @return + * never null. By default, this method returns a no-op authenticator that always authenticates + * the session as authenticated by the transport (which is often just {@link Hudson#ANONYMOUS}.) + */ + public CliAuthenticator createCliAuthenticator(final CLICommand command) { + return new CliAuthenticator() { + public Authentication authenticate() { + return command.getTransportAuthentication(); + } + }; + } + /** * {@inheritDoc} * @@ -145,7 +169,7 @@ public abstract class SecurityRealm implements Describable, Exten * global.jelly. */ public Descriptor getDescriptor() { - return Hudson.getInstance().getDescriptor(getClass()); + return super.getDescriptor(); } /** @@ -167,6 +191,67 @@ public abstract class SecurityRealm implements Describable, Exten return "login"; } + /** + * Returns true if this {@link SecurityRealm} supports explicit logout operation. + * + *

    + * If the method returns false, "logout" link will not be displayed. This is useful + * when authentication doesn't require an explicit login activity (such as NTLM authentication + * or Kerberos authentication, where Hudson has no ability to log off the current user.) + * + *

    + * By default, this method returns true. + * + * @since 1.307 + */ + public boolean canLogOut() { + return true; + } + + /** + * Controls where the user is sent to after a logout. By default, it's the top page + * of Hudson, but you can return arbitrary URL. + * + * @param req + * {@link StaplerRequest} that represents the current request. Primarily so that + * you can get the context path. By the time this method is called, the session + * is already invalidated. Never null. + * @param auth + * The {@link Authentication} object that represents the user that was logging in. + * This parameter allows you to redirect people to different pages depending on who they are. + * @return + * never null. + * @since 1.314 + * @see #doLogout(StaplerRequest, StaplerResponse) + */ + protected String getPostLogOutUrl(StaplerRequest req, Authentication auth) { + return req.getContextPath()+"/"; + } + + /** + * Handles the logout processing. + * + *

    + * The default implementation erases the session and do a few other clean up, then + * redirect the user to the URL specified by {@link #getPostLogOutUrl(StaplerRequest, Authentication)}. + * + * @since 1.314 + */ + public void doLogout(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException { + HttpSession session = req.getSession(false); + if(session!=null) + session.invalidate(); + Authentication auth = SecurityContextHolder.getContext().getAuthentication(); + SecurityContextHolder.clearContext(); + + // reset remember-me cookie + Cookie cookie = new Cookie(ACEGI_SECURITY_HASHED_REMEMBER_ME_COOKIE_KEY,""); + cookie.setPath(req.getContextPath().length()>0 ? req.getContextPath() : "/"); + rsp.addCookie(cookie); + + rsp.sendRedirect2(getPostLogOutUrl(req,auth)); + } + /** * Returns true if this {@link SecurityRealm} allows online sign-up. * This creates a hyperlink that redirects users to CONTEXT_ROOT/signUp, @@ -193,7 +278,7 @@ public abstract class SecurityRealm implements Describable, Exten * @return * never null. */ - public final UserDetails loadUserByUsername(String username) throws UsernameNotFoundException, DataAccessException { + public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException, DataAccessException { return getSecurityComponents().userDetails.loadUserByUsername(username); } @@ -325,6 +410,7 @@ public abstract class SecurityRealm implements Describable, Exten * This special instance is not configurable explicitly, * so it doesn't have a descriptor. */ + @Override public Descriptor getDescriptor() { return null; } @@ -412,7 +498,7 @@ public abstract class SecurityRealm implements Describable, Exten * Returns all the registered {@link SecurityRealm} descriptors. */ public static DescriptorExtensionList> all() { - return Hudson.getInstance().getDescriptorList(SecurityRealm.class); + return Hudson.getInstance().>getDescriptorList(SecurityRealm.class); } @@ -420,7 +506,7 @@ public abstract class SecurityRealm implements Describable, Exten /** * {@link GrantedAuthority} that represents the built-in "authenticated" role, which is granted to - * anyone non-anomyous. + * anyone non-anonymous. */ public static final GrantedAuthority AUTHENTICATED_AUTHORITY = new GrantedAuthorityImpl("authenticated"); } diff --git a/core/src/main/java/hudson/security/SidACL.java b/core/src/main/java/hudson/security/SidACL.java index 8248fbb9912a4bc4a334294c7d835d8c8cee97a8..7ff9fca0775caf88bf9e32e777d3c3bce5c440cf 100644 --- a/core/src/main/java/hudson/security/SidACL.java +++ b/core/src/main/java/hudson/security/SidACL.java @@ -29,6 +29,10 @@ import org.acegisecurity.acls.sid.PrincipalSid; import org.acegisecurity.acls.sid.GrantedAuthoritySid; import org.acegisecurity.acls.sid.Sid; +import java.util.logging.Logger; +import static java.util.logging.Level.FINE; +import static java.util.logging.Level.FINER; + /** * {@link ACL} that checks permissions based on {@link GrantedAuthority} * of the {@link Authentication}. @@ -39,8 +43,16 @@ public abstract class SidACL extends ACL { @Override public boolean hasPermission(Authentication a, Permission permission) { - if(a==SYSTEM) return true; + if(a==SYSTEM) { + if(LOGGER.isLoggable(FINE)) + LOGGER.fine("hasPermission("+a+","+permission+")=>SYSTEM user has full access"); + return true; + } Boolean b = _hasPermission(a,permission); + + if(LOGGER.isLoggable(FINE)) + LOGGER.fine("hasPermission("+a+","+permission+")=>"+(b==null?"null, thus false":b)); + if(b==null) b=false; // default to rejection return b; } @@ -55,22 +67,33 @@ public abstract class SidACL extends ACL { protected Boolean _hasPermission(Authentication a, Permission permission) { // ACL entries for this principal takes precedence Boolean b = hasPermission(new PrincipalSid(a),permission); - if(b!=null) return b; + if(b!=null) { + if(LOGGER.isLoggable(FINER)) + LOGGER.finer("hasPermission(PrincipalSID:"+a.getPrincipal()+","+permission+")=>"+b); + return b; + } // after that, we check if the groups this principal belongs to // has any ACL entries. // here we are using GrantedAuthority as a group for(GrantedAuthority ga : a.getAuthorities()) { b = hasPermission(new GrantedAuthoritySid(ga),permission); - if(b!=null) return b; + if(b!=null) { + if(LOGGER.isLoggable(FINER)) + LOGGER.finer("hasPermission(GroupSID:"+ga.getAuthority()+","+permission+")=>"+b); + return b; + } } - // finally everyone - b = hasPermission(EVERYONE,permission); - if(b!=null) return b; - // permissions granted to anonymous users are granted to everyone - b=hasPermission(ANONYMOUS,permission); - if(b!=null) return b; + // permissions granted to 'everyone' and 'anonymous' users are granted to everyone + for (Sid sid : AUTOMATIC_SIDS) { + b = hasPermission(sid,permission); + if(b!=null) { + if(LOGGER.isLoggable(FINER)) + LOGGER.finer("hasPermission("+sid+","+permission+")=>"+b); + return b; + } + } return null; } @@ -124,4 +147,6 @@ public abstract class SidACL extends ACL { } }; } + + private static final Logger LOGGER = Logger.getLogger(SidACL.class.getName()); } diff --git a/core/src/main/java/hudson/security/SparseACL.java b/core/src/main/java/hudson/security/SparseACL.java index cea04246a9ee995607beded9d29d0bbfac2244db..f2923e0c2e5c1ff9ba52de353b983233df106c88 100644 --- a/core/src/main/java/hudson/security/SparseACL.java +++ b/core/src/main/java/hudson/security/SparseACL.java @@ -24,13 +24,12 @@ package hudson.security; import org.acegisecurity.Authentication; -import org.acegisecurity.GrantedAuthority; -import org.acegisecurity.acls.sid.GrantedAuthoritySid; -import org.acegisecurity.acls.sid.PrincipalSid; import org.acegisecurity.acls.sid.Sid; import java.util.ArrayList; import java.util.List; +import java.util.logging.Logger; +import static java.util.logging.Level.FINE; /** * Accses control list. @@ -66,13 +65,17 @@ public class SparseACL extends SidACL { add(new Entry(sid,permission,allowed)); } + @Override public boolean hasPermission(Authentication a, Permission permission) { if(a==SYSTEM) return true; Boolean b = _hasPermission(a,permission); if(b!=null) return b; - if(parent!=null) + if(parent!=null) { + if(LOGGER.isLoggable(FINE)) + LOGGER.fine("hasPermission("+a+","+permission+") is delegating to parent ACL: "+parent); return parent.hasPermission(a,permission); + } // the ultimate default is to reject everything return false; @@ -88,4 +91,6 @@ public class SparseACL extends SidACL { } return null; } + + private static final Logger LOGGER = Logger.getLogger(SparseACL.class.getName()); } diff --git a/core/src/main/java/hudson/security/TokenBasedRememberMeServices2.java b/core/src/main/java/hudson/security/TokenBasedRememberMeServices2.java index 12ad592414618ca6b5baf9f5f54c9029f649a2bb..e69f1eb9e91649118e7081c37d7cd80a9b5cecd6 100644 --- a/core/src/main/java/hudson/security/TokenBasedRememberMeServices2.java +++ b/core/src/main/java/hudson/security/TokenBasedRememberMeServices2.java @@ -39,12 +39,14 @@ import org.apache.commons.codec.digest.DigestUtils; * @author Kohsuke Kawaguchi */ public class TokenBasedRememberMeServices2 extends TokenBasedRememberMeServices { + @Override protected String makeTokenSignature(long tokenExpiryTime, UserDetails userDetails) { String expectedTokenSignature = DigestUtils.md5Hex(userDetails.getUsername() + ":" + tokenExpiryTime + ":" + "N/A" + ":" + getKey()); return expectedTokenSignature; } + @Override protected String retrievePassword(Authentication successfulAuthentication) { return "N/A"; } diff --git a/core/src/main/java/hudson/security/csrf/CrumbFilter.java b/core/src/main/java/hudson/security/csrf/CrumbFilter.java new file mode 100644 index 0000000000000000000000000000000000000000..13e431769e90b3ecd0a8ad9cf7ae23c77f0735eb --- /dev/null +++ b/core/src/main/java/hudson/security/csrf/CrumbFilter.java @@ -0,0 +1,120 @@ +/** + * Copyright (c) 2008-2009 Yahoo! Inc. + * All rights reserved. + * The copyrights to the contents of this file are licensed under the MIT License (http://www.opensource.org/licenses/mit-license.php) + */ +package hudson.security.csrf; + +import hudson.model.Hudson; + +import java.io.IOException; +import java.util.Enumeration; +import java.util.logging.Logger; + +import javax.servlet.Filter; +import javax.servlet.FilterChain; +import javax.servlet.FilterConfig; +import javax.servlet.ServletException; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +/** + * Checks for and validates crumbs on requests that cause state changes, to + * protect against cross site request forgeries. + * + * @author dty + */ +public class CrumbFilter implements Filter { + /** + * Because servlet containers generally don't specify the ordering of the initialization + * (and different implementations indeed do this differently --- See HUDSON-3878), + * we cannot use Hudson to the CrumbIssuer into CrumbFilter eagerly. + */ + public CrumbIssuer getCrumbIssuer() { + Hudson h = Hudson.getInstance(); + if(h==null) return null; // before Hudson is initialized? + return h.getCrumbIssuer(); + } + + public void init(FilterConfig filterConfig) throws ServletException { + } + + public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { + CrumbIssuer crumbIssuer = getCrumbIssuer(); + if (crumbIssuer == null || !(request instanceof HttpServletRequest)) { + chain.doFilter(request, response); + return; + } + + HttpServletRequest httpRequest = (HttpServletRequest) request; + String crumbFieldName = crumbIssuer.getDescriptor().getCrumbRequestField(); + String crumbSalt = crumbIssuer.getDescriptor().getCrumbSalt(); + + if ("POST".equals(httpRequest.getMethod())) { + String crumb = httpRequest.getHeader(crumbFieldName); + boolean valid = false; + if (crumb == null) { + Enumeration paramNames = request.getParameterNames(); + while (paramNames.hasMoreElements()) { + String paramName = (String) paramNames.nextElement(); + if (crumbFieldName.equals(paramName)) { + crumb = request.getParameter(paramName); + break; + } + } + } + if (crumb != null) { + if (crumbIssuer.validateCrumb(httpRequest, crumbSalt, crumb)) { + valid = true; + } else { + LOGGER.warning("Found invalid crumb " + crumb + + ". Will check remaining parameters for a valid one..."); + } + } + // Multipart requests need to be handled by each handler. + if (valid || isMultipart(httpRequest)) { + chain.doFilter(request, response); + } else { + LOGGER.warning("No valid crumb was included in request for " + httpRequest.getRequestURI() + ". Returning " + HttpServletResponse.SC_FORBIDDEN + "."); + HttpServletResponse httpResponse = (HttpServletResponse) response; + httpResponse.sendError(HttpServletResponse.SC_FORBIDDEN,"No valid crumb was included in the request"); + } + } else { + chain.doFilter(request, response); + } + } + + protected static boolean isMultipart(HttpServletRequest request) { + if (request == null) { + return false; + } + + String contentType = request.getContentType(); + if (contentType == null) { + return false; + } + + String[] parts = contentType.split(";"); + if (parts.length == 0) { + return false; + } + + for (int i = 0; i < parts.length; i++) { + if ("multipart/form-data".equals(parts[i])) { + return true; + } + } + + return false; + } + + /** + * {@inheritDoc} + */ + public void destroy() { + } + + private static final Logger LOGGER = Logger.getLogger(CrumbFilter.class.getName()); +} diff --git a/core/src/main/java/hudson/security/csrf/CrumbIssuer.java b/core/src/main/java/hudson/security/csrf/CrumbIssuer.java new file mode 100644 index 0000000000000000000000000000000000000000..fce5b3ce74381e008d0e6ed35a29b782e1011b56 --- /dev/null +++ b/core/src/main/java/hudson/security/csrf/CrumbIssuer.java @@ -0,0 +1,155 @@ +/** + * Copyright (c) 2008-2009 Yahoo! Inc. + * All rights reserved. + * The copyrights to the contents of this file are licensed under the MIT License (http://www.opensource.org/licenses/mit-license.php) + */ +package hudson.security.csrf; + +import javax.servlet.ServletRequest; + +import org.kohsuke.stapler.Stapler; +import org.kohsuke.stapler.export.Exported; +import org.kohsuke.stapler.export.ExportedBean; + +import hudson.DescriptorExtensionList; +import hudson.ExtensionPoint; +import hudson.model.Api; +import hudson.model.Describable; +import hudson.model.Descriptor; +import hudson.model.Hudson; +import hudson.util.MultipartFormDataParser; + +/** + * A CrumbIssuer represents an algorithm to generate a nonce value, known as a + * crumb, to counter cross site request forgery exploits. Crumbs are typically + * hashes incorporating information that uniquely identifies an agent that sends + * a request, along with a guarded secret so that the crumb value cannot be + * forged by a third party. + * + * @author dty + * @see http://en.wikipedia.org/wiki/XSRF + */ +@ExportedBean +public abstract class CrumbIssuer implements Describable, ExtensionPoint { + + private static final String CRUMB_ATTRIBUTE = CrumbIssuer.class.getName() + "_crumb"; + + /** + * Get the name of the request parameter the crumb will be stored in. Exposed + * here for the remote API. + */ + @Exported + public String getCrumbRequestField() { + return getDescriptor().getCrumbRequestField(); + } + + /** + * Get a crumb value based on user specific information in the current request. + * Intended for use only by the remote API. + * @return + */ + @Exported + public String getCrumb() { + return getCrumb(Stapler.getCurrentRequest()); + } + + /** + * Get a crumb value based on user specific information in the request. + * @param request + * @return + */ + public String getCrumb(ServletRequest request) { + String crumb = null; + if (request != null) { + crumb = (String) request.getAttribute(CRUMB_ATTRIBUTE); + } + if (crumb == null) { + crumb = issueCrumb(request, getDescriptor().getCrumbSalt()); + if (request != null) { + if ((crumb != null) && crumb.length()>0) { + request.setAttribute(CRUMB_ATTRIBUTE, crumb); + } else { + request.removeAttribute(CRUMB_ATTRIBUTE); + } + } + } + + return crumb; + } + + /** + * Create a crumb value based on user specific information in the request. + * The crumb should be generated by building a cryptographic hash of: + *

      + *
    • relevant information in the request that can uniquely identify the client + *
    • the salt value + *
    • an implementation specific guarded secret. + *
    + * + * @param request + * @param salt + * @return + */ + protected abstract String issueCrumb(ServletRequest request, String salt); + + /** + * Get a crumb from a request parameter and validate it against other data + * in the current request. The salt and request parameter that is used is + * defined by the current configuration. + * + * @param request + * @return + */ + public boolean validateCrumb(ServletRequest request) { + CrumbIssuerDescriptor desc = getDescriptor(); + String crumbField = desc.getCrumbRequestField(); + String crumbSalt = desc.getCrumbSalt(); + + return validateCrumb(request, crumbSalt, request.getParameter(crumbField)); + } + + /** + * Get a crumb from multipart form data and validate it against other data + * in the current request. The salt and request parameter that is used is + * defined by the current configuration. + * + * @param request + * @param parser + * @return + */ + public boolean validateCrumb(ServletRequest request, MultipartFormDataParser parser) { + CrumbIssuerDescriptor desc = getDescriptor(); + String crumbField = desc.getCrumbRequestField(); + String crumbSalt = desc.getCrumbSalt(); + + return validateCrumb(request, crumbSalt, parser.get(crumbField)); + } + + /** + * Validate a previously created crumb against information in the current request. + * + * @param request + * @param salt + * @param crumb The previously generated crumb to validate against information in the current request + * @return + */ + public abstract boolean validateCrumb(ServletRequest request, String salt, String crumb); + + /** + * Access global configuration for the crumb issuer. + */ + public CrumbIssuerDescriptor getDescriptor() { + return (CrumbIssuerDescriptor) Hudson.getInstance().getDescriptorOrDie(getClass()); + } + + /** + * Returns all the registered {@link CrumbIssuer} descriptors. + */ + public static DescriptorExtensionList> all() { + return Hudson.getInstance().>getDescriptorList(CrumbIssuer.class); + } + + public Api getApi() { + return new Api(this); + } +} diff --git a/core/src/main/java/hudson/security/csrf/CrumbIssuerDescriptor.java b/core/src/main/java/hudson/security/csrf/CrumbIssuerDescriptor.java new file mode 100644 index 0000000000000000000000000000000000000000..38fb789cc8a6f107ee9c85bc6f500ec00d393402 --- /dev/null +++ b/core/src/main/java/hudson/security/csrf/CrumbIssuerDescriptor.java @@ -0,0 +1,75 @@ +/** + * Copyright (c) 2008-2009 Yahoo! Inc. + * All rights reserved. + * The copyrights to the contents of this file are licensed under the MIT License (http://www.opensource.org/licenses/mit-license.php) + */ +package hudson.security.csrf; + +import hudson.Util; +import hudson.model.Descriptor; + +/** + * Describes global configuration for crumb issuers. Create subclasses to specify + * additional global configuration for custom crumb issuers. + * + * @author dty + */ +public abstract class CrumbIssuerDescriptor extends Descriptor { + + private String crumbSalt; + private String crumbRequestField; + + /** + * Crumb issuers always take a salt and a request field name. + * + * @param salt Salt value + * @param crumbRequestField Request parameter name containing crumb from previous response + */ + protected CrumbIssuerDescriptor(String salt, String crumbRequestField) { + setCrumbSalt(salt); + setCrumbRequestField(crumbRequestField); + } + + /** + * Get the salt value. + * @return + */ + public String getCrumbSalt() { + return crumbSalt; + } + + /** + * Set the salt value. Must not be null. + * @param salt + */ + public void setCrumbSalt(String salt) { + if (Util.fixEmptyAndTrim(salt) == null) { + crumbSalt = "hudson.crumb"; + } else { + crumbSalt = salt; + } + } + + /** + * Gets the request parameter name that contains the crumb generated from a + * previous response. + * + * @return + */ + public String getCrumbRequestField() { + return crumbRequestField; + } + + /** + * Set the request parameter name. Must not be null. + * + * @param requestField + */ + public void setCrumbRequestField(String requestField) { + if (Util.fixEmptyAndTrim(requestField) == null) { + crumbRequestField = ".crumb"; + } else { + crumbRequestField = requestField; + } + } +} diff --git a/core/src/main/java/hudson/security/csrf/DefaultCrumbIssuer.java b/core/src/main/java/hudson/security/csrf/DefaultCrumbIssuer.java new file mode 100644 index 0000000000000000000000000000000000000000..fe11d3483948341acbe7b15b42caa15043fe026f --- /dev/null +++ b/core/src/main/java/hudson/security/csrf/DefaultCrumbIssuer.java @@ -0,0 +1,146 @@ +/** + * Copyright (c) 2008-2010 Yahoo! Inc. + * All rights reserved. + * The copyrights to the contents of this file are licensed under the MIT License (http://www.opensource.org/licenses/mit-license.php) + */ +package hudson.security.csrf; + +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; +import java.util.logging.Level; +import java.util.logging.Logger; + +import hudson.Extension; +import hudson.model.Hudson; +import hudson.model.ModelObject; + +import javax.servlet.ServletRequest; +import javax.servlet.http.HttpServletRequest; + +import net.sf.json.JSONObject; + +import org.acegisecurity.Authentication; +import org.kohsuke.stapler.DataBoundConstructor; +import org.kohsuke.stapler.StaplerRequest; + +/** + * A crumb issuing algorithm based on the request principal and the remote address. + * + * @author dty + */ +public class DefaultCrumbIssuer extends CrumbIssuer { + + private transient MessageDigest md; + private boolean excludeClientIPFromCrumb; + + @DataBoundConstructor + public DefaultCrumbIssuer(boolean excludeClientIPFromCrumb) { + try { + this.md = MessageDigest.getInstance("MD5"); + this.excludeClientIPFromCrumb = excludeClientIPFromCrumb; + } catch (NoSuchAlgorithmException e) { + this.md = null; + this.excludeClientIPFromCrumb = false; + LOGGER.log(Level.SEVERE, "Can't find MD5", e); + } + } + + public boolean isExcludeClientIPFromCrumb() { + return this.excludeClientIPFromCrumb; + } + + private Object readResolve() { + try { + this.md = MessageDigest.getInstance("MD5"); + } catch (NoSuchAlgorithmException e) { + this.md = null; + LOGGER.log(Level.SEVERE, "Can't find MD5", e); + } + + return this; + } + + /** + * {@inheritDoc} + */ + @Override + protected String issueCrumb(ServletRequest request, String salt) { + if (request instanceof HttpServletRequest) { + if (md != null) { + HttpServletRequest req = (HttpServletRequest) request; + StringBuilder buffer = new StringBuilder(); + Authentication a = Hudson.getAuthentication(); + if (a != null) { + buffer.append(a.getName()); + } + buffer.append(';'); + if (!isExcludeClientIPFromCrumb()) { + buffer.append(getClientIP(req)); + } + + md.update(buffer.toString().getBytes()); + byte[] crumbBytes = md.digest(salt.getBytes()); + + StringBuilder hexString = new StringBuilder(); + for (int i = 0; i < crumbBytes.length; i++) { + String hex = Integer.toHexString(0xFF & crumbBytes[i]); + if (hex.length() == 1) { + hexString.append('0'); + } + hexString.append(hex); + } + return hexString.toString(); + } + } + return null; + } + + /** + * {@inheritDoc} + */ + @Override + public boolean validateCrumb(ServletRequest request, String salt, String crumb) { + if (request instanceof HttpServletRequest) { + String newCrumb = issueCrumb(request, salt); + if ((newCrumb != null) && (crumb != null)) { + return newCrumb.equals(crumb); + } + } + return false; + } + + private final String PROXY_HEADER = "X-Forwarded-For"; + + private String getClientIP(HttpServletRequest req) { + String defaultAddress = req.getRemoteAddr(); + String forwarded = req.getHeader(PROXY_HEADER); + if (forwarded != null) { + String[] hopList = forwarded.split(","); + if (hopList.length >= 1) { + return hopList[0]; + } + } + return defaultAddress; + } + + @Extension + public static final class DescriptorImpl extends CrumbIssuerDescriptor implements ModelObject { + + public DescriptorImpl() { + super(Hudson.getInstance().getSecretKey(), System.getProperty("hudson.security.csrf.requestfield", ".crumb")); + load(); + } + + @Override + public String getDisplayName() { + return Messages.DefaultCrumbIssuer_DisplayName(); + } + + @Override + public DefaultCrumbIssuer newInstance(StaplerRequest req, JSONObject formData) throws FormException { + return req.bindJSON(DefaultCrumbIssuer.class, formData); + } + } + + private static final Logger LOGGER = Logger.getLogger(DefaultCrumbIssuer.class.getName()); +} diff --git a/core/src/main/java/hudson/security/package.html b/core/src/main/java/hudson/security/package.html index 55469f584a2a044f0c675cbbfb86103a130a061b..e9ba4aa6306e82e072e1dc0dd4507ec9c5c0c19e 100644 --- a/core/src/main/java/hudson/security/package.html +++ b/core/src/main/java/hudson/security/package.html @@ -1,7 +1,7 @@ - - + Security-related code - - \ No newline at end of file + \ No newline at end of file diff --git a/core/src/main/java/hudson/slaves/AbstractCloudComputer.java b/core/src/main/java/hudson/slaves/AbstractCloudComputer.java new file mode 100644 index 0000000000000000000000000000000000000000..a9317f25b092815d03f6610f5787c110cebde7cf --- /dev/null +++ b/core/src/main/java/hudson/slaves/AbstractCloudComputer.java @@ -0,0 +1,63 @@ +/* + * The MIT License + * + * Copyright (c) 2010, InfraDNA, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.slaves; + +import hudson.model.Computer; +import org.kohsuke.stapler.HttpRedirect; +import org.kohsuke.stapler.HttpResponse; +import org.kohsuke.stapler.HttpResponses; + +import java.io.IOException; + +/** + * Partial implementation of {@link Computer} to be used in conjunction with + * {@link AbstractCloudSlave}. + * + * @author Kohsuke Kawaguchi + * @since 1.382 + */ +public class AbstractCloudComputer extends SlaveComputer { + public AbstractCloudComputer(T slave) { + super(slave); + } + + @Override + public T getNode() { + return (T) super.getNode(); + } + + /** + * When the slave is deleted, free the node. + */ + @Override + public HttpResponse doDoDelete() throws IOException { + checkPermission(DELETE); + try { + getNode().terminate(); + return new HttpRedirect(".."); + } catch (InterruptedException e) { + return HttpResponses.error(500,e); + } + } +} diff --git a/core/src/main/java/hudson/slaves/AbstractCloudImpl.java b/core/src/main/java/hudson/slaves/AbstractCloudImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..05ed6d55023aeb9bd2aa945d96aabeca5de8abd7 --- /dev/null +++ b/core/src/main/java/hudson/slaves/AbstractCloudImpl.java @@ -0,0 +1,53 @@ +package hudson.slaves; + +/** + * Additional convenience implementation on top of {@link Cloud} that are likely useful to + * typical {@link Cloud} implementations. + * + *

    + * Whereas {@link Cloud} is the contract between the rest of Hudson and a cloud implementation, + * this class focuses on providing a convenience to minimize the effort it takes to integrate + * a new cloud to Hudson. + * + * @author Kohsuke Kawaguchi + */ +public abstract class AbstractCloudImpl extends Cloud { + /** + * Upper bound on how many instances we may provision. + */ + private int instanceCap; + + protected AbstractCloudImpl(String name, String instanceCapStr) { + super(name); + + setInstanceCapStr(instanceCapStr); + } + + protected void setInstanceCapStr(String value) { + if(value==null || value.equals("")) + this.instanceCap = Integer.MAX_VALUE; + else + this.instanceCap = Integer.parseInt(value); + } + + /** + * Gets the instance cap as string. Used primarily for form binding. + */ + public String getInstanceCapStr() { + if(instanceCap==Integer.MAX_VALUE) + return ""; + else + return String.valueOf(instanceCap); + } + + /** + * Gets the instance cap as int, where the capless is represented as {@link Integer#MAX_VALUE} + */ + public int getInstanceCap() { + return instanceCap; + } + + protected void setInstanceCap(int v) { + this.instanceCap = v; + } +} diff --git a/core/src/main/java/hudson/slaves/AbstractCloudSlave.java b/core/src/main/java/hudson/slaves/AbstractCloudSlave.java new file mode 100644 index 0000000000000000000000000000000000000000..a9763aee410ff9660d8624fe4b111cdeeff27486 --- /dev/null +++ b/core/src/main/java/hudson/slaves/AbstractCloudSlave.java @@ -0,0 +1,78 @@ +/* + * The MIT License + * + * Copyright (c) 2010, InfraDNA, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.slaves; + +import hudson.model.Descriptor.FormException; +import hudson.model.Hudson; +import hudson.model.Slave; +import hudson.model.TaskListener; +import hudson.util.StreamTaskListener; + +import java.io.IOException; +import java.nio.charset.Charset; +import java.util.List; +import java.util.logging.Level; +import java.util.logging.Logger; + +/** + * Partial implementation of {@link Slave} to be used by {@link AbstractCloudImpl}. + * + * @author Kohsuke Kawaguchi + * @since 1.382 + */ +public abstract class AbstractCloudSlave extends Slave { + public AbstractCloudSlave(String name, String nodeDescription, String remoteFS, String numExecutors, Mode mode, String labelString, ComputerLauncher launcher, RetentionStrategy retentionStrategy, List> nodeProperties) throws FormException, IOException { + super(name, nodeDescription, remoteFS, numExecutors, mode, labelString, launcher, retentionStrategy, nodeProperties); + } + + public AbstractCloudSlave(String name, String nodeDescription, String remoteFS, int numExecutors, Mode mode, String labelString, ComputerLauncher launcher, RetentionStrategy retentionStrategy, List> nodeProperties) throws FormException, IOException { + super(name, nodeDescription, remoteFS, numExecutors, mode, labelString, launcher, retentionStrategy, nodeProperties); + } + + @Override + public abstract AbstractCloudComputer createComputer(); + + /** + * Releases and removes this slave. + */ + public void terminate() throws InterruptedException, IOException { + try { + // TODO: send the output to somewhere real + _terminate(new StreamTaskListener(System.out, Charset.defaultCharset())); + } finally { + try { + Hudson.getInstance().removeNode(this); + } catch (IOException e) { + LOGGER.log(Level.WARNING, "Failed to remove "+name,e); + } + } + } + + /** + * Performs the removal of the underlying resource from the cloud. + */ + protected abstract void _terminate(TaskListener listener) throws IOException, InterruptedException; + + private static final Logger LOGGER = Logger.getLogger(AbstractCloudSlave.class.getName()); +} diff --git a/core/src/main/java/hudson/slaves/Channels.java b/core/src/main/java/hudson/slaves/Channels.java index 7025e8e170ff1ff86cbdc47361065570c312406b..09214dc9a46d3e5ff4747c79b0f3722c619ed57e 100644 --- a/core/src/main/java/hudson/slaves/Channels.java +++ b/core/src/main/java/hudson/slaves/Channels.java @@ -29,14 +29,15 @@ import hudson.FilePath; import hudson.model.Computer; import hudson.model.TaskListener; import hudson.remoting.Channel; -import hudson.remoting.Which; -import hudson.util.ArgumentListBuilder; +import hudson.remoting.Launcher; +import hudson.remoting.SocketInputStream; +import hudson.remoting.SocketOutputStream; import hudson.util.ClasspathBuilder; +import hudson.util.JVMBuilder; import hudson.util.StreamCopyThread; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; -import java.io.File; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; @@ -55,7 +56,7 @@ import java.util.logging.Logger; */ public class Channels { /** - * @deprecated + * @deprecated since 2009-04-13. * Use {@link #forProcess(String, ExecutorService, InputStream, OutputStream, OutputStream, Proc)} */ public static Channel forProcess(String name, ExecutorService execService, InputStream in, OutputStream out, Proc proc) throws IOException { @@ -71,6 +72,7 @@ public class Channels { /** * Kill the process when the channel is severed. */ + @Override protected synchronized void terminate(IOException e) { super.terminate(e); try { @@ -84,9 +86,10 @@ public class Channels { } } + @Override public synchronized void close() throws IOException { super.close(); - // wait for Maven to complete + // wait for the child process to complete try { proc.join(); } catch (InterruptedException e) { @@ -105,12 +108,14 @@ public class Channels { /** * Kill the process when the channel is severed. */ + @Override protected synchronized void terminate(IOException e) { super.terminate(e); proc.destroy(); // the stderr copier should exit by itself } + @Override public synchronized void close() throws IOException { super.close(); // wait for Maven to complete @@ -141,7 +146,7 @@ public class Channels { * can be sent over the channel.) But if you have jars that are known to be necessary by the new JVM, * setting it here will improve the classloading performance (by avoiding remote class file transfer.) * Classes in this classpath will also take precedence over any other classes that's sent via the channel - * later, so it's also useful for making sure you gee the version of the classes you want. + * later, so it's also useful for making sure you get the version of the classes you want. * @param systemProperties * If the new JVM should have a certain system properties set. Can be null. * @@ -150,31 +155,60 @@ public class Channels { * @since 1.300 */ public static Channel newJVM(String displayName, TaskListener listener, FilePath workDir, ClasspathBuilder classpath, Map systemProperties) throws IOException { + JVMBuilder vmb = new JVMBuilder(); + vmb.systemProperties(systemProperties); + + return newJVM(displayName,listener,vmb,workDir,classpath); + } + + /** + * Launches a new JVM with the given classpath, establish a communication channel, + * and return a {@link Channel} to it. + * + * @param displayName + * Human readable name of what this JVM represents. For example "Selenium grid" or "Hadoop". + * This token is used for messages to {@code listener}. + * @param listener + * The progress of the launcher and the failure information will be sent here. Must not be null. + * @param workDir + * If non-null, the new JVM will have this directory as the working directory. This must be a local path. + * @param classpath + * The classpath of the new JVM. Can be null if you just need {@code slave.jar} (and everything else + * can be sent over the channel.) But if you have jars that are known to be necessary by the new JVM, + * setting it here will improve the classloading performance (by avoiding remote class file transfer.) + * Classes in this classpath will also take precedence over any other classes that's sent via the channel + * later, so it's also useful for making sure you get the version of the classes you want. + * @param vmb + * A partially configured {@link JVMBuilder} that allows the caller to fine-tune the launch parameter. + * + * @return + * never null + * @since 1.361 + */ + public static Channel newJVM(String displayName, TaskListener listener, JVMBuilder vmb, FilePath workDir, ClasspathBuilder classpath) throws IOException { ServerSocket serverSocket = new ServerSocket(); serverSocket.bind(new InetSocketAddress("localhost",0)); serverSocket.setSoTimeout(10*1000); - ArgumentListBuilder args = new ArgumentListBuilder(); - args.add(new File(System.getProperty("java.home"),"bin/java")); - if(systemProperties!=null) - args.addKeyValuePairs("-D",systemProperties); - args.add("-jar").add(Which.jarFile(Channel.class)); + // use -cp + FQCN instead of -jar since remoting.jar can be rebundled (like in the case of the swarm plugin.) + vmb.classpath().addJarOf(Channel.class); + vmb.mainClass(Launcher.class); - // build up a classpath if(classpath!=null) - args.add("-cp").add(classpath); - - args.add("-connectTo","localhost:"+serverSocket.getLocalPort()); + vmb.args().add("-cp").add(classpath); + vmb.args().add("-connectTo","localhost:"+serverSocket.getLocalPort()); listener.getLogger().println("Starting "+displayName); - Proc p = new LocalLauncher(listener).launch(args.toCommandArray(), new String[0], listener.getLogger(), workDir); + Proc p = vmb.launch(new LocalLauncher(listener)).stdout(listener).pwd(workDir).start(); Socket s = serverSocket.accept(); serverSocket.close(); return forProcess("Channel to "+displayName, Computer.threadPoolForRemoting, - new BufferedInputStream(s.getInputStream()), new BufferedOutputStream(s.getOutputStream()), p); + new BufferedInputStream(new SocketInputStream(s)), + new BufferedOutputStream(new SocketOutputStream(s)),null,p); } + private static final Logger LOGGER = Logger.getLogger(Channels.class.getName()); } diff --git a/core/src/main/java/hudson/slaves/Cloud.java b/core/src/main/java/hudson/slaves/Cloud.java index 98a90499050dbbbc9df8e32379227ebcf76db455..7d7d1cd7e62bdbcfcf1638f2f0dbf0b16073986f 100644 --- a/core/src/main/java/hudson/slaves/Cloud.java +++ b/core/src/main/java/hudson/slaves/Cloud.java @@ -49,6 +49,7 @@ import java.util.Collection; * * @author Kohsuke Kawaguchi * @see NodeProvisioner + * @see AbstractCloudImpl */ public abstract class Cloud extends AbstractModelObject implements ExtensionPoint, Describable, AccessControlled { @@ -108,7 +109,10 @@ public abstract class Cloud extends AbstractModelObject implements ExtensionPoin * * @return * {@link PlannedNode}s that represent asynchronous {@link Node} - * launch operations. Can be empty but must not be null. + * provisioning operations. Can be empty but must not be null. + * {@link NodeProvisioner} will be responsible for adding the resulting {@link Node} + * into Hudson via {@link Hudson#addNode(Node)}, so a {@link Cloud} implementation + * just needs to create a new node object. */ public abstract Collection provision(Label label, int excessWorkload); @@ -118,7 +122,7 @@ public abstract class Cloud extends AbstractModelObject implements ExtensionPoin public abstract boolean canProvision(Label label); public Descriptor getDescriptor() { - return Hudson.getInstance().getDescriptor(getClass()); + return Hudson.getInstance().getDescriptorOrDie(getClass()); } /** @@ -133,7 +137,7 @@ public abstract class Cloud extends AbstractModelObject implements ExtensionPoin * Returns all the registered {@link Cloud} descriptors. */ public static DescriptorExtensionList> all() { - return Hudson.getInstance().getDescriptorList(Cloud.class); + return Hudson.getInstance().>getDescriptorList(Cloud.class); } /** diff --git a/core/src/main/java/hudson/slaves/CloudRetentionStrategy.java b/core/src/main/java/hudson/slaves/CloudRetentionStrategy.java new file mode 100644 index 0000000000000000000000000000000000000000..d15180fa95deca804ee52a374ca3cfb96ce598b0 --- /dev/null +++ b/core/src/main/java/hudson/slaves/CloudRetentionStrategy.java @@ -0,0 +1,74 @@ +/* + * The MIT License + * + * Copyright (c) 2010, InfraDNA, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.slaves; + +import java.io.IOException; +import java.util.logging.Logger; + +import static hudson.util.TimeUnit2.*; +import static java.util.logging.Level.*; + +/** + * {@link RetentionStrategy} implementation for {@link AbstractCloudComputer} that terminates + * it if it remains idle for X minutes. + * + * @author Kohsuke Kawaguchi + * @since 1.382 + */ +public class CloudRetentionStrategy extends RetentionStrategy { + private int idleMinutes; + + public CloudRetentionStrategy(int idleMinutes) { + this.idleMinutes = idleMinutes; + } + + public synchronized long check(AbstractCloudComputer c) { + if (c.isIdle() && !disabled) { + final long idleMilliseconds = System.currentTimeMillis() - c.getIdleStartMilliseconds(); + if (idleMilliseconds > MINUTES.toMillis(idleMinutes)) { + LOGGER.info("Disconnecting "+c.getName()); + try { + c.getNode().terminate(); + } catch (InterruptedException e) { + LOGGER.log(WARNING,"Failed to terminate "+c.getName(),e); + } catch (IOException e) { + LOGGER.log(WARNING,"Failed to terminate "+c.getName(),e); + } + } + } + return 1; + } + + /** + * Try to connect to it ASAP. + */ + @Override + public void start(AbstractCloudComputer c) { + c.connect(false); + } + + private static final Logger LOGGER = Logger.getLogger(CloudRetentionStrategy.class.getName()); + + public static boolean disabled = Boolean.getBoolean(CloudRetentionStrategy.class.getName()+".disabled"); +} diff --git a/core/src/main/java/hudson/slaves/CommandConnector.java b/core/src/main/java/hudson/slaves/CommandConnector.java new file mode 100644 index 0000000000000000000000000000000000000000..19d37ea750225c17139e7237b9fa22fd9256abc6 --- /dev/null +++ b/core/src/main/java/hudson/slaves/CommandConnector.java @@ -0,0 +1,58 @@ +/* + * The MIT License + * + * Copyright (c) 2010, InfraDNA, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.slaves; + +import hudson.EnvVars; +import hudson.Extension; +import hudson.model.TaskListener; +import org.kohsuke.stapler.DataBoundConstructor; + +import java.io.IOException; + +/** + * Executes a program on the master and expect that script to connect. + * + * @author Kohsuke Kawaguchi + */ +public class CommandConnector extends ComputerConnector { + public final String command; + + @DataBoundConstructor + public CommandConnector(String command) { + this.command = command; + } + + @Override + public CommandLauncher launch(String host, TaskListener listener) throws IOException, InterruptedException { + return new CommandLauncher(command,new EnvVars("SLAVE",host)); + } + + @Extension + public static class DescriptorImpl extends ComputerConnectorDescriptor { + @Override + public String getDisplayName() { + return Messages.CommandLauncher_displayName(); + } + } +} diff --git a/core/src/main/java/hudson/slaves/CommandLauncher.java b/core/src/main/java/hudson/slaves/CommandLauncher.java index 14e4fe880fdb1819ad9efa582643afc303b8690d..146e382f6742c3dd0bd259b09a3e084783671723 100644 --- a/core/src/main/java/hudson/slaves/CommandLauncher.java +++ b/core/src/main/java/hudson/slaves/CommandLauncher.java @@ -27,11 +27,12 @@ import hudson.EnvVars; import hudson.Util; import hudson.Extension; import hudson.model.Descriptor; +import hudson.model.Hudson; import hudson.model.TaskListener; import hudson.remoting.Channel; -import hudson.util.ProcessTreeKiller; import hudson.util.StreamCopyThread; import hudson.util.FormValidation; +import hudson.util.ProcessTree; import java.io.IOException; import java.util.Date; @@ -94,9 +95,17 @@ public class CommandLauncher extends ComputerLauncher { listener.getLogger().println("$ " + getCommand()); ProcessBuilder pb = new ProcessBuilder(Util.tokenize(getCommand())); - final EnvVars cookie = _cookie = ProcessTreeKiller.createCookie(); + final EnvVars cookie = _cookie = EnvVars.createCookie(); pb.environment().putAll(cookie); - + + {// system defined variables + String rootUrl = Hudson.getInstance().getRootUrl(); + if (rootUrl!=null) { + pb.environment().put("HUDSON_URL", rootUrl); + pb.environment().put("SLAVEJAR_URL", rootUrl+"/jnlpJars/slave.jar"); + } + } + if (env != null) { pb.environment().putAll(env); } @@ -109,12 +118,17 @@ public class CommandLauncher extends ComputerLauncher { proc.getErrorStream(), listener.getLogger()).start(); computer.setChannel(proc.getInputStream(), proc.getOutputStream(), listener.getLogger(), new Channel.Listener() { + @Override public void onClosed(Channel channel, IOException cause) { if (cause != null) { cause.printStackTrace( listener.error(hudson.model.Messages.Slave_Terminated(getTimestamp()))); } - ProcessTreeKiller.get().kill(proc, cookie); + try { + ProcessTree.get().killAll(proc, cookie); + } catch (InterruptedException e) { + LOGGER.log(Level.INFO, "interrupted", e); + } } }); @@ -139,7 +153,11 @@ public class CommandLauncher extends ComputerLauncher { e.printStackTrace(listener.error(msg)); if(_proc!=null) - ProcessTreeKiller.get().kill(_proc, _cookie); + try { + ProcessTree.get().killAll(_proc, _cookie); + } catch (InterruptedException x) { + x.printStackTrace(listener.error(Messages.ComputerLauncher_abortedLaunch())); + } } } diff --git a/core/src/main/java/hudson/slaves/ComputerConnector.java b/core/src/main/java/hudson/slaves/ComputerConnector.java new file mode 100644 index 0000000000000000000000000000000000000000..b3e0f8a1ec303d8db4ca077b36ea0c1cf2f036fa --- /dev/null +++ b/core/src/main/java/hudson/slaves/ComputerConnector.java @@ -0,0 +1,57 @@ +/* + * The MIT License + * + * Copyright (c) 2010, InfraDNA, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.slaves; + +import hudson.ExtensionPoint; +import hudson.model.AbstractDescribableImpl; +import hudson.model.TaskListener; + +import java.io.IOException; + +/** + * Factory of {@link ComputerLauncher}. + * + * When writing a {@link Cloud} implementation, one needs to dynamically create {@link ComputerLauncher} + * by supplying a host name. This is the abstraction for that. + * + * @author Kohsuke Kawaguchi + * @since 1.383 + * @see ComputerLauncher + */ +public abstract class ComputerConnector extends AbstractDescribableImpl implements ExtensionPoint { + /** + * Creates a {@link ComputerLauncher} for connecting to the given host. + * + * @param host + * The host name / IP address of the machine to connect to. + * @param listener + * If + */ + public abstract ComputerLauncher launch(String host, TaskListener listener) throws IOException, InterruptedException; + + @Override + public ComputerConnectorDescriptor getDescriptor() { + return (ComputerConnectorDescriptor)super.getDescriptor(); + } +} diff --git a/core/src/main/java/hudson/slaves/ComputerConnectorDescriptor.java b/core/src/main/java/hudson/slaves/ComputerConnectorDescriptor.java new file mode 100644 index 0000000000000000000000000000000000000000..76a2d647aa81ee4647e4ce1030d3744647c049a4 --- /dev/null +++ b/core/src/main/java/hudson/slaves/ComputerConnectorDescriptor.java @@ -0,0 +1,17 @@ +package hudson.slaves; + +import hudson.DescriptorExtensionList; +import hudson.model.Descriptor; +import hudson.model.Hudson; + +/** + * {@link Descriptor} for {@link ComputerConnector}. + * + * @author Kohsuke Kawaguchi + * @since 1.383 + */ +public abstract class ComputerConnectorDescriptor extends Descriptor { + public static DescriptorExtensionList all() { + return Hudson.getInstance().getDescriptorList(ComputerConnector.class); + } +} diff --git a/core/src/main/java/hudson/slaves/ComputerLauncher.java b/core/src/main/java/hudson/slaves/ComputerLauncher.java index 8cb012f456944b593eb1dc6d439a52c5934a6efe..99fe69366f1c6c99a15074fdef171f9cac1c1c22 100644 --- a/core/src/main/java/hudson/slaves/ComputerLauncher.java +++ b/core/src/main/java/hudson/slaves/ComputerLauncher.java @@ -25,18 +25,18 @@ package hudson.slaves; import hudson.ExtensionPoint; import hudson.Extension; +import hudson.model.AbstractDescribableImpl; import hudson.model.Computer; -import hudson.model.Describable; -import hudson.model.Descriptor; import hudson.model.Hudson; import hudson.model.TaskListener; +import hudson.remoting.Channel; import hudson.remoting.Channel.Listener; import hudson.util.DescriptorList; import hudson.util.StreamTaskListener; +import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; -import java.io.IOException; /** * Extension point to allow control over how {@link Computer}s are "launched", @@ -50,13 +50,11 @@ import java.io.IOException; * Useful for showing launch related commands and status reports. * * - *

    - * EXPERIMENTAL: SIGNATURE MAY CHANGE IN FUTURE RELEASES - * * @author Stephen Connolly * @since 24-Apr-2008 22:12:35 + * @see ComputerConnector */ -public abstract class ComputerLauncher implements Describable, ExtensionPoint { +public abstract class ComputerLauncher extends AbstractDescribableImpl implements ExtensionPoint { /** * Returns true if this {@link ComputerLauncher} supports * programatic launch of the slave agent in the target {@link Computer}. @@ -69,7 +67,7 @@ public abstract class ComputerLauncher implements Describable, * Launches the slave agent for the given {@link Computer}. * *

    - * If the slave agent is launched successfully, {@link SlaveComputer#setChannel(InputStream, OutputStream, OutputStream, Listener)} + * If the slave agent is launched successfully, {@link SlaveComputer#setChannel(InputStream, OutputStream, TaskListener, Listener)} * should be invoked in the end to notify Hudson of the established connection. * The operation could also fail, in which case there's no need to make any callback notification, * (except to notify the user of the failure through {@link StreamTaskListener}.) @@ -101,6 +99,14 @@ public abstract class ComputerLauncher implements Describable, /** * Allows the {@link ComputerLauncher} to tidy-up after a disconnect. + * + *

    + * This method is invoked after the {@link Channel} to this computer is terminated. + * + *

    + * Disconnect operation is performed asynchronously, so there's no guarantee + * that the corresponding {@link SlaveComputer} exists for the duration of the + * operation. */ public void afterDisconnect(SlaveComputer computer, TaskListener listener) { // to remain compatible with the legacy implementation that overrides the old signature @@ -116,6 +122,17 @@ public abstract class ComputerLauncher implements Describable, /** * Allows the {@link ComputerLauncher} to prepare for a disconnect. + * + *

    + * This method is invoked before the {@link Channel} to this computer is terminated, + * thus the channel is still accessible from {@link SlaveComputer#getChannel()}. + * If the channel is terminated unexpectedly, this method will not be invoked, + * as the channel is already gone. + * + *

    + * Disconnect operation is performed asynchronously, so there's no guarantee + * that the corresponding {@link SlaveComputer} exists for the duration of the + * operation. */ public void beforeDisconnect(SlaveComputer computer, TaskListener listener) { // to remain compatible with the legacy implementation that overrides the old signature @@ -135,10 +152,6 @@ public abstract class ComputerLauncher implements Describable, return new StreamTaskListener(listener.getLogger()); } - public Descriptor getDescriptor() { - return (Descriptor)Hudson.getInstance().getDescriptor(getClass()); - } - /** * All registered {@link ComputerLauncher} implementations. * diff --git a/core/src/main/java/hudson/slaves/ComputerLauncherFilter.java b/core/src/main/java/hudson/slaves/ComputerLauncherFilter.java index 4c205f2db1be5014039f4ecde0f29165b56bd07b..756add6cefb3e16252d4c92fe0effba0fd6eaae2 100644 --- a/core/src/main/java/hudson/slaves/ComputerLauncherFilter.java +++ b/core/src/main/java/hudson/slaves/ComputerLauncherFilter.java @@ -24,7 +24,6 @@ package hudson.slaves; import hudson.model.Descriptor; -import hudson.model.Node; import hudson.model.TaskListener; import java.io.IOException; @@ -53,22 +52,27 @@ public abstract class ComputerLauncherFilter extends ComputerLauncher { return core; } + @Override public boolean isLaunchSupported() { return core.isLaunchSupported(); } + @Override public void launch(SlaveComputer computer, TaskListener listener) throws IOException, InterruptedException { core.launch(computer, listener); } + @Override public void afterDisconnect(SlaveComputer computer, TaskListener listener) { core.afterDisconnect(computer, listener); } + @Override public void beforeDisconnect(SlaveComputer computer, TaskListener listener) { core.beforeDisconnect(computer, listener); } + @Override public Descriptor getDescriptor() { throw new UnsupportedOperationException(); } diff --git a/core/src/main/java/hudson/slaves/ComputerListener.java b/core/src/main/java/hudson/slaves/ComputerListener.java index cf7a96810b2983a7688e5130ae88bd7b1b234b08..48e279db1d43eaf7a68cd3dcb6edefb4a84cf877 100644 --- a/core/src/main/java/hudson/slaves/ComputerListener.java +++ b/core/src/main/java/hudson/slaves/ComputerListener.java @@ -94,6 +94,9 @@ public abstract class ComputerListener implements ExtensionPoint { * This enables you to do some work on all the slaves * as they get connected. * + *

    + * Starting Hudson 1.312, this method is also invoked for the master, not just for slaves. + * * @param listener * This is connected to the launch log of the computer. * Since this method is called synchronously from the thread @@ -108,7 +111,7 @@ public abstract class ComputerListener implements ExtensionPoint { * Exceptions will be recorded to the listener. Note that * throwing an exception doesn't put the computer offline. * - * @see #preOnline(Computer, TaskListener) + * @see #preOnline(Computer, Channel, FilePath, TaskListener) */ public void onOnline(Computer c, TaskListener listener) throws IOException, InterruptedException { // compatibility @@ -120,6 +123,12 @@ public abstract class ComputerListener implements ExtensionPoint { */ public void onOffline(Computer c) {} + /** + * Called when configuration of the node was changed, a node is added/removed, etc. + * @since 1.377 + */ + public void onConfigurationChange() {} + /** * Registers this {@link ComputerListener} so that it will start receiving events. * diff --git a/core/src/main/java/hudson/slaves/ComputerRetentionWork.java b/core/src/main/java/hudson/slaves/ComputerRetentionWork.java index a7b14a6b652fb3dda4a33ac46743e8c194a53d24..25c3805a4f834b8086fa69e44cf876285f505cd5 100644 --- a/core/src/main/java/hudson/slaves/ComputerRetentionWork.java +++ b/core/src/main/java/hudson/slaves/ComputerRetentionWork.java @@ -28,8 +28,8 @@ import java.util.WeakHashMap; import hudson.model.Computer; import hudson.model.Hudson; +import hudson.model.Node; import hudson.model.PeriodicWork; -import hudson.triggers.SafeTimerTask; import hudson.Extension; /** @@ -57,6 +57,9 @@ public class ComputerRetentionWork extends PeriodicWork { protected void doRun() { final long startRun = System.currentTimeMillis(); for (Computer c : Hudson.getInstance().getComputers()) { + Node n = c.getNode(); + if (n!=null && n.isHoldOffLaunchUntilSave()) + continue; if (!nextCheck.containsKey(c) || startRun > nextCheck.get(c)) { // at the moment I don't trust strategies to wait more than 60 minutes // strategies need to wait at least one minute diff --git a/core/src/main/java/hudson/slaves/ConnectionActivityMonitor.java b/core/src/main/java/hudson/slaves/ConnectionActivityMonitor.java new file mode 100644 index 0000000000000000000000000000000000000000..e797ca4344bce58e680f2a9948ff3bf322159441 --- /dev/null +++ b/core/src/main/java/hudson/slaves/ConnectionActivityMonitor.java @@ -0,0 +1,114 @@ +/* + * The MIT License + * + * Copyright (c) 2004-2009, Sun Microsystems, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.slaves; + +import hudson.model.AsyncPeriodicWork; +import hudson.model.TaskListener; +import hudson.model.Hudson; +import hudson.model.Computer; +import hudson.util.TimeUnit2; +import hudson.remoting.VirtualChannel; +import hudson.remoting.Channel; +import hudson.remoting.Callable; +import hudson.Extension; + +import java.io.IOException; +import java.util.logging.Logger; + +/** + * Makes sure that connections to slaves are alive, and if they are not, cut them off. + * + *

    + * If we only rely on TCP retransmission time out for this, the time it takes to detect a bad connection + * is in the order of 10s of minutes, so we take the matters to our own hands. + * + * @author Kohsuke Kawaguchi + * @since 1.325 + */ +@Extension +public class ConnectionActivityMonitor extends AsyncPeriodicWork { + public ConnectionActivityMonitor() { + super("Connection Activity monitoring to slaves"); + } + + protected void execute(TaskListener listener) throws IOException, InterruptedException { + if (!enabled) return; + + long now = System.currentTimeMillis(); + for (Computer c: Hudson.getInstance().getComputers()) { + VirtualChannel ch = c.getChannel(); + if (ch instanceof Channel) { + Channel channel = (Channel) ch; + if (now-channel.getLastHeard() > TIME_TILL_PING) { + // haven't heard from this slave for a while. + Long lastPing = (Long)channel.getProperty(ConnectionActivityMonitor.class); + + if (lastPing!=null && now-lastPing > TIMEOUT) { + LOGGER.info("Repeated ping attempts failed on "+c.getName()+". Disconnecting"); + c.disconnect(OfflineCause.create(Messages._ConnectionActivityMonitor_OfflineCause())); + } else { + // send a ping. if we receive a reply, it will be reflected in the next getLastHeard() call. + channel.callAsync(PING_COMMAND); + if (lastPing==null) + channel.setProperty(ConnectionActivityMonitor.class,now); + } + } else { + // we are receiving data nicely + channel.setProperty(ConnectionActivityMonitor.class,null); + } + } + } + } + + public long getRecurrencePeriod() { + return enabled ? FREQUENCY : TimeUnit2.DAYS.toMillis(30); + } + + /** + * Time till initial ping + */ + private static final long TIME_TILL_PING = Long.getLong(ConnectionActivityMonitor.class.getName()+".timeToPing",TimeUnit2.MINUTES.toMillis(3)); + + private static final long FREQUENCY = Long.getLong(ConnectionActivityMonitor.class.getName()+".frequency",TimeUnit2.SECONDS.toMillis(10)); + + /** + * When do we abandon the effort and cut off? + */ + private static final long TIMEOUT = Long.getLong(ConnectionActivityMonitor.class.getName()+".timeToPing",TimeUnit2.MINUTES.toMillis(4)); + + + // disabled by default until proven in the production + public boolean enabled = Boolean.getBoolean(ConnectionActivityMonitor.class.getName()+".enabled"); + + private static final PingCommand PING_COMMAND = new PingCommand(); + private static final class PingCommand implements Callable { + public Void call() throws RuntimeException { + return null; + } + + private static final long serialVersionUID = 1L; + } + + private static final Logger LOGGER = Logger.getLogger(ConnectionActivityMonitor.class.getName()); +} diff --git a/core/src/main/java/hudson/slaves/DelegatingComputerLauncher.java b/core/src/main/java/hudson/slaves/DelegatingComputerLauncher.java new file mode 100644 index 0000000000000000000000000000000000000000..34f8154eadfa511ff5bb42327f7b664aa4b5775b --- /dev/null +++ b/core/src/main/java/hudson/slaves/DelegatingComputerLauncher.java @@ -0,0 +1,84 @@ +/* + * The MIT License + * + * Copyright (c) 2010, InfraDNA, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.slaves; + +import hudson.Functions; +import hudson.model.Descriptor; +import hudson.model.TaskListener; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +/** + * Convenient base implementation of {@link ComputerLauncher} that allows + * subtypes to perform some initialization (typically something cloud/v12n related + * to power up the machine), then to delegate to another {@link ComputerLauncher} + * to connect. + * + * @author Kohsuke Kawaguchi + * @since 1.382 + */ +public abstract class DelegatingComputerLauncher extends ComputerLauncher { + protected ComputerLauncher launcher; + + protected DelegatingComputerLauncher(ComputerLauncher launcher) { + this.launcher = launcher; + } + + public ComputerLauncher getLauncher() { + return launcher; + } + + @Override + public void launch(SlaveComputer computer, TaskListener listener) throws IOException, InterruptedException { + getLauncher().launch(computer, listener); + } + + @Override + public void afterDisconnect(SlaveComputer computer, TaskListener listener) { + getLauncher().afterDisconnect(computer, listener); + } + + @Override + public void beforeDisconnect(SlaveComputer computer, TaskListener listener) { + getLauncher().beforeDisconnect(computer, listener); + } + + public static abstract class DescriptorImpl extends Descriptor { + /** + * Returns the applicable nested computer launcher types. + * The default implementation avoids all delegating descriptors, as that creates infinite recursion. + */ + public List> getApplicableDescriptors() { + List> r = new ArrayList>(); + for (Descriptor d : Functions.getComputerLauncherDescriptors()) { + if (DelegatingComputerLauncher.class.isInstance(d)) continue; + r.add(d); + } + return r; + } + } + +} diff --git a/core/src/main/java/hudson/slaves/EnvironmentVariablesNodeProperty.java b/core/src/main/java/hudson/slaves/EnvironmentVariablesNodeProperty.java index 5729ac47a6ed363a5bb30fdc65d0103fd54bef3b..d5f4aaa341041931c3cd33aa629e2c5125506662 100644 --- a/core/src/main/java/hudson/slaves/EnvironmentVariablesNodeProperty.java +++ b/core/src/main/java/hudson/slaves/EnvironmentVariablesNodeProperty.java @@ -1,111 +1,111 @@ -/* - * The MIT License - * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Tom Huybrechts - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ -package hudson.slaves; - -import hudson.EnvVars; -import hudson.Extension; -import hudson.Launcher; -import hudson.model.AbstractBuild; -import hudson.model.BuildListener; -import hudson.model.ComputerSet; -import hudson.model.Environment; -import hudson.model.Node; -import org.kohsuke.stapler.DataBoundConstructor; -import org.kohsuke.stapler.Stapler; - -import java.io.IOException; -import java.util.Arrays; -import java.util.List; - -/** - * {@link NodeProperty} that sets additional environment variables. - * - * @since 1.286 - */ -public class EnvironmentVariablesNodeProperty extends NodeProperty { - - /** - * Slave-specific environment variables - */ - private final EnvVars envVars; - - @DataBoundConstructor - public EnvironmentVariablesNodeProperty(List env) { - this.envVars = toMap(env); - } - - public EnvironmentVariablesNodeProperty(Entry... env) { - this(Arrays.asList(env)); - } - - public EnvVars getEnvVars() { - return envVars; - } - - @Override - public Environment setUp(AbstractBuild build, Launcher launcher, - BuildListener listener) throws IOException, InterruptedException { - return Environment.create(envVars); - } - - @Extension - public static class DescriptorImpl extends NodePropertyDescriptor { - - @Override - public String getDisplayName() { - return Messages.EnvironmentVariablesNodeProperty_displayName(); - } - - public String getHelpPage() { - // yes, I know this is a hack. - ComputerSet object = Stapler.getCurrentRequest().findAncestorObject(ComputerSet.class); - if (object != null) { - // we're on a node configuration page, show show that help page - return "/help/system-config/nodeEnvironmentVariables.html"; - } else { - // show the help for the global config page - return "/help/system-config/globalEnvironmentVariables.html"; - } - } - } - - public static class Entry { - public String key, value; - - @DataBoundConstructor - public Entry(String key, String value) { - this.key = key; - this.value = value; - } - } - - private static EnvVars toMap(List entries) { - EnvVars map = new EnvVars(); - for (Entry entry: entries) { - map.put(entry.key,entry.value); - } - return map; - } - -} +/* + * The MIT License + * + * Copyright (c) 2004-2009, Sun Microsystems, Inc., Tom Huybrechts + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.slaves; + +import hudson.EnvVars; +import hudson.Extension; +import hudson.Launcher; +import hudson.model.AbstractBuild; +import hudson.model.BuildListener; +import hudson.model.ComputerSet; +import hudson.model.Environment; +import hudson.model.Node; +import org.kohsuke.stapler.DataBoundConstructor; +import org.kohsuke.stapler.Stapler; + +import java.io.IOException; +import java.util.Arrays; +import java.util.List; + +/** + * {@link NodeProperty} that sets additional environment variables. + * + * @since 1.286 + */ +public class EnvironmentVariablesNodeProperty extends NodeProperty { + + /** + * Slave-specific environment variables + */ + private final EnvVars envVars; + + @DataBoundConstructor + public EnvironmentVariablesNodeProperty(List env) { + this.envVars = toMap(env); + } + + public EnvironmentVariablesNodeProperty(Entry... env) { + this(Arrays.asList(env)); + } + + public EnvVars getEnvVars() { + return envVars; + } + + @Override + public Environment setUp(AbstractBuild build, Launcher launcher, + BuildListener listener) throws IOException, InterruptedException { + return Environment.create(envVars); + } + + @Extension + public static class DescriptorImpl extends NodePropertyDescriptor { + + @Override + public String getDisplayName() { + return Messages.EnvironmentVariablesNodeProperty_displayName(); + } + + public String getHelpPage() { + // yes, I know this is a hack. + ComputerSet object = Stapler.getCurrentRequest().findAncestorObject(ComputerSet.class); + if (object != null) { + // we're on a node configuration page, show show that help page + return "/help/system-config/nodeEnvironmentVariables.html"; + } else { + // show the help for the global config page + return "/help/system-config/globalEnvironmentVariables.html"; + } + } + } + + public static class Entry { + public String key, value; + + @DataBoundConstructor + public Entry(String key, String value) { + this.key = key; + this.value = value; + } + } + + private static EnvVars toMap(List entries) { + EnvVars map = new EnvVars(); + if (entries!=null) + for (Entry entry: entries) + map.put(entry.key,entry.value); + return map; + } + +} diff --git a/core/src/main/java/hudson/slaves/JNLPLauncher.java b/core/src/main/java/hudson/slaves/JNLPLauncher.java index de972dbc57d65881a7cf7b19f1f65c2e64e6a81d..b89178a13e694fd09e86fed7f26f9c8899abae8b 100644 --- a/core/src/main/java/hudson/slaves/JNLPLauncher.java +++ b/core/src/main/java/hudson/slaves/JNLPLauncher.java @@ -70,6 +70,7 @@ public class JNLPLauncher extends ComputerLauncher { return false; } + @Override public void launch(SlaveComputer computer, TaskListener listener) { // do nothing as we cannot self start } diff --git a/core/src/main/java/hudson/slaves/NodeDescriptor.java b/core/src/main/java/hudson/slaves/NodeDescriptor.java index 2489a32a9c76d189e195b1c4ec8ec3e931789255..2efc5c5b0a73abb10626d288fe788469a8c05529 100644 --- a/core/src/main/java/hudson/slaves/NodeDescriptor.java +++ b/core/src/main/java/hudson/slaves/NodeDescriptor.java @@ -23,20 +23,26 @@ */ package hudson.slaves; +import hudson.Extension; +import hudson.model.ComputerSet; import hudson.model.Descriptor; import hudson.model.Slave; import hudson.model.Node; import hudson.model.Hudson; import hudson.util.DescriptorList; import hudson.util.FormValidation; -import hudson.Extension; import hudson.DescriptorExtensionList; import hudson.Util; +import java.io.IOException; import java.util.List; import java.util.ArrayList; import org.kohsuke.stapler.QueryParameter; +import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerResponse; + +import javax.servlet.ServletException; /** * {@link Descriptor} for {@link Slave}. @@ -71,6 +77,19 @@ public abstract class NodeDescriptor extends Descriptor { return '/'+clazz.getName().replace('.','/').replace('$','/')+"/newInstanceDetail.jelly"; } + /** + * Handles the form submission from the "/computer/new" page, which is the first form for creating a new node. + * By default, it shows the configuration page for entering details, but subtypes can override this differently. + * + * @param name + * Name of the new node. + */ + public void handleNewNodePage(ComputerSet computerSet, String name, StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException { + computerSet.checkName(name); + req.setAttribute("descriptor", this); + req.getView(computerSet,"_new.jelly").forward(req,rsp); + } + @Override public String getConfigPage() { return getViewPage(clazz, "configure-entries.jelly"); @@ -87,7 +106,7 @@ public abstract class NodeDescriptor extends Descriptor { * Returns all the registered {@link NodeDescriptor} descriptors. */ public static DescriptorExtensionList all() { - return Hudson.getInstance().getDescriptorList(Node.class); + return Hudson.getInstance().getDescriptorList(Node.class); } /** diff --git a/core/src/main/java/hudson/slaves/NodeList.java b/core/src/main/java/hudson/slaves/NodeList.java index c182bfa0a6a944f270a9f45d3ef7883a5774e173..abfbc8ee485b2e0fd5985c07c4a5ead9dfb72f25 100644 --- a/core/src/main/java/hudson/slaves/NodeList.java +++ b/core/src/main/java/hudson/slaves/NodeList.java @@ -65,10 +65,12 @@ public final class NodeList extends CopyOnWriteArrayList { super(xstream); } + @Override public boolean canConvert(Class type) { return type==NodeList.class; } + @Override public void marshal(Object source, HierarchicalStreamWriter writer, MarshallingContext context) { for (Node o : (NodeList) source) { if(o instanceof EphemeralNode) @@ -77,10 +79,12 @@ public final class NodeList extends CopyOnWriteArrayList { } } + @Override protected Object createCollection(Class type) { return new ArrayList(); } + @Override public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext context) { return new NodeList((List)super.unmarshal(reader, context)); } diff --git a/core/src/main/java/hudson/slaves/NodeProperty.java b/core/src/main/java/hudson/slaves/NodeProperty.java index 2b049196759d8517388d00756885fb4de190d7a5..13192388876b918b00fcbc4581331bfcf4f61238 100644 --- a/core/src/main/java/hudson/slaves/NodeProperty.java +++ b/core/src/main/java/hudson/slaves/NodeProperty.java @@ -1,110 +1,126 @@ -/* - * The MIT License - * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Tom Huybrechts - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ -package hudson.slaves; - -import hudson.ExtensionPoint; -import hudson.Launcher; -import hudson.DescriptorExtensionList; -import hudson.model.AbstractBuild; -import hudson.model.BuildListener; -import hudson.model.Describable; -import hudson.model.Environment; -import hudson.model.Hudson; -import hudson.model.Node; -import hudson.tasks.Builder; - -import java.io.IOException; -import java.util.List; - -/** - * Extensible property of {@link Node}. - * - *

    - * Plugins can contribute this extension point to add additional data or UI actions to {@link Node}. - * {@link NodeProperty}s show up in the configuration screen of a node, and they are persisted with the {@link Node} object. - * - * - *

    Views

    - *
    - *
    config.jelly
    - *
    Added to the configuration page of the node. - *
    global.jelly
    - *
    Added to the system configuration page. - *
    - * - * @param - * {@link NodeProperty} can choose to only work with a certain subtype of {@link Node}, and this 'N' - * represents that type. Also see {@link NodePropertyDescriptor#isApplicable(Class)}. - * - * @since 1.286 - */ -public abstract class NodeProperty implements Describable>, ExtensionPoint { - - protected transient N node; - - protected void setNode(N node) { this.node = node; } - - public NodePropertyDescriptor getDescriptor() { - return (NodePropertyDescriptor)Hudson.getInstance().getDescriptor(getClass()); - } - - /** - * Runs before the {@link Builder} runs, and performs a set up. Can contribute additional properties - * to the environment. - * - * @param build - * The build in progress for which an {@link Environment} object is created. - * Never null. - * @param launcher - * This launcher can be used to launch processes for this build. - * If the build runs remotely, launcher will also run a job on that remote machine. - * Never null. - * @param listener - * Can be used to send any message. - * @return - * non-null if the build can continue, null if there was an error - * and the build needs to be aborted. - * @throws IOException - * terminates the build abnormally. Hudson will handle the exception - * and reports a nice error message. - */ - public Environment setUp( AbstractBuild build, Launcher launcher, BuildListener listener ) throws IOException, InterruptedException { - return new Environment() {}; - } - - /** - * Lists up all the registered {@link NodeDescriptor}s in the system. - */ - public static DescriptorExtensionList,NodePropertyDescriptor> all() { - return (DescriptorExtensionList)Hudson.getInstance().getDescriptorList(NodeProperty.class); - } - - /** - * List up all {@link NodePropertyDescriptor}s that are applicable for the - * given project. - */ - public static List for_(Node node) { - return NodePropertyDescriptor.for_(all(),node); - } -} +/* + * The MIT License + * + * Copyright (c) 2004-2009, Sun Microsystems, Inc., Tom Huybrechts + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.slaves; + +import hudson.ExtensionPoint; +import hudson.Launcher; +import hudson.DescriptorExtensionList; +import hudson.model.queue.CauseOfBlockage; +import hudson.scm.SCM; +import hudson.model.AbstractBuild; +import hudson.model.BuildListener; +import hudson.model.Describable; +import hudson.model.Environment; +import hudson.model.Hudson; +import hudson.model.Node; +import hudson.model.Queue.Task; + +import java.io.IOException; +import java.util.List; + +/** + * Extensible property of {@link Node}. + * + *

    + * Plugins can contribute this extension point to add additional data or UI actions to {@link Node}. + * {@link NodeProperty}s show up in the configuration screen of a node, and they are persisted with the {@link Node} object. + * + * + *

    Views

    + *
    + *
    config.jelly
    + *
    Added to the configuration page of the node. + *
    global.jelly
    + *
    Added to the system configuration page. + *
    summary.jelly (optional)
    + *
    Added to the index page of the {@link hudson.model.Computer} associated with the node + *
    + * + * @param + * {@link NodeProperty} can choose to only work with a certain subtype of {@link Node}, and this 'N' + * represents that type. Also see {@link NodePropertyDescriptor#isApplicable(Class)}. + * + * @since 1.286 + */ +public abstract class NodeProperty implements Describable>, ExtensionPoint { + + protected transient N node; + + protected void setNode(N node) { this.node = node; } + + public NodePropertyDescriptor getDescriptor() { + return (NodePropertyDescriptor)Hudson.getInstance().getDescriptorOrDie(getClass()); + } + + /** + * Called by the {@link Node} to help determine whether or not it should + * take the given task. Individual properties can return a non-null value + * here if there is some reason the given task should not be run on its + * associated node. By default, this method returns null. + * + * @since 1.360 + */ + public CauseOfBlockage canTake(Task task) { + return null; + } + + /** + * Runs before the {@link SCM#checkout(AbstractBuild, Launcher, FilePath, BuildListener, File)} runs, and performs a set up. + * Can contribute additional properties to the environment. + * + * @param build + * The build in progress for which an {@link Environment} object is created. + * Never null. + * @param launcher + * This launcher can be used to launch processes for this build. + * If the build runs remotely, launcher will also run a job on that remote machine. + * Never null. + * @param listener + * Can be used to send any message. + * @return + * non-null if the build can continue, null if there was an error + * and the build needs to be aborted. + * @throws IOException + * terminates the build abnormally. Hudson will handle the exception + * and reports a nice error message. + */ + public Environment setUp( AbstractBuild build, Launcher launcher, BuildListener listener ) throws IOException, InterruptedException { + return new Environment() {}; + } + + /** + * Lists up all the registered {@link NodeDescriptor}s in the system. + */ + public static DescriptorExtensionList,NodePropertyDescriptor> all() { + return (DescriptorExtensionList)Hudson.getInstance().getDescriptorList(NodeProperty.class); + } + + /** + * List up all {@link NodePropertyDescriptor}s that are applicable for the + * given project. + */ + public static List for_(Node node) { + return NodePropertyDescriptor.for_(all(),node); + } +} diff --git a/core/src/main/java/hudson/slaves/NodePropertyDescriptor.java b/core/src/main/java/hudson/slaves/NodePropertyDescriptor.java index bf5d36166b4931a2e000432cb99031abe25de720..2f42f5a280fd3c64ad7fef6212f5855f4dd39520 100644 --- a/core/src/main/java/hudson/slaves/NodePropertyDescriptor.java +++ b/core/src/main/java/hudson/slaves/NodePropertyDescriptor.java @@ -1,46 +1,46 @@ -/* - * The MIT License - * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Tom Huybrechts - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ -package hudson.slaves; - -import hudson.Extension; -import hudson.model.Node; -import hudson.tools.PropertyDescriptor; - -/** - * Descriptor for {@link NodeProperty}. - * - *

    - * Put {@link Extension} on your descriptor implementation to have it auto-registered. - * - * @since 1.286 - * @see NodeProperty - */ -public abstract class NodePropertyDescriptor extends PropertyDescriptor,Node> { - protected NodePropertyDescriptor(Class> clazz) { - super(clazz); - } - - protected NodePropertyDescriptor() { - } -} +/* + * The MIT License + * + * Copyright (c) 2004-2009, Sun Microsystems, Inc., Tom Huybrechts + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.slaves; + +import hudson.Extension; +import hudson.model.Node; +import hudson.tools.PropertyDescriptor; + +/** + * Descriptor for {@link NodeProperty}. + * + *

    + * Put {@link Extension} on your descriptor implementation to have it auto-registered. + * + * @since 1.286 + * @see NodeProperty + */ +public abstract class NodePropertyDescriptor extends PropertyDescriptor,Node> { + protected NodePropertyDescriptor(Class> clazz) { + super(clazz); + } + + protected NodePropertyDescriptor() { + } +} diff --git a/core/src/main/java/hudson/slaves/NodeProvisioner.java b/core/src/main/java/hudson/slaves/NodeProvisioner.java index 4b329cd53b48234d589362051f4d1b04ff275531..8935ec03ff9981b445aa97cb90a1975f29944574 100644 --- a/core/src/main/java/hudson/slaves/NodeProvisioner.java +++ b/core/src/main/java/hudson/slaves/NodeProvisioner.java @@ -31,10 +31,9 @@ import hudson.model.Label; import hudson.model.PeriodicWork; import static hudson.model.LoadStatistics.DECAY; import hudson.model.MultiStageTimeSeries.TimeScale; -import hudson.triggers.SafeTimerTask; -import hudson.triggers.Trigger; import hudson.Extension; +import java.awt.Color; import java.util.concurrent.Future; import java.util.concurrent.ExecutionException; import java.util.List; @@ -43,6 +42,7 @@ import java.util.ArrayList; import java.util.Iterator; import java.util.logging.Logger; import java.util.logging.Level; +import java.io.IOException; /** * Uses the {@link LoadStatistics} and determines when we need to allocate @@ -55,6 +55,11 @@ public class NodeProvisioner { * The node addition activity in progress. */ public static final class PlannedNode { + /** + * Used to display this planned node to UI. Should ideally include the identifier unique to the node + * being provisioned (like the instance ID), but if such an identifier doesn't readily exist, this + * can be just a name of the template being provisioned (like the machine image ID.) + */ public final String displayName; public final Future future; public final int numExecutors; @@ -88,7 +93,8 @@ public class NodeProvisioner { * This is used to filter out high-frequency components from the planned capacity, so that * the comparison with other low-frequency only variables won't leave spikes. */ - private final MultiStageTimeSeries plannedCapacitiesEMA = new MultiStageTimeSeries(0,DECAY); + private final MultiStageTimeSeries plannedCapacitiesEMA = + new MultiStageTimeSeries(Messages._NodeProvisioner_EmptyString(),Color.WHITE,0,DECAY); public NodeProvisioner(Label label, LoadStatistics loadStatistics) { this.label = label; @@ -107,13 +113,15 @@ public class NodeProvisioner { for (Iterator itr = pendingLaunches.iterator(); itr.hasNext();) { PlannedNode f = itr.next(); if(f.future.isDone()) { - LOGGER.info(f.displayName+" provisioning completed. We have now "+hudson.getComputers().length+" computer(s)"); try { - f.future.get(); + hudson.addNode(f.future.get()); + LOGGER.info(f.displayName+" provisioning successfully completed. We have now "+hudson.getComputers().length+" computer(s)"); } catch (InterruptedException e) { throw new AssertionError(e); // since we confirmed that the future is already done } catch (ExecutionException e) { - LOGGER.log(Level.WARNING, "Provisioned slave failed to launch",e.getCause()); + LOGGER.log(Level.WARNING, "Provisioned slave "+f.displayName+" failed to launch",e.getCause()); + } catch (IOException e) { + LOGGER.log(Level.WARNING, "Provisioned slave "+f.displayName+" failed to launch",e); } itr.remove(); } else @@ -166,8 +174,9 @@ public class NodeProvisioner { plannedCapacity = Math.max(plannedCapacitiesEMA.getLatest(TIME_SCALE),plannedCapacity); float excessWorkload = qlen - plannedCapacity; - if(excessWorkload>1-MARGIN) {// and there's more work to do... - LOGGER.fine("Excess workload "+excessWorkload+" detected. (planned capacity="+plannedCapacity+",Qlen="+qlen+",idle="+idle+"&"+idleSnapshot+",total="+totalSnapshot+")"); + float m = calcThresholdMargin(totalSnapshot); + if(excessWorkload>1-m) {// and there's more work to do... + LOGGER.fine("Excess workload "+excessWorkload+" detected. (planned capacity="+plannedCapacity+",Qlen="+qlen+",idle="+idle+"&"+idleSnapshot+",total="+totalSnapshot+"m,="+m+")"); for( Cloud c : hudson.clouds ) { if(excessWorkload<0) break; // enough slaves allocated @@ -177,7 +186,7 @@ public class NodeProvisioner { // something like 0.95, in which case we want to allocate one node. // so the threshold here is 1-MARGIN, and hence floor(excessWorkload+MARGIN) is needed to handle this. - Collection additionalCapacities = c.provision(label, (int)Math.round(Math.floor(excessWorkload+MARGIN))); + Collection additionalCapacities = c.provision(label, (int)Math.round(Math.floor(excessWorkload+m))); for (PlannedNode ac : additionalCapacities) { excessWorkload -= ac.numExecutors; LOGGER.info("Started provisioning "+ac.displayName+" from "+c.name+" with "+ac.numExecutors+" executors. Remaining excess workload:"+excessWorkload); @@ -188,6 +197,51 @@ public class NodeProvisioner { } } + /** + * Computes the threshold for triggering an allocation. + * + *

    + * Because the excessive workload value is EMA, even when the snapshot value of the excessive + * workload is 1, the value never really gets to 1. So we need to introduce a notion of the margin M, + * where we provision a new node if the EMA of the excessive workload goes beyond 1-M (where M is a small value + * in the (0,1) range.) + * + *

    + * M effectively controls how long Hudson waits until allocating a new node, in the face of workload. + * This delay is justified for absorbing temporary ups and downs, and can be interpreted as Hudson + * holding off provisioning in the hope that one of the existing nodes will become available. + * + *

    + * M can be a constant value, but there's a benefit in adjusting M based on the total current capacity, + * based on the above justification; that is, if there's no existing capacity at all, holding off + * an allocation doesn't make much sense, as there won't be any executors available no matter how long we wait. + * On the other hand, if we have a large number of existing executors, chances are good that some + * of them become available — the chance gets better and better as the number of current total + * capacity increases. + * + *

    + * Therefore, we compute the threshold margin as follows: + * + *

    +     *   M(t) = M* + (M0 - M*) alpha ^ t
    +     * 
    + * + * ... where: + * + *
      + *
    • M* is the ultimate margin value that M(t) converges to with t->inf, + *
    • M0 is the value of M(0), the initial value. + *
    • alpha is the decay factor in (0,1). M(t) converges to M* faster if alpha is smaller. + *
    + */ + private float calcThresholdMargin(int totalSnapshot) { + float f = (float) (MARGIN + (MARGIN0 - MARGIN) * Math.pow(MARGIN_DECAY, totalSnapshot)); + // defensively ensure that the threshold margin is in (0,1) + f = Math.max(f,0); + f = Math.min(f,1); + return f; + } + /** * Periodically invoke NodeProvisioners */ @@ -197,13 +251,16 @@ public class NodeProvisioner { * Give some initial warm up time so that statically connected slaves * can be brought online before we start allocating more. */ + public static int INITIALDELAY = Integer.getInteger(NodeProvisioner.class.getName()+".initialDelay",LoadStatistics.CLOCK*10); + public static int RECURRENCEPERIOD = Integer.getInteger(NodeProvisioner.class.getName()+".recurrencePeriod",LoadStatistics.CLOCK); + @Override public long getInitialDelay() { - return LoadStatistics.CLOCK*10; + return INITIALDELAY; } public long getRecurrencePeriod() { - return LoadStatistics.CLOCK; + return RECURRENCEPERIOD; } @Override @@ -215,9 +272,22 @@ public class NodeProvisioner { } } - private static final float MARGIN = 0.1f; private static final Logger LOGGER = Logger.getLogger(NodeProvisioner.class.getName()); + private static final float MARGIN = Integer.getInteger(NodeProvisioner.class.getName()+".MARGIN",10)/100f; + private static final float MARGIN0 = Math.max(MARGIN, getFloatSystemProperty(NodeProvisioner.class.getName()+".MARGIN0",0.5f)); + private static final float MARGIN_DECAY = getFloatSystemProperty(NodeProvisioner.class.getName()+".MARGIN_DECAY",0.5f); // TODO: picker should be selectable private static final TimeScale TIME_SCALE = TimeScale.SEC10; + + private static float getFloatSystemProperty(String propName, float defaultValue) { + String v = System.getProperty(propName); + if (v!=null) + try { + return Float.parseFloat(v); + } catch (NumberFormatException e) { + LOGGER.warning("Failed to parse a float value from system property "+propName+". value was "+v); + } + return defaultValue; + } } diff --git a/core/src/main/java/hudson/slaves/NodeSpecific.java b/core/src/main/java/hudson/slaves/NodeSpecific.java index b990cf028c0cc5126f28b04631ad3977c7c95258..d585ab3d04a838c2798fcd6cf42edcc038e27dfa 100644 --- a/core/src/main/java/hudson/slaves/NodeSpecific.java +++ b/core/src/main/java/hudson/slaves/NodeSpecific.java @@ -1,48 +1,48 @@ -/* - * The MIT License - * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Tom Huybrechts - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -package hudson.slaves; - -import hudson.model.Node; -import hudson.model.EnvironmentSpecific; -import hudson.model.TaskListener; -import java.io.IOException; - -/** - * Represents any concept that can be adapted for a node. - * - * Mainly for documentation purposes. - * - * @author huybrechts - * @since 1.286 - * @see EnvironmentSpecific - * @param - * Concrete type that represents the thing that can be adapted. - */ -public interface NodeSpecific> { - /** - * Returns a specialized copy of T for functioning in the given node. - */ - T forNode(Node node, TaskListener log) throws IOException, InterruptedException; -} +/* + * The MIT License + * + * Copyright (c) 2004-2009, Sun Microsystems, Inc., Tom Huybrechts + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +package hudson.slaves; + +import hudson.model.Node; +import hudson.model.EnvironmentSpecific; +import hudson.model.TaskListener; +import java.io.IOException; + +/** + * Represents any concept that can be adapted for a node. + * + * Mainly for documentation purposes. + * + * @author huybrechts + * @since 1.286 + * @see EnvironmentSpecific + * @param + * Concrete type that represents the thing that can be adapted. + */ +public interface NodeSpecific> { + /** + * Returns a specialized copy of T for functioning in the given node. + */ + T forNode(Node node, TaskListener log) throws IOException, InterruptedException; +} diff --git a/core/src/main/java/hudson/slaves/OfflineCause.java b/core/src/main/java/hudson/slaves/OfflineCause.java new file mode 100644 index 0000000000000000000000000000000000000000..804767dc592107c15e3e27d20b9dce2b3604313a --- /dev/null +++ b/core/src/main/java/hudson/slaves/OfflineCause.java @@ -0,0 +1,109 @@ +/* + * The MIT License + * + * Copyright (c) 2004-2009, Sun Microsystems, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +package hudson.slaves; + +import hudson.model.Computer; +import org.jvnet.localizer.Localizable; +import org.kohsuke.stapler.export.ExportedBean; +import org.kohsuke.stapler.export.Exported; + +/** + * Represents a cause that puts a {@linkplain Computer#isOffline() computer offline}. + * + *

    Views

    + *

    + * {@link OfflineCause} must have cause.jelly that renders a cause + * into HTML. This is used to tell users why the node is put offline. + * This view should render a block element like DIV. + * + * @author Kohsuke Kawaguchi + * @since 1.320 + */ +@ExportedBean +public abstract class OfflineCause { + /** + * {@link OfflineCause} that renders a static text, + * but without any further UI. + */ + public static class SimpleOfflineCause extends OfflineCause { + public final Localizable description; + + private SimpleOfflineCause(Localizable description) { + this.description = description; + } + + @Exported(name="description") @Override + public String toString() { + return description.toString(); + } + } + + public static OfflineCause create(Localizable d) { + if (d==null) return null; + return new SimpleOfflineCause(d); + } + + /** + * Caused by unexpected channel termination. + */ + public static class ChannelTermination extends OfflineCause { + @Exported + public final Exception cause; + + public ChannelTermination(Exception cause) { + this.cause = cause; + } + + public String getShortDescription() { + return cause.toString(); + } + } + + /** + * Caused by failure to launch. + */ + public static class LaunchFailed extends OfflineCause { + @Override + public String toString() { + return Messages.OfflineCause_LaunchFailed(); + } + } + + public static class ByCLI extends OfflineCause { + @Exported + public final String message; + + public ByCLI(String message) { + this.message = message; + } + + @Override + public String toString() { + if (message==null) + return Messages.OfflineCause_DisconnectedFromCLI(); + return message; + } + } +} diff --git a/core/src/main/java/hudson/slaves/RetentionStrategy.java b/core/src/main/java/hudson/slaves/RetentionStrategy.java index 6a7dfc1fad054376b15155cc327a8c5ca8effe81..1aaff506727c499232bba71643c1f58a21ea23e7 100644 --- a/core/src/main/java/hudson/slaves/RetentionStrategy.java +++ b/core/src/main/java/hudson/slaves/RetentionStrategy.java @@ -27,10 +27,7 @@ import hudson.ExtensionPoint; import hudson.Util; import hudson.DescriptorExtensionList; import hudson.Extension; -import hudson.model.Computer; -import hudson.model.Describable; -import hudson.model.Descriptor; -import hudson.model.Hudson; +import hudson.model.*; import hudson.util.DescriptorList; import org.kohsuke.stapler.DataBoundConstructor; @@ -39,13 +36,11 @@ import java.util.logging.Logger; /** * Controls when to take {@link Computer} offline, bring it back online, or even to destroy it. - *

    - * EXPERIMENTAL: SIGNATURE MAY CHANGE IN FUTURE RELEASES * * @author Stephen Connolly * @author Kohsuke Kawaguchi */ -public abstract class RetentionStrategy implements Describable>, ExtensionPoint { +public abstract class RetentionStrategy extends AbstractDescribableImpl> implements ExtensionPoint { /** * This method will be called periodically to allow this strategy to decide what to do with it's owning slave. @@ -82,10 +77,6 @@ public abstract class RetentionStrategy implements Describab check(c); } - public Descriptor> getDescriptor() { - return Hudson.getInstance().getDescriptor(getClass()); - } - /** * Returns all the registered {@link RetentionStrategy} descriptors. */ @@ -105,7 +96,7 @@ public abstract class RetentionStrategy implements Describab */ public static final RetentionStrategy NOOP = new RetentionStrategy() { public long check(Computer c) { - return 1; + return 60; } @Override @@ -113,6 +104,7 @@ public abstract class RetentionStrategy implements Describab c.connect(false); } + @Override public Descriptor> getDescriptor() { return DESCRIPTOR; } @@ -175,7 +167,7 @@ public abstract class RetentionStrategy implements Describab @DataBoundConstructor public Demand(long inDemandDelay, long idleDelay) { - this.inDemandDelay = Math.max(1, inDemandDelay); + this.inDemandDelay = Math.max(0, inDemandDelay); this.idleDelay = Math.max(1, idleDelay); } @@ -200,12 +192,11 @@ public abstract class RetentionStrategy implements Describab public synchronized long check(SlaveComputer c) { if (c.isOffline()) { final long demandMilliseconds = System.currentTimeMillis() - c.getDemandStartMilliseconds(); - if (demandMilliseconds > inDemandDelay * 1000 * 60 /*MINS->MILLIS*/) { + if (demandMilliseconds > inDemandDelay * 1000 * 60 /*MINS->MILLIS*/ && c.isLaunchSupported()) { // we've been in demand for long enough logger.log(Level.INFO, "Launching computer {0} as it has been in demand for {1}", new Object[]{c.getName(), Util.getTimeSpanString(demandMilliseconds)}); - if (c.isLaunchSupported()) - c.connect(false); + c.connect(false); } } else if (c.isIdle()) { final long idleMilliseconds = System.currentTimeMillis() - c.getIdleStartMilliseconds(); @@ -213,7 +204,7 @@ public abstract class RetentionStrategy implements Describab // we've been idle for long enough logger.log(Level.INFO, "Disconnecting computer {0} as it has been idle for {1}", new Object[]{c.getName(), Util.getTimeSpanString(idleMilliseconds)}); - c.disconnect(); + c.disconnect(OfflineCause.create(Messages._RetentionStrategy_Demand_OfflineIdle())); } } return 1; diff --git a/core/src/main/java/hudson/slaves/SimpleScheduledRetentionStrategy.java b/core/src/main/java/hudson/slaves/SimpleScheduledRetentionStrategy.java index 9a5d213e101b45eefa63d2c27f2ea9dd1f5cc5de..04f367df65a3b26f306331389dcd51edbe1712b1 100644 --- a/core/src/main/java/hudson/slaves/SimpleScheduledRetentionStrategy.java +++ b/core/src/main/java/hudson/slaves/SimpleScheduledRetentionStrategy.java @@ -40,6 +40,7 @@ import java.util.GregorianCalendar; import java.util.concurrent.ExecutionException; import java.util.logging.Level; import java.util.logging.Logger; +import static java.util.logging.Level.INFO; /** * {@link RetentionStrategy} that controls the slave based on a schedule. @@ -166,7 +167,7 @@ public class SimpleScheduledRetentionStrategy extends RetentionStrategy now) || (nextStart < now && nextStop > now); } - /** - * This feature is activated only when a property is set, while we test this feature. - */ @Extension - public static DescriptorImpl init() { - if (Boolean.getBoolean("hudson.scheduledRetention")) - return new DescriptorImpl(); - else - return null; - } - public static class DescriptorImpl extends Descriptor> { public String getDisplayName() { return Messages.SimpleScheduledRetentionStrategy_displayName(); diff --git a/core/src/main/java/hudson/slaves/SlaveComputer.java b/core/src/main/java/hudson/slaves/SlaveComputer.java index 474ccd46d8fa3d4c1bf56d521c6cba2693a7a6ca..f4072a97257d7b19e2abcde488ce9f04b9f8455f 100644 --- a/core/src/main/java/hudson/slaves/SlaveComputer.java +++ b/core/src/main/java/hudson/slaves/SlaveComputer.java @@ -24,6 +24,7 @@ package hudson.slaves; import hudson.model.*; +import hudson.model.Hudson.MasterComputer; import hudson.remoting.Channel; import hudson.remoting.VirtualChannel; import hudson.remoting.Callable; @@ -34,6 +35,10 @@ import hudson.util.Futures; import hudson.FilePath; import hudson.lifecycle.WindowsSlaveInstaller; import hudson.Util; +import hudson.AbortException; +import hudson.remoting.Launcher; +import static hudson.slaves.SlaveComputer.LogHolder.SLAVE_LOG_HANDLER; +import hudson.slaves.OfflineCause.ChannelTermination; import java.io.File; import java.io.OutputStream; @@ -41,10 +46,11 @@ import java.io.FileOutputStream; import java.io.FileNotFoundException; import java.io.InputStream; import java.io.IOException; -import java.io.PrintWriter; +import java.io.PrintStream; import java.util.logging.Level; import java.util.logging.LogRecord; import java.util.logging.Logger; +import java.util.logging.Handler; import java.util.List; import java.util.Collections; import java.util.ArrayList; @@ -52,8 +58,12 @@ import java.nio.charset.Charset; import java.util.concurrent.Future; import java.security.Security; +import org.apache.commons.io.IOUtils; import org.kohsuke.stapler.StaplerRequest; import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.QueryParameter; +import org.kohsuke.stapler.HttpResponse; +import org.kohsuke.stapler.HttpRedirect; import javax.servlet.ServletException; import javax.servlet.http.HttpServletResponse; @@ -125,6 +135,7 @@ public class SlaveComputer extends Computer { return isUnix; } + @Override public Slave getNode() { return (Slave)super.getNode(); } @@ -137,8 +148,10 @@ public class SlaveComputer extends Computer { return super.getIcon(); } - @Override - @Deprecated + /** + * @deprecated since 2008-05-20. + */ + @Deprecated @Override public boolean isJnlpAgent() { return launcher instanceof JNLPLauncher; } @@ -152,29 +165,39 @@ public class SlaveComputer extends Computer { return launcher; } - public Future connect(boolean forceReconnect) { + protected Future _connect(boolean forceReconnect) { if(channel!=null) return Futures.precomputed(null); - if(!forceReconnect && lastConnectActivity!=null) + if(!forceReconnect && isConnecting()) return lastConnectActivity; - if(forceReconnect && lastConnectActivity!=null) - logger.fine("Forcing a reconnect"); + if(forceReconnect && isConnecting()) + logger.fine("Forcing a reconnect on "+getName()); closeChannel(); return lastConnectActivity = Computer.threadPoolForRemoting.submit(new java.util.concurrent.Callable() { public Object call() throws Exception { // do this on another thread so that the lengthy launch operation // (which is typical) won't block UI thread. - TaskListener listener = new StreamTaskListener(openLogFile()); + OutputStream out = openLogFile(); try { - launcher.launch(SlaveComputer.this, listener); - return null; - } catch (IOException e) { - Util.displayIOException(e,listener); - e.printStackTrace(listener.error(Messages.ComputerLauncher_unexpectedError())); - throw e; - } catch (InterruptedException e) { - e.printStackTrace(listener.error(Messages.ComputerLauncher_abortedLaunch())); - throw e; + TaskListener listener = new StreamTaskListener(out); + try { + launcher.launch(SlaveComputer.this, listener); + return null; + } catch (AbortException e) { + listener.error(e.getMessage()); + throw e; + } catch (IOException e) { + Util.displayIOException(e,listener); + e.printStackTrace(listener.error(Messages.ComputerLauncher_unexpectedError())); + throw e; + } catch (InterruptedException e) { + e.printStackTrace(listener.error(Messages.ComputerLauncher_abortedLaunch())); + throw e; + } + } finally { + IOUtils.closeQuietly(out); + if (channel==null) + offlineCause = new OfflineCause.LaunchFailed(); } } }); @@ -203,8 +226,9 @@ public class SlaveComputer extends Computer { if (launcher instanceof ExecutorListener) { ((ExecutorListener)launcher).taskCompleted(executor, task, durationMS); } - if (getNode().getRetentionStrategy() instanceof ExecutorListener) { - ((ExecutorListener)getNode().getRetentionStrategy()).taskCompleted(executor, task, durationMS); + RetentionStrategy r = getRetentionStrategy(); + if (r instanceof ExecutorListener) { + ((ExecutorListener) r).taskCompleted(executor, task, durationMS); } } @@ -217,9 +241,9 @@ public class SlaveComputer extends Computer { if (launcher instanceof ExecutorListener) { ((ExecutorListener)launcher).taskCompletedWithProblems(executor, task, durationMS, problems); } - if (getNode().getRetentionStrategy() instanceof ExecutorListener) { - ((ExecutorListener)getNode().getRetentionStrategy()).taskCompletedWithProblems(executor, task, durationMS, - problems); + RetentionStrategy r = getRetentionStrategy(); + if (r instanceof ExecutorListener) { + ((ExecutorListener) r).taskCompletedWithProblems(executor, task, durationMS, problems); } } @@ -267,20 +291,26 @@ public class SlaveComputer extends Computer { if(this.channel!=null) throw new IllegalStateException("Already connected"); - PrintWriter log = new PrintWriter(launchLog,true); - final TaskListener taskListener = new StreamTaskListener(log); + final TaskListener taskListener = new StreamTaskListener(launchLog); + PrintStream log = taskListener.getLogger(); Channel channel = new Channel(nodeName,threadPoolForRemoting, Channel.Mode.NEGOTIATE, in,out, launchLog); channel.addListener(new Channel.Listener() { - public void onClosed(Channel c,IOException cause) { + @Override + public void onClosed(Channel c, IOException cause) { SlaveComputer.this.channel = null; + // Orderly shutdown will have null exception + if (cause!=null) offlineCause = new ChannelTermination(cause); launcher.afterDisconnect(SlaveComputer.this, taskListener); } }); if(listener!=null) channel.addListener(listener); + String slaveVersion = channel.call(new SlaveVersion()); + log.println("Slave.jar version: " + slaveVersion); + boolean _isUnix = channel.call(new DetectOS()); log.println(_isUnix? hudson.model.Messages.Slave_UnixSlave():hudson.model.Messages.Slave_WindowsSlave()); @@ -296,6 +326,8 @@ public class SlaveComputer extends Computer { for (ComputerListener cl : ComputerListener.all()) cl.preOnline(this,channel,root,taskListener); + offlineCause = null; + // update the data structure atomically to prevent others from seeing a channel that's not properly initialized yet synchronized(channelLock) { if(this.channel!=null) { @@ -315,6 +347,7 @@ public class SlaveComputer extends Computer { } for (ComputerListener cl : ComputerListener.all()) cl.onOnline(this,taskListener); + log.println("Slave successfully connected and online"); Hudson.getInstance().getQueue().scheduleMaintenance(); } @@ -338,22 +371,35 @@ public class SlaveComputer extends Computer { }); } - public void doDoDisconnect(StaplerResponse rsp) throws IOException, ServletException { - checkPermission(Hudson.ADMINISTER); - disconnect(); - rsp.sendRedirect("."); + public HttpResponse doDoDisconnect(@QueryParameter String offlineMessage) throws IOException, ServletException { + if (channel!=null) { + //does nothing in case computer is already disconnected + checkPermission(Hudson.ADMINISTER); + offlineMessage = Util.fixEmptyAndTrim(offlineMessage); + disconnect(OfflineCause.create(Messages._SlaveComputer_DisconnectedBy( + Hudson.getAuthentication().getName(), + offlineMessage!=null ? " : " + offlineMessage : "") + )); + } + return new HttpRedirect("."); } @Override - public Future disconnect() { + public Future disconnect(OfflineCause cause) { + super.disconnect(cause); return Computer.threadPoolForRemoting.submit(new Runnable() { public void run() { // do this on another thread so that any lengthy disconnect operation // (which could be typical) won't block UI thread. - TaskListener listener = new StreamTaskListener(openLogFile()); - launcher.beforeDisconnect(SlaveComputer.this, listener); - closeChannel(); - launcher.afterDisconnect(SlaveComputer.this, listener); + OutputStream out = openLogFile(); + try { + TaskListener listener = new StreamTaskListener(out); + launcher.beforeDisconnect(SlaveComputer.this, listener); + closeChannel(); + launcher.afterDisconnect(SlaveComputer.this, listener); + } finally { + IOUtils.closeQuietly(out); + } } }); } @@ -383,7 +429,7 @@ public class SlaveComputer extends Computer { /** * Serves jar files for JNLP slave agents. * - * @deprecated + * @deprecated since 2008-08-18. * This URL binding is no longer used and moved up directly under to {@link Hudson}, * but it's left here for now just in case some old JNLP slave agents request it. */ @@ -398,7 +444,8 @@ public class SlaveComputer extends Computer { } public RetentionStrategy getRetentionStrategy() { - return getNode().getRetentionStrategy(); + Slave n = getNode(); + return n==null ? null : n.getRetentionStrategy(); } /** @@ -428,8 +475,12 @@ public class SlaveComputer extends Computer { // maybe the configuration was changed to relaunch the slave, so try to re-launch now. // "constructed==null" test is an ugly hack to avoid launching before the object is fully // constructed. - if(constructed!=null) - connect(false); + if(constructed!=null) { + if (node instanceof Slave) + ((Slave)node).getRetentionStrategy().check(this); + else + connect(false); + } } /** @@ -450,6 +501,12 @@ public class SlaveComputer extends Computer { private static final Logger logger = Logger.getLogger(SlaveComputer.class.getName()); + private static final class SlaveVersion implements Callable { + public String call() throws IOException { + try { return Launcher.VERSION; } + catch (Throwable ex) { return "< 1.335"; } // Older slave.jar won't have VERSION + } + } private static final class DetectOS implements Callable { public Boolean call() throws IOException { return File.pathSeparatorChar==':'; @@ -463,15 +520,26 @@ public class SlaveComputer extends Computer { } /** - * This field is used on each slave node to record log records on the slave. + * Puts the {@link #SLAVE_LOG_HANDLER} into a separate class so that loading this class + * in JVM doesn't end up loading tons of additional classes. */ - private static final RingBufferLogHandler SLAVE_LOG_HANDLER = new RingBufferLogHandler(); + static final class LogHolder { + /** + * This field is used on each slave node to record log records on the slave. + */ + static final RingBufferLogHandler SLAVE_LOG_HANDLER = new RingBufferLogHandler(); + } private static class SlaveInitializer implements Callable { public Void call() { - // avoid double installation of the handler + // avoid double installation of the handler. JNLP slaves can reconnect to the master multiple times + // and each connection gets a different RemoteClassLoader, so we need to evict them by class name, + // not by their identity. Logger logger = Logger.getLogger("hudson"); - logger.removeHandler(SLAVE_LOG_HANDLER); + for (Handler h : logger.getHandlers()) { + if (h.getClass().getName().equals(SLAVE_LOG_HANDLER.getClass().getName())) + logger.removeHandler(h); + } logger.addHandler(SLAVE_LOG_HANDLER); // remove Sun PKCS11 provider if present. See http://hudson.gotdns.com/wiki/display/HUDSON/Solaris+Issue+6276483 @@ -481,8 +549,31 @@ public class SlaveComputer extends Computer { // ignore this error. } + Channel.current().setProperty("slave",Boolean.TRUE); // indicate that this side of the channel is the slave side. + return null; } private static final long serialVersionUID = 1L; } + + /** + * Obtains a {@link VirtualChannel} that allows some computation to be performed on the master. + * This method can be called from any thread on the master, or from slave (more precisely, + * it only works from the remoting request-handling thread in slaves, which means if you've started + * separate thread on slaves, that'll fail.) + * + * @return null if the calling thread doesn't have any trace of where its master is. + * @since 1.362 + */ + public static VirtualChannel getChannelToMaster() { + if (Hudson.getInstance()!=null) + return MasterComputer.localChannel; + + // if this method is called from within the slave computation thread, this should work + Channel c = Channel.current(); + if (c!=null && c.getProperty("slave")==Boolean.TRUE) + return c; + + return null; + } } diff --git a/core/src/main/java/hudson/slaves/WorkspaceList.java b/core/src/main/java/hudson/slaves/WorkspaceList.java new file mode 100644 index 0000000000000000000000000000000000000000..52ccf3cb781549f30ecf4095d8ce8dc2b247082e --- /dev/null +++ b/core/src/main/java/hudson/slaves/WorkspaceList.java @@ -0,0 +1,196 @@ +/* + * The MIT License + * + * Copyright (c) 2004-2009, Sun Microsystems, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.slaves; + +import hudson.FilePath; +import hudson.Functions; +import hudson.model.Computer; + +import java.util.Date; +import java.util.HashMap; +import java.util.Map; +import java.util.logging.Level; +import java.util.logging.Logger; + +/** + * Used by {@link Computer} to keep track of workspaces that are actively in use. + * + *

    + * SUBJECT TO CHANGE! Do not use this from plugins directly. + * + * @author Kohsuke Kawaguchi + * @since 1.319 + * @see Computer#getWorkspaceList() + */ +public final class WorkspaceList { + /** + * Book keeping for workspace allocation. + */ + public static final class Entry { + /** + * Who acquired this workspace? + */ + public final Thread holder = Thread.currentThread(); + + /** + * When? + */ + public final long time = System.currentTimeMillis(); + + /** + * From where? + */ + public final Exception source = new Exception(); + + /** + * True makes the caller of {@link WorkspaceList#allocate(FilePath)} wait + * for this workspace. + */ + public final boolean quick; + + public final FilePath path; + + private Entry(FilePath path, boolean quick) { + this.path = path; + this.quick = quick; + } + + @Override + public String toString() { + String s = path+" owned by "+holder.getName()+" from "+new Date(time); + if(quick) s+=" (quick)"; + s+="\n"+Functions.printThrowable(source); + return s; + } + } + + /** + * Represents a leased workspace that needs to be returned later. + */ + public static abstract class Lease { + public final FilePath path; + + protected Lease(FilePath path) { + this.path = path; + } + + /** + * Releases this lease. + */ + public abstract void release(); + + /** + * Creates a dummy {@link Lease} object that does no-op in the release. + */ + public static Lease createDummyLease(FilePath p) { + return new Lease(p) { + public void release() { + // noop + } + }; + } + } + + private final Map inUse = new HashMap(); + + public WorkspaceList() { + } + + /** + * Allocates a workspace by adding some variation to the given base to make it unique. + */ + public synchronized Lease allocate(FilePath base) throws InterruptedException { + for (int i=1; ; i++) { + FilePath candidate = i==1 ? base : base.withSuffix("@"+i); + Entry e = inUse.get(candidate); + if(e!=null && !e.quick) + continue; + return acquire(candidate); + } + } + + /** + * Just record that this workspace is being used, without paying any attention to the sycnhronization support. + */ + public synchronized Lease record(FilePath p) { + log("recorded "+p); + Entry old = inUse.put(p, new Entry(p, false)); + if (old!=null) + throw new AssertionError("Tried to record a workspace already owned: "+old); + return lease(p); + } + + /** + * Releases an allocated or acquired workspace. + */ + private synchronized void _release(FilePath p) { + Entry old = inUse.remove(p); + if (old==null) + throw new AssertionError("Releasing unallocated workspace "+p); + notifyAll(); + } + + /** + * Acquires the given workspace. If necessary, this method blocks until it's made available. + * + * @return + * The same {@link FilePath} as given to this method. + */ + public synchronized Lease acquire(FilePath p) throws InterruptedException { + return acquire(p,false); + } + + /** + * See {@link #acquire(FilePath)} + * + * @param quick + * If true, indicates that the acquired workspace will be returned quickly. + * This makes other calls to {@link #allocate(FilePath)} to wait for the release of this workspace. + */ + public synchronized Lease acquire(FilePath p, boolean quick) throws InterruptedException { + while (inUse.containsKey(p)) + wait(); + log("acquired "+p); + inUse.put(p,new Entry(p,quick)); + return lease(p); + } + + /** + * Wraps a path into a valid lease. + */ + private Lease lease(FilePath p) { + return new Lease(p) { + public void release() { + _release(path); + } + }; + } + + private void log(String msg) { + if (LOGGER.isLoggable(Level.FINE)) + LOGGER.fine(Thread.currentThread().getName() + " " + msg); + } + + private static final Logger LOGGER = Logger.getLogger(WorkspaceList.class.getName()); +} diff --git a/core/src/main/java/hudson/slaves/package.html b/core/src/main/java/hudson/slaves/package.html index d59f4e59a6bd1640c082dfc0f9365bf05828faf0..9a8c33215d0fa4125bf1b4707d90d361e105fb62 100644 --- a/core/src/main/java/hudson/slaves/package.html +++ b/core/src/main/java/hudson/slaves/package.html @@ -1,7 +1,7 @@ - - + Code related to slaves. - - \ No newline at end of file + \ No newline at end of file diff --git a/core/src/main/java/hudson/tasks/Ant.java b/core/src/main/java/hudson/tasks/Ant.java index dd6b71b0bbb234906ae95f932b336c342439f999..cb3bb77ddd51432834d1ae2ae6a9daba86fc8440 100644 --- a/core/src/main/java/hudson/tasks/Ant.java +++ b/core/src/main/java/hudson/tasks/Ant.java @@ -1,7 +1,7 @@ /* * The MIT License * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Tom Huybrechts + * Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Tom Huybrechts, Yahoo! Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -27,6 +27,7 @@ import hudson.CopyOnWrite; import hudson.EnvVars; import hudson.Extension; import hudson.FilePath; +import hudson.Functions; import hudson.Launcher; import hudson.Util; import hudson.model.AbstractBuild; @@ -39,11 +40,16 @@ import hudson.model.Node; import hudson.model.TaskListener; import hudson.remoting.Callable; import hudson.slaves.NodeSpecific; +import hudson.tasks._ant.AntConsoleAnnotator; import hudson.tools.ToolDescriptor; import hudson.tools.ToolInstallation; +import hudson.tools.DownloadFromUrlInstaller; +import hudson.tools.ToolInstaller; +import hudson.tools.ToolProperty; import hudson.util.ArgumentListBuilder; import hudson.util.VariableResolver; import hudson.util.FormValidation; +import hudson.util.XStream2; import net.sf.json.JSONObject; import org.kohsuke.stapler.DataBoundConstructor; import org.kohsuke.stapler.StaplerRequest; @@ -51,8 +57,11 @@ import org.kohsuke.stapler.QueryParameter; import java.io.File; import java.io.IOException; -import java.util.Map; +import java.util.ArrayList; import java.util.Properties; +import java.util.List; +import java.util.Collections; +import java.util.Set; /** * Ant launcher. @@ -104,7 +113,7 @@ public class Ant extends Builder { return properties; } - public String getTargets() { + public String getTargets() { return targets; } @@ -114,7 +123,7 @@ public class Ant extends Builder { */ public AntInstallation getAnt() { for( AntInstallation i : getDescriptor().getInstallations() ) { - if(antName!=null && i.getName().equals(antName)) + if(antName!=null && antName.equals(i.getName())) return i; } return null; @@ -127,10 +136,8 @@ public class Ant extends Builder { return antOpts; } + @Override public boolean perform(AbstractBuild build, Launcher launcher, BuildListener listener) throws InterruptedException, IOException { - AbstractProject proj = build.getProject(); - - ArgumentListBuilder args = new ArgumentListBuilder(); EnvVars env = build.getEnvironment(listener); @@ -154,7 +161,7 @@ public class Ant extends Builder { String buildFile = env.expand(this.buildFile); String targets = Util.replaceMacro(env.expand(this.targets), vr); - FilePath buildFilePath = buildFilePath(proj.getModuleRoot(), buildFile, targets); + FilePath buildFilePath = buildFilePath(build.getModuleRoot(), buildFile, targets); if(!buildFilePath.exists()) { // because of the poor choice of getModuleRoot() with CVS/Subversion, people often get confused @@ -163,7 +170,7 @@ public class Ant extends Builder { // and diagnosing it nicely. See HUDSON-1782 // first check if this appears to be a valid relative path from workspace root - FilePath buildFilePath2 = buildFilePath(proj.getWorkspace(), buildFile, targets); + FilePath buildFilePath2 = buildFilePath(build.getWorkspace(), buildFile, targets); if(buildFilePath2.exists()) { // This must be what the user meant. Let it continue. buildFilePath = buildFilePath2; @@ -178,37 +185,38 @@ public class Ant extends Builder { args.add("-file", buildFilePath.getName()); } - args.addKeyValuePairs("-D",build.getBuildVariables()); + Set sensitiveVars = build.getSensitiveBuildVariables(); + + args.addKeyValuePairs("-D",build.getBuildVariables(),sensitiveVars); - args.addKeyValuePairsFromPropertyString("-D",properties,vr); + args.addKeyValuePairsFromPropertyString("-D",properties,vr,sensitiveVars); args.addTokenized(targets.replaceAll("[\t\r\n]+"," ")); if(ai!=null) - env.put("ANT_HOME",ai.getAntHome()); + env.put("ANT_HOME",ai.getHome()); if(antOpts!=null) env.put("ANT_OPTS",env.expand(antOpts)); if(!launcher.isUnix()) { - // on Windows, executing batch file can't return the correct error code, - // so we need to wrap it into cmd.exe. - // double %% is needed because we want ERRORLEVEL to be expanded after - // batch file executed, not before. This alone shows how broken Windows is... - args.add("&&","exit","%%ERRORLEVEL%%"); - - // on Windows, proper double quote handling requires extra surrounding quote. - // so we need to convert the entire argument list once into a string, - // then build the new list so that by the time JVM invokes CreateProcess win32 API, - // it puts additional double-quote. See issue #1007 - // the 'addQuoted' is necessary because Process implementation for Windows (at least in Sun JVM) - // is too clever to avoid putting a quote around it if the argument begins with " - // see "cmd /?" for more about how cmd.exe handles quotation. - args = new ArgumentListBuilder().add("cmd.exe","/C").addQuoted(args.toStringWithQuote()); + args = args.toWindowsCommand(); + // For some reason, ant on windows rejects empty parameters but unix does not. + // Add quotes for any empty parameter values: + List newArgs = new ArrayList(args.toList()); + newArgs.set(newArgs.size() - 1, newArgs.get(newArgs.size() - 1).replaceAll( + "(?<= )(-D[^\" ]+)= ", "$1=\"\" ")); + args = new ArgumentListBuilder(newArgs.toArray(new String[newArgs.size()])); } long startTime = System.currentTimeMillis(); try { - int r = launcher.launch(args.toCommandArray(),env,listener.getLogger(),buildFilePath.getParent()).join(); + AntConsoleAnnotator aca = new AntConsoleAnnotator(listener.getLogger(),build.getCharset()); + int r; + try { + r = launcher.launch().cmds(args).envs(env).stdout(aca).pwd(buildFilePath.getParent()).join(); + } finally { + aca.forceEol(); + } return r==0; } catch (IOException e) { Util.displayIOException(e,listener); @@ -240,6 +248,7 @@ public class Ant extends Builder { return base.child("build.xml"); } + @Override public DescriptorImpl getDescriptor() { return (DescriptorImpl)super.getDescriptor(); } @@ -253,19 +262,22 @@ public class Ant extends Builder { load(); } - public boolean isApplicable(Class jobType) { - return true; - } - protected DescriptorImpl(Class clazz) { super(clazz); } - protected void convert(Map oldPropertyBag) { - if(oldPropertyBag.containsKey("installations")) - installations = (AntInstallation[]) oldPropertyBag.get("installations"); + /** + * Obtains the {@link AntInstallation.DescriptorImpl} instance. + */ + public AntInstallation.DescriptorImpl getToolDescriptor() { + return ToolInstallation.all().get(AntInstallation.DescriptorImpl.class); + } + + public boolean isApplicable(Class jobType) { + return true; } + @Override public String getHelpFile() { return "/help/project-config/ant.html"; } @@ -279,55 +291,36 @@ public class Ant extends Builder { } @Override - public boolean configure(StaplerRequest req, JSONObject json) throws FormException { - installations = req.bindJSONToList( - AntInstallation.class, json.get("ant")).toArray(new AntInstallation[0]); - save(); - return true; - } - public Ant newInstance(StaplerRequest req, JSONObject formData) throws FormException { return (Ant)req.bindJSON(clazz,formData); } - // - // web methods - // - /** - * Checks if the ANT_HOME is valid. - */ - public FormValidation doCheckAntHome(@QueryParameter File value) { - // this can be used to check the existence of a file on the server, so needs to be protected - if(!Hudson.getInstance().hasPermission(Hudson.ADMINISTER)) - return FormValidation.ok(); - - if(!value.isDirectory()) - return FormValidation.error(Messages.Ant_NotADirectory(value)); - - File antJar = new File(value,"lib/ant.jar"); - if(!antJar.exists()) - return FormValidation.error(Messages.Ant_NotAntDirectory(value)); - - return FormValidation.ok(); - } - - public void setInstallations(AntInstallation... antInstallations) { - this.installations = antInstallations; - } + public void setInstallations(AntInstallation... antInstallations) { + this.installations = antInstallations; + save(); + } } + /** + * Represents the Ant installation on the system. + */ public static final class AntInstallation extends ToolInstallation implements EnvironmentSpecific, NodeSpecific { - private final String antHome; + // to remain backward compatible with earlier Hudson that stored this field here. + @Deprecated + private transient String antHome; @DataBoundConstructor + public AntInstallation(String name, String home, List> properties) { + super(name, launderHome(home), properties); + } + + /** + * @deprecated as of 1.308 + * Use {@link #AntInstallation(String, String, List)} + */ public AntInstallation(String name, String home) { - super(name, launderHome(home)); - if(home.endsWith("/") || home.endsWith("\\")) - // see https://issues.apache.org/bugzilla/show_bug.cgi?id=26947 - // Ant doesn't like the trailing slash, especially on Windows - home = home.substring(0,home.length()-1); - this.antHome = home; + this(name,home,Collections.>emptyList()); } private static String launderHome(String home) { @@ -342,16 +335,13 @@ public class Ant extends Builder { /** * install directory. + * + * @deprecated as of 1.307. Use {@link #getHome()}. */ public String getAntHome() { return getHome(); } - public String getHome() { - if (antHome != null) return antHome; - return super.getHome(); - } - /** * Gets the executable path of this Ant on the given target system. */ @@ -367,15 +357,10 @@ public class Ant extends Builder { } private File getExeFile() { - String execName; - if(Hudson.isWindows()) - execName = "ant.bat"; - else - execName = "ant"; - - String antHome = Util.replaceMacro(getAntHome(),EnvVars.masterEnvVars); + String execName = Functions.isWindows() ? "ant.bat" : "ant"; + String home = Util.replaceMacro(getHome(), EnvVars.masterEnvVars); - return new File(antHome,"bin/"+execName); + return new File(home,"bin/"+execName); } /** @@ -387,12 +372,12 @@ public class Ant extends Builder { private static final long serialVersionUID = 1L; - public AntInstallation forEnvironment(EnvVars environment) { - return new AntInstallation(getName(), environment.expand(antHome)); - } + public AntInstallation forEnvironment(EnvVars environment) { + return new AntInstallation(getName(), environment.expand(getHome()), getProperties().toList()); + } public AntInstallation forNode(Node node, TaskListener log) throws IOException, InterruptedException { - return new AntInstallation(getName(), translateFor(node, log)); + return new AntInstallation(getName(), translateFor(node, log), getProperties().toList()); } @Extension @@ -403,6 +388,7 @@ public class Ant extends Builder { return "Ant"; } + // for compatibility reasons, the persistence is done by Ant.DescriptorImpl @Override public AntInstallation[] getInstallations() { return Hudson.getInstance().getDescriptorByType(Ant.DescriptorImpl.class).getInstallations(); @@ -412,7 +398,65 @@ public class Ant extends Builder { public void setInstallations(AntInstallation... installations) { Hudson.getInstance().getDescriptorByType(Ant.DescriptorImpl.class).setInstallations(installations); } + + @Override + public List getDefaultInstallers() { + return Collections.singletonList(new AntInstaller(null)); + } + + /** + * Checks if the ANT_HOME is valid. + */ + public FormValidation doCheckHome(@QueryParameter File value) { + // this can be used to check the existence of a file on the server, so needs to be protected + if(!Hudson.getInstance().hasPermission(Hudson.ADMINISTER)) + return FormValidation.ok(); + + if(value.getPath().equals("")) + return FormValidation.ok(); + + if(!value.isDirectory()) + return FormValidation.error(Messages.Ant_NotADirectory(value)); + + File antJar = new File(value,"lib/ant.jar"); + if(!antJar.exists()) + return FormValidation.error(Messages.Ant_NotAntDirectory(value)); + + return FormValidation.ok(); + } + + public FormValidation doCheckName(@QueryParameter String value) { + return FormValidation.validateRequired(value); + } } - } + public static class ConverterImpl extends ToolConverter { + public ConverterImpl(XStream2 xstream) { super(xstream); } + @Override protected String oldHomeField(ToolInstallation obj) { + return ((AntInstallation)obj).antHome; + } + } + } + + /** + * Automatic Ant installer from apache.org. + */ + public static class AntInstaller extends DownloadFromUrlInstaller { + @DataBoundConstructor + public AntInstaller(String id) { + super(id); + } + + @Extension + public static final class DescriptorImpl extends DownloadFromUrlInstaller.DescriptorImpl { + public String getDisplayName() { + return Messages.InstallFromApache(); + } + + @Override + public boolean isApplicable(Class toolType) { + return toolType==AntInstallation.class; + } + } + } } diff --git a/core/src/main/java/hudson/tasks/ArtifactArchiver.java b/core/src/main/java/hudson/tasks/ArtifactArchiver.java index a55014974b1a708d7dbcd7ab00e216d5bebb23ae..dd164a9204d20224021e0bb463caac26f0811c51 100644 --- a/core/src/main/java/hudson/tasks/ArtifactArchiver.java +++ b/core/src/main/java/hudson/tasks/ArtifactArchiver.java @@ -64,6 +64,9 @@ public class ArtifactArchiver extends Recorder { * Just keep the last successful artifact set, no more. */ private final boolean latestOnly; + + private static final Boolean allowEmptyArchive = + Boolean.getBoolean(ArtifactArchiver.class.getName()+".warnOnEmpty"); @DataBoundConstructor public ArtifactArchiver(String artifacts, String excludes, boolean latestOnly) { @@ -83,35 +86,51 @@ public class ArtifactArchiver extends Recorder { public boolean isLatestOnly() { return latestOnly; } + + private void listenerWarnOrError(BuildListener listener, String message) { + if (allowEmptyArchive) { + listener.getLogger().println(String.format("WARN: %s", message)); + } else { + listener.error(message); + } + } + @Override public boolean perform(AbstractBuild build, Launcher launcher, BuildListener listener) throws InterruptedException { - AbstractProject p = build.getProject(); - if(artifacts.length()==0) { listener.error(Messages.ArtifactArchiver_NoIncludes()); build.setResult(Result.FAILURE); return true; } - + File dir = build.getArtifactsDir(); dir.mkdirs(); listener.getLogger().println(Messages.ArtifactArchiver_ARCHIVING_ARTIFACTS()); try { - FilePath ws = p.getWorkspace(); + FilePath ws = build.getWorkspace(); if (ws==null) { // #3330: slave down? return true; } + + String artifacts = build.getEnvironment(listener).expand(this.artifacts); if(ws.copyRecursiveTo(artifacts,excludes,new FilePath(dir))==0) { if(build.getResult().isBetterOrEqualTo(Result.UNSTABLE)) { // If the build failed, don't complain that there was no matching artifact. // The build probably didn't even get to the point where it produces artifacts. - listener.error(Messages.ArtifactArchiver_NoMatchFound(artifacts)); - String msg = ws.validateAntFileMask(artifacts); + listenerWarnOrError(listener, Messages.ArtifactArchiver_NoMatchFound(artifacts)); + String msg = null; + try { + msg = ws.validateAntFileMask(artifacts); + } catch (Exception e) { + listenerWarnOrError(listener, e.getMessage()); + } if(msg!=null) - listener.error(msg); + listenerWarnOrError(listener, msg); + } + if (!allowEmptyArchive) { + build.setResult(Result.FAILURE); } - build.setResult(Result.FAILURE); return true; } } catch (IOException e) { @@ -124,8 +143,8 @@ public class ArtifactArchiver extends Recorder { return true; } - - public @Override boolean prebuild(AbstractBuild build, BuildListener listener) { + @Override + public boolean prebuild(AbstractBuild build, BuildListener listener) { if(latestOnly) { AbstractBuild b = build.getProject().getLastCompletedBuild(); Result bestResultSoFar = Result.NOT_BUILT; @@ -150,6 +169,10 @@ public class ArtifactArchiver extends Recorder { return true; } + public BuildStepMonitor getRequiredMonitorService() { + return BuildStepMonitor.NONE; + } + /** * @deprecated as of 1.286 * Some plugin depends on this, so this field is left here and points to the last created instance. @@ -171,9 +194,10 @@ public class ArtifactArchiver extends Recorder { * Performs on-the-fly validation on the file mask wildcard. */ public FormValidation doCheckArtifacts(@AncestorInPath AbstractProject project, @QueryParameter String value) throws IOException { - return FilePath.validateFileMask(project.getWorkspace(),value); + return FilePath.validateFileMask(project.getSomeWorkspace(),value); } + @Override public ArtifactArchiver newInstance(StaplerRequest req, JSONObject formData) throws FormException { return req.bindJSON(ArtifactArchiver.class,formData); } diff --git a/core/src/main/java/hudson/tasks/BatchFile.java b/core/src/main/java/hudson/tasks/BatchFile.java index 6fa8c57db739f70ce1885ca56e14aa8b67c34079..0943e9147fbd597ba6720cf9579c17511147e994 100644 --- a/core/src/main/java/hudson/tasks/BatchFile.java +++ b/core/src/main/java/hudson/tasks/BatchFile.java @@ -1,7 +1,7 @@ /* * The MIT License * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi + * Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -25,9 +25,9 @@ package hudson.tasks; import hudson.FilePath; import hudson.Extension; -import hudson.model.Descriptor; import hudson.model.AbstractProject; import net.sf.json.JSONObject; +import org.kohsuke.stapler.DataBoundConstructor; import org.kohsuke.stapler.StaplerRequest; /** @@ -36,12 +36,13 @@ import org.kohsuke.stapler.StaplerRequest; * @author Kohsuke Kawaguchi */ public class BatchFile extends CommandInterpreter { + @DataBoundConstructor public BatchFile(String command) { super(command); } - protected String[] buildCommandLine(FilePath script) { - return new String[] {script.getRemote()}; + public String[] buildCommandLine(FilePath script) { + return new String[] {"cmd","/c","call",script.getRemote()}; } protected String getContents() { @@ -54,6 +55,7 @@ public class BatchFile extends CommandInterpreter { @Extension public static final class DescriptorImpl extends BuildStepDescriptor { + @Override public String getHelpFile() { return "/help/project-config/batch.html"; } @@ -62,8 +64,9 @@ public class BatchFile extends CommandInterpreter { return Messages.BatchFile_DisplayName(); } + @Override public Builder newInstance(StaplerRequest req, JSONObject data) { - return new BatchFile(data.getString("batchFile")); + return new BatchFile(data.getString("command")); } public boolean isApplicable(Class jobType) { diff --git a/core/src/main/java/hudson/tasks/BuildStep.java b/core/src/main/java/hudson/tasks/BuildStep.java index c893759df22bcffe1daf09103697960496124337..bca9eac748adcf27b2a879b83669953113b4786e 100644 --- a/core/src/main/java/hudson/tasks/BuildStep.java +++ b/core/src/main/java/hudson/tasks/BuildStep.java @@ -35,8 +35,11 @@ import hudson.model.BuildListener; import hudson.model.Descriptor; import hudson.model.Project; import hudson.model.Hudson; +import hudson.model.CheckPoint; +import hudson.model.Run; import java.io.IOException; +import java.util.Collection; import java.util.List; import java.util.AbstractList; import java.util.Iterator; @@ -99,7 +102,13 @@ public interface BuildStep { boolean perform(AbstractBuild build, Launcher launcher, BuildListener listener) throws InterruptedException, IOException; /** - * Returns an action object if this {@link BuildStep} has an action + * @deprecated as of 1.341. + * Use {@link #getProjectActions(AbstractProject)} instead. + */ + Action getProjectAction(AbstractProject project); + + /** + * Returns action objects if this {@link BuildStep} has actions * to contribute to a {@link Project}. * *

    @@ -117,9 +126,74 @@ public interface BuildStep { * since {@link BuildStep} object doesn't usually have this "parent" pointer. * * @return - * null if there's no action to be contributed. + * can be empty but never null. */ - Action getProjectAction(AbstractProject project); + Collection getProjectActions(AbstractProject project); + + + /** + * Declares the scope of the synchronization monitor this {@link BuildStep} expects from outside. + * + *

    + * This method is introduced for preserving compatibility with plugins written for earlier versions of Hudson, + * which never run multiple builds of the same job in parallel. Such plugins often assume that the outcome + * of the previous build is completely available, which is no longer true when we do concurrent builds. + * + *

    + * To minimize the necessary code change for such plugins, {@link BuildStep} implementations can request + * Hudson to externally perform synchronization before executing them. This behavior is as follows: + * + *

    + *
    {@link BuildStepMonitor#BUILD} + *
    + * This {@link BuildStep} is only executed after the previous build is fully + * completed (thus fully restoring the earlier semantics of one build at a time.) + * + *
    {@link BuildStepMonitor#STEP} + *
    + * This {@link BuildStep} is only executed after the same step in the previous build is completed. + * For build steps that use a weaker assumption and only rely on the output from the same build step of + * the early builds, this improves the concurrency. + * + *
    {@link BuildStepMonitor#NONE} + *
    + * No external synchronization is performed on this build step. This is the most efficient, and thus + * the recommended value for newer plugins. Wherever necessary, you can directly use {@link CheckPoint}s + * to perform necessary synchronizations. + *
    + * + *

    Migrating Older Implementation

    + *

    + * If you are migrating {@link BuildStep} implementations written for earlier versions of Hudson, + * here's what you can do: + * + *

      + *
    • + * Just return {@link BuildStepMonitor#BUILD} to demand the backward compatible behavior from Hudson, + * and make no other changes to the code. This will prevent users from reaping the benefits of concurrent + * builds, but at least your plugin will work correctly, and therefore this is a good easy first step. + *
    • + * If your build step doesn't use anything from a previous build (for example, if you don't even call + * {@link Run#getPreviousBuild()}), then you can return {@link BuildStepMonitor#NONE} without making further + * code changes and you are done with migration. + *
    • + * If your build step only depends on {@link Action}s that you added in the previous build by yourself, + * then you only need {@link BuildStepMonitor#STEP} scope synchronization. Return it from this method + * ,and you are done with migration without any further code changes. + *
    • + * If your build step makes more complex assumptions, return {@link BuildStepMonitor#NONE} and use + * {@link CheckPoint}s directly in your code. The general idea is to call {@link CheckPoint#block()} before + * you try to access the state from the previous build. + *
    + * + *

    Note to caller

    + *

    + * For plugins written against earlier versions of Hudson, calling this method results in + * {@link AbstractMethodError}. + * + * @since 1.319 + */ + BuildStepMonitor getRequiredMonitorService(); /** * List of all installed builders. diff --git a/core/src/main/java/hudson/tasks/BuildStepCompatibilityLayer.java b/core/src/main/java/hudson/tasks/BuildStepCompatibilityLayer.java index a975a3b298dd3fbd1e634ef316db24dfdb60223a..6850fec53e860edd3c6f91480b5dbe334cfa9ca6 100644 --- a/core/src/main/java/hudson/tasks/BuildStepCompatibilityLayer.java +++ b/core/src/main/java/hudson/tasks/BuildStepCompatibilityLayer.java @@ -32,6 +32,8 @@ import hudson.model.AbstractProject; import hudson.Launcher; import java.io.IOException; +import java.util.Collection; +import java.util.Collections; /** * Provides compatibility with {@link BuildStep} before 1.150 @@ -39,6 +41,7 @@ import java.io.IOException; * * @author Kohsuke Kawaguchi * @since 1.150 + * @deprecated since 1.150 */ public abstract class BuildStepCompatibilityLayer implements BuildStep { // @@ -64,6 +67,15 @@ public abstract class BuildStepCompatibilityLayer implements BuildStep { else return null; } + + public Collection getProjectActions(AbstractProject project) { + // delegate to getJobAction (singular) for backward compatible behavior + Action a = getProjectAction(project); + if (a==null) return Collections.emptyList(); + return Collections.singletonList(a); + } + + // // old definitions < 1.150 // diff --git a/core/src/main/java/hudson/tasks/BuildStepDescriptor.java b/core/src/main/java/hudson/tasks/BuildStepDescriptor.java index d27da3b7f7ec4f1446cee8eead47d3a704a7c014..7e289d4037ae96923fc72beb5c85ff98e27d1006 100644 --- a/core/src/main/java/hudson/tasks/BuildStepDescriptor.java +++ b/core/src/main/java/hudson/tasks/BuildStepDescriptor.java @@ -67,7 +67,7 @@ public abstract class BuildStepDescriptor> /** - * Fiters a descriptor for {@link BuildStep}s by using {@link BuildStepDescriptor#isApplicable(Class)}. + * Filters a descriptor for {@link BuildStep}s by using {@link BuildStepDescriptor#isApplicable(Class)}. */ public static > List> filter(List> base, Class type) { diff --git a/core/src/main/java/hudson/tasks/BuildStepMonitor.java b/core/src/main/java/hudson/tasks/BuildStepMonitor.java new file mode 100644 index 0000000000000000000000000000000000000000..5bcb3068001cbc24da5605cd8df48574144c7406 --- /dev/null +++ b/core/src/main/java/hudson/tasks/BuildStepMonitor.java @@ -0,0 +1,44 @@ +package hudson.tasks; + +import hudson.model.AbstractBuild; +import hudson.model.BuildListener; +import hudson.model.CheckPoint; +import hudson.Launcher; + +import java.io.IOException; + +/** + * Used by {@link BuildStep#getRequiredMonitorService()}. + * + * @author Kohsuke Kawaguchi + * @since 1.319 + */ +public enum BuildStepMonitor { + NONE { + public boolean perform(BuildStep bs, AbstractBuild build, Launcher launcher, BuildListener listener) throws IOException, InterruptedException { + return bs.perform(build,launcher,listener); + } + }, + STEP { + public boolean perform(BuildStep bs, AbstractBuild build, Launcher launcher, BuildListener listener) throws InterruptedException, IOException { + CheckPoint cp = new CheckPoint(bs.getClass().getName(),bs.getClass()); + cp.block(); + try { + return bs.perform(build,launcher,listener); + } finally { + cp.report(); + } + } + }, + BUILD { + public boolean perform(BuildStep bs, AbstractBuild build, Launcher launcher, BuildListener listener) throws IOException, InterruptedException { + CheckPoint.COMPLETED.block(); + return bs.perform(build,launcher,listener); + } + }; + + /** + * Calls {@link BuildStep#perform(AbstractBuild, Launcher, BuildListener)} with the proper synchronization. + */ + public abstract boolean perform(BuildStep bs, AbstractBuild build, Launcher launcher, BuildListener listener) throws IOException, InterruptedException; +} diff --git a/core/src/main/java/hudson/tasks/BuildTrigger.java b/core/src/main/java/hudson/tasks/BuildTrigger.java index 38721bfcd5e9033b2834d8010c91540265f920e9..d53b1ba20ff2349062403d7ed67d339ac5c0d7b9 100644 --- a/core/src/main/java/hudson/tasks/BuildTrigger.java +++ b/core/src/main/java/hudson/tasks/BuildTrigger.java @@ -27,22 +27,23 @@ import hudson.Launcher; import hudson.Extension; import hudson.Util; import hudson.security.AccessControlled; -import hudson.matrix.MatrixAggregatable; -import hudson.matrix.MatrixAggregator; -import hudson.matrix.MatrixBuild; import hudson.model.AbstractBuild; import hudson.model.AbstractProject; +import hudson.model.Action; import hudson.model.BuildListener; import hudson.model.DependecyDeclarer; import hudson.model.DependencyGraph; +import hudson.model.DependencyGraph.Dependency; import hudson.model.Hudson; import hudson.model.Item; import hudson.model.Items; -import hudson.model.Job; import hudson.model.Project; import hudson.model.Result; +import hudson.model.Run; import hudson.model.Cause.UpstreamCause; +import hudson.model.TaskListener; import hudson.model.listeners.ItemListener; +import hudson.tasks.BuildTrigger.DescriptorImpl.ItemListenerImpl; import hudson.util.FormValidation; import net.sf.json.JSONObject; import org.kohsuke.stapler.DataBoundConstructor; @@ -50,12 +51,12 @@ import org.kohsuke.stapler.StaplerRequest; import org.kohsuke.stapler.AncestorInPath; import org.kohsuke.stapler.QueryParameter; -import javax.servlet.ServletException; import java.io.IOException; import java.io.PrintStream; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; +import java.util.Comparator; import java.util.List; import java.util.StringTokenizer; import java.util.logging.Level; @@ -76,7 +77,7 @@ import java.util.logging.Logger; * * @author Kohsuke Kawaguchi */ -public class BuildTrigger extends Recorder implements DependecyDeclarer, MatrixAggregatable { +public class BuildTrigger extends Recorder implements DependecyDeclarer { /** * Comma-separated list of other projects to be scheduled. @@ -104,6 +105,10 @@ public class BuildTrigger extends Recorder implements DependecyDeclarer, MatrixA } public BuildTrigger(List childProjects, Result threshold) { + this((Collection)childProjects,threshold); + } + + public BuildTrigger(Collection childProjects, Result threshold) { this(Items.toNameList(childProjects),threshold); } @@ -122,6 +127,10 @@ public class BuildTrigger extends Recorder implements DependecyDeclarer, MatrixA return Items.fromNameList(childProjects,AbstractProject.class); } + public BuildStepMonitor getRequiredMonitorService() { + return BuildStepMonitor.NONE; + } + /** * Checks if this trigger has the exact same set of children as the given list. */ @@ -130,10 +139,19 @@ public class BuildTrigger extends Recorder implements DependecyDeclarer, MatrixA return children.size()==projects.size() && children.containsAll(projects); } + @Override public boolean perform(AbstractBuild build, Launcher launcher, BuildListener listener) { return true; } + /** + * @deprecated since 1.341; use {@link #execute(AbstractBuild,BuildListener)} + */ + @Deprecated + public static boolean execute(AbstractBuild build, BuildListener listener, BuildTrigger trigger) { + return execute(build, listener); + } + /** * Convenience method to trigger downstream builds. * @@ -141,33 +159,34 @@ public class BuildTrigger extends Recorder implements DependecyDeclarer, MatrixA * The current build. Its downstreams will be triggered. * @param listener * Receives the progress report. - * @param trigger - * Optional {@link BuildTrigger} configured for the current build. - * If it is non-null, its configuration value will affect the triggering behavior. - * But even when this is null (meaning no user-defined downstream project is set up), - * there might be other dependencies defined by somebody else, so buidl would - * still have to call this method. */ - public static boolean execute(AbstractBuild build, BuildListener listener, BuildTrigger trigger) { - if(trigger==null || !build.getResult().isWorseThan(trigger.getThreshold())) { - PrintStream logger = listener.getLogger(); - //Trigger all downstream Project of the project, not just those defined by this buildtrigger - List downstreamProjects = - new ArrayList (build.getProject().getDownstreamProjects()); - - // Sort topologically - Collections.sort(downstreamProjects, - Collections.reverseOrder (Hudson.getInstance().getDependencyGraph())); - - for (AbstractProject p : downstreamProjects) { - if(p.isDisabled()) { - logger.println(Messages.BuildTrigger_Disabled(p.getName())); - continue; - } + public static boolean execute(AbstractBuild build, BuildListener listener) { + PrintStream logger = listener.getLogger(); + // Check all downstream Project of the project, not just those defined by BuildTrigger + final DependencyGraph graph = Hudson.getInstance().getDependencyGraph(); + List downstreamProjects = new ArrayList( + graph.getDownstreamDependencies(build.getProject())); + // Sort topologically + Collections.sort(downstreamProjects, new Comparator() { + public int compare(Dependency lhs, Dependency rhs) { + // Swapping lhs/rhs to get reverse sort: + return graph.compare(rhs.getDownstreamProject(), lhs.getDownstreamProject()); + } + }); + + for (Dependency dep : downstreamProjects) { + AbstractProject p = dep.getDownstreamProject(); + if (p.isDisabled()) { + logger.println(Messages.BuildTrigger_Disabled(p.getName())); + continue; + } + List buildActions = new ArrayList(); + if (dep.shouldTriggerBuild(build, listener, buildActions)) { // this is not completely accurate, as a new build might be triggered // between these calls String name = p.getName()+" #"+p.getNextBuildNumber(); - if(p.scheduleBuild(new UpstreamCause(build))) { + if(p.scheduleBuild(p.getQuietPeriod(), new UpstreamCause((Run)build), + buildActions.toArray(new Action[buildActions.size()]))) { logger.println(Messages.BuildTrigger_Triggering(name)); } else { logger.println(Messages.BuildTrigger_InQueue(name)); @@ -179,7 +198,14 @@ public class BuildTrigger extends Recorder implements DependecyDeclarer, MatrixA } public void buildDependencyGraph(AbstractProject owner, DependencyGraph graph) { - graph.addDependency(owner,getChildProjects()); + for (AbstractProject p : getChildProjects()) + graph.addDependency(new Dependency(owner, p) { + @Override + public boolean shouldTriggerBuild(AbstractBuild build, TaskListener listener, + List actions) { + return build.getResult().isBetterOrEqualTo(threshold); + } + }); } @Override @@ -187,20 +213,10 @@ public class BuildTrigger extends Recorder implements DependecyDeclarer, MatrixA return true; } - public MatrixAggregator createAggregator(MatrixBuild build, Launcher launcher, BuildListener listener) { - return new MatrixAggregator(build, launcher, listener) { - @Override - public boolean endBuild() throws InterruptedException, IOException { - return execute(build,listener,BuildTrigger.this); - } - }; - } - /** - * Called from {@link Job#renameTo(String)} when a job is renamed. + * Called from {@link ItemListenerImpl} when a job is renamed. * - * @return true - * if this {@link BuildTrigger} is changed and needs to be saved. + * @return true if this {@link BuildTrigger} is changed and needs to be saved. */ public boolean onJobRenamed(String oldName, String newName) { // quick test @@ -245,10 +261,12 @@ public class BuildTrigger extends Recorder implements DependecyDeclarer, MatrixA return Messages.BuildTrigger_DisplayName(); } + @Override public String getHelpFile() { return "/help/project-config/downstream.html"; } + @Override public Publisher newInstance(StaplerRequest req, JSONObject formData) throws FormException { return new BuildTrigger( formData.getString("childProjects"), diff --git a/core/src/main/java/hudson/tasks/BuildWrapper.java b/core/src/main/java/hudson/tasks/BuildWrapper.java index d53c1909014838e277786f3d96e270e105b1330b..9a791d95c08e3498507d59b5bd9fb79d11cd4820 100644 --- a/core/src/main/java/hudson/tasks/BuildWrapper.java +++ b/core/src/main/java/hudson/tasks/BuildWrapper.java @@ -1,7 +1,7 @@ /* * The MIT License * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi + * Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Yahoo! Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -26,20 +26,16 @@ package hudson.tasks; import hudson.ExtensionPoint; import hudson.Launcher; import hudson.DescriptorExtensionList; -import hudson.FileSystemProvisionerDescriptor; import hudson.LauncherDecorator; -import hudson.model.AbstractBuild; -import hudson.model.Build; -import hudson.model.BuildListener; -import hudson.model.Describable; -import hudson.model.Project; -import hudson.model.Action; -import hudson.model.AbstractProject; -import hudson.model.Hudson; -import hudson.model.Descriptor; +import hudson.model.*; import hudson.model.Run.RunnerAbortedException; import java.io.IOException; +import java.io.OutputStream; +import java.util.Collection; +import java.util.Collections; +import java.util.Map; +import java.util.Set; /** * Pluggability point for performing pre/post actions for the build process. @@ -59,7 +55,7 @@ import java.io.IOException; * * @author Kohsuke Kawaguchi */ -public abstract class BuildWrapper implements ExtensionPoint, Describable { +public abstract class BuildWrapper extends AbstractDescribableImpl implements ExtensionPoint { /** * Represents the environment set up by {@link BuildWrapper#setUp(Build,Launcher,BuildListener)}. * @@ -75,7 +71,9 @@ public abstract class BuildWrapper implements ExtensionPoint, Describable - * The default implementation is no-op, which just returns the {@code listener} parameter as-is. + * The default implementation is no-op, which just returns the {@code launcher} parameter as-is. * * @param build * The build in progress for which this {@link BuildWrapper} is called. Never null. @@ -175,6 +175,32 @@ public abstract class BuildWrapper implements ExtensionPoint, Describable + * This hook is called very early on in the build (even before {@link #setUp(AbstractBuild, Launcher, BuildListener)} is invoked.) + * + *

    + * The default implementation is no-op, which just returns the {@code logger} parameter as-is. + * + * @param build + * The build in progress for which this {@link BuildWrapper} is called. Never null. + * @param logger + * The default logger. Never null. This method is expected to wrap this logger. + * This makes sure that when multiple {@link BuildWrapper}s attempt to decorate the same logger + * it will sort of work. + * @return + * Must not be null. If a fatal error happens, throw an exception. + * @throws RunnerAbortedException + * If a fatal error is detected but the implementation handled it gracefully, throw this exception + * to suppress stack trace. + * @since 1.374 + */ + public OutputStream decorateLogger(AbstractBuild build, OutputStream logger) throws IOException, InterruptedException, RunnerAbortedException { + return logger; + } + /** * {@link Action} to be displayed in the job page. * @@ -183,22 +209,67 @@ public abstract class BuildWrapper implements ExtensionPoint, Describable getDescriptor() { - return (Descriptor) Hudson.getInstance().getDescriptor(getClass()); + /** + * {@link Action}s to be displayed in the job page. + * + * @param job + * This object owns the {@link BuildWrapper}. The returned action will be added to this object. + * @return + * can be empty but never null + * @since 1.341 + */ + public Collection getProjectActions(AbstractProject job) { + // delegate to getJobAction (singular) for backward compatible behavior + Action a = getProjectAction(job); + if (a==null) return Collections.emptyList(); + return Collections.singletonList(a); + } + /** + * Called to define {@linkplain AbstractBuild#getBuildVariables()}. + * + * This provides an opportunity for a BuildWrapper to append any additional + * build variables defined for the current build. + * + * @param build + * The build in progress for which this {@link BuildWrapper} is called. Never null. + * @param variables + * Contains existing build variables. Add additional build variables that you contribute + * to this map. + */ + public void makeBuildVariables(AbstractBuild build, Map variables) { + // noop } + /** + * Called to define sensitive build variables. This provides an opportunity + * for a BuildWrapper to denote the names of variables that are sensitive in + * nature and should not be exposed in output. + * + * @param build + * The build in progress for which this {@link BuildWrapper} is called. Never null. + * @param sensitiveVariables + * Contains names of sensitive build variables. Names of sensitive variables + * that were added with {@link #makeBuildVariables(hudson.model.AbstractBuild, java.util.Map)} + * @since 1.378 + */ + public void makeSensitiveBuildVariables(AbstractBuild build, Set sensitiveVariables) { + // noop + } + /** * Returns all the registered {@link BuildWrapper} descriptors. */ // for compatibility we can't use BuildWrapperDescriptor public static DescriptorExtensionList> all() { // use getDescriptorList and not getExtensionList to pick up legacy instances - return Hudson.getInstance().getDescriptorList(BuildWrapper.class); + return Hudson.getInstance().>getDescriptorList(BuildWrapper.class); } } diff --git a/core/src/main/java/hudson/tasks/Builder.java b/core/src/main/java/hudson/tasks/Builder.java index 0f06d043971e5fd729413c5076edea282e1a6f67..323c8b2f42165b1cd7fc3a5c410e7d4b0e9cf8f0 100644 --- a/core/src/main/java/hudson/tasks/Builder.java +++ b/core/src/main/java/hudson/tasks/Builder.java @@ -26,14 +26,13 @@ package hudson.tasks; import hudson.ExtensionPoint; import hudson.Extension; import hudson.DescriptorExtensionList; -import hudson.model.Action; import hudson.model.Build; import hudson.model.BuildListener; import hudson.model.Describable; -import hudson.model.Project; import hudson.model.Descriptor; import hudson.model.Hudson; + /** * {@link BuildStep}s that perform the actual build. * @@ -57,14 +56,15 @@ public abstract class Builder extends BuildStepCompatibilityLayer implements Bui } /** - * Default implementation that does nothing. + * Returns {@link BuildStepMonitor#NONE} by default, as {@link Builder}s normally don't depend + * on its previous result. */ - public Action getProjectAction(Project project) { - return null; + public BuildStepMonitor getRequiredMonitorService() { + return BuildStepMonitor.NONE; } public Descriptor getDescriptor() { - return Hudson.getInstance().getDescriptor(getClass()); + return Hudson.getInstance().getDescriptorOrDie(getClass()); } /** @@ -72,6 +72,6 @@ public abstract class Builder extends BuildStepCompatibilityLayer implements Bui */ // for backward compatibility, the signature is not BuildStepDescriptor public static DescriptorExtensionList> all() { - return Hudson.getInstance().getDescriptorList(Builder.class); + return Hudson.getInstance().>getDescriptorList(Builder.class); } } diff --git a/core/src/main/java/hudson/tasks/CommandInterpreter.java b/core/src/main/java/hudson/tasks/CommandInterpreter.java index e522690889bc1edd3905fb3d39762315c7b08736..c1e9e200906c5775a55bdd784aebe688a30658e8 100644 --- a/core/src/main/java/hudson/tasks/CommandInterpreter.java +++ b/core/src/main/java/hudson/tasks/CommandInterpreter.java @@ -28,7 +28,6 @@ import hudson.Launcher; import hudson.Util; import hudson.EnvVars; import hudson.model.AbstractBuild; -import hudson.model.AbstractProject; import hudson.model.BuildListener; import hudson.model.TaskListener; @@ -54,25 +53,23 @@ public abstract class CommandInterpreter extends Builder { return command; } + @Override public boolean perform(AbstractBuild build, Launcher launcher, BuildListener listener) throws InterruptedException { return perform(build,launcher,(TaskListener)listener); } public boolean perform(AbstractBuild build, Launcher launcher, TaskListener listener) throws InterruptedException { - AbstractProject proj = build.getProject(); - FilePath ws = proj.getWorkspace(); + FilePath ws = build.getWorkspace(); FilePath script=null; try { try { - script = ws.createTextTempFile("hudson", getFileExtension(), getContents(), false); + script = createScriptFile(ws); } catch (IOException e) { Util.displayIOException(e,listener); e.printStackTrace(listener.fatalError(Messages.CommandInterpreter_UnableToProduceScript())); return false; } - String[] cmd = buildCommandLine(script); - int r; try { EnvVars envVars = build.getEnvironment(listener); @@ -81,7 +78,8 @@ public abstract class CommandInterpreter extends Builder { // convert variables to all upper cases. for(Map.Entry e : build.getBuildVariables().entrySet()) envVars.put(e.getKey(),e.getValue()); - r = launcher.launch(cmd,envVars,listener.getLogger(),ws).join(); + + r = launcher.launch().cmds(buildCommandLine(script)).envs(envVars).stdout(listener).pwd(ws).join(); } catch (IOException e) { Util.displayIOException(e,listener); e.printStackTrace(listener.fatalError(Messages.CommandInterpreter_CommandFailed())); @@ -99,7 +97,14 @@ public abstract class CommandInterpreter extends Builder { } } - protected abstract String[] buildCommandLine(FilePath script); + /** + * Creates a script file in a temporary name in the specified directory. + */ + public FilePath createScriptFile(FilePath dir) throws IOException, InterruptedException { + return dir.createTextTempFile("hudson", getFileExtension(), getContents(), false); + } + + public abstract String[] buildCommandLine(FilePath script); protected abstract String getContents(); diff --git a/core/src/main/java/hudson/tasks/DynamicLabeler.java b/core/src/main/java/hudson/tasks/DynamicLabeler.java deleted file mode 100644 index 38babc048931096d77dff45b9ca6c5e68115aad4..0000000000000000000000000000000000000000 --- a/core/src/main/java/hudson/tasks/DynamicLabeler.java +++ /dev/null @@ -1,49 +0,0 @@ -/* - * The MIT License - * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Stephen Connolly - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ -package hudson.tasks; - -import hudson.ExtensionPoint; -import hudson.remoting.VirtualChannel; - -import java.util.Collections; -import java.util.Set; - -/** - * Created by IntelliJ IDEA. - * - * @author connollys - * @since 25-May-2007 14:30:15 - */ -public abstract class DynamicLabeler implements LabelFinder, ExtensionPoint { - /** - * Find the labels that the node supports. - * - * @param channel - * Connection that represents the node. - * @return a set of labels. - */ - public Set findLabels(VirtualChannel channel) { - return Collections.emptySet(); - } -} diff --git a/core/src/main/java/hudson/tasks/Fingerprinter.java b/core/src/main/java/hudson/tasks/Fingerprinter.java index 8203807eac3ae510b30aa049ef714a26a666ff01..3a1589246440a81d5feef834bd54bc1fa7461220 100644 --- a/core/src/main/java/hudson/tasks/Fingerprinter.java +++ b/core/src/main/java/hudson/tasks/Fingerprinter.java @@ -1,7 +1,7 @@ /* * The MIT License * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi + * Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -23,6 +23,7 @@ */ package hudson.tasks; +import com.google.common.collect.ImmutableMap; import hudson.Extension; import hudson.FilePath; import hudson.FilePath.FileCallable; @@ -30,7 +31,6 @@ import hudson.Launcher; import hudson.Util; import hudson.model.AbstractBuild; import hudson.model.AbstractProject; -import hudson.model.Action; import hudson.model.Build; import hudson.model.BuildListener; import hudson.model.Fingerprint; @@ -38,12 +38,16 @@ import hudson.model.Fingerprint.BuildPtr; import hudson.model.FingerprintMap; import hudson.model.Hudson; import hudson.model.Result; +import hudson.model.Run; +import hudson.model.RunAction; import hudson.remoting.VirtualChannel; import hudson.util.FormValidation; import hudson.util.IOException2; +import net.sf.json.JSONObject; import org.apache.tools.ant.DirectoryScanner; import org.apache.tools.ant.types.FileSet; import org.kohsuke.stapler.AncestorInPath; +import org.kohsuke.stapler.DataBoundConstructor; import org.kohsuke.stapler.QueryParameter; import org.kohsuke.stapler.StaplerRequest; @@ -52,7 +56,6 @@ import java.io.IOException; import java.io.Serializable; import java.lang.ref.WeakReference; import java.util.ArrayList; -import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -78,6 +81,7 @@ public class Fingerprinter extends Recorder implements Serializable { */ private final boolean recordBuildArtifacts; + @DataBoundConstructor public Fingerprinter(String targets, boolean recordBuildArtifacts) { this.targets = targets; this.recordBuildArtifacts = recordBuildArtifacts; @@ -91,6 +95,7 @@ public class Fingerprinter extends Recorder implements Serializable { return recordBuildArtifacts; } + @Override public boolean perform(AbstractBuild build, Launcher launcher, BuildListener listener) throws InterruptedException { try { listener.getLogger().println(Messages.Fingerprinter_Recording()); @@ -101,8 +106,8 @@ public class Fingerprinter extends Recorder implements Serializable { if(targets.length()!=0) record(build, listener, record, targets); - if(recordBuildArtifacts && build instanceof Build) { - ArtifactArchiver aa = ((Build)build).getProject().getPublishersList().get(ArtifactArchiver.class); + if(recordBuildArtifacts) { + ArtifactArchiver aa = build.getProject().getPublishersList().get(ArtifactArchiver.class); if(aa==null) { // configuration error listener.error(Messages.Fingerprinter_NoArchiving()); @@ -123,6 +128,10 @@ public class Fingerprinter extends Recorder implements Serializable { return true; } + public BuildStepMonitor getRequiredMonitorService() { + return BuildStepMonitor.NONE; + } + private void record(AbstractBuild build, BuildListener listener, Map record, final String targets) throws IOException, InterruptedException { final class Record implements Serializable { final boolean produced; @@ -145,10 +154,9 @@ public class Fingerprinter extends Recorder implements Serializable { private static final long serialVersionUID = 1L; } - AbstractProject p = build.getProject(); - final long buildTimestamp = build.getTimestamp().getTimeInMillis(); + final long buildTimestamp = build.getTimeInMillis(); - FilePath ws = p.getWorkspace(); + FilePath ws = build.getWorkspace(); if(ws==null) { listener.error(Messages.Fingerprinter_NoWorkspace()); build.setResult(Result.FAILURE); @@ -200,6 +208,7 @@ public class Fingerprinter extends Recorder implements Serializable { return Messages.Fingerprinter_DisplayName(); } + @Override public String getHelpFile() { return "/help/project-config/fingerprint.html"; } @@ -208,13 +217,12 @@ public class Fingerprinter extends Recorder implements Serializable { * Performs on-the-fly validation on the file mask wildcard. */ public FormValidation doCheck(@AncestorInPath AbstractProject project, @QueryParameter String value) throws IOException { - return FilePath.validateFileMask(project.getWorkspace(),value); + return FilePath.validateFileMask(project.getSomeWorkspace(),value); } - public Publisher newInstance(StaplerRequest req) { - return new Fingerprinter( - req.getParameter("fingerprint_targets").trim(), - req.getParameter("fingerprint_artifacts")!=null); + @Override + public Publisher newInstance(StaplerRequest req, JSONObject formData) { + return req.bindJSON(Fingerprinter.class, formData); } public boolean isApplicable(Class jobType) { @@ -225,19 +233,28 @@ public class Fingerprinter extends Recorder implements Serializable { /** * Action for displaying fingerprints. */ - public static final class FingerprintAction implements Action { + public static final class FingerprintAction implements RunAction { private final AbstractBuild build; /** * From file name to the digest. */ - private final Map record; + private /*almost final*/ ImmutableMap record; private transient WeakReference> ref; public FingerprintAction(AbstractBuild build, Map record) { this.build = build; - this.record = record; + this.record = ImmutableMap.copyOf(record); + onLoad(); // make compact + } + + public void add(Map moreRecords) { + Map r = new HashMap(record); + r.putAll(moreRecords); + record = ImmutableMap.copyOf(r); + ref = null; + onLoad(); } public String getIconFileName() { @@ -260,7 +277,46 @@ public class Fingerprinter extends Recorder implements Serializable { * Obtains the raw data. */ public Map getRecords() { - return Collections.unmodifiableMap(record); + return record; + } + + public void onLoad() { + Run pb = build.getPreviousBuild(); + if (pb!=null) { + FingerprintAction a = pb.getAction(FingerprintAction.class); + if (a!=null) + compact(a); + } + } + + public void onAttached(Run r) { + } + + public void onBuildComplete() { + } + + /** + * Reuse string instances from another {@link FingerprintAction} to reduce memory footprint. + */ + protected void compact(FingerprintAction a) { + Map intern = new HashMap(); // string intern map + for (Entry e : a.record.entrySet()) { + intern.put(e.getKey(),e.getKey()); + intern.put(e.getValue(),e.getValue()); + } + + Map b = new HashMap(); + for (Entry e : record.entrySet()) { + String k = intern.get(e.getKey()); + if (k==null) k = e.getKey(); + + String v = intern.get(e.getValue()); + if (v==null) v = e.getValue(); + + b.put(k,v); + } + + record = ImmutableMap.copyOf(b); } /** @@ -286,7 +342,7 @@ public class Fingerprinter extends Recorder implements Serializable { } } - m = Collections.unmodifiableMap(m); + m = ImmutableMap.copyOf(m); ref = new WeakReference>(m); return m; } @@ -303,7 +359,8 @@ public class Fingerprinter extends Recorder implements Serializable { if(bp==null) continue; // outside Hudson if(bp.is(build)) continue; // we are the owner AbstractProject job = bp.getJob(); - if(job!=null && job.getParent()==build.getParent()) + if (job==null) continue; // no longer exists + if (job.getParent()==build.getParent()) continue; // we are the parent of the build owner, that is almost like we are the owner Integer existing = r.get(job); diff --git a/core/src/main/java/hudson/tasks/JavadocArchiver.java b/core/src/main/java/hudson/tasks/JavadocArchiver.java index 1b3e66a62368f86e05607d28fe51308d001492ee..00f041e575b265f9725694946956e40951ab64af 100644 --- a/core/src/main/java/hudson/tasks/JavadocArchiver.java +++ b/core/src/main/java/hudson/tasks/JavadocArchiver.java @@ -27,6 +27,7 @@ import hudson.FilePath; import hudson.Launcher; import hudson.Util; import hudson.Extension; +import hudson.EnvVars; import hudson.model.*; import hudson.util.FormValidation; @@ -39,6 +40,8 @@ import org.kohsuke.stapler.AncestorInPath; import javax.servlet.ServletException; import java.io.File; import java.io.IOException; +import java.util.Collection; +import java.util.Collections; /** * Saves Javadoc for the project and publish them. @@ -83,10 +86,12 @@ public class JavadocArchiver extends Recorder { return new File(run.getRootDir(),"javadoc"); } - public boolean perform(AbstractBuild build, Launcher launcher, BuildListener listener) throws InterruptedException { + public boolean perform(AbstractBuild build, Launcher launcher, BuildListener listener) throws InterruptedException, IOException { listener.getLogger().println(Messages.JavadocArchiver_Publishing()); - FilePath javadoc = build.getParent().getWorkspace().child(javadocDir); + EnvVars env = build.getEnvironment(listener); + + FilePath javadoc = build.getWorkspace().child(env.expand(javadocDir)); FilePath target = new FilePath(keepAll ? getJavadocDir(build) : getJavadocDir(build.getProject())); try { @@ -113,10 +118,15 @@ public class JavadocArchiver extends Recorder { return true; } - public Action getProjectAction(AbstractProject project) { - return new JavadocAction(project); + @Override + public Collection getProjectActions(AbstractProject project) { + return Collections.singleton(new JavadocAction(project)); } + public BuildStepMonitor getRequiredMonitorService() { + return BuildStepMonitor.NONE; + } + protected static abstract class BaseJavadocAction implements Action { public String getUrlName() { return "javadoc"; @@ -205,7 +215,8 @@ public class JavadocArchiver extends Recorder { * Performs on-the-fly validation on the file mask wildcard. */ public FormValidation doCheck(@AncestorInPath AbstractProject project, @QueryParameter String value) throws IOException, ServletException { - return project.getWorkspace().validateRelativeDirectory(value); + FilePath ws = project.getSomeWorkspace(); + return ws != null ? ws.validateRelativeDirectory(value) : FormValidation.ok(); } public boolean isApplicable(Class jobType) { diff --git a/core/src/main/java/hudson/tasks/LabelFinder.java b/core/src/main/java/hudson/tasks/LabelFinder.java deleted file mode 100644 index ef30efdb2aa8ea3820771ebb525001771787fb96..0000000000000000000000000000000000000000 --- a/core/src/main/java/hudson/tasks/LabelFinder.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * The MIT License - * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Stephen Connolly - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ -package hudson.tasks; - -import hudson.ExtensionListView; -import hudson.remoting.VirtualChannel; - -import java.util.List; -import java.util.Set; - -/** - * Support for autoconfiguration of nodes. - * - * @author Stephen Connolly - */ -public interface LabelFinder { - - public static final List LABELERS = ExtensionListView.createList(DynamicLabeler.class); - - /** - * Find the labels that the node supports. - * @param node The Node - * @return a set of labels. - */ - Set findLabels(VirtualChannel channel); -} diff --git a/core/src/main/java/hudson/tasks/LogRotator.java b/core/src/main/java/hudson/tasks/LogRotator.java index f2a01a43fa98b9acdaf3ac069088addf3b899329..044cfb05288ad2d47e8fafe70c9c492ca8f1d80b 100644 --- a/core/src/main/java/hudson/tasks/LogRotator.java +++ b/core/src/main/java/hudson/tasks/LogRotator.java @@ -34,6 +34,11 @@ import org.kohsuke.stapler.DataBoundConstructor; import java.io.IOException; import java.util.Calendar; import java.util.GregorianCalendar; +import static java.util.logging.Level.FINE; +import static java.util.logging.Level.FINER; + +import java.util.List; +import java.util.logging.Logger; /** * Deletes old log files. @@ -54,10 +59,25 @@ public class LogRotator implements Describable { * If not -1, only this number of build logs are kept. */ private final int numToKeep; - + + /** + * If not -1 nor null, artifacts are only kept up to this days. + * Null handling is necessary to remain data compatible with old versions. + * @since 1.350 + */ + private final Integer artifactDaysToKeep; + + /** + * If not -1 nor null, only this number of builds have their artifacts kept. + * Null handling is necessary to remain data compatible with old versions. + * @since 1.350 + */ + private final Integer artifactNumToKeep; + @DataBoundConstructor - public LogRotator (String logrotate_days, String logrotate_nums) { - this (parse(logrotate_days),parse(logrotate_nums)); + public LogRotator (String logrotate_days, String logrotate_nums, String logrotate_artifact_days, String logrotate_artifact_nums) { + this (parse(logrotate_days),parse(logrotate_nums), + parse(logrotate_artifact_days),parse(logrotate_artifact_nums)); } public static int parse(String p) { @@ -69,22 +89,46 @@ public class LogRotator implements Describable { } } - + /** + * @deprecated since 1.350. + * Use {@link #LogRotator(int, int, int, int)} + */ public LogRotator(int daysToKeep, int numToKeep) { + this(daysToKeep, numToKeep, -1, -1); + } + + public LogRotator(int daysToKeep, int numToKeep, int artifactDaysToKeep, int artifactNumToKeep) { this.daysToKeep = daysToKeep; this.numToKeep = numToKeep; + this.artifactDaysToKeep = artifactDaysToKeep; + this.artifactNumToKeep = artifactNumToKeep; + } public void perform(Job job) throws IOException, InterruptedException { + LOGGER.log(FINE,"Running the log rotation for "+job.getFullDisplayName()); + // keep the last successful build regardless of the status Run lsb = job.getLastSuccessfulBuild(); Run lstb = job.getLastStableBuild(); if(numToKeep!=-1) { - Run[] builds = job.getBuilds().toArray(new Run[0]); - for( int i=numToKeep; i> builds = job.getBuilds(); + for (Run r : builds.subList(Math.min(builds.size(),numToKeep),builds.size())) { + if (r.isKeepLog()) { + LOGGER.log(FINER,r.getFullDisplayName()+" is not GC-ed because it's marked as a keeper"); + continue; + } + if (r==lsb) { + LOGGER.log(FINER,r.getFullDisplayName()+" is not GC-ed because it's the last successful build"); + continue; + } + if (r==lstb) { + LOGGER.log(FINER,r.getFullDisplayName()+" is not GC-ed because it's the last stable build"); + continue; + } + LOGGER.log(FINER,r.getFullDisplayName()+" is to be removed"); + r.delete(); } } @@ -92,11 +136,72 @@ public class LogRotator implements Describable { Calendar cal = new GregorianCalendar(); cal.add(Calendar.DAY_OF_YEAR,-daysToKeep); // copy it to the array because we'll be deleting builds as we go. - for( Run r : job.getBuilds().toArray(new Run[0]) ) { - if(r.getTimestamp().before(cal) && !r.isKeepLog() && r!=lsb && r!=lstb) - r.delete(); + for( Run r : job.getBuilds() ) { + if (r.isKeepLog()) { + LOGGER.log(FINER,r.getFullDisplayName()+" is not GC-ed because it's marked as a keeper"); + continue; + } + if (r==lsb) { + LOGGER.log(FINER,r.getFullDisplayName()+" is not GC-ed because it's the last successful build"); + continue; + } + if (r==lstb) { + LOGGER.log(FINER,r.getFullDisplayName()+" is not GC-ed because it's the last stable build"); + continue; + } + if (!r.getTimestamp().before(cal)) { + LOGGER.log(FINER,r.getFullDisplayName()+" is not GC-ed because it's still new"); + continue; + } + LOGGER.log(FINER,r.getFullDisplayName()+" is to be removed"); + r.delete(); + } + } + + if(artifactNumToKeep!=null && artifactNumToKeep!=-1) { + List> builds = job.getBuilds(); + for (Run r : builds.subList(Math.min(builds.size(),artifactNumToKeep),builds.size())) { + if (r.isKeepLog()) { + LOGGER.log(FINER,r.getFullDisplayName()+" is not purged of artifacts because it's marked as a keeper"); + continue; + } + if (r==lsb) { + LOGGER.log(FINER,r.getFullDisplayName()+" is not purged of artifacts because it's the last successful build"); + continue; + } + if (r==lstb) { + LOGGER.log(FINER,r.getFullDisplayName()+" is not purged of artifacts because it's the last stable build"); + continue; + } + r.deleteArtifacts(); + } + } + + if(artifactDaysToKeep!=null && artifactDaysToKeep!=-1) { + Calendar cal = new GregorianCalendar(); + cal.add(Calendar.DAY_OF_YEAR,-artifactDaysToKeep); + // copy it to the array because we'll be deleting builds as we go. + for( Run r : job.getBuilds() ) { + if (r.isKeepLog()) { + LOGGER.log(FINER,r.getFullDisplayName()+" is not purged of artifacts because it's marked as a keeper"); + continue; + } + if (r==lsb) { + LOGGER.log(FINER,r.getFullDisplayName()+" is not purged of artifacts because it's the last successful build"); + continue; + } + if (r==lstb) { + LOGGER.log(FINER,r.getFullDisplayName()+" is not purged of artifacts because it's the last stable build"); + continue; + } + if (!r.getTimestamp().before(cal)) { + LOGGER.log(FINER,r.getFullDisplayName()+" is not purged of artifacts because it's still new"); + continue; + } + r.deleteArtifacts(); } } + } public int getDaysToKeep() { @@ -107,16 +212,40 @@ public class LogRotator implements Describable { return numToKeep; } + public int getArtifactDaysToKeep() { + return unbox(artifactDaysToKeep); + } + + public int getArtifactNumToKeep() { + return unbox(artifactNumToKeep); + } + public String getDaysToKeepStr() { - if(daysToKeep==-1) return ""; - else return String.valueOf(daysToKeep); + return toString(daysToKeep); } public String getNumToKeepStr() { - if(numToKeep==-1) return ""; - else return String.valueOf(numToKeep); + return toString(numToKeep); + } + + public String getArtifactDaysToKeepStr() { + return toString(artifactDaysToKeep); } + public String getArtifactNumToKeepStr() { + return toString(artifactNumToKeep); + } + + private int unbox(Integer i) { + return i==null ? -1: i; + } + + private String toString(Integer i) { + if (i==null || i==-1) return ""; + return String.valueOf(i); + } + + public LRDescriptor getDescriptor() { return DESCRIPTOR; } @@ -126,6 +255,8 @@ public class LogRotator implements Describable { public static final class LRDescriptor extends Descriptor { public String getDisplayName() { return "Log Rotation"; - } + } } + + private static final Logger LOGGER = Logger.getLogger(LogRotator.class.getName()); } diff --git a/core/src/main/java/hudson/tasks/MailAddressResolver.java b/core/src/main/java/hudson/tasks/MailAddressResolver.java index 7e1a9ed107d84eb27e4624299a7f2ded83f7027b..9ef5103a8b31885da2d21adb223f20da14d28243 100644 --- a/core/src/main/java/hudson/tasks/MailAddressResolver.java +++ b/core/src/main/java/hudson/tasks/MailAddressResolver.java @@ -27,16 +27,13 @@ import hudson.Extension; import hudson.ExtensionList; import hudson.ExtensionListView; import hudson.ExtensionPoint; -import hudson.model.AbstractProject; import hudson.model.Hudson; import hudson.model.User; -import hudson.scm.CVSSCM; +import hudson.model.UserProperty; import hudson.scm.SCM; -import hudson.scm.SubversionSCM; -import java.util.HashMap; import java.util.List; -import java.util.Map; +import java.util.logging.Logger; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -54,6 +51,17 @@ import java.util.regex.Pattern; * } * * + *

    Techniques

    + *

    + * User identity in Hudson is global, and not specific to a particular job. As a result, mail address resolution + * only receives {@link User}, which by itself doesn't really have that much information in it. + * + *

    + * So the common technique for a mail address resolution is to define your own {@link UserProperty} types and + * add it to {@link User} objects where more context is available. For example, an {@link SCM} implementation + * can have a lot more information about a particular user during a check out, so that would be a good place + * to capture information as {@link UserProperty}, which then later used by a {@link MailAddressResolver}. + * * @author Kohsuke Kawaguchi * @since 1.192 */ @@ -83,24 +91,35 @@ public abstract class MailAddressResolver implements ExtensionPoint { public abstract String findMailAddressFor(User u); public static String resolve(User u) { + LOGGER.fine("Resolving e-mail address for \""+u+"\" ID="+u.getId()); + for (MailAddressResolver r : all()) { String email = r.findMailAddressFor(u); - if(email!=null) return email; + if(email!=null) { + LOGGER.fine(r+" resolved "+u.getId()+" to "+email); + return email; + } } // fall back logic - String extractedAddress = extractAddressFromId(u.getId()); + String extractedAddress = extractAddressFromId(u.getFullName()); if (extractedAddress != null) - return extractedAddress; + return extractedAddress; - if(u.getId().contains("@")) + if(u.getFullName().contains("@")) // this already looks like an e-mail ID - return u.getId(); + return u.getFullName(); String ds = Mailer.descriptor().getDefaultSuffix(); - if(ds!=null) + if(ds!=null) { + // another common pattern is "DOMAIN\person" in Windows. Only + // do this when this full name is not manually set. see HUDSON-5164 + Matcher m = WINDOWS_DOMAIN_REGEXP.matcher(u.getFullName()); + if (m.matches() && u.getFullName().replace('\\','_').equals(u.getId())) + return m.group(1)+ds; // user+defaultSuffix + return u.getId()+ds; - else + } else return null; } @@ -120,6 +139,10 @@ public abstract class MailAddressResolver implements ExtensionPoint { */ private static final Pattern EMAIL_ADDRESS_REGEXP = Pattern.compile("^.*<([^>]+)>.*$"); + /** + * Matches something like "DOMAIN\person" + */ + private static final Pattern WINDOWS_DOMAIN_REGEXP = Pattern.compile("[^\\\\ ]+\\\\([^\\\\ ]+)"); /** * All registered {@link MailAddressResolver} implementations. @@ -136,73 +159,5 @@ public abstract class MailAddressResolver implements ExtensionPoint { return Hudson.getInstance().getExtensionList(MailAddressResolver.class); } - /** - * {@link MailAddressResolver} implemenations that cover well-known major public sites. - * - *

    - * Since this has low UI visibility, we are open to having a large number of rules here. - * If you'd like to add one, please contribute more rules. - */ - @Extension - public static class DefaultAddressResolver extends MailAddressResolver { - public String findMailAddressFor(User u) { - for (AbstractProject p : u.getProjects()) { - SCM scm = p.getScm(); - if (scm instanceof CVSSCM) { - CVSSCM cvsscm = (CVSSCM) scm; - - String s = findMailAddressFor(u,cvsscm.getCvsRoot()); - if(s!=null) return s; - } - if (scm instanceof SubversionSCM) { - SubversionSCM svn = (SubversionSCM) scm; - for (SubversionSCM.ModuleLocation loc : svn.getLocations(p.getLastBuild())) { - String s = findMailAddressFor(u,loc.remote); - if(s!=null) return s; - } - } - } - - // didn't hit any known rules - return null; - } - - /** - * - * @param scm - * String that represents SCM connectivity. - */ - protected String findMailAddressFor(User u, String scm) { - for (Map.Entry e : RULE_TABLE.entrySet()) - if(e.getKey().matcher(scm).matches()) - return u.getId()+e.getValue(); - return null; - } - - private static final Map RULE_TABLE = new HashMap(); - - static { - {// java.net - Pattern svnurl = Pattern.compile("https://[^.]+.dev.java.net/svn/([^/]+)(/.*)?"); - - String username = "([A-Za-z0-9_\\-])+"; - String host = "(.*.dev.java.net|kohsuke.sfbay.*)"; - Pattern cvsUrl = Pattern.compile(":pserver:"+username+"@"+host+":/cvs"); - - RULE_TABLE.put(svnurl,"@dev.java.net"); - RULE_TABLE.put(cvsUrl,"@dev.java.net"); - } - - {// source forge - Pattern svnUrl = Pattern.compile("(http|https)://[^.]+.svn.(sourceforge|sf).net/svnroot/([^/]+)(/.*)?"); - Pattern cvsUrl = Pattern.compile(":(pserver|ext):([^@]+)@([^.]+).cvs.(sourceforge|sf).net:.+"); - - RULE_TABLE.put(svnUrl,"@users.sourceforge.net"); - RULE_TABLE.put(cvsUrl,"@users.sourceforge.net"); - } - - // TODO: read some file under $HUDSON_HOME? - } - - } + private static final Logger LOGGER = Logger.getLogger(MailAddressResolver.class.getName()); } diff --git a/core/src/main/java/hudson/tasks/MailSender.java b/core/src/main/java/hudson/tasks/MailSender.java index 48017093d2e880bf32651ab4a6d97724bfda97d6..770aa47c2888c964286cd209a375828bb9f0c8bd 100644 --- a/core/src/main/java/hudson/tasks/MailSender.java +++ b/core/src/main/java/hudson/tasks/MailSender.java @@ -1,7 +1,8 @@ /* * The MIT License * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Bruce Chapman, Daniel Dyer, Jean-Baptiste Quenot + * Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, + * Bruce Chapman, Daniel Dyer, Jean-Baptiste Quenot * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -38,13 +39,7 @@ import javax.mail.internet.MimeMessage; import javax.mail.internet.AddressException; import java.io.File; import java.io.IOException; -import java.util.Date; -import java.util.LinkedHashSet; -import java.util.List; -import java.util.Set; -import java.util.StringTokenizer; -import java.util.HashSet; -import java.util.logging.Logger; +import java.util.*; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -59,6 +54,8 @@ public class MailSender { * Whitespace-separated list of e-mail addresses that represent recipients. */ private String recipients; + + private List includeUpstreamCommitters = new ArrayList(); /** * If true, only the first unstable build will be reported. @@ -69,12 +66,27 @@ public class MailSender { * If true, individuals will receive e-mails regarding who broke the build. */ private boolean sendToIndividuals; + + /** + * The charset to use for the text and subject. + */ + private String charset; public MailSender(String recipients, boolean dontNotifyEveryUnstableBuild, boolean sendToIndividuals) { + this(recipients, dontNotifyEveryUnstableBuild, sendToIndividuals, "UTF-8"); + } + + public MailSender(String recipients, boolean dontNotifyEveryUnstableBuild, boolean sendToIndividuals, String charset) { + this(recipients,dontNotifyEveryUnstableBuild,sendToIndividuals,charset, Collections.emptyList()); + } + + public MailSender(String recipients, boolean dontNotifyEveryUnstableBuild, boolean sendToIndividuals, String charset, Collection includeUpstreamCommitters) { this.recipients = recipients; this.dontNotifyEveryUnstableBuild = dontNotifyEveryUnstableBuild; this.sendToIndividuals = sendToIndividuals; + this.charset = charset; + this.includeUpstreamCommitters.addAll(includeUpstreamCommitters); } public boolean execute(AbstractBuild build, BuildListener listener) throws InterruptedException { @@ -91,7 +103,7 @@ public class MailSender { Address[] allRecipients = mail.getAllRecipients(); if (allRecipients != null) { - StringBuffer buf = new StringBuffer("Sending e-mails to:"); + StringBuilder buf = new StringBuilder("Sending e-mails to:"); for (Address a : allRecipients) buf.append(' ').append(a); listener.getLogger().println(buf); @@ -104,34 +116,50 @@ public class MailSender { } } catch (MessagingException e) { e.printStackTrace(listener.error(e.getMessage())); + } finally { + CHECKPOINT.report(); } return true; } + /** + * To correctly compute the state change from the previous build to this build, + * we need to ignore aborted builds. + * See http://www.nabble.com/Losing-build-state-after-aborts--td24335949.html + * + *

    + * And since we are consulting the earlier result, we need to wait for the previous build + * to pass the check point. + */ + private Result findPreviousBuildResult(AbstractBuild b) throws InterruptedException { + CHECKPOINT.block(); + do { + b=b.getPreviousBuild(); + if(b==null) return null; + } while(b.getResult()==Result.ABORTED); + return b.getResult(); + } + protected MimeMessage getMail(AbstractBuild build, BuildListener listener) throws MessagingException, InterruptedException { if (build.getResult() == Result.FAILURE) { return createFailureMail(build, listener); } if (build.getResult() == Result.UNSTABLE) { - AbstractBuild prev = build.getPreviousBuild(); if (!dontNotifyEveryUnstableBuild) return createUnstableMail(build, listener); - if (prev != null) { - if (prev.getResult() == Result.SUCCESS) - return createUnstableMail(build, listener); - } + Result prev = findPreviousBuildResult(build); + if (prev == Result.SUCCESS) + return createUnstableMail(build, listener); } if (build.getResult() == Result.SUCCESS) { - AbstractBuild prev = build.getPreviousBuild(); - if (prev != null) { - if (prev.getResult() == Result.FAILURE) - return createBackToNormalMail(build, "normal", listener); - if (prev.getResult() == Result.UNSTABLE) - return createBackToNormalMail(build, "stable", listener); - } + Result prev = findPreviousBuildResult(build); + if (prev == Result.FAILURE) + return createBackToNormalMail(build, Messages.MailSender_BackToNormal_Normal(), listener); + if (prev == Result.UNSTABLE) + return createBackToNormalMail(build, Messages.MailSender_BackToNormal_Stable(), listener); } return null; @@ -140,10 +168,10 @@ public class MailSender { private MimeMessage createBackToNormalMail(AbstractBuild build, String subject, BuildListener listener) throws MessagingException { MimeMessage msg = createEmptyMail(build, listener); - msg.setSubject(getSubject(build, "Hudson build is back to " + subject + ": "),"UTF-8"); - StringBuffer buf = new StringBuffer(); + msg.setSubject(getSubject(build, Messages.MailSender_BackToNormalMail_Subject(subject)),charset); + StringBuilder buf = new StringBuilder(); appendBuildUrl(build, buf); - msg.setText(buf.toString()); + msg.setText(buf.toString(),charset); return msg; } @@ -151,55 +179,65 @@ public class MailSender { private MimeMessage createUnstableMail(AbstractBuild build, BuildListener listener) throws MessagingException { MimeMessage msg = createEmptyMail(build, listener); - String subject = "Hudson build is unstable: "; + String subject = Messages.MailSender_UnstableMail_Subject(); AbstractBuild prev = build.getPreviousBuild(); + boolean still = false; if(prev!=null) { if(prev.getResult()==Result.SUCCESS) - subject = "Hudson build became unstable: "; - if(prev.getResult()==Result.UNSTABLE) - subject = "Hudson build is still unstable: "; + subject =Messages.MailSender_UnstableMail_ToUnStable_Subject(); + else if(prev.getResult()==Result.UNSTABLE) { + subject = Messages.MailSender_UnstableMail_StillUnstable_Subject(); + still = true; + } } - msg.setSubject(getSubject(build, subject),"UTF-8"); - StringBuffer buf = new StringBuffer(); - appendBuildUrl(build, buf); - msg.setText(buf.toString()); + msg.setSubject(getSubject(build, subject),charset); + StringBuilder buf = new StringBuilder(); + // Link to project changes summary for "still unstable" if this or last build has changes + if (still && !(build.getChangeSet().isEmptySet() && prev.getChangeSet().isEmptySet())) + appendUrl(Util.encode(build.getProject().getUrl()) + "changes", buf); + else + appendBuildUrl(build, buf); + msg.setText(buf.toString(), charset); return msg; } - private void appendBuildUrl(AbstractBuild build, StringBuffer buf) { + private void appendBuildUrl(AbstractBuild build, StringBuilder buf) { + appendUrl(Util.encode(build.getUrl()) + + (build.getChangeSet().isEmptySet() ? "" : "changes"), buf); + } + + private void appendUrl(String url, StringBuilder buf) { String baseUrl = Mailer.descriptor().getUrl(); - if (baseUrl != null) { - buf.append("See ").append(baseUrl).append(Util.encode(build.getUrl())); - if(!build.getChangeSet().isEmptySet()) - buf.append("changes"); - buf.append("\n\n"); - } + if (baseUrl != null) + buf.append(Messages.MailSender_Link(baseUrl, url)).append("\n\n"); } private MimeMessage createFailureMail(AbstractBuild build, BuildListener listener) throws MessagingException, InterruptedException { MimeMessage msg = createEmptyMail(build, listener); - msg.setSubject(getSubject(build, "Build failed in Hudson: "),"UTF-8"); + msg.setSubject(getSubject(build, Messages.MailSender_FailureMail_Subject()),charset); - StringBuffer buf = new StringBuffer(); + StringBuilder buf = new StringBuilder(); appendBuildUrl(build, buf); boolean firstChange = true; for (ChangeLogSet.Entry entry : build.getChangeSet()) { if (firstChange) { firstChange = false; - buf.append("Changes:\n\n"); + buf.append(Messages.MailSender_FailureMail_Changes()).append("\n\n"); } buf.append('['); buf.append(entry.getAuthor().getFullName()); buf.append("] "); String m = entry.getMsg(); - buf.append(m); - if (!m.endsWith("\n")) { - buf.append('\n'); + if (m!=null) { + buf.append(m); + if (!m.endsWith("\n")) { + buf.append('\n'); + } } buf.append('\n'); } @@ -220,7 +258,7 @@ public class MailSender { // URL which has already been corrected in a subsequent build. To fix, archive. workspaceUrl = baseUrl + Util.encode(build.getProject().getUrl()) + "ws/"; artifactUrl = baseUrl + Util.encode(build.getUrl()) + "artifact/"; - FilePath ws = build.getProject().getWorkspace(); + FilePath ws = build.getWorkspace(); // Match either file or URL patterns, i.e. either // c:\hudson\workdir\jobs\foo\workspace\src\Foo.java // file:/c:/hudson/workdir/jobs/foo/workspace/src/Foo.java @@ -234,6 +272,7 @@ public class MailSender { Pattern.quote(ws.getRemote()) + "|" + Pattern.quote(ws.toURI().toString()) + ")[/\\\\]?([^:#\\s]*)"); } for (String line : lines) { + line = line.replace('\0',' '); // shall we replace other control code? This one is motivated by http://www.nabble.com/Problems-with-NULL-characters-in-generated-output-td25005177.html if (wsPattern != null) { // Perl: $line =~ s{$rx}{$path = $2; $path =~ s!\\\\!/!g; $workspaceUrl . $path}eg; Matcher m = wsPattern.matcher(line); @@ -241,8 +280,7 @@ public class MailSender { while (m.find(pos)) { String path = m.group(2).replace(File.separatorChar, '/'); String linkUrl = artifactMatches(path, build) ? artifactUrl : workspaceUrl; - // Append ' ' to make sure mail readers do not interpret following ':' as part of URL: - String prefix = line.substring(0, m.start()) + linkUrl + Util.encode(path) + ' '; + String prefix = line.substring(0, m.start()) + '<' + linkUrl + Util.encode(path) + '>'; pos = prefix.length(); line = prefix + line.substring(m.end()); // XXX better style to reuse Matcher and fix offsets, but more work @@ -254,10 +292,10 @@ public class MailSender { } } catch (IOException e) { // somehow failed to read the contents of the log - buf.append("Failed to access build log\n\n").append(Functions.printThrowable(e)); + buf.append(Messages.MailSender_FailureMail_FailedToAccessBuildLog()).append("\n\n").append(Functions.printThrowable(e)); } - msg.setText(buf.toString()); + msg.setText(buf.toString(),charset); return msg; } @@ -282,25 +320,22 @@ public class MailSender { listener.getLogger().println("No such project exist: "+projectName); continue; } - AbstractBuild pb = build.getPreviousBuild(); - AbstractBuild ub = build.getUpstreamRelationshipBuild(up); - AbstractBuild upb = pb!=null ? pb.getUpstreamRelationshipBuild(up) : null; - if(pb==null && ub==null && upb==null) { - listener.getLogger().println("Unable to compute the changesets in "+up+". Is the fingerprint configured?"); - continue; - } - if(pb==null || ub==null || upb==null) { - listener.getLogger().println("Unable to compute the changesets in "+up); - continue; - } - for( AbstractBuild b=upb; b!=ub && b!=null; b=b.getNextBuild()) - rcp.addAll(buildCulpritList(listener,b.getCulprits())); + includeCulpritsOf(up, build, listener, rcp); } else { // ordinary address - rcp.add(new InternetAddress(address)); + try { + rcp.add(new InternetAddress(address)); + } catch (AddressException e) { + // report bad address, but try to send to other addresses + e.printStackTrace(listener.error(e.getMessage())); + } } } + for (AbstractProject project : includeUpstreamCommitters) { + includeCulpritsOf(project, build, listener, rcp); + } + if (sendToIndividuals) { Set culprits = build.getCulprits(); @@ -323,6 +358,22 @@ public class MailSender { return msg; } + private void includeCulpritsOf(AbstractProject upstreamBuild, AbstractBuild currentBuild, BuildListener listener, Set recipientList) throws AddressException { + AbstractBuild pb = currentBuild.getPreviousBuild(); + AbstractBuild ub = currentBuild.getUpstreamRelationshipBuild(upstreamBuild); + AbstractBuild upb = pb!=null ? pb.getUpstreamRelationshipBuild(upstreamBuild) : null; + if(pb==null && ub==null && upb==null) { + listener.getLogger().println("Unable to compute the changesets in "+ upstreamBuild +". Is the fingerprint configured?"); + return; + } + if(pb==null || ub==null || upb==null) { + listener.getLogger().println("Unable to compute the changesets in "+ upstreamBuild); + return; + } + for( AbstractBuild b=upb; b!=ub && b!=null; b=b.getNextBuild()) + recipientList.addAll(buildCulpritList(listener,b.getCulprits())); + } + private Set buildCulpritList(BuildListener listener, Set culprits) throws AddressException { Set r = new HashSet(); for (User a : culprits) { @@ -339,7 +390,7 @@ public class MailSender { } private String getSubject(AbstractBuild build, String caption) { - return caption + build.getProject().getFullDisplayName() + " #" + build.getNumber(); + return caption + ' ' + build.getProject().getFullDisplayName() + " #" + build.getNumber(); } /** @@ -349,9 +400,13 @@ public class MailSender { return false; } - private static final Logger LOGGER = Logger.getLogger(MailSender.class.getName()); - public static boolean debug = false; - private static final int MAX_LOG_LINES = 250; + private static final int MAX_LOG_LINES = Integer.getInteger(MailSender.class.getName()+".maxLogLines",250); + + + /** + * Sometimes the outcome of the previous build affects the e-mail we send, hence this checkpoint. + */ + private static final CheckPoint CHECKPOINT = new CheckPoint("mail sent"); } diff --git a/core/src/main/java/hudson/tasks/Mailer.java b/core/src/main/java/hudson/tasks/Mailer.java index edbdc1555fe28a6d528f75ce2d17b7641ed284bb..516f968d81cb52bd31048a27d9ca442ca28c30ed 100644 --- a/core/src/main/java/hudson/tasks/Mailer.java +++ b/core/src/main/java/hudson/tasks/Mailer.java @@ -1,7 +1,8 @@ /* * The MIT License * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Bruce Chapman, Erik Ramfelt, Jean-Baptiste Quenot, Luca Domenico Milanesio + * Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, + * Bruce Chapman, Erik Ramfelt, Jean-Baptiste Quenot, Luca Domenico Milanesio * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -23,9 +24,14 @@ */ package hudson.tasks; -import hudson.Launcher; -import hudson.Functions; +import hudson.EnvVars; import hudson.Extension; +import hudson.Functions; +import hudson.Launcher; +import hudson.RestrictedSince; +import hudson.Util; +import hudson.diagnosis.OldDataMonitor; +import static hudson.Util.fixEmptyAndTrim; import hudson.model.AbstractBuild; import hudson.model.AbstractProject; import hudson.model.BuildListener; @@ -33,11 +39,15 @@ import hudson.model.User; import hudson.model.UserPropertyDescriptor; import hudson.model.Hudson; import hudson.util.FormValidation; +import hudson.util.Secret; +import hudson.util.XStream2; import org.apache.tools.ant.types.selectors.SelectorUtils; +import org.kohsuke.accmod.Restricted; +import org.kohsuke.accmod.restrictions.NoExternalUse; import org.kohsuke.stapler.QueryParameter; import org.kohsuke.stapler.StaplerRequest; -import org.kohsuke.stapler.StaplerResponse; import org.kohsuke.stapler.export.Exported; +import com.thoughtworks.xstream.converters.UnmarshallingContext; import javax.mail.Authenticator; import javax.mail.Message; @@ -51,12 +61,12 @@ import javax.mail.internet.MimeMessage; import javax.servlet.ServletException; import java.io.File; import java.io.IOException; -import java.io.PrintStream; import java.util.Date; -import java.util.Map; import java.util.Properties; import java.util.logging.Level; import java.util.logging.Logger; +import java.net.InetAddress; +import java.net.UnknownHostException; import net.sf.json.JSONObject; @@ -84,15 +94,21 @@ public class Mailer extends Notifier { public boolean sendToIndividuals; // TODO: left so that XStream won't get angry. figure out how to set the error handling behavior - // in XStream. + // in XStream. Deprecated since 2005-04-23. private transient String from; private transient String subject; private transient boolean failureOnly; + private transient String charset; - public boolean perform(AbstractBuild build, Launcher launcher, BuildListener listener) throws InterruptedException { + @Override + public boolean perform(AbstractBuild build, Launcher launcher, BuildListener listener) throws IOException, InterruptedException { if(debug) listener.getLogger().println("Running mailer"); - return new MailSender(recipients,dontNotifyEveryUnstableBuild,sendToIndividuals) { + // substitute build parameters + EnvVars env = build.getEnvironment(listener); + String recip = env.expand(recipients); + + return new MailSender(recip, dontNotifyEveryUnstableBuild, sendToIndividuals, descriptor().getCharset()) { /** Check whether a path (/-separated) will be archived. */ @Override public boolean artifactMatches(String path, AbstractBuild build) { @@ -118,10 +134,19 @@ public class Mailer extends Notifier { }.execute(build,listener); } + /** + * This class does explicit check pointing. + */ + public BuildStepMonitor getRequiredMonitorService() { + return BuildStepMonitor.NONE; + } + /** * @deprecated as of 1.286 * Use {@link #descriptor()} to obtain the current instance. */ + @Restricted(NoExternalUse.class) + @RestrictedSince("1.355") public static DescriptorImpl DESCRIPTOR; public static DescriptorImpl descriptor() { @@ -144,7 +169,9 @@ public class Mailer extends Notifier { /** * If non-null, use SMTP-AUTH with these information. */ - private String smtpAuthPassword,smtpAuthUsername; + private String smtpAuthUsername; + + private Secret smtpAuthPassword; /** * The e-mail address that Hudson puts to "From:" field in outgoing e-mails. @@ -169,6 +196,11 @@ public class Mailer extends Notifier { */ private String smtpPort; + /** + * The charset to use for the text and subject. + */ + private String charset; + /** * Used to keep track of number test e-mails. */ @@ -180,22 +212,11 @@ public class Mailer extends Notifier { DESCRIPTOR = this; } - /** - * For backward compatibility. - */ - protected void convert(Map oldPropertyBag) { - defaultSuffix = (String)oldPropertyBag.get("mail.default.suffix"); - hudsonUrl = (String)oldPropertyBag.get("mail.hudson.url"); - smtpAuthUsername = (String)oldPropertyBag.get("mail.hudson.smtpauth.username"); - smtpAuthPassword = (String)oldPropertyBag.get("mail.hudson.smtpauth.password"); - adminAddress = (String)oldPropertyBag.get("mail.admin.address"); - smtpHost = (String)oldPropertyBag.get("mail.smtp.host"); - } - public String getDisplayName() { return Messages.Mailer_DisplayName(); } + @Override public String getHelpFile() { return "/help/project-config/mailer.html"; } @@ -206,8 +227,14 @@ public class Mailer extends Notifier { /** JavaMail session. */ public Session createSession() { + return createSession(smtpHost,smtpPort,useSsl,smtpAuthUsername,smtpAuthPassword); + } + private static Session createSession(String smtpHost, String smtpPort, boolean useSsl, String smtpAuthUserName, Secret smtpAuthPassword) { + smtpPort = fixEmptyAndTrim(smtpPort); + smtpAuthUserName = fixEmptyAndTrim(smtpAuthUserName); + Properties props = new Properties(System.getProperties()); - if(smtpHost!=null) + if(fixEmptyAndTrim(smtpHost)!=null) props.put("mail.smtp.host",smtpHost); if (smtpPort!=null) { props.put("mail.smtp.port", smtpPort); @@ -229,17 +256,22 @@ public class Mailer extends Notifier { } props.put("mail.smtp.socketFactory.fallback", "false"); } - if(getSmtpAuthUserName()!=null) + if(smtpAuthUserName!=null) props.put("mail.smtp.auth","true"); - return Session.getInstance(props,getAuthenticator()); + + // avoid hang by setting some timeout. + props.put("mail.smtp.timeout","60000"); + props.put("mail.smtp.connectiontimeout","60000"); + + return Session.getInstance(props,getAuthenticator(smtpAuthUserName,Secret.toString(smtpAuthPassword))); } - private Authenticator getAuthenticator() { - final String un = getSmtpAuthUserName(); - if(un==null) return null; + private static Authenticator getAuthenticator(final String smtpAuthUserName, final String smtpAuthPassword) { + if(smtpAuthUserName==null) return null; return new Authenticator() { + @Override protected PasswordAuthentication getPasswordAuthentication() { - return new PasswordAuthentication(getSmtpAuthUserName(),getSmtpAuthPassword()); + return new PasswordAuthentication(smtpAuthUserName,smtpAuthPassword); } }; } @@ -247,23 +279,29 @@ public class Mailer extends Notifier { @Override public boolean configure(StaplerRequest req, JSONObject json) throws FormException { // this code is brain dead - smtpHost = nullify(req.getParameter("mailer_smtp_server")); - setAdminAddress(req.getParameter("mailer_admin_address")); + smtpHost = nullify(json.getString("smtpServer")); + setAdminAddress(json.getString("adminAddress")); - defaultSuffix = nullify(req.getParameter("mailer_default_suffix")); + defaultSuffix = nullify(json.getString("defaultSuffix")); String url = nullify(json.getString("url")); if(url!=null && !url.endsWith("/")) url += '/'; hudsonUrl = url; - if(req.getParameter("mailer.useSMTPAuth")!=null) { - smtpAuthUsername = nullify(req.getParameter("mailer.SMTPAuth.userName")); - smtpAuthPassword = nullify(req.getParameter("mailer.SMTPAuth.password")); + if(json.has("useSMTPAuth")) { + JSONObject auth = json.getJSONObject("useSMTPAuth"); + smtpAuthUsername = nullify(auth.getString("smtpAuthUserName")); + smtpAuthPassword = Secret.fromString(nullify(auth.getString("smtpAuthPassword"))); } else { - smtpAuthUsername = smtpAuthPassword = null; + smtpAuthUsername = null; + smtpAuthPassword = null; } - smtpPort = nullify(req.getParameter("mailer_smtp_port")); - useSsl = req.getParameter("mailer_smtp_use_ssl")!=null; + smtpPort = nullify(json.getString("smtpPort")); + useSsl = json.getBoolean("useSsl"); + charset = json.getString("charset"); + if (charset == null || charset.length() == 0) + charset = "UTF-8"; + save(); return true; } @@ -279,7 +317,7 @@ public class Mailer extends Notifier { public String getAdminAddress() { String v = adminAddress; - if(v==null) v = "address not configured yet "; + if(v==null) v = Messages.Mailer_Address_Not_Configured(); return v; } @@ -292,7 +330,8 @@ public class Mailer extends Notifier { } public String getSmtpAuthPassword() { - return smtpAuthPassword; + if (smtpAuthPassword==null) return null; + return Secret.toString(smtpAuthPassword); } public boolean getUseSsl() { @@ -302,6 +341,12 @@ public class Mailer extends Notifier { public String getSmtpPort() { return smtpPort; } + + public String getCharset() { + String c = charset; + if (c == null || c.length() == 0) c = "UTF-8"; + return c; + } public void setDefaultSuffix(String defaultSuffix) { this.defaultSuffix = defaultSuffix; @@ -331,8 +376,18 @@ public class Mailer extends Notifier { public void setSmtpPort(String smtpPort) { this.smtpPort = smtpPort; } + + public void setCharset(String chaset) { + this.charset = chaset; + } + + public void setSmtpAuth(String userName, String password) { + this.smtpAuthUsername = userName; + this.smtpAuthPassword = Secret.fromString(password); + } - public Publisher newInstance(StaplerRequest req) { + @Override + public Publisher newInstance(StaplerRequest req, JSONObject formData) { Mailer m = new Mailer(); req.bindParameters(m,"mailer_"); m.dontNotifyEveryUnstableBuild = req.getParameter("mailer_notifyEveryUnstableBuild")==null; @@ -351,7 +406,7 @@ public class Mailer extends Notifier { */ public FormValidation doCheckUrl(@QueryParameter String value) { if(value.startsWith("http://localhost")) - return FormValidation.warning("Please set a valid host name, instead of localhost"); + return FormValidation.warning(Messages.Mailer_Localhost_Error()); return FormValidation.ok(); } @@ -363,42 +418,54 @@ public class Mailer extends Notifier { return FormValidation.error(e.getMessage()); } } - + + public FormValidation doCheckSmtpServer(@QueryParameter String value) { + try { + if (fixEmptyAndTrim(value)!=null) + InetAddress.getByName(value); + return FormValidation.ok(); + } catch (UnknownHostException e) { + return FormValidation.error(Messages.Mailer_Unknown_Host_Name()+value); + } + } + + public FormValidation doCheckAdminAddress(@QueryParameter String value) { + return doAddressCheck(value); + } + + public FormValidation doCheckDefaultSuffix(@QueryParameter String value) { + if (value.matches("@[A-Za-z0-9.\\-]+") || fixEmptyAndTrim(value)==null) + return FormValidation.ok(); + else + return FormValidation.error(Messages.Mailer_Suffix_Error()); + } + /** * Send an email to the admin address - * @param rsp used to write the result of the sending * @throws IOException * @throws ServletException * @throws InterruptedException */ - public void doSendTestMail(StaplerResponse rsp) throws IOException, ServletException, InterruptedException { - rsp.setContentType("text/plain"); - PrintStream writer = new PrintStream(rsp.getOutputStream()); + public FormValidation doSendTestMail( + @QueryParameter String smtpServer, @QueryParameter String adminAddress, @QueryParameter boolean useSMTPAuth, + @QueryParameter String smtpAuthUserName, @QueryParameter String smtpAuthPassword, + @QueryParameter boolean useSsl, @QueryParameter String smtpPort) throws IOException, ServletException, InterruptedException { try { - writer.println("Sending email to " + getAdminAddress()); - writer.println(); - writer.println("Email content ---------------------------------------------------------"); - writer.flush(); + if (!useSMTPAuth) smtpAuthUserName = smtpAuthPassword = null; - MimeMessage msg = new MimeMessage(createSession()); + MimeMessage msg = new MimeMessage(createSession(smtpServer,smtpPort,useSsl,smtpAuthUserName,Secret.fromString(smtpAuthPassword))); msg.setSubject("Test email #" + ++testEmailCount); msg.setContent("This is test email #" + testEmailCount + " sent from Hudson Continuous Integration server.", "text/plain"); - msg.setFrom(new InternetAddress(getAdminAddress())); + msg.setFrom(new InternetAddress(adminAddress)); msg.setSentDate(new Date()); - msg.setRecipient(Message.RecipientType.TO, new InternetAddress(getAdminAddress())); - msg.writeTo(writer); - writer.println(); - writer.println("-----------------------------------------------------------------------"); - writer.println(); - writer.flush(); - + msg.setRecipient(Message.RecipientType.TO, new InternetAddress(adminAddress)); + Transport.send(msg); - writer.println("Email was successfully sent"); + return FormValidation.ok("Email was successfully sent"); } catch (MessagingException e) { - e.printStackTrace(writer); + return FormValidation.errorWithMarkup("

    Failed to send out e-mail

    "+Util.escape(Functions.printThrowable(e))+"
    "); } - writer.flush(); } public boolean isApplicable(Class jobType) { @@ -436,11 +503,11 @@ public class Mailer extends Notifier { } public UserProperty newInstance(User user) { - return new UserProperty(null); } - public UserProperty newInstance(StaplerRequest req) throws FormException { + @Override + public UserProperty newInstance(StaplerRequest req, JSONObject formData) throws FormException { return new UserProperty(req.getParameter("email.address")); } } @@ -450,4 +517,12 @@ public class Mailer extends Notifier { * Debug probe point to be activated by the scripting console. */ public static boolean debug = false; + + public static class ConverterImpl extends XStream2.PassthruConverter { + public ConverterImpl(XStream2 xstream) { super(xstream); } + @Override protected void callback(Mailer m, UnmarshallingContext context) { + if (m.from != null || m.subject != null || m.failureOnly || m.charset != null) + OldDataMonitor.report(context, "1.10"); + } + } } diff --git a/core/src/main/java/hudson/tasks/Maven.java b/core/src/main/java/hudson/tasks/Maven.java index 88351da12a2f428170bd6354814b227aec7bc9c8..dc5b5fc3eec4be1596e50da073d37cb6ff618ecc 100644 --- a/core/src/main/java/hudson/tasks/Maven.java +++ b/core/src/main/java/hudson/tasks/Maven.java @@ -1,7 +1,7 @@ /* * The MIT License * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Jene Jasper, Stephen Connolly, Tom Huybrechts + * Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Jene Jasper, Stephen Connolly, Tom Huybrechts, Yahoo! Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -42,13 +42,18 @@ import hudson.model.TaskListener; import hudson.remoting.Callable; import hudson.remoting.VirtualChannel; import hudson.slaves.NodeSpecific; +import hudson.tasks._maven.MavenConsoleAnnotator; import hudson.tools.ToolDescriptor; import hudson.tools.ToolInstallation; +import hudson.tools.DownloadFromUrlInstaller; +import hudson.tools.ToolInstaller; +import hudson.tools.ToolProperty; import hudson.util.ArgumentListBuilder; import hudson.util.NullStream; import hudson.util.StreamTaskListener; import hudson.util.VariableResolver; import hudson.util.FormValidation; +import hudson.util.XStream2; import net.sf.json.JSONObject; import org.kohsuke.stapler.DataBoundConstructor; import org.kohsuke.stapler.StaplerRequest; @@ -56,13 +61,11 @@ import org.kohsuke.stapler.QueryParameter; import java.io.File; import java.io.IOException; -import java.io.FilenameFilter; -import java.util.Map; import java.util.Properties; import java.util.StringTokenizer; -import java.util.regex.Pattern; -import java.util.regex.MatchResult; -import java.util.regex.Matcher; +import java.util.List; +import java.util.Collections; +import java.util.Set; /** * Build by using Maven. @@ -97,33 +100,60 @@ public class Maven extends Builder { */ public final String properties; + /** + * If true, the build will use its own local Maven repository + * via "-Dmaven.repo.local=...". + *

    + * This would consume additional disk space, but provides isolation with other builds on the same machine, + * such as mixing SNAPSHOTS. Maven also doesn't try to coordinate the concurrent access to Maven repositories + * from multiple Maven process, so this helps there too. + * + * Identical to logic used in maven-plugin. + * + * @since 1.322 + */ + public boolean usePrivateRepository = false; + private final static String MAVEN_1_INSTALLATION_COMMON_FILE = "bin/maven"; private final static String MAVEN_2_INSTALLATION_COMMON_FILE = "bin/mvn"; public Maven(String targets,String name) { - this(targets,name,null,null,null); + this(targets,name,null,null,null,false); } + public Maven(String targets, String name, String pom, String properties, String jvmOptions) { + this(targets, name, pom, properties, jvmOptions, false); + } + @DataBoundConstructor - public Maven(String targets,String name, String pom, String properties, String jvmOptions) { + public Maven(String targets,String name, String pom, String properties, String jvmOptions, boolean usePrivateRepository) { this.targets = targets; this.mavenName = name; this.pom = Util.fixEmptyAndTrim(pom); this.properties = Util.fixEmptyAndTrim(properties); this.jvmOptions = Util.fixEmptyAndTrim(jvmOptions); + this.usePrivateRepository = usePrivateRepository; } public String getTargets() { return targets; } + public void setUsePrivateRepository(boolean usePrivateRepository) { + this.usePrivateRepository = usePrivateRepository; + } + + public boolean usesPrivateRepository() { + return usePrivateRepository; + } + /** * Gets the Maven to invoke, * or null to invoke the default one. */ public MavenInstallation getMaven() { for( MavenInstallation i : getDescriptor().getInstallations() ) { - if(mavenName !=null && i.getName().equals(mavenName)) + if(mavenName !=null && mavenName.equals(i.getName())) return i; } return null; @@ -152,12 +182,9 @@ public class Maven extends Builder { File file = new File(ws,tokens.nextToken()); if(!file.exists()) continue; // looks like an error, but let the execution fail later - if(file.isDirectory()) - // in M1, you specify a directory in -f - seed = "maven"; - else - // in M2, you specify a POM file name. - seed = "mvn"; + seed = file.isDirectory() ? + /* in M1, you specify a directory in -f */ "maven" + /* in M2, you specify a POM file name. */ : "mvn"; break; } } @@ -165,10 +192,7 @@ public class Maven extends Builder { if(seed==null) { // as of 1.212 (2008 April), I think Maven2 mostly replaced Maven1, so // switching to err on M2 side. - if(new File(ws,"project.xml").exists()) - seed = "maven"; - else - seed = "mvn"; + seed = new File(ws,"project.xml").exists() ? "maven" : "mvn"; } if(Functions.isWindows()) @@ -177,9 +201,8 @@ public class Maven extends Builder { } } + @Override public boolean perform(AbstractBuild build, Launcher launcher, BuildListener listener) throws IOException, InterruptedException { - AbstractProject proj = build.getProject(); - VariableResolver vr = build.getBuildVariableResolver(); EnvVars env = build.getEnvironment(listener); @@ -187,8 +210,7 @@ public class Maven extends Builder { String targets = Util.replaceMacro(this.targets,vr); targets = env.expand(targets); String pom = env.expand(this.pom); - String jvmOptions = env.expand(this.jvmOptions); - String properties =env.expand(this.properties); + String properties = env.expand(this.properties); int startIndex = 0; int endIndex; @@ -206,44 +228,35 @@ public class Maven extends Builder { ArgumentListBuilder args = new ArgumentListBuilder(); MavenInstallation mi = getMaven(); if(mi==null) { - String execName = proj.getWorkspace().act(new DecideDefaultMavenCommand(normalizedTarget)); + String execName = build.getWorkspace().act(new DecideDefaultMavenCommand(normalizedTarget)); args.add(execName); } else { mi = mi.forNode(Computer.currentComputer().getNode(), listener); mi = mi.forEnvironment(env); String exec = mi.getExecutable(launcher); if(exec==null) { - listener.fatalError(Messages.Maven_NoExecutable(mi.getMavenHome())); + listener.fatalError(Messages.Maven_NoExecutable(mi.getHome())); return false; } args.add(exec); } if(pom!=null) args.add("-f",pom); - args.addKeyValuePairs("-D",build.getBuildVariables()); - args.addKeyValuePairsFromPropertyString("-D",properties,vr); - args.addTokenized(normalizedTarget); - if(mi!=null) { - // if somebody has use M2_HOME they will get a classloading error - // when M2_HOME points to a different version of Maven2 from - // MAVEN_HOME (as Maven 2 gives M2_HOME priority.) - // - // The other solution would be to set M2_HOME if we are calling Maven2 - // and MAVEN_HOME for Maven1 (only of use for strange people that - // are calling Maven2 from Maven1) - env.put("M2_HOME",mi.getMavenHome()); - env.put("MAVEN_HOME",mi.getMavenHome()); - } - // just as a precaution - // see http://maven.apache.org/continuum/faqs.html#how-does-continuum-detect-a-successful-build - env.put("MAVEN_TERMINATE_CMD","on"); + Set sensitiveVars = build.getSensitiveBuildVariables(); + + args.addKeyValuePairs("-D",build.getBuildVariables(),sensitiveVars); + args.addKeyValuePairsFromPropertyString("-D",properties,vr,sensitiveVars); + if (usesPrivateRepository()) + args.add("-Dmaven.repo.local=" + build.getWorkspace().child(".repository")); + args.addTokenized(normalizedTarget); + wrapUpArguments(args,normalizedTarget,build,launcher,listener); - if(jvmOptions!=null) - env.put("MAVEN_OPTS",jvmOptions); + buildEnvVars(env, mi); try { - int r = launcher.launch(args.toCommandArray(),env,listener.getLogger(),proj.getModuleRoot()).join(); + MavenConsoleAnnotator mca = new MavenConsoleAnnotator(listener.getLogger(),build.getCharset()); + int r = launcher.launch().cmds(args).envs(env).stdout(mca).pwd(build.getModuleRoot()).join(); if (0 != r) { return false; } @@ -257,6 +270,39 @@ public class Maven extends Builder { return true; } + /** + * Allows the derived type to make additional modifications to the arguments list. + * + * @since 1.344 + */ + protected void wrapUpArguments(ArgumentListBuilder args, String normalizedTarget, AbstractBuild build, Launcher launcher, BuildListener listener) throws IOException, InterruptedException { + } + + /** + * Build up the environment variables toward the Maven launch. + */ + protected void buildEnvVars(EnvVars env, MavenInstallation mi) throws IOException, InterruptedException { + if(mi!=null) { + // if somebody has use M2_HOME they will get a classloading error + // when M2_HOME points to a different version of Maven2 from + // MAVEN_HOME (as Maven 2 gives M2_HOME priority.) + // + // The other solution would be to set M2_HOME if we are calling Maven2 + // and MAVEN_HOME for Maven1 (only of use for strange people that + // are calling Maven2 from Maven1) + env.put("M2_HOME",mi.getHome()); + env.put("MAVEN_HOME",mi.getHome()); + } + // just as a precaution + // see http://maven.apache.org/continuum/faqs.html#how-does-continuum-detect-a-successful-build + env.put("MAVEN_TERMINATE_CMD","on"); + + String jvmOptions = env.expand(this.jvmOptions); + if(jvmOptions!=null) + env.put("MAVEN_OPTS",jvmOptions.replaceAll("[\t\r\n]+"," ")); + } + + @Override public DescriptorImpl getDescriptor() { return (DescriptorImpl)super.getDescriptor(); } @@ -283,11 +329,7 @@ public class Maven extends Builder { return true; } - protected void convert(Map oldPropertyBag) { - if(oldPropertyBag.containsKey("installations")) - installations = (MavenInstallation[]) oldPropertyBag.get("installations"); - } - + @Override public String getHelpFile() { return "/help/project-config/maven.html"; } @@ -302,58 +344,49 @@ public class Maven extends Builder { public void setInstallations(MavenInstallation... installations) { this.installations = installations; - } - - @Override - public boolean configure(StaplerRequest req, JSONObject json) throws FormException { - this.installations = req.bindJSONToList(MavenInstallation.class, json.get("maven")).toArray(new MavenInstallation[0]); save(); - return true; } + @Override public Builder newInstance(StaplerRequest req, JSONObject formData) throws FormException { return req.bindJSON(Maven.class,formData); } - - - // - // web methods - // - /** - * Checks if the MAVEN_HOME is valid. - */ - public FormValidation doCheckMavenHome(@QueryParameter File value) { - // this can be used to check the existence of a file on the server, so needs to be protected - if(!Hudson.getInstance().hasPermission(Hudson.ADMINISTER)) - return FormValidation.ok(); - - if(value.getPath().equals("")) - return FormValidation.error(Messages.Maven_MavenHomeRequired()); - if(!value.isDirectory()) - return FormValidation.error(Messages.Maven_NotADirectory(value)); - - File maven1File = new File(value,MAVEN_1_INSTALLATION_COMMON_FILE); - File maven2File = new File(value,MAVEN_2_INSTALLATION_COMMON_FILE); - - if(!maven1File.exists() && !maven2File.exists()) - return FormValidation.error(Messages.Maven_NotMavenDirectory(value)); - - return FormValidation.ok(); - } } + /** + * Represents a Maven installation in a system. + */ public static final class MavenInstallation extends ToolInstallation implements EnvironmentSpecific, NodeSpecific { - + /** + * Constants for describing Maven versions for comparison. + */ + public static final int MAVEN_20 = 0; + public static final int MAVEN_21 = 1; + + + /** + * @deprecated since 2009-02-25. + */ @Deprecated // kept for backward compatiblity - use getHome() - private String mavenHome; + private transient String mavenHome; - @DataBoundConstructor + /** + * @deprecated as of 1.308. + * Use {@link #MavenInstallation(String, String, List)} + */ public MavenInstallation(String name, String home) { super(name, home); } + @DataBoundConstructor + public MavenInstallation(String name, String home, List> properties) { + super(name, home, properties); + } + /** * install directory. + * + * @deprecated as of 1.308. Use {@link #getHome()}. */ public String getMavenHome() { return getHome(); @@ -363,29 +396,63 @@ public class Maven extends Builder { return new File(getHome()); } - public String getHome() { - if (mavenHome != null) return mavenHome; - return super.getHome(); + /** + * Compares the version of this Maven installation to the minimum required version specified. + * + * @param launcher + * Represents the node on which we evaluate the path. + * @param mavenReqVersion + * Represents the minimum required Maven version - constants defined above. + */ + public boolean meetsMavenReqVersion(Launcher launcher, int mavenReqVersion) throws IOException, InterruptedException { + String mavenVersion = launcher.getChannel().call(new Callable() { + public String call() throws IOException { + File[] jars = new File(getHomeDir(),"lib").listFiles(); + if(jars!=null) { // be defensive + for (File jar : jars) { + if (jar.getName().endsWith("-uber.jar") && jar.getName().startsWith("maven-")) { + return jar.getName(); + } + } + } + return ""; + } + }); + + if (!mavenVersion.equals("")) { + if (mavenReqVersion == MAVEN_20) { + if(mavenVersion.startsWith("maven-2.") || mavenVersion.startsWith("maven-core-2")) + return true; + } + else if (mavenReqVersion == MAVEN_21) { + if(mavenVersion.startsWith("maven-2.") && !mavenVersion.startsWith("maven-2.0")) + return true; + } + } + return false; + } - + /** - * Is this Maven 2.1.x? + * Is this Maven 2.1.x or later? * * @param launcher * Represents the node on which we evaluate the path. */ public boolean isMaven2_1(Launcher launcher) throws IOException, InterruptedException { - return launcher.getChannel().call(new Callable() { + return meetsMavenReqVersion(launcher, MAVEN_21); + } + /* return launcher.getChannel().call(new Callable() { public Boolean call() throws IOException { File[] jars = new File(getHomeDir(),"lib").listFiles(); if(jars!=null) // be defensive for (File jar : jars) - if(jar.getName().startsWith("maven-2.1.") && jar.getName().endsWith("-uber.jar")) + if(jar.getName().startsWith("maven-2.") && !jar.getName().startsWith("maven-2.0") && jar.getName().endsWith("-uber.jar")) return true; return false; } - }); - } + }); + } */ /** * Gets the executable path of this maven on the given target system. @@ -408,7 +475,7 @@ public class Maven extends Builder { if(File.separatorChar=='\\') execName += ".bat"; - String m2Home = Util.replaceMacro(getMavenHome(),EnvVars.masterEnvVars); + String m2Home = Util.replaceMacro(getHome(),EnvVars.masterEnvVars); return new File(m2Home, "bin/" + execName); } @@ -428,22 +495,26 @@ public class Maven extends Builder { private static final long serialVersionUID = 1L; - public MavenInstallation forEnvironment(EnvVars environment) { - return new MavenInstallation(getName(), environment.expand(getHome())); - } + public MavenInstallation forEnvironment(EnvVars environment) { + return new MavenInstallation(getName(), environment.expand(getHome()), getProperties().toList()); + } public MavenInstallation forNode(Node node, TaskListener log) throws IOException, InterruptedException { - return new MavenInstallation(getName(), translateFor(node, log)); + return new MavenInstallation(getName(), translateFor(node, log), getProperties().toList()); } @Extension public static class DescriptorImpl extends ToolDescriptor { - @Override public String getDisplayName() { return "Maven"; } + @Override + public List getDefaultInstallers() { + return Collections.singletonList(new MavenInstaller(null)); + } + @Override public MavenInstallation[] getInstallations() { return Hudson.getInstance().getDescriptorByType(Maven.DescriptorImpl.class).getInstallations(); @@ -453,6 +524,62 @@ public class Maven extends Builder { public void setInstallations(MavenInstallation... installations) { Hudson.getInstance().getDescriptorByType(Maven.DescriptorImpl.class).setInstallations(installations); } + + /** + * Checks if the MAVEN_HOME is valid. + */ + public FormValidation doCheckMavenHome(@QueryParameter File value) { + // this can be used to check the existence of a file on the server, so needs to be protected + if(!Hudson.getInstance().hasPermission(Hudson.ADMINISTER)) + return FormValidation.ok(); + + if(value.getPath().equals("")) + return FormValidation.ok(); + + if(!value.isDirectory()) + return FormValidation.error(Messages.Maven_NotADirectory(value)); + + File maven1File = new File(value,MAVEN_1_INSTALLATION_COMMON_FILE); + File maven2File = new File(value,MAVEN_2_INSTALLATION_COMMON_FILE); + + if(!maven1File.exists() && !maven2File.exists()) + return FormValidation.error(Messages.Maven_NotMavenDirectory(value)); + + return FormValidation.ok(); + } + + public FormValidation doCheckName(@QueryParameter String value) { + return FormValidation.validateRequired(value); + } + } + + public static class ConverterImpl extends ToolConverter { + public ConverterImpl(XStream2 xstream) { super(xstream); } + @Override protected String oldHomeField(ToolInstallation obj) { + return ((MavenInstallation)obj).mavenHome; + } + } + } + + /** + * Automatic Maven installer from apache.org. + */ + public static class MavenInstaller extends DownloadFromUrlInstaller { + @DataBoundConstructor + public MavenInstaller(String id) { + super(id); + } + + @Extension + public static final class DescriptorImpl extends DownloadFromUrlInstaller.DescriptorImpl { + public String getDisplayName() { + return Messages.InstallFromApache(); + } + + @Override + public boolean isApplicable(Class toolType) { + return toolType==MavenInstallation.class; + } } } @@ -479,4 +606,5 @@ public class Maven extends Builder { */ MavenInstallation inferMavenInstallation(); } + } diff --git a/core/src/main/java/hudson/tasks/Notifier.java b/core/src/main/java/hudson/tasks/Notifier.java index 6c44ccc23e775f1a8a7148f668a2880011e5683a..1e0162f02d2d27929414b62e604c73e8f989e503 100644 --- a/core/src/main/java/hudson/tasks/Notifier.java +++ b/core/src/main/java/hudson/tasks/Notifier.java @@ -32,7 +32,8 @@ import hudson.ExtensionPoint; *

    * {@link Notifier} is a kind of {@link Publisher} that sends out the outcome of the builds to * other systems and humans. This marking ensures that notifiers are run after the build result - * is set to its final values by other {@link Recorder}s. + * is set to its final value by other {@link Recorder}s. To run even after the build is marked + * as complete, override {@link #needsToRunAfterFinalized} to return true. * *

    * To register a custom {@link Publisher} from a plugin, diff --git a/core/src/main/java/hudson/tasks/Publisher.java b/core/src/main/java/hudson/tasks/Publisher.java index 569855192b67550c8a88932ec821335a35a4e02a..4a3439c470f1b9a63e77e71b7e03c064e929ed81 100644 --- a/core/src/main/java/hudson/tasks/Publisher.java +++ b/core/src/main/java/hudson/tasks/Publisher.java @@ -25,7 +25,7 @@ package hudson.tasks; import hudson.DescriptorExtensionList; import hudson.Extension; -import hudson.Launcher; +import hudson.ExtensionComponent; import hudson.model.Action; import hudson.model.Build; import hudson.model.BuildListener; @@ -33,7 +33,6 @@ import hudson.model.Describable; import hudson.model.Project; import hudson.model.Descriptor; import hudson.model.Hudson; -import hudson.model.AbstractBuild; import java.util.List; import java.util.ArrayList; @@ -67,6 +66,7 @@ public abstract class Publisher extends BuildStepCompatibilityLayer implements B * Don't extend from {@link Publisher} directly. Instead, choose {@link Recorder} or {@link Notifier} * as your base class. */ + @Deprecated protected Publisher() { } @@ -75,24 +75,24 @@ public abstract class Publisher extends BuildStepCompatibilityLayer implements B // /** * Default implementation that does nothing. + * @deprecated since 1.150 */ - @Deprecated - @Override + @Deprecated @Override public boolean prebuild(Build build, BuildListener listener) { return true; } /** * Default implementation that does nothing. + * @deprecated since 1.150 */ - @Deprecated - @Override + @Deprecated @Override public Action getProjectAction(Project project) { return null; } /** - * Returne true if this {@link Publisher} needs to run after the build result is + * Return true if this {@link Publisher} needs to run after the build result is * fully finalized. * *

    @@ -103,7 +103,7 @@ public abstract class Publisher extends BuildStepCompatibilityLayer implements B *

    * So normally, that is the preferrable behavior, but in a few cases * this is problematic. One of such cases is when a publisher needs to - * trigger other builds, whcih in turn need to see this build as a + * trigger other builds, which in turn need to see this build as a * completed build. Those plugins that need to do this can return true * from this method, so that the {@link #perform(AbstractBuild, Launcher, BuildListener)} * method is called after the build is marked as completed. @@ -120,29 +120,31 @@ public abstract class Publisher extends BuildStepCompatibilityLayer implements B } public Descriptor getDescriptor() { - return Hudson.getInstance().getDescriptor(getClass()); + return Hudson.getInstance().getDescriptorOrDie(getClass()); } /** * {@link Publisher} has a special sort semantics that requires a subtype. * - * @see DescriptorExtensionList#create(Hudson, Class) + * @see DescriptorExtensionList#createDescriptorList(Hudson, Class) */ public static final class DescriptorExtensionListImpl extends DescriptorExtensionList> - implements Comparator> { + implements Comparator>> { public DescriptorExtensionListImpl(Hudson hudson) { super(hudson,Publisher.class); } @Override - protected List> sort(List> r) { - List> copy = new ArrayList>(r); + protected List>> sort(List>> r) { + List>> copy = new ArrayList>>(r); Collections.sort(copy,this); return copy; } - public int compare(Descriptor lhs, Descriptor rhs) { - return classify(lhs)-classify(rhs); + public int compare(ExtensionComponent> lhs, ExtensionComponent> rhs) { + int r = classify(lhs.getInstance())-classify(rhs.getInstance()); + if (r!=0) return r; + return lhs.compareTo(rhs); } /** @@ -150,8 +152,8 @@ public abstract class Publisher extends BuildStepCompatibilityLayer implements B * This is used as a sort key. */ private int classify(Descriptor d) { - if(Recorder.class.isAssignableFrom(d.clazz)) return 0; - if(Notifier.class.isAssignableFrom(d.clazz)) return 2; + if(d.isSubTypeOf(Recorder.class)) return 0; + if(d.isSubTypeOf(Notifier.class)) return 2; // for compatibility, if the descriptor is manually registered in a specific way, detect that. Class kind = PublisherList.KIND.get(d); @@ -167,6 +169,6 @@ public abstract class Publisher extends BuildStepCompatibilityLayer implements B */ // for backward compatibility, the signature is not BuildStepDescriptor public static DescriptorExtensionList> all() { - return Hudson.getInstance().getDescriptorList(Publisher.class); + return Hudson.getInstance().>getDescriptorList(Publisher.class); } } diff --git a/core/src/main/java/hudson/tasks/Shell.java b/core/src/main/java/hudson/tasks/Shell.java index 8fb1f5fb1bee9880c37d84437db24bd32f8d15bb..b13fd39b1d3b25d03635751761fefecfa02ec2ad 100644 --- a/core/src/main/java/hudson/tasks/Shell.java +++ b/core/src/main/java/hudson/tasks/Shell.java @@ -1,7 +1,7 @@ /* * The MIT License * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Jene Jasper + * Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Jene Jasper, Yahoo! Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -24,21 +24,16 @@ package hudson.tasks; import hudson.FilePath; +import hudson.Functions; import hudson.Util; import hudson.Extension; -import hudson.model.Descriptor; import hudson.model.AbstractProject; -import static hudson.model.Hudson.isWindows; -import hudson.util.FormFieldValidator; import hudson.util.FormValidation; import net.sf.json.JSONObject; +import org.kohsuke.stapler.DataBoundConstructor; import org.kohsuke.stapler.StaplerRequest; -import org.kohsuke.stapler.StaplerResponse; import org.kohsuke.stapler.QueryParameter; -import javax.servlet.ServletException; -import java.io.IOException; -import java.util.Map; import java.util.List; import java.util.ArrayList; import java.util.Arrays; @@ -49,6 +44,7 @@ import java.util.Arrays; * @author Kohsuke Kawaguchi */ public class Shell extends CommandInterpreter { + @DataBoundConstructor public Shell(String command) { super(fixCrLf(command)); } @@ -75,7 +71,22 @@ public class Shell extends CommandInterpreter { return s; } - protected String[] buildCommandLine(FilePath script) { + /** + * Older versions of bash have a bug where non-ASCII on the first line + * makes the shell think the file is a binary file and not a script. Adding + * a leading line feed works around this problem. + */ + private static String addCrForNonASCII(String s) { + if(!s.startsWith("#!")) { + if (s.indexOf('\n')!=0) { + return "\n" + s; + } + } + + return s; + } + + public String[] buildCommandLine(FilePath script) { if(command.startsWith("#!")) { // interpreter override int end = command.indexOf('\n'); @@ -90,13 +101,14 @@ public class Shell extends CommandInterpreter { } protected String getContents() { - return fixCrLf(command); + return addCrForNonASCII(fixCrLf(command)); } protected String getFileExtension() { return ".sh"; } + @Override public DescriptorImpl getDescriptor() { return (DescriptorImpl)super.getDescriptor(); } @@ -116,17 +128,13 @@ public class Shell extends CommandInterpreter { return true; } - protected void convert(Map oldPropertyBag) { - shell = (String)oldPropertyBag.get("shell"); - } - public String getShell() { return shell; } public String getShellOrDefault() { if(shell==null) - return isWindows()?"sh":"/bin/sh"; + return Functions.isWindows() ?"sh":"/bin/sh"; return shell; } @@ -135,19 +143,17 @@ public class Shell extends CommandInterpreter { save(); } - public String getHelpFile() { - return "/help/project-config/shell.html"; - } - public String getDisplayName() { return Messages.Shell_DisplayName(); } + @Override public Builder newInstance(StaplerRequest req, JSONObject data) { - return new Shell(data.getString("shell")); + return new Shell(data.getString("command")); } - public boolean configure( StaplerRequest req ) { + @Override + public boolean configure(StaplerRequest req, JSONObject data) { setShell(req.getParameter("shell")); return true; } diff --git a/core/src/main/java/hudson/tasks/UserNameResolver.java b/core/src/main/java/hudson/tasks/UserNameResolver.java index 50f9f2a995d2e249167b660fbc7e812765b58775..2a8ac7253637c9fa68486ad9cdbdf3711d2f81ed 100644 --- a/core/src/main/java/hudson/tasks/UserNameResolver.java +++ b/core/src/main/java/hudson/tasks/UserNameResolver.java @@ -51,7 +51,7 @@ import java.util.List; */ public abstract class UserNameResolver implements ExtensionPoint { - /** + /** * Finds full name of the given user. * *

    @@ -89,7 +89,7 @@ public abstract class UserNameResolver implements ExtensionPoint { /** * All registered {@link UserNameResolver} implementations. * - * @deprecated + * @deprecated since 2009-02-24. * Use {@link #all()} for read access, and use {@link Extension} for registration. */ public static final List LIST = ExtensionListView.createList(UserNameResolver.class); diff --git a/core/src/main/java/hudson/tasks/_ant/AntConsoleAnnotator.java b/core/src/main/java/hudson/tasks/_ant/AntConsoleAnnotator.java new file mode 100644 index 0000000000000000000000000000000000000000..7ddd6cb9d9e8cb75214e5a1be5cf8869642aeb25 --- /dev/null +++ b/core/src/main/java/hudson/tasks/_ant/AntConsoleAnnotator.java @@ -0,0 +1,79 @@ +/* + * The MIT License + * + * Copyright (c) 2004-2010, Sun Microsystems, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.tasks._ant; + +import hudson.console.LineTransformationOutputStream; + +import java.io.IOException; +import java.io.OutputStream; +import java.nio.ByteBuffer; +import java.nio.charset.Charset; + +/** + * Filter {@link OutputStream} that places an annotation that marks Ant target execution. + * + * @author Kohsuke Kawaguchi + * @sine 1.349 + */ +public class AntConsoleAnnotator extends LineTransformationOutputStream { + private final OutputStream out; + private final Charset charset; + + private boolean seenEmptyLine; + + public AntConsoleAnnotator(OutputStream out, Charset charset) { + this.out = out; + this.charset = charset; + } + + @Override + protected void eol(byte[] b, int len) throws IOException { + String line = charset.decode(ByteBuffer.wrap(b, 0, len)).toString(); + + // trim off CR/LF from the end + line = trimEOL(line); + + if (seenEmptyLine && endsWith(line,':') && line.indexOf(' ')<0) + // put the annotation + new AntTargetNote().encodeTo(out); + + if (line.equals("BUILD SUCCESSFUL") || line.equals("BUILD FAILED")) + new AntOutcomeNote().encodeTo(out); + + seenEmptyLine = line.length()==0; + out.write(b,0,len); + } + + private boolean endsWith(String line, char c) { + int len = line.length(); + return len>0 && line.charAt(len-1)==c; + } + + @Override + public void close() throws IOException { + super.close(); + out.close(); + } + +} diff --git a/core/src/main/java/hudson/tasks/_ant/AntOutcomeNote.java b/core/src/main/java/hudson/tasks/_ant/AntOutcomeNote.java new file mode 100644 index 0000000000000000000000000000000000000000..6a73b555247d99706adbb1453f9eae0cc6f40079 --- /dev/null +++ b/core/src/main/java/hudson/tasks/_ant/AntOutcomeNote.java @@ -0,0 +1,56 @@ +/* + * The MIT License + * + * Copyright (c) 2004-2010, InfraDNA, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.tasks._ant; + +import hudson.Extension; +import hudson.MarkupText; +import hudson.console.ConsoleAnnotationDescriptor; +import hudson.console.ConsoleAnnotator; +import hudson.console.ConsoleNote; + +/** + * Annotates the BUILD SUCCESSFUL/FAILED line of the Ant execution. + * + * @author Kohsuke Kawaguchi + */ +public class AntOutcomeNote extends ConsoleNote { + public AntOutcomeNote() { + } + + @Override + public ConsoleAnnotator annotate(Object context, MarkupText text, int charPos) { + if (text.getText().contains("FAIL")) + text.addMarkup(0,text.length(),"",""); + if (text.getText().contains("SUCCESS")) + text.addMarkup(0,text.length(),"",""); + return null; + } + + @Extension + public static final class DescriptorImpl extends ConsoleAnnotationDescriptor { + public String getDisplayName() { + return "Ant build outcome"; + } + } +} diff --git a/core/src/main/java/hudson/tasks/_ant/AntTargetNote.java b/core/src/main/java/hudson/tasks/_ant/AntTargetNote.java new file mode 100644 index 0000000000000000000000000000000000000000..39586bc0f5a132b3e508e711d36f280cdd3056f3 --- /dev/null +++ b/core/src/main/java/hudson/tasks/_ant/AntTargetNote.java @@ -0,0 +1,61 @@ +/* + * The MIT License + * + * Copyright (c) 2004-2010, Sun Microsystems, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.tasks._ant; + +import hudson.Extension; +import hudson.MarkupText; +import hudson.console.ConsoleNote; +import hudson.console.ConsoleAnnotationDescriptor; +import hudson.console.ConsoleAnnotator; + +import java.util.regex.Pattern; + +/** + * Marks the log line "TARGET:" that Ant uses to mark the beginning of the new target. + * @sine 1.349 + */ +public final class AntTargetNote extends ConsoleNote { + public AntTargetNote() { + } + + @Override + public ConsoleAnnotator annotate(Object context, MarkupText text, int charPos) { + // still under development. too early to put into production + if (!ENABLED) return null; + + MarkupText.SubText t = text.findToken(Pattern.compile(".*(?=:)")); + if (t!=null) + t.addMarkup(0,t.length(),"",""); + return null; + } + + @Extension + public static final class DescriptorImpl extends ConsoleAnnotationDescriptor { + public String getDisplayName() { + return "Ant targets"; + } + } + + public static boolean ENABLED = !Boolean.getBoolean(AntTargetNote.class.getName()+".disabled"); +} diff --git a/core/src/main/java/hudson/tasks/_maven/MavenConsoleAnnotator.java b/core/src/main/java/hudson/tasks/_maven/MavenConsoleAnnotator.java new file mode 100644 index 0000000000000000000000000000000000000000..bb668ff8272ecc28c8c12931edcaa8375786e07b --- /dev/null +++ b/core/src/main/java/hudson/tasks/_maven/MavenConsoleAnnotator.java @@ -0,0 +1,79 @@ +/* + * The MIT License + * + * Copyright (c) 2010, InfraDNA, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.tasks._maven; + +import hudson.console.LineTransformationOutputStream; + +import java.io.IOException; +import java.io.OutputStream; +import java.nio.ByteBuffer; +import java.nio.charset.Charset; +import java.util.regex.Matcher; + +/** + * Filter {@link OutputStream} that places annotations that marks various Maven outputs. + * + * @author Kohsuke Kawaguchi + */ +public class MavenConsoleAnnotator extends LineTransformationOutputStream { + private final OutputStream out; + private final Charset charset; + + public MavenConsoleAnnotator(OutputStream out, Charset charset) { + this.out = out; + this.charset = charset; + } + + @Override + protected void eol(byte[] b, int len) throws IOException { + String line = charset.decode(ByteBuffer.wrap(b, 0, len)).toString(); + + // trim off CR/LF from the end + line = trimEOL(line); + + // TODO: + // we need more support for conveniently putting annotations in the middle of the line, not just at the beginning + // we also need the ability for an extension point to have notes hook into the processing + + Matcher m = MavenMojoNote.PATTERN.matcher(line); + if (m.matches()) + new MavenMojoNote().encodeTo(out); + + m = MavenWarningNote.PATTERN.matcher(line); + if (m.find()) + new MavenWarningNote().encodeTo(out); + + m = MavenErrorNote.PATTERN.matcher(line); + if (m.find()) + new MavenErrorNote().encodeTo(out); + + out.write(b,0,len); + } + + @Override + public void close() throws IOException { + super.close(); + out.close(); + } +} diff --git a/core/src/main/java/hudson/tasks/_maven/MavenErrorNote.java b/core/src/main/java/hudson/tasks/_maven/MavenErrorNote.java new file mode 100644 index 0000000000000000000000000000000000000000..5b13137bc848ca01c64a9c6fe953d9b28f57dd0c --- /dev/null +++ b/core/src/main/java/hudson/tasks/_maven/MavenErrorNote.java @@ -0,0 +1,56 @@ +/* + * The MIT License + * + * Copyright (c) 2010, InfraDNA, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.tasks._maven; + +import hudson.Extension; +import hudson.MarkupText; +import hudson.console.ConsoleAnnotationDescriptor; +import hudson.console.ConsoleAnnotator; +import hudson.console.ConsoleNote; + +import java.util.regex.Pattern; + +/** + * @author Kohsuke Kawaguchi + */ +public class MavenErrorNote extends ConsoleNote { + public MavenErrorNote() { + } + + @Override + public ConsoleAnnotator annotate(Object context, MarkupText text, int charPos) { + text.addMarkup(0,text.length(),"",""); + return null; + } + + @Extension + public static final class DescriptorImpl extends ConsoleAnnotationDescriptor { + public String getDisplayName() { + return "Maven Errors"; + } + } + + public static Pattern PATTERN = Pattern.compile("^\\[ERROR\\]"); +} + diff --git a/core/src/main/java/hudson/tasks/_maven/MavenMojoNote.java b/core/src/main/java/hudson/tasks/_maven/MavenMojoNote.java new file mode 100644 index 0000000000000000000000000000000000000000..68ade17692b7d6bff1468cfb9e1efb267d09e45e --- /dev/null +++ b/core/src/main/java/hudson/tasks/_maven/MavenMojoNote.java @@ -0,0 +1,60 @@ +/* + * The MIT License + * + * Copyright (c) 2010, InfraDNA, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.tasks._maven; + +import hudson.Extension; +import hudson.MarkupText; +import hudson.console.ConsoleAnnotationDescriptor; +import hudson.console.ConsoleAnnotator; +import hudson.console.ConsoleNote; + +import java.util.regex.Pattern; + +/** + * Marks the log line that reports that Maven is executing a mojo. + * It'll look something like this: + * + *

    [INFO] [pmd:pmd {execution: default}]
    + * + * @author Kohsuke Kawaguchi + */ +public class MavenMojoNote extends ConsoleNote { + public MavenMojoNote() { + } + + @Override + public ConsoleAnnotator annotate(Object context, MarkupText text, int charPos) { + text.addMarkup(7,text.length(),"",""); + return null; + } + + @Extension + public static final class DescriptorImpl extends ConsoleAnnotationDescriptor { + public String getDisplayName() { + return "Maven Mojos"; + } + } + + public static Pattern PATTERN = Pattern.compile("\\[INFO\\] \\[[A-Za-z0-9-_]+:[A-Za-z0-9-_]+ \\{execution: [A-Za-z0-9-_]+\\}\\]"); +} diff --git a/core/src/main/java/hudson/tasks/_maven/MavenWarningNote.java b/core/src/main/java/hudson/tasks/_maven/MavenWarningNote.java new file mode 100644 index 0000000000000000000000000000000000000000..afecf58dda016e0eb355f802849b63b61e6c9c1f --- /dev/null +++ b/core/src/main/java/hudson/tasks/_maven/MavenWarningNote.java @@ -0,0 +1,57 @@ +/* + * The MIT License + * + * Copyright (c) 2010, InfraDNA, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.tasks._maven; + +import hudson.Extension; +import hudson.MarkupText; +import hudson.console.ConsoleAnnotationDescriptor; +import hudson.console.ConsoleAnnotator; +import hudson.console.ConsoleNote; + +import java.util.regex.Pattern; + +/** + * Marks the warning messages from Maven. + * + * @author Kohsuke Kawaguchi + */ +public class MavenWarningNote extends ConsoleNote { + public MavenWarningNote() { + } + + @Override + public ConsoleAnnotator annotate(Object context, MarkupText text, int charPos) { + text.addMarkup(0,text.length(),"",""); + return null; + } + + @Extension + public static final class DescriptorImpl extends ConsoleAnnotationDescriptor { + public String getDisplayName() { + return "Maven Warnings"; + } + } + + public static Pattern PATTERN = Pattern.compile("^\\[WARNING\\]"); +} diff --git a/core/src/main/java/hudson/tasks/junit/CaseResult.java b/core/src/main/java/hudson/tasks/junit/CaseResult.java index 538a0811644b79f8748adbe1aa352e52d368c4df..15cbbacc85a341dd04c1480be1e544a5b269d86f 100644 --- a/core/src/main/java/hudson/tasks/junit/CaseResult.java +++ b/core/src/main/java/hudson/tasks/junit/CaseResult.java @@ -1,7 +1,7 @@ /* * The MIT License * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Daniel Dyer, Seiji Sogabe + * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Daniel Dyer, Seiji Sogabe, Tom Huybrechts, Yahoo!, Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -23,22 +23,36 @@ */ package hudson.tasks.junit; +import org.jvnet.localizer.Localizable; import hudson.model.AbstractBuild; +import hudson.model.Run; +import hudson.tasks.test.TestResult; import org.dom4j.Element; import org.kohsuke.stapler.export.Exported; -import java.util.Comparator; import java.text.DecimalFormat; import java.text.ParseException; +import java.util.*; +import java.util.logging.Logger; + +import static java.util.Collections.emptyList; /** * One test result. * * @author Kohsuke Kawaguchi */ -public final class CaseResult extends TestObject implements Comparable { +public final class CaseResult extends TestResult implements Comparable { + private static final Logger LOGGER = Logger.getLogger(CaseResult.class.getName()); private final float duration; + /** + * In JUnit, a test is a method of a class. This field holds the fully qualified class name + * that the test was in. + */ private final String className; + /** + * This field retains the method name. + */ private final String testName; private final boolean skipped; private final String errorStackTrace; @@ -80,7 +94,7 @@ public final class CaseResult extends TestObject implements Comparable _this = Collections.singleton(this); + stdout = possiblyTrimStdio(_this, keepLongStdio, testCase.elementText("system-out")); + stderr = possiblyTrimStdio(_this, keepLongStdio, testCase.elementText("system-err")); + } + + private static final int HALF_MAX_SIZE = 500; + static String possiblyTrimStdio(Collection results, boolean keepLongStdio, String stdio) { // HUDSON-6516 + if (stdio == null) { + return null; + } + if (keepLongStdio) { + return stdio; + } + for (CaseResult result : results) { + if (result.errorStackTrace != null) { + return stdio; + } + } + int len = stdio.length(); + int middle = len - HALF_MAX_SIZE * 2; + if (middle <= 0) { + return stdio; + } + return stdio.substring(0, HALF_MAX_SIZE) + "...[truncated " + middle + " chars]..." + stdio.substring(len - HALF_MAX_SIZE, len); } /** * Used to create a fake failure, when Hudson fails to load data from XML files. */ CaseResult(SuiteResult parent, String testName, String errorStackTrace) { - this( parent, parent.getName(), testName, errorStackTrace, "", null, null, 0.0f, false ); - } - - CaseResult(SuiteResult parent, String testClassName, String testName, String errorStackTrace, String errorDetails, String stdout, String stderr, float duration, boolean skipped) { - this.className = testClassName; + this.className = parent == null ? "unnamed" : parent.getName(); this.testName = testName; this.errorStackTrace = errorStackTrace; - this.errorDetails = errorDetails; + this.errorDetails = ""; this.parent = parent; - this.duration = duration; - this.skipped = skipped; - this.stdout = stdout; - this.stderr = stderr; + this.stdout = null; + this.stderr = null; + this.duration = 0.0f; + this.skipped = false; + } + + public ClassResult getParent() { + return classResult; } private static String getError(Element testCase) { @@ -164,10 +213,18 @@ public final class CaseResult extends TestObject implements Comparable siblings = (classResult ==null ? Collections.emptyList(): classResult.getChildren()); + return uniquifyName(siblings, buf.toString()); } /** * Gets the class name of a test class. */ - @Exported + @Exported(visibility=9) public String getClassName() { return className; } @@ -214,25 +272,62 @@ public final class CaseResult extends TestObject implements Comparable getFailedSinceRun() { + return getOwner().getParent().getBuildByNumber(getFailedSince()); + } /** * Gets the number of consecutive builds (including this) * that this test case has been failing. */ - @Exported + @Exported(visibility=9) public int getAge() { if(isPassed()) return 0; - else - return getOwner().getNumber()-failedSince+1; + else if (getOwner() != null) { + return getOwner().getNumber()-getFailedSince()+1; + } else { + LOGGER.fine("Trying to get age of a CaseResult without an owner"); + return 0; + } } /** @@ -251,7 +346,9 @@ public final class CaseResult extends TestObject implements Comparable getFailedTests() { + return singletonListOrEmpty(!isPassed()); + } + + /** + * Gets the "children" of this test result that passed + * + * @return the children of this test result, if any, or an empty collection + */ + @Override + public Collection getPassedTests() { + return singletonListOrEmpty(isPassed()); + } + + /** + * Gets the "children" of this test result that were skipped + * + * @return the children of this test result, if any, or an empty list + */ + @Override + public Collection getSkippedTests() { + return singletonListOrEmpty(isSkipped()); + } + + private Collection singletonListOrEmpty(boolean f) { + if (f) + return Collections.singletonList(this); + else + return emptyList(); + } /** * If there was an error or a failure, this is the stack trace, or otherwise null. @@ -302,42 +451,29 @@ public final class CaseResult extends TestObject implements Comparable getOwner() { - return parent.getParent().getOwner(); + SuiteResult sr = getSuiteResult(); + if (sr==null) { + LOGGER.warning("In getOwner(), getSuiteResult is null"); return null; } + hudson.tasks.junit.TestResult tr = sr.getParent(); + if (tr==null) { + LOGGER.warning("In getOwner(), suiteResult.getParent() is null."); return null; } + return tr.getOwner(); } - /** - * Gets the relative path to this test case from the given object. - */ - public String getRelativePathFrom(TestObject it) { - if(it==this) - return "."; - - // package, then class - StringBuilder buf = new StringBuilder(); - buf.append(getSafeName()); - if(it!=classResult) { - buf.insert(0,'/'); - buf.insert(0,classResult.getSafeName()); - - PackageResult pkg = classResult.getParent(); - if(it!=pkg) { - buf.insert(0,'/'); - buf.insert(0,pkg.getSafeName()); + public void setParentSuiteResult(SuiteResult parent) { + this.parent = parent; } - } - - return buf.toString(); - } public void freeze(SuiteResult parent) { this.parent = parent; @@ -355,7 +491,7 @@ public final class CaseResult extends TestObject implements Comparable { - private final String className; + private final String className; // simple name private final List cases = new ArrayList(); @@ -53,24 +56,55 @@ public final class ClassResult extends TabulatedResult implements Comparable getOwner() { + return (parent==null ? null: parent.getOwner()); } - public AbstractBuild getOwner() { - return parent.getOwner(); + public PackageResult getParent() { + return parent; } + @Override public ClassResult getPreviousResult() { - PackageResult pr = parent.getPreviousResult(); + if(parent==null) return null; + TestResult pr = parent.getPreviousResult(); if(pr==null) return null; - return pr.getDynamic(getName(),null,null); + if(pr instanceof PackageResult) { + return ((PackageResult)pr).getClassResult(getName()); + } + return null; + } + + @Override + public hudson.tasks.test.TestResult findCorrespondingResult(String id) { + String myID = safe(getName()); + int base = id.indexOf(myID); + String caseName; + if (base > 0) { + int caseNameStart = base + myID.length() + 1; + caseName = id.substring(caseNameStart); + } else { + caseName = id; + } + + CaseResult child = getCaseResult(caseName); + if (child != null) { + return child; + } + + return null; } public String getTitle() { return Messages.ClassResult_getTitle(getName()); } + @Override + public String getChildTitle() { + return "Class Reults"; + } + @Exported(visibility=999) public String getName() { int idx = className.lastIndexOf('.'); @@ -81,8 +115,8 @@ public final class ClassResult extends TabulatedResult implements Comparable getChildren() { return cases; } + public boolean hasChildren() { + return ((cases != null) && (cases.size() > 0)); + } + // TODO: wait for stapler 1.60 @Exported public float getDuration() { return duration; @@ -120,6 +168,29 @@ public final class ClassResult extends TabulatedResult implements Comparable 1) + return true; + else + return false; + } + + public List getList() { + List list = new ArrayList(); + for (AbstractBuild b: testObject.getOwner().getParent().getBuilds()) { + if (b.isBuilding()) continue; + TestResult o = testObject.getResultInBuild(b); + if (o != null) { + list.add(o); + } + } + return list; + } + + /** + * Graph of duration of tests over time. + */ + public Graph getDurationGraph() { + return new GraphImpl("seconds") { + protected DataSetBuilder createDataSet() { + DataSetBuilder data = new DataSetBuilder(); + for (hudson.tasks.test.TestResult o: getList()) { + data.add(((double) o.getDuration()) / (1000), "", new ChartLabel(o) { + @Override + public Color getColor() { + if (o.getFailCount() > 0) + return ColorPalette.RED; + else if (o.getSkipCount() > 0) + return ColorPalette.YELLOW; + else + return ColorPalette.BLUE; + } + }); + } + return data; + } + }; + } + + /** + * Graph of # of tests over time. + */ + public Graph getCountGraph() { + return new GraphImpl("") { + protected DataSetBuilder createDataSet() { + DataSetBuilder data = new DataSetBuilder(); + + for (TestResult o: getList()) { + data.add(o.getPassCount(), "2Passed", new ChartLabel(o)); + data.add(o.getFailCount(), "1Failed", new ChartLabel(o)); + data.add(o.getSkipCount(), "0Skipped", new ChartLabel(o)); + } + return data; + } + }; + } + + private abstract class GraphImpl extends Graph { + private final String yLabel; + + protected GraphImpl(String yLabel) { + super(testObject.getOwner().getTimestamp(),600,300); + this.yLabel = yLabel; + } + + protected abstract DataSetBuilder createDataSet(); + + protected JFreeChart createGraph() { + final CategoryDataset dataset = createDataSet().build(); + + final JFreeChart chart = ChartFactory.createStackedAreaChart(null, // chart + // title + null, // unused + yLabel, // range axis label + dataset, // data + PlotOrientation.VERTICAL, // orientation + false, // include legend + true, // tooltips + false // urls + ); + + chart.setBackgroundPaint(Color.white); + + final CategoryPlot plot = chart.getCategoryPlot(); + + // plot.setAxisOffset(new Spacer(Spacer.ABSOLUTE, 5.0, 5.0, 5.0, 5.0)); + plot.setBackgroundPaint(Color.WHITE); + plot.setOutlinePaint(null); + plot.setForegroundAlpha(0.8f); + // plot.setDomainGridlinesVisible(true); + // plot.setDomainGridlinePaint(Color.white); + plot.setRangeGridlinesVisible(true); + plot.setRangeGridlinePaint(Color.black); + + CategoryAxis domainAxis = new ShiftedCategoryAxis(null); + plot.setDomainAxis(domainAxis); + domainAxis.setCategoryLabelPositions(CategoryLabelPositions.UP_90); + domainAxis.setLowerMargin(0.0); + domainAxis.setUpperMargin(0.0); + domainAxis.setCategoryMargin(0.0); + + final NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis(); + ChartUtil.adjustChebyshev(dataset, rangeAxis); + rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits()); + rangeAxis.setAutoRange(true); + + StackedAreaRenderer ar = new StackedAreaRenderer2() { + @Override + public Paint getItemPaint(int row, int column) { + ChartLabel key = (ChartLabel) dataset.getColumnKey(column); + if (key.getColor() != null) return key.getColor(); + return super.getItemPaint(row, column); + } + + @Override + public String generateURL(CategoryDataset dataset, int row, + int column) { + ChartLabel label = (ChartLabel) dataset.getColumnKey(column); + return label.getUrl(); + } + + @Override + public String generateToolTip(CategoryDataset dataset, int row, + int column) { + ChartLabel label = (ChartLabel) dataset.getColumnKey(column); + return label.o.getOwner().getDisplayName() + " : " + + label.o.getDurationString(); + } + }; + plot.setRenderer(ar); + ar.setSeriesPaint(0,ColorPalette.RED); // Failures. + ar.setSeriesPaint(1,ColorPalette.YELLOW); // Skips. + ar.setSeriesPaint(2,ColorPalette.BLUE); // Total. + + // crop extra space around the graph + plot.setInsets(new RectangleInsets(0, 0, 0, 5.0)); + + return chart; + } + } + + class ChartLabel implements Comparable { + TestResult o; + String url; + public ChartLabel(TestResult o) { + this.o = o; + this.url = null; + } + + public String getUrl() { + if (this.url == null) generateUrl(); + return url; + } + + private void generateUrl() { + AbstractBuild build = o.getOwner(); + String buildLink = build.getUrl(); + String actionUrl = o.getTestResultAction().getUrlName(); + this.url = Hudson.getInstance().getRootUrl() + buildLink + actionUrl + o.getUrl(); + } + + public int compareTo(ChartLabel that) { + return this.o.getOwner().number - that.o.getOwner().number; + } + + @Override + public boolean equals(Object o) { + if (!(o instanceof ChartLabel)) { + return false; + } + ChartLabel that = (ChartLabel) o; + return this.o == that.o; + } + + public Color getColor() { + return null; + } + + @Override + public int hashCode() { + return o.hashCode(); + } + + @Override + public String toString() { + String l = o.getOwner().getDisplayName(); + String s = o.getOwner().getBuiltOnStr(); + if (s != null) + l += ' ' + s; + return l; +// return o.getDisplayName() + " " + o.getOwner().getDisplayName(); + } + + } + +} diff --git a/core/src/main/java/hudson/tasks/junit/JUnitParser.java b/core/src/main/java/hudson/tasks/junit/JUnitParser.java new file mode 100644 index 0000000000000000000000000000000000000000..aba7273b412039cb83d0d631c9b4b112795a86db --- /dev/null +++ b/core/src/main/java/hudson/tasks/junit/JUnitParser.java @@ -0,0 +1,120 @@ +/* + * The MIT License + * + * Copyright (c) 2009, Yahoo!, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.tasks.junit; + +import hudson.model.TaskListener; +import hudson.tasks.test.TestResultParser; +import hudson.model.AbstractBuild; +import hudson.*; +import hudson.remoting.VirtualChannel; + +import java.io.IOException; +import java.io.File; + +import org.apache.tools.ant.types.FileSet; +import org.apache.tools.ant.DirectoryScanner; + +/** + * Parse some JUnit xml files and generate a TestResult containing all the + * results parsed. + */ +@Extension +public class JUnitParser extends TestResultParser { + + private final boolean keepLongStdio; + + /** XXX TestResultParser.all does not seem to ever be called so why must this be an Extension? */ + @Deprecated + public JUnitParser() { + this(false); + } + + /** + * @param keepLongStdio if true, retain a suite's complete stdout/stderr even if this is huge and the suite passed + * @since 1.358 + */ + public JUnitParser(boolean keepLongStdio) { + this.keepLongStdio = keepLongStdio; + } + + @Override + public String getDisplayName() { + return "JUnit Parser"; + } + + @Override + public String getTestResultLocationMessage() { + return "JUnit xml files:"; + } + + @Override + public TestResult parse(String testResultLocations, + AbstractBuild build, Launcher launcher, + TaskListener listener) + throws InterruptedException, IOException + { + final long buildTime = build.getTimestamp().getTimeInMillis(); + final long timeOnMaster = System.currentTimeMillis(); + + // [BUG 3123310] TODO - Test Result Refactor: review and fix TestDataPublisher/TestAction subsystem] + // also get code that deals with testDataPublishers from JUnitResultArchiver.perform + + TestResult testResult = build.getWorkspace().act( new ParseResultCallable(testResultLocations, buildTime, timeOnMaster, keepLongStdio)); + return testResult; + } + + private static final class ParseResultCallable implements + FilePath.FileCallable { + private final long buildTime; + private final String testResults; + private final long nowMaster; + private final boolean keepLongStdio; + + private ParseResultCallable(String testResults, long buildTime, long nowMaster, boolean keepLongStdio) { + this.buildTime = buildTime; + this.testResults = testResults; + this.nowMaster = nowMaster; + this.keepLongStdio = keepLongStdio; + } + + public TestResult invoke(File ws, VirtualChannel channel) throws IOException { + final long nowSlave = System.currentTimeMillis(); + + FileSet fs = Util.createFileSet(ws, testResults); + DirectoryScanner ds = fs.getDirectoryScanner(); + + String[] files = ds.getIncludedFiles(); + if (files.length == 0) { + // no test result. Most likely a configuration + // error or fatal problem + throw new AbortException(Messages.JUnitResultArchiver_NoTestReportFound()); + } + + TestResult result = new TestResult(buildTime + (nowSlave - nowMaster), ds, keepLongStdio); + result.tally(); + return result; + } + } + +} diff --git a/core/src/main/java/hudson/tasks/junit/JUnitResultArchiver.java b/core/src/main/java/hudson/tasks/junit/JUnitResultArchiver.java index ca3e16cacca415cb8438f47f6ebec32b170ee8fa..fe86c1ad7d4e3479405a6b6a097db5d887918d99 100644 --- a/core/src/main/java/hudson/tasks/junit/JUnitResultArchiver.java +++ b/core/src/main/java/hudson/tasks/junit/JUnitResultArchiver.java @@ -1,7 +1,8 @@ /* * The MIT License * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Martin Eigenbrodt + * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Martin Eigenbrodt, + * Tom Huybrechts, Yahoo!, Inc., Richard Hierlmeier * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -23,12 +24,10 @@ */ package hudson.tasks.junit; +import hudson.AbortException; import hudson.Extension; import hudson.FilePath; -import hudson.FilePath.FileCallable; import hudson.Launcher; -import hudson.Util; -import hudson.AbortException; import hudson.matrix.MatrixAggregatable; import hudson.matrix.MatrixAggregator; import hudson.matrix.MatrixBuild; @@ -36,128 +35,240 @@ import hudson.model.AbstractBuild; import hudson.model.AbstractProject; import hudson.model.Action; import hudson.model.BuildListener; +import hudson.model.CheckPoint; +import hudson.model.Descriptor; import hudson.model.Result; -import hudson.remoting.VirtualChannel; +import hudson.model.Saveable; import hudson.tasks.BuildStepDescriptor; +import hudson.tasks.BuildStepMonitor; import hudson.tasks.Publisher; import hudson.tasks.Recorder; +import hudson.tasks.junit.TestResultAction.Data; import hudson.tasks.test.TestResultAggregator; import hudson.tasks.test.TestResultProjectAction; +import hudson.util.DescribableList; import hudson.util.FormValidation; +import net.sf.json.JSONObject; import org.apache.tools.ant.DirectoryScanner; import org.apache.tools.ant.types.FileSet; import org.kohsuke.stapler.AncestorInPath; import org.kohsuke.stapler.DataBoundConstructor; import org.kohsuke.stapler.QueryParameter; +import org.kohsuke.stapler.StaplerRequest; -import java.io.File; import java.io.IOException; import java.io.Serializable; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.List; /** * Generates HTML report from JUnit test result XML files. - * + * * @author Kohsuke Kawaguchi */ -public class JUnitResultArchiver extends Recorder implements Serializable, MatrixAggregatable { +public class JUnitResultArchiver extends Recorder implements Serializable, + MatrixAggregatable { /** * {@link FileSet} "includes" string, like "foo/bar/*.xml" */ private final String testResults; - - @DataBoundConstructor - public JUnitResultArchiver(String junitreport_includes) { - this.testResults = junitreport_includes; - } - - public boolean perform(AbstractBuild build, Launcher launcher, BuildListener listener) throws InterruptedException, IOException { - listener.getLogger().println(Messages.JUnitResultArchiver_Recording()); - TestResultAction action; - - try { - final long buildTime = build.getTimestamp().getTimeInMillis(); - final long nowMaster = System.currentTimeMillis(); - - TestResult result = build.getProject().getWorkspace().act(new FileCallable() { - public TestResult invoke(File ws, VirtualChannel channel) throws IOException { - final long nowSlave = System.currentTimeMillis(); - - FileSet fs = Util.createFileSet(ws,testResults); - DirectoryScanner ds = fs.getDirectoryScanner(); - - String[] files = ds.getIncludedFiles(); - if(files.length==0) { - // no test result. Most likely a configuration error or fatal problem - throw new AbortException(Messages.JUnitResultArchiver_NoTestReportFound()); - } - - return new TestResult(buildTime+(nowSlave-nowMaster), ds); - } - }); - - action = new TestResultAction(build, result, listener); - if(result.getPassCount()==0 && result.getFailCount()==0) - throw new AbortException(Messages.JUnitResultArchiver_ResultIsEmpty()); - } catch (AbortException e) { - if(build.getResult()==Result.FAILURE) - // most likely a build failed before it gets to the test phase. - // don't report confusing error message. - return true; - - listener.getLogger().println(e.getMessage()); - build.setResult(Result.FAILURE); - return true; - } catch (IOException e) { - e.printStackTrace(listener.error("Failed to archive JUnit reports")); - build.setResult(Result.FAILURE); - return true; - } + /** + * If true, retain a suite's complete stdout/stderr even if this is huge and the suite passed. + * @since 1.358 + */ + private final boolean keepLongStdio; - build.getActions().add(action); + /** + * {@link TestDataPublisher}s configured for this archiver, to process the recorded data. + * For compatibility reasons, can be null. + * @since 1.320 + */ + private final DescribableList> testDataPublishers; - if(action.getResult().getFailCount()>0) - build.setResult(Result.UNSTABLE); + /** + * left for backwards compatibility + * @deprecated since 2009-08-09. + */ + @Deprecated + public JUnitResultArchiver(String testResults) { + this(testResults, false, null); + } - return true; + @Deprecated + public JUnitResultArchiver(String testResults, + DescribableList> testDataPublishers) { + this(testResults, false, testDataPublishers); } + + @DataBoundConstructor + public JUnitResultArchiver( + String testResults, + boolean keepLongStdio, + DescribableList> testDataPublishers) { + this.testResults = testResults; + this.keepLongStdio = keepLongStdio; + this.testDataPublishers = testDataPublishers; + } - public String getTestResults() { - return testResults; + /** + * In progress. Working on delegating the actual parsing to the JUnitParser. + */ + protected TestResult parse(String expandedTestResults, AbstractBuild build, Launcher launcher, BuildListener listener) + throws IOException, InterruptedException + { + return new JUnitParser(isKeepLongStdio()).parse(expandedTestResults, build, launcher, listener); } @Override - public Action getProjectAction(AbstractProject project) { - return new TestResultProjectAction(project); - } + public boolean perform(AbstractBuild build, Launcher launcher, + BuildListener listener) throws InterruptedException, IOException { + listener.getLogger().println(Messages.JUnitResultArchiver_Recording()); + TestResultAction action; + + final String testResults = build.getEnvironment(listener).expand(this.testResults); + try { + TestResult result = parse(testResults, build, launcher, listener); - public MatrixAggregator createAggregator(MatrixBuild build, Launcher launcher, BuildListener listener) { - return new TestResultAggregator(build,launcher,listener); - } + try { + action = new TestResultAction(build, result, listener); + } catch (NullPointerException npe) { + throw new AbortException(Messages.JUnitResultArchiver_BadXML(testResults)); + } + result.freeze(action); + if (result.getPassCount() == 0 && result.getFailCount() == 0) + throw new AbortException(Messages.JUnitResultArchiver_ResultIsEmpty()); + + // TODO: Move into JUnitParser [BUG 3123310] + List data = new ArrayList(); + if (testDataPublishers != null) { + for (TestDataPublisher tdp : testDataPublishers) { + Data d = tdp.getTestData(build, launcher, listener, result); + if (d != null) { + data.add(d); + } + } + } + + action.setData(data); + + CHECKPOINT.block(); + + } catch (AbortException e) { + if (build.getResult() == Result.FAILURE) + // most likely a build failed before it gets to the test phase. + // don't report confusing error message. + return true; - private static final long serialVersionUID = 1L; + listener.getLogger().println(e.getMessage()); + build.setResult(Result.FAILURE); + return true; + } catch (IOException e) { + e.printStackTrace(listener.error("Failed to archive test reports")); + build.setResult(Result.FAILURE); + return true; + } + + build.getActions().add(action); + CHECKPOINT.report(); + + if (action.getResult().getFailCount() > 0) + build.setResult(Result.UNSTABLE); + + return true; + } + + /** + * Not actually used, but left for backward compatibility + * + * @deprecated since 2009-08-10. + */ + protected TestResult parseResult(DirectoryScanner ds, long buildTime) + throws IOException { + return new TestResult(buildTime, ds); + } + + /** + * This class does explicit checkpointing. + */ + public BuildStepMonitor getRequiredMonitorService() { + return BuildStepMonitor.NONE; + } + + public String getTestResults() { + return testResults; + } + + public DescribableList> getTestDataPublishers() { + return testDataPublishers; + } + + @Override + public Collection getProjectActions(AbstractProject project) { + return Collections.singleton(new TestResultProjectAction(project)); + } + + public MatrixAggregator createAggregator(MatrixBuild build, + Launcher launcher, BuildListener listener) { + return new TestResultAggregator(build, launcher, listener); + } + + /** + * @return the keepLongStdio + */ + public boolean isKeepLongStdio() { + return keepLongStdio; + } + + /** + * Test result tracks the diff from the previous run, hence the checkpoint. + */ + private static final CheckPoint CHECKPOINT = new CheckPoint( + "JUnit result archiving"); + + private static final long serialVersionUID = 1L; @Extension public static class DescriptorImpl extends BuildStepDescriptor { - public String getDisplayName() { - return Messages.JUnitResultArchiver_DisplayName(); - } + public String getDisplayName() { + return Messages.JUnitResultArchiver_DisplayName(); + } + @Override public String getHelpFile() { return "/help/tasks/junit/report.html"; } - /** - * Performs on-the-fly validation on the file mask wildcard. - */ - public FormValidation doCheck(@AncestorInPath AbstractProject project, @QueryParameter String value) throws IOException { - return FilePath.validateFileMask(project.getWorkspace(),value); - } + @Override + public Publisher newInstance(StaplerRequest req, JSONObject formData) + throws hudson.model.Descriptor.FormException { + String testResults = formData.getString("testResults"); + boolean keepLongStdio = formData.getBoolean("keepLongStdio"); + DescribableList> testDataPublishers = new DescribableList>(Saveable.NOOP); + try { + testDataPublishers.rebuild(req, formData, TestDataPublisher.all()); + } catch (IOException e) { + throw new FormException(e,null); + } - public boolean isApplicable(Class jobType) { - return true; - } + return new JUnitResultArchiver(testResults, keepLongStdio, testDataPublishers); + } + + /** + * Performs on-the-fly validation on the file mask wildcard. + */ + public FormValidation doCheckTestResults( + @AncestorInPath AbstractProject project, + @QueryParameter String value) throws IOException { + return FilePath.validateFileMask(project.getSomeWorkspace(), value); + } + + public boolean isApplicable(Class jobType) { + return true; + } } } diff --git a/core/src/main/java/hudson/tasks/junit/PackageResult.java b/core/src/main/java/hudson/tasks/junit/PackageResult.java index 69bd5d271968613388df990b15159181a9574105..1a0bf17714d1770eca8cc07e5f73c85f9657f148 100644 --- a/core/src/main/java/hudson/tasks/junit/PackageResult.java +++ b/core/src/main/java/hudson/tasks/junit/PackageResult.java @@ -1,7 +1,7 @@ /* * The MIT License * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Daniel Dyer, id:cactusman + * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Daniel Dyer, id:cactusman, Tom Huybrechts, Yahoo!, Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -24,16 +24,13 @@ package hudson.tasks.junit; import hudson.model.AbstractBuild; +import hudson.tasks.test.MetaTabulatedResult; +import hudson.tasks.test.TestResult; import org.kohsuke.stapler.StaplerRequest; import org.kohsuke.stapler.StaplerResponse; import org.kohsuke.stapler.export.Exported; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.List; -import java.util.Map; -import java.util.TreeMap; +import java.util.*; /** * Cumulative test result for a package. @@ -41,102 +38,258 @@ import java.util.TreeMap; * @author Kohsuke Kawaguchi */ public final class PackageResult extends MetaTabulatedResult implements Comparable { - private final String packageName; + private final String packageName; /** * All {@link ClassResult}s keyed by their short name. */ private final Map classes = new TreeMap(); - private int passCount,failCount,skipCount; - - private final TestResult parent; + private final hudson.tasks.junit.TestResult parent; private float duration; - PackageResult(TestResult parent, String packageName) { + PackageResult(hudson.tasks.junit.TestResult parent, String packageName) { this.packageName = packageName; this.parent = parent; } + + @Override + public AbstractBuild getOwner() { + return (parent == null ? null : parent.getOwner()); + } + + public hudson.tasks.junit.TestResult getParent() { + return parent; + } @Exported(visibility=999) public String getName() { return packageName; } - public @Override String getSafeName() { - return uniquifyName(parent.getChildren(), safe(getName())); + @Override + public String getSafeName() { + Collection siblings = (parent == null ? Collections.EMPTY_LIST : parent.getChildren()); + return uniquifyName( + siblings, + safe(getName())); } - public AbstractBuild getOwner() { - return parent.getOwner(); + @Override + public TestResult findCorrespondingResult(String id) { + String myID = safe(getName()); + int base = id.indexOf(myID); + String className; + String subId = null; + if (base > 0) { + int classNameStart = base + myID.length() + 1; + className = id.substring(classNameStart); + } else { + className = id; } + int classNameEnd = className.indexOf('/'); + if (classNameEnd > 0) { + subId = className.substring(classNameEnd + 1); + if (subId.length() == 0) { + subId = null; + } + className = className.substring(0, classNameEnd); + } + + ClassResult child = getClassResult(className); + if (child != null) { + if (subId != null) { + return child.findCorrespondingResult(subId); + } else { + return child; + } + } - public PackageResult getPreviousResult() { - TestResult tr = parent.getPreviousResult(); - if(tr==null) return null; - return tr.byPackage(getName()); + return null; } + @Override public String getTitle() { return Messages.PackageResult_getTitle(getName()); } + @Override public String getChildTitle() { return Messages.PackageResult_getChildTitle(); } // TODO: wait until stapler 1.60 to do this @Exported + @Override public float getDuration() { return duration; } @Exported + @Override public int getPassCount() { return passCount; } @Exported + @Override public int getFailCount() { return failCount; } @Exported + @Override public int getSkipCount() { return skipCount; } - public ClassResult getDynamic(String name, StaplerRequest req, StaplerResponse rsp) { - return classes.get(name); + @Override + public Object getDynamic(String name, StaplerRequest req, StaplerResponse rsp) { + ClassResult result = getClassResult(name); + if (result != null) { + return result; + } else { + return super.getDynamic(name, req, rsp); + } } + public ClassResult getClassResult(String name) { + return classes.get(name); + } + @Exported(name="child") public Collection getChildren() { return classes.values(); } + /** + * Whether this test result has children. + */ + @Override + public boolean hasChildren() { + int totalTests = passCount + failCount + skipCount; + return (totalTests != 0); + } + + /** + * Returns a list of the failed cases, in no particular + * sort order + * @return + */ public List getFailedTests() { List r = new ArrayList(); for (ClassResult clr : classes.values()) { for (CaseResult cr : clr.getChildren()) { - if(!cr.isPassed() && !cr.isSkipped()) + if (!cr.isPassed() && !cr.isSkipped()) { + r.add(cr); + } + } + } + return r; + } + + /** + * Returns a list of the failed cases, sorted by age. + * @return + */ + public List getFailedTestsSortedByAge() { + List failedTests = getFailedTests(); + Collections.sort(failedTests, CaseResult.BY_AGE); + return failedTests; + } + + /** + * Gets the "children" of this test result that passed + * + * @return the children of this test result, if any, or an empty collection + */ + @Override + public Collection getPassedTests() { + List r = new ArrayList(); + for (ClassResult clr : classes.values()) { + for (CaseResult cr : clr.getChildren()) { + if (cr.isPassed()) { r.add(cr); + } } } Collections.sort(r,CaseResult.BY_AGE); return r; } + /** + * Gets the "children" of this test result that were skipped + * + * @return the children of this test result, if any, or an empty list + */ + @Override + public Collection getSkippedTests() { + List r = new ArrayList(); + for (ClassResult clr : classes.values()) { + for (CaseResult cr : clr.getChildren()) { + if (cr.isSkipped()) { + r.add(cr); + } + } + } + Collections.sort(r, CaseResult.BY_AGE); + return r; + } + +// /** +// * If this test failed, then return the build number +// * when this test started failing. +// */ +// @Override +// TODO: implement! public int getFailedSince() { +// return 0; // (FIXME: generated) +// } +// /** +// * If this test failed, then return the run +// * when this test started failing. +// */ +// TODO: implement! @Override +// public Run getFailedSinceRun() { +// return null; // (FIXME: generated) +// } + /** + * @return true if every test was not skipped and every test did not fail, false otherwise. + */ + @Override + public boolean isPassed() { + return (failCount == 0 && skipCount == 0); + } + void add(CaseResult r) { String n = r.getSimpleName(), sn = safe(n); - ClassResult c = classes.get(sn); - if(c==null) + ClassResult c = getClassResult(sn); + if (c == null) { classes.put(sn,c=new ClassResult(this,n)); + } c.add(r); duration += r.getDuration(); } + /** + * Recount my children + */ + @Override + public void tally() { + passCount = 0; + failCount = 0; + skipCount = 0; + duration = 0; + + for (ClassResult cr : classes.values()) { + cr.tally(); + passCount += cr.getPassCount(); + failCount += cr.getFailCount(); + skipCount += cr.getSkipCount(); + duration += cr.getDuration(); + } + } + void freeze() { - passCount=failCount=0; + passCount = failCount = skipCount = 0; for (ClassResult cr : classes.values()) { cr.freeze(); passCount += cr.getPassCount(); @@ -145,7 +298,6 @@ public final class PackageResult extends MetaTabulatedResult implements Comparab } } - public int compareTo(PackageResult that) { return this.packageName.compareTo(that.packageName); } diff --git a/core/src/main/java/hudson/tasks/junit/SuiteResult.java b/core/src/main/java/hudson/tasks/junit/SuiteResult.java index 76411b589760e57f76ae4d2001fd8c45ed7a4ae4..59cffc7d2ccdf531f122b3f3927da7c93f0f8f8b 100644 --- a/core/src/main/java/hudson/tasks/junit/SuiteResult.java +++ b/core/src/main/java/hudson/tasks/junit/SuiteResult.java @@ -1,7 +1,7 @@ /* * The MIT License * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Erik Ramfelt, Xavier Le Vourch + * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Erik Ramfelt, Xavier Le Vourch, Tom Huybrechts, Yahoo!, Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -23,6 +23,9 @@ */ package hudson.tasks.junit; +import hudson.tasks.test.TestObject; +import hudson.util.IOException2; +import org.apache.commons.io.FileUtils; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Element; @@ -31,9 +34,14 @@ import org.kohsuke.stapler.export.Exported; import org.kohsuke.stapler.export.ExportedBean; import java.io.File; +import java.io.IOException; import java.io.Serializable; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; +import java.util.Set; +import java.util.regex.Matcher; +import java.util.regex.Pattern; /** * Result of one test suite. @@ -50,6 +58,7 @@ import java.util.List; */ @ExportedBean public final class SuiteResult implements Serializable { + private final String file; private final String name; private final String stdout; private final String stderr; @@ -64,12 +73,13 @@ public final class SuiteResult implements Serializable { * All test cases. */ private final List cases = new ArrayList(); - private transient TestResult parent; + private transient hudson.tasks.junit.TestResult parent; SuiteResult(String name, String stdout, String stderr) { this.name = name; this.stderr = stderr; this.stdout = stdout; + this.file = null; } /** @@ -77,7 +87,7 @@ public final class SuiteResult implements Serializable { * This method returns a collection, as a single XML may have multiple <testsuite> * elements wrapped into the top-level <testsuites>. */ - static List parse(File xmlReport) throws DocumentException { + static List parse(File xmlReport, boolean keepLongStdio) throws DocumentException, IOException { List r = new ArrayList(); // parse into DOM @@ -92,16 +102,23 @@ public final class SuiteResult implements Serializable { if(root.getName().equals("testsuites")) { // multi-suite file for (Element suite : (List)root.elements("testsuite")) - r.add(new SuiteResult(xmlReport,suite)); + r.add(new SuiteResult(xmlReport, suite, keepLongStdio)); } else { // single suite file - r.add(new SuiteResult(xmlReport,root)); + r.add(new SuiteResult(xmlReport, root, keepLongStdio)); } return r; } - private SuiteResult(File xmlReport, Element suite) throws DocumentException { + /** + * @param xmlReport + * A JUnit XML report file whose top level element is 'testsuite'. + * @param suite + * The parsed result of {@code xmlReport} + */ + private SuiteResult(File xmlReport, Element suite, boolean keepLongStdio) throws DocumentException, IOException { + this.file = xmlReport.getAbsolutePath(); String name = suite.attributeValue("name"); if(name==null) // some user reported that name is null in their environment. @@ -114,13 +131,10 @@ public final class SuiteResult implements Serializable { this.name = TestObject.safe(name); this.timestamp = suite.attributeValue("timestamp"); - stdout = suite.elementText("system-out"); - stderr = suite.elementText("system-err"); - Element ex = suite.element("error"); if(ex!=null) { // according to junit-noframes.xsl l.229, this happens when the test class failed to load - addCase(new CaseResult(this,suite,"")); + addCase(new CaseResult(this, suite, "", keepLongStdio)); } for (Element e : (List)suite.elements("testcase")) { @@ -143,8 +157,29 @@ public final class SuiteResult implements Serializable { // one wants to use @name from , // the other wants to use @classname from . - addCase(new CaseResult(this, e, classname)); + addCase(new CaseResult(this, e, classname, keepLongStdio)); } + + String stdout = suite.elementText("system-out"); + String stderr = suite.elementText("system-err"); + if (stdout==null && stderr==null) { + // Surefire never puts stdout/stderr in the XML. Instead, it goes to a separate file + Matcher m = SUREFIRE_FILENAME.matcher(xmlReport.getName()); + if (m.matches()) { + // look for ***-output.txt from TEST-***.xml + File mavenOutputFile = new File(xmlReport.getParentFile(),m.group(1)+"-output.txt"); + if (mavenOutputFile.exists()) { + try { + stdout = FileUtils.readFileToString(mavenOutputFile); + } catch (IOException e) { + throw new IOException2("Failed to read "+mavenOutputFile,e); + } + } + } + } + + this.stdout = CaseResult.possiblyTrimStdio(cases, keepLongStdio, stdout); + this.stderr = CaseResult.possiblyTrimStdio(cases, keepLongStdio, stderr); } /*package*/ void addCase(CaseResult cr) { @@ -152,12 +187,12 @@ public final class SuiteResult implements Serializable { duration += cr.getDuration(); } - @Exported + @Exported(visibility=9) public String getName() { return name; } - @Exported + @Exported(visibility=9) public float getDuration() { return duration; } @@ -183,25 +218,34 @@ public final class SuiteResult implements Serializable { public String getStderr() { return stderr; } + + /** + * The absolute path to the original test report. OS-dependent. + */ + public String getFile() { + return file; + } - public TestResult getParent() { + public hudson.tasks.junit.TestResult getParent() { return parent; } - @Exported + @Exported(visibility=9) public String getTimestamp() { return timestamp; } - @Exported(inline=true) + @Exported(inline=true,visibility=9) public List getCases() { return cases; } public SuiteResult getPreviousResult() { - TestResult pr = parent.getPreviousResult(); + hudson.tasks.test.TestResult pr = parent.getPreviousResult(); if(pr==null) return null; - return pr.getSuite(name); + if(pr instanceof hudson.tasks.junit.TestResult) + return ((hudson.tasks.junit.TestResult)pr).getSuite(name); + return null; } /** @@ -218,8 +262,26 @@ public final class SuiteResult implements Serializable { } return null; } + + public Set getClassNames() { + Set result = new HashSet(); + for (CaseResult c : cases) { + result.add(c.getClassName()); + } + return result; + } - /*package*/ boolean freeze(TestResult owner) { + /** KLUGE. We have to call this to prevent freeze() + * from calling c.freeze() on all its children, + * because that in turn calls c.getOwner(), + * which requires a non-null parent. + * @param parent + */ + void setParent(hudson.tasks.junit.TestResult parent) { + this.parent = parent; + } + + /*package*/ boolean freeze(hudson.tasks.junit.TestResult owner) { if(this.parent!=null) return false; // already frozen @@ -230,4 +292,6 @@ public final class SuiteResult implements Serializable { } private static final long serialVersionUID = 1L; + + private static final Pattern SUREFIRE_FILENAME = Pattern.compile("TEST-(.+)\\.xml"); } diff --git a/core/src/main/java/hudson/tasks/junit/TabulatedResult.java b/core/src/main/java/hudson/tasks/junit/TabulatedResult.java deleted file mode 100644 index c0caf25deba246116e91c44f261720c61c744132..0000000000000000000000000000000000000000 --- a/core/src/main/java/hudson/tasks/junit/TabulatedResult.java +++ /dev/null @@ -1,72 +0,0 @@ -/* - * The MIT License - * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Daniel Dyer - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ -package hudson.tasks.junit; - -import java.util.Collection; - -/** - * Cumulated result of multiple tests. - * - * @author Kohsuke Kawaguchi - */ -public abstract class TabulatedResult extends TestObject { - - /** - * Gets the human readable title of this result object. - */ - public abstract String getTitle(); - - /** - * Gets the total number of passed tests. - */ - public abstract int getPassCount(); - - /** - * Gets the total number of failed tests. - */ - public abstract int getFailCount(); - - /** - * Gets the total number of skipped tests. - */ - public abstract int getSkipCount(); - - /** - * Gets the total number of tests. - */ - public final int getTotalCount() { - return getPassCount()+getFailCount()+getSkipCount(); - } - - /** - * Gets the child test result objects. - */ - public abstract Collection getChildren(); - - /** - * Gets the name of this object. - */ - public @Override abstract String getName(); - -} diff --git a/core/src/main/java/hudson/tasks/junit/TestAction.java b/core/src/main/java/hudson/tasks/junit/TestAction.java new file mode 100644 index 0000000000000000000000000000000000000000..ec2608ac96c40ef3b66f4653c5828a6add498fbf --- /dev/null +++ b/core/src/main/java/hudson/tasks/junit/TestAction.java @@ -0,0 +1,50 @@ +/* + * The MIT License + * + * Copyright (c) 2004-2009, Sun Microsystems, Inc., Tom Huybrechts + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.tasks.junit; + +import hudson.model.Action; + +/** + * + * Jelly (all optional): + *
      + *
    • index.jelly: included at the top of the test page
    • + *
    • summary.jelly: included in a collapsed panel on the test parent page
    • + *
    • badge.jelly: shown after the test link on the test parent page
    • + *
    + * + * @author tom + * @since 1.320 + * @see TestDataPublisher + */ +public abstract class TestAction implements Action { + + /** + * Returns text with annotations. + */ + public String annotate(String text) { + return text; + } + +} diff --git a/core/src/main/java/hudson/tasks/junit/TestDataPublisher.java b/core/src/main/java/hudson/tasks/junit/TestDataPublisher.java new file mode 100644 index 0000000000000000000000000000000000000000..1e3911194461b7f289853d049297eb725afcf9d5 --- /dev/null +++ b/core/src/main/java/hudson/tasks/junit/TestDataPublisher.java @@ -0,0 +1,61 @@ +/* + * The MIT License + * + * Copyright (c) 2004-2009, Sun Microsystems, Inc., Tom Huybrechts, Yahoo!, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.tasks.junit; + +import hudson.DescriptorExtensionList; +import hudson.Extension; +import hudson.ExtensionPoint; +import hudson.Launcher; +import hudson.model.*; + +import java.io.IOException; + +/** + * Contributes {@link TestAction}s to test results. + * + * This enables plugins to annotate test results and provide richer UI, such as letting users + * claim test failures, allowing people to file bugs, or more generally, additional actions, views, etc. + * + *

    + * To register your implementation, put {@link Extension} on your descriptor implementation. + * + * @since 1.320 + */ +public abstract class TestDataPublisher extends AbstractDescribableImpl implements ExtensionPoint { + + /** + * Called after test results are collected by Hudson, to create a resolver for {@link TestAction}s. + * + * @return + * can be null to indicate that there's nothing to contribute for this test result. + */ + public abstract TestResultAction.Data getTestData( + AbstractBuild build, Launcher launcher, + BuildListener listener, TestResult testResult) throws IOException, InterruptedException; + + public static DescriptorExtensionList> all() { + return Hudson.getInstance().>getDescriptorList(TestDataPublisher.class); + } + +} diff --git a/core/src/main/java/hudson/tasks/junit/TestObject.java b/core/src/main/java/hudson/tasks/junit/TestObject.java index 90a8cbcde13d888cfcef169268b0a66bfeb598a0..108e2359032b920d1a9db43dce814400e0eaa7d0 100644 --- a/core/src/main/java/hudson/tasks/junit/TestObject.java +++ b/core/src/main/java/hudson/tasks/junit/TestObject.java @@ -1,7 +1,7 @@ /* * The MIT License * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi + * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Tom Huybrechts, Yahoo! Inc., InfraDNA, Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -24,89 +24,113 @@ package hudson.tasks.junit; import hudson.model.AbstractBuild; -import hudson.model.ModelObject; +import hudson.model.AbstractModelObject; import hudson.model.Api; -import hudson.Util; +import hudson.tasks.test.AbstractTestResultAction; +import org.kohsuke.stapler.export.ExportedBean; import java.io.Serializable; - -import java.util.Collection; -import java.util.Map; -import java.util.WeakHashMap; -import org.kohsuke.stapler.export.ExportedBean; +import java.util.List; /** - * Base class for all test result objects. + * Stub of base class for all test result objects. The real implementation of + * the TestObject is in hudson.tasks.test.TestObject. This class simply + * defines abstract methods so that legacy code will continue to compile. * + * @deprecated + * Use {@link hudson.tasks.test.TestObject} instead. + * * @author Kohsuke Kawaguchi */ @ExportedBean -public abstract class TestObject implements ModelObject, Serializable { - public abstract AbstractBuild getOwner(); +public abstract class TestObject extends AbstractModelObject implements Serializable { + public abstract AbstractBuild getOwner() ; + + + public abstract TestObject getParent(); + + public abstract String getId(); + /** + * Returns url relative to TestResult + */ + public abstract String getUrl(); + + public abstract TestResult getTestResult(); + + public abstract AbstractTestResultAction getTestResultAction(); + + public abstract List getTestActions(); + + public abstract T getTestAction(Class klazz); /** - * Gets the counter part of this {@link TestObject} in the previous run. - * - * @return null - * if no such counter part exists. - */ - public abstract TestObject getPreviousResult(); + * Gets the counter part of this {@link TestObject} in the previous run. + * + * @return null if no such counter part exists. + */ + public abstract TestObject getPreviousResult(); + + public abstract TestObject getResultInBuild(AbstractBuild build); + + /** + * Time took to run this test. In seconds. + */ + public abstract float getDuration(); + + /** + * Returns the string representation of the {@link #getDuration()}, in a + * human readable format. + */ + public abstract String getDurationString(); + + public abstract String getDescription(); + + public abstract void setDescription(String description); /** - * Time took to run this test. In seconds. - */ - public abstract float getDuration(); + * Exposes this object through the remote API. + */ + public abstract Api getApi(); /** - * Returns the string representation of the {@link #getDuration()}, - * in a human readable format. - */ - public String getDurationString() { - return Util.getTimeSpanString((long)(getDuration()*1000)); - } + * Gets the name of this object. + */ + public abstract String getName(); /** - * Exposes this object through the remote API. - */ - public Api getApi() { - return new Api(this); - } + * Gets the version of {@link #getName()} that's URL-safe. + */ + public abstract String getSafeName(); + + public abstract String getSearchUrl(); /** - * Gets the name of this object. + * Gets the total number of passed tests. */ - public /*abstract*/ String getName() {return "";} + public abstract int getPassCount(); /** - * Gets the version of {@link #getName()} that's URL-safe. + * Gets the total number of failed tests. */ - public String getSafeName() { - return safe(getName()); - } + public abstract int getFailCount(); /** - * #2988: uniquifies a {@link #getSafeName} amongst children of the parent. + * Gets the total number of skipped tests. */ - protected final synchronized String uniquifyName(Collection siblings, String base) { - String uniquified = base; - int sequence = 1; - for (TestObject sibling : siblings) { - if (sibling != this && uniquified.equals(UNIQUIFIED_NAMES.get(sibling))) { - uniquified = base + '_' + ++sequence; - } - } - UNIQUIFIED_NAMES.put(this, uniquified); - return uniquified; - } - private static final Map UNIQUIFIED_NAMES = new WeakHashMap(); + public abstract int getSkipCount(); /** - * Replaces URL-unsafe characters. + * Gets the total number of tests. */ - protected static String safe(String s) { - // 3 replace calls is still 2-3x faster than a regex replaceAll - return s.replace('/','_').replace('\\', '_').replace(':','_'); - } + public abstract int getTotalCount(); + + public abstract History getHistory(); + +// public abstract Object getDynamic(String token, StaplerRequest req, +// StaplerResponse rsp); +// +// public abstract HttpResponse doSubmitDescription( +// @QueryParameter String description) throws IOException, +// ServletException; - private static final long serialVersionUID = 1L; } diff --git a/core/src/main/java/hudson/tasks/junit/TestResult.java b/core/src/main/java/hudson/tasks/junit/TestResult.java index 7b656f8a188d54d7592af1e0be38ac25762ca325..406476d2b0083e7a5e6417cd777b130098da9440 100644 --- a/core/src/main/java/hudson/tasks/junit/TestResult.java +++ b/core/src/main/java/hudson/tasks/junit/TestResult.java @@ -1,7 +1,7 @@ /* * The MIT License * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Daniel Dyer, id:cactusman + * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Daniel Dyer, id:cactusman, Tom Huybrechts, Yahoo!, Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -23,9 +23,14 @@ */ package hudson.tasks.junit; +import hudson.AbortException; +import hudson.Util; import hudson.model.AbstractBuild; +import hudson.model.Run; +import hudson.tasks.test.MetaTabulatedResult; +import hudson.tasks.test.TestObject; +import hudson.tasks.test.AbstractTestResultAction; import hudson.util.IOException2; -import hudson.*; import org.apache.tools.ant.DirectoryScanner; import org.dom4j.DocumentException; import org.kohsuke.stapler.StaplerRequest; @@ -34,6 +39,8 @@ import org.kohsuke.stapler.export.Exported; import java.io.File; import java.io.IOException; +import java.io.PrintWriter; +import java.io.StringWriter; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; @@ -41,6 +48,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.TreeMap; +import java.util.logging.Logger; /** * Root of all the test results for one build. @@ -48,6 +56,8 @@ import java.util.TreeMap; * @author Kohsuke Kawaguchi */ public final class TestResult extends MetaTabulatedResult { + private static final Logger LOGGER = Logger.getLogger(TestResult.class.getName()); + /** * List of all {@link SuiteResult}s in this test. * This is the core data structure to be persisted in the disk. @@ -65,7 +75,9 @@ public final class TestResult extends MetaTabulatedResult { private transient Map byPackages; // set during the freeze phase - private transient TestResultAction parent; + private transient AbstractTestResultAction parentAction; + + private transient TestObject parent; /** * Number of all tests. @@ -81,19 +93,44 @@ public final class TestResult extends MetaTabulatedResult { */ private transient List failedTests; + private final boolean keepLongStdio; + /** * Creates an empty result. */ - TestResult() { + public TestResult() { + keepLongStdio = false; + } + + @Deprecated + public TestResult(long buildTime, DirectoryScanner results) throws IOException { + this(buildTime, results, false); } /** * Collect reports from the given {@link DirectoryScanner}, while * filtering out all files that were created before the given time. + * @param keepLongStdio if true, retain a suite's complete stdout/stderr even if this is huge and the suite passed + * @since 1.358 */ - public TestResult(long buildTime, DirectoryScanner results) throws IOException { + public TestResult(long buildTime, DirectoryScanner results, boolean keepLongStdio) throws IOException { + this.keepLongStdio = keepLongStdio; parse(buildTime, results); } + + public TestObject getParent() { + return parent; + } + + @Override + public void setParent(TestObject parent) { + this.parent = parent; + } + + @Override + public TestResult getTestResult() { + return this; + } /** * Collect reports from the given {@link DirectoryScanner}, while @@ -108,7 +145,7 @@ public final class TestResult extends MetaTabulatedResult { for (String value : includedFiles) { File reportFile = new File(baseDir, value); // only count files that were actually updated during this build - if(buildTime-1000/*error margin*/ <= reportFile.lastModified()) { + if ( (buildTime-3000/*error margin*/ <= reportFile.lastModified()) || !checkTimestamps) { if(reportFile.length()==0) { // this is a typical problem when JVM quits abnormally, like OutOfMemoryError during a test. SuiteResult sr = new SuiteResult(reportFile.getName(), "", ""); @@ -159,45 +196,93 @@ public final class TestResult extends MetaTabulatedResult { */ public void parse(File reportFile) throws IOException { try { - for( SuiteResult suiteResult : SuiteResult.parse(reportFile) ) + for (SuiteResult suiteResult : SuiteResult.parse(reportFile, keepLongStdio)) add(suiteResult); } catch (RuntimeException e) { throw new IOException2("Failed to read "+reportFile,e); } catch (DocumentException e) { - if(!reportFile.getPath().endsWith(".xml")) + if (!reportFile.getPath().endsWith(".xml")) { throw new IOException2("Failed to read "+reportFile+"\n"+ "Is this really a JUnit report file? Your configuration must be matching too many files",e); - else + } else { + SuiteResult sr = new SuiteResult(reportFile.getName(), "", ""); + StringWriter writer = new StringWriter(); + e.printStackTrace(new PrintWriter(writer)); + String error = "Failed to read test report file "+reportFile.getAbsolutePath()+"\n"+writer.toString(); + sr.addCase(new CaseResult(sr,"",error)); + add(sr); throw new IOException2("Failed to read "+reportFile,e); + } } } public String getDisplayName() { - return "Test Result"; + return Messages.TestResult_getDisplayName(); } + @Override public AbstractBuild getOwner() { - return parent.owner; + return (parentAction == null? null: parentAction.owner); } @Override - public TestResult getPreviousResult() { - TestResultAction p = parent.getPreviousResult(); - if(p!=null) - return p.getResult(); - else + public hudson.tasks.test.TestResult findCorrespondingResult(String id) { + if (getId().equals(id) || (id == null)) { + return this; + } + + String firstElement = null; + String subId = null; + int sepIndex = id.indexOf('/'); + if (sepIndex < 0) { + firstElement = id; + subId = null; + } else { + firstElement = id.substring(0, sepIndex); + subId = id.substring(sepIndex + 1); + if (subId.length() == 0) { + subId = null; + } + } + + String packageName = null; + if (firstElement.equals(getId())) { + sepIndex = subId.indexOf('/'); + if (sepIndex < 0) { + packageName = subId; + subId = null; + } else { + packageName = subId.substring(0, sepIndex); + subId = subId.substring(sepIndex + 1); + } + } else { + packageName = firstElement; + subId = null; + } + PackageResult child = byPackage(packageName); + if (child != null) { + if (subId != null) { + return child.findCorrespondingResult(subId); + } else { + return child; + } + } else { return null; } + } + @Override public String getTitle() { return Messages.TestResult_getTitle(); } + @Override public String getChildTitle() { return Messages.TestResult_getChildTitle(); } - // TODO once stapler 1.60 is released: @Exported + @Exported(visibility=999) + @Override public float getDuration() { return duration; } @@ -211,10 +296,13 @@ public final class TestResult extends MetaTabulatedResult { @Exported(visibility=999) @Override public int getFailCount() { + if(failedTests==null) + return 0; + else return failedTests.size(); } - @Exported + @Exported(visibility=999) @Override public int getSkipCount() { return skippedTests; @@ -225,23 +313,144 @@ public final class TestResult extends MetaTabulatedResult { return failedTests; } + /** + * Gets the "children" of this test result that passed + * + * @return the children of this test result, if any, or an empty collection + */ + @Override + public Collection getPassedTests() { + throw new UnsupportedOperationException(); // TODO: implement!(FIXME: generated) + } + + /** + * Gets the "children" of this test result that were skipped + * + * @return the children of this test result, if any, or an empty list + */ + @Override + public Collection getSkippedTests() { + throw new UnsupportedOperationException(); // TODO: implement!(FIXME: generated) + } + + /** + * If this test failed, then return the build number + * when this test started failing. + */ + @Override + public int getFailedSince() { + throw new UnsupportedOperationException(); // TODO: implement!(FIXME: generated) + } + + /** + * If this test failed, then return the run + * when this test started failing. + */ + @Override + public Run getFailedSinceRun() { + throw new UnsupportedOperationException(); // TODO: implement!(FIXME: generated) + } + + /** + * The stdout of this test. + *

    + *

    + * Depending on the tool that produced the XML report, this method works somewhat inconsistently. + * With some tools (such as Maven surefire plugin), you get the accurate information, that is + * the stdout from this test case. With some other tools (such as the JUnit task in Ant), this + * method returns the stdout produced by the entire test suite. + *

    + *

    + * If you need to know which is the case, compare this output from {@link SuiteResult#getStdout()}. + * + * @since 1.294 + */ + @Override + public String getStdout() { + StringBuilder sb = new StringBuilder(); + for (SuiteResult suite: suites) { + sb.append("Standard Out (stdout) for Suite: " + suite.getName()); + sb.append(suite.getStdout()); + } + return sb.toString(); + } + + /** + * The stderr of this test. + * + * @see #getStdout() + * @since 1.294 + */ + @Override + public String getStderr() { + StringBuilder sb = new StringBuilder(); + for (SuiteResult suite: suites) { + sb.append("Standard Error (stderr) for Suite: " + suite.getName()); + sb.append(suite.getStderr()); + } + return sb.toString(); + } + + /** + * If there was an error or a failure, this is the stack trace, or otherwise null. + */ + @Override + public String getErrorStackTrace() { + return "No error stack traces available at this level. Drill down to individual tests to find stack traces."; + } + + /** + * If there was an error or a failure, this is the text from the message. + */ + @Override + public String getErrorDetails() { + return "No error details available at this level. Drill down to individual tests to find details."; + } + + /** + * @return true if the test was not skipped and did not fail, false otherwise. + */ + @Override + public boolean isPassed() { + return (getFailCount() == 0); + } + @Override public Collection getChildren() { return byPackages.values(); } - @Exported(inline=true) + /** + * Whether this test result has children. + */ + @Override + public boolean hasChildren() { + return !suites.isEmpty(); + } + + @Exported(inline=true,visibility=9) public Collection getSuites() { return suites; } + @Override public String getName() { - return ""; + return "junit"; } - public PackageResult getDynamic(String packageName, StaplerRequest req, StaplerResponse rsp) { - return byPackage(packageName); + @Override + public Object getDynamic(String token, StaplerRequest req, StaplerResponse rsp) { + if (token.equals(getId())) { + return this; + } + + PackageResult result = byPackage(token); + if (result != null) { + return result; + } else { + return super.getDynamic(token, req, rsp); + } } public PackageResult byPackage(String packageName) { @@ -251,6 +460,57 @@ public final class TestResult extends MetaTabulatedResult { public SuiteResult getSuite(String name) { return suitesByName.get(name); } + + @Override + public void setParentAction(AbstractTestResultAction action) { + this.parentAction = action; + tally(); // I want to be sure to inform our children when we get an action. + } + + @Override + public AbstractTestResultAction getParentAction() { + return this.parentAction; + } + + /** + * Recount my children. + */ + @Override + public void tally() { + /// Empty out data structures + // TODO: free children? memmory leak? + suitesByName = new HashMap(); + failedTests = new ArrayList(); + byPackages = new TreeMap(); + + totalTests = 0; + skippedTests = 0; + + // Ask all of our children to tally themselves + for (SuiteResult s : suites) { + s.setParent(this); // kluge to prevent double-counting the results + suitesByName.put(s.getName(),s); + List cases = s.getCases(); + + for (CaseResult cr: cases) { + cr.setParentAction(this.parentAction); + cr.setParentSuiteResult(s); + cr.tally(); + String pkg = cr.getPackageName(), spkg = safe(pkg); + PackageResult pr = byPackage(spkg); + if(pr==null) + byPackages.put(spkg,pr=new PackageResult(this,pkg)); + pr.add(cr); + } + } + + for (PackageResult pr : byPackages.values()) { + pr.tally(); + skippedTests += pr.getSkipCount(); + failedTests.addAll(pr.getFailedTests()); + totalTests += pr.getTotalCount(); + } + } /** * Builds up the transient part of the data structure @@ -261,7 +521,7 @@ public final class TestResult extends MetaTabulatedResult { * and then freeze can be called again. */ public void freeze(TestResultAction parent) { - this.parent = parent; + this.parentAction = parent; if(suitesByName==null) { // freeze for the first time suitesByName = new HashMap(); @@ -271,7 +531,7 @@ public final class TestResult extends MetaTabulatedResult { } for (SuiteResult s : suites) { - if(!s.freeze(this)) + if(!s.freeze(this)) // this is disturbing: has-a-parent is conflated with has-been-counted continue; suitesByName.put(s.getName(),s); @@ -298,4 +558,6 @@ public final class TestResult extends MetaTabulatedResult { } private static final long serialVersionUID = 1L; + private static final boolean checkTimestamps = true; // TODO: change to System.getProperty + } diff --git a/core/src/main/java/hudson/tasks/junit/TestResultAction.java b/core/src/main/java/hudson/tasks/junit/TestResultAction.java index ef058dcddd30ddfc2a7942c7c9c6d9edf98a501e..18ed232b8e06efe4d1f59d3a861a02537407eeb4 100644 --- a/core/src/main/java/hudson/tasks/junit/TestResultAction.java +++ b/core/src/main/java/hudson/tasks/junit/TestResultAction.java @@ -1,7 +1,7 @@ /* * The MIT License * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Daniel Dyer, Red Hat, Inc. + * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Daniel Dyer, Red Hat, Inc., Tom Huybrechts, Yahoo!, Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,15 +29,17 @@ import hudson.model.AbstractBuild; import hudson.model.Action; import hudson.model.BuildListener; import hudson.tasks.test.AbstractTestResultAction; -import hudson.util.StringConverter2; +import hudson.tasks.test.TestObject; +import hudson.util.HeapSpaceStringConverter; import hudson.util.XStream2; -import java.util.List; import org.kohsuke.stapler.StaplerProxy; -import org.kohsuke.stapler.export.Exported; import java.io.File; import java.io.IOException; import java.lang.ref.WeakReference; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; import java.util.logging.Level; import java.util.logging.Logger; @@ -58,7 +60,7 @@ public class TestResultAction extends AbstractTestResultAction private int failCount; private int skipCount; private Integer totalCount; - + private List testData = new ArrayList(); public TestResultAction(AbstractBuild owner, TestResult result, BuildListener listener) { super(owner); @@ -154,9 +156,49 @@ public class TestResultAction extends AbstractTestResultAction public Object getTarget() { return getResult(); } + + public List getActions(TestObject object) { + List result = new ArrayList(); + // Added check for null testData to avoid NPE from issue 4257. + if (testData!=null) { + for (Data data : testData) { + result.addAll(data.getTestAction(object)); + } + } + return Collections.unmodifiableList(result); + + } + public void setData(List testData) { + this.testData = testData; + } + /** + * Resolves {@link TestAction}s for the given {@link TestObject}. + * + *

    + * This object itself is persisted as a part of {@link AbstractBuild}, so it needs to be XStream-serializable. + * + * @see TestDataPublisher + */ + public static abstract class Data { + /** + * Returns all TestActions for the testObject. + * + * @return + * Can be empty but never null. The caller must assume that the returned list is read-only. + */ + public abstract List getTestAction(hudson.tasks.junit.TestObject testObject); + } - + public Object readResolve() { + super.readResolve(); // let it do the post-deserialization work + if (testData == null) { + testData = new ArrayList(); + } + + return this; + } + private static final Logger logger = Logger.getLogger(TestResultAction.class.getName()); private static final XStream XSTREAM = new XStream2(); @@ -165,7 +207,7 @@ public class TestResultAction extends AbstractTestResultAction XSTREAM.alias("result",TestResult.class); XSTREAM.alias("suite",SuiteResult.class); XSTREAM.alias("case",CaseResult.class); - XSTREAM.registerConverter(new StringConverter2(),100); - + XSTREAM.registerConverter(new HeapSpaceStringConverter(),100); } + } diff --git a/core/src/main/java/hudson/tasks/junit/XMLEntityResolver.java b/core/src/main/java/hudson/tasks/junit/XMLEntityResolver.java index c4fbe57874066d1161b9ad2bf6e393818e245e7e..52ca72a23425f33c4bd156da663b0e55bbe07037 100644 --- a/core/src/main/java/hudson/tasks/junit/XMLEntityResolver.java +++ b/core/src/main/java/hudson/tasks/junit/XMLEntityResolver.java @@ -23,7 +23,6 @@ */ package hudson.tasks.junit; -import hudson.model.Hudson; import org.xml.sax.EntityResolver; import org.xml.sax.InputSource; import org.xml.sax.SAXException; @@ -68,5 +67,5 @@ class XMLEntityResolver implements EntityResolver { return null; } - private static final Logger LOGGER = Logger.getLogger(XMLEntityResolver.class.getName() ); + private static final Logger LOGGER = Logger.getLogger(XMLEntityResolver.class.getName()); } \ No newline at end of file diff --git a/core/src/main/java/hudson/tasks/junit/package.html b/core/src/main/java/hudson/tasks/junit/package.html index 6297a05c7152be00b6d35e2b6c6653c526ad21a7..5b975c0bd4dd5e7defabdf599c2d46835fdfb3ce 100644 --- a/core/src/main/java/hudson/tasks/junit/package.html +++ b/core/src/main/java/hudson/tasks/junit/package.html @@ -1,7 +1,7 @@ - + Model objects that represent JUnit test reports. \ No newline at end of file diff --git a/core/src/main/java/hudson/tasks/labelers/OSLabeler.java b/core/src/main/java/hudson/tasks/labelers/OSLabeler.java deleted file mode 100644 index 99e6ccdeab27af5a1ba9f52e9cfe9a7d5bd90368..0000000000000000000000000000000000000000 --- a/core/src/main/java/hudson/tasks/labelers/OSLabeler.java +++ /dev/null @@ -1,100 +0,0 @@ -/* - * The MIT License - * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Stephen Connolly - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ -package hudson.tasks.labelers; - -import hudson.remoting.Callable; -import hudson.remoting.VirtualChannel; -import hudson.tasks.DynamicLabeler; - -import java.util.Collections; -import java.util.HashSet; -import java.util.Set; - -/** - * Created by IntelliJ IDEA. - * - * @author connollys - * @since 25-May-2007 15:25:03 - */ -// @Extension --- not live yet -public class OSLabeler extends DynamicLabeler { - public Set findLabels(VirtualChannel channel) { - try { - return channel.call(new OSLabelFinder()); - } catch (Exception e) { - return Collections.emptySet(); - } - } - - private static class OSLabelFinder implements Callable, Exception> { - /** Performs computation and returns the result, or throws some exception. */ - public Set call() throws Exception { - Set result = new HashSet(); - final String os = System.getProperty("os.name").toLowerCase(); - final String version = System.getProperty("os.version"); - final String arch = System.getProperty("os.arch"); - if (os.equals("solaris") || os.equals("SunOS")) { - result.add("solaris"); - result.add("solaris_" + arch); - result.add("solaris_" + arch + "_" + version); - } else if (os.startsWith("windows")) { - result.add("windows"); - if (os.startsWith("windows 9")) { - // ugh! windows 9x - // I have not tested these values - result.add("windows_9x_family"); - if (version.startsWith("4.0")) { - result.add("windows_95"); - } else if (version.startsWith("4.9")) { - result.add("windows_ME"); // but could be Windows ME - } else { - assert version.startsWith("4.1"); - result.add("windows_98"); - } - } else { - // older Java Runtimes can mis-report newer versions of windows NT - result.add("windows_nt_family"); - if (version.startsWith("4.0")) { - // Windows NT 4 - result.add("windows_nt4"); - } else if (version.startsWith("5.0")) { - result.add("windows_2000"); - } else if (version.startsWith("5.1")) { - result.add("windows_xp"); - } else if (version.startsWith("5.2")) { - result.add("windows_2003"); - } - } - } else if (os.startsWith("linux")) { - result.add("linux"); - } else if (os.startsWith("mac")) { - result.add("mac"); - } else { - // I give up! - result.add(os); - } - return result; - } - } -} diff --git a/core/src/main/java/hudson/tasks/package.html b/core/src/main/java/hudson/tasks/package.html index b3711f918244c7949372d82a636623c6bbfacfd2..9a85792fab9ecd3e347cf3c850ac37bb8e42ccc2 100644 --- a/core/src/main/java/hudson/tasks/package.html +++ b/core/src/main/java/hudson/tasks/package.html @@ -1,7 +1,7 @@ - + Built-in Builders and Publishers that perform the actual heavy-lifting of a build. \ No newline at end of file diff --git a/core/src/main/java/hudson/tasks/test/AbstractTestResultAction.java b/core/src/main/java/hudson/tasks/test/AbstractTestResultAction.java index a090d0ea2d3ea84936a6222d961b043237f39f67..304ce56c86f51eb3597d89a23e07c40aa3b2be1b 100644 --- a/core/src/main/java/hudson/tasks/test/AbstractTestResultAction.java +++ b/core/src/main/java/hudson/tasks/test/AbstractTestResultAction.java @@ -1,7 +1,7 @@ /* * The MIT License * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Daniel Dyer, Red Hat, Inc., Stephen Connolly, id:cactusman + * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Daniel Dyer, Red Hat, Inc., Stephen Connolly, id:cactusman, Yahoo!, Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -24,16 +24,10 @@ package hudson.tasks.test; import hudson.Functions; -import hudson.Util; import hudson.model.*; import hudson.tasks.junit.CaseResult; -import hudson.util.ChartUtil; +import hudson.util.*; import hudson.util.ChartUtil.NumberOnlyBuildLabel; -import hudson.util.ColorPalette; -import hudson.util.DataSetBuilder; -import hudson.util.ShiftedCategoryAxis; -import hudson.util.StackedAreaRenderer2; -import hudson.util.Area; import org.jfree.chart.ChartFactory; import org.jfree.chart.JFreeChart; import org.jfree.chart.axis.CategoryAxis; @@ -44,16 +38,18 @@ import org.jfree.chart.plot.PlotOrientation; import org.jfree.chart.renderer.category.StackedAreaRenderer; import org.jfree.data.category.CategoryDataset; import org.jfree.ui.RectangleInsets; +import org.jvnet.localizer.Localizable; import org.kohsuke.stapler.StaplerRequest; import org.kohsuke.stapler.StaplerResponse; -import org.kohsuke.stapler.export.ExportedBean; import org.kohsuke.stapler.export.Exported; -import org.jvnet.localizer.Localizable; +import org.kohsuke.stapler.export.ExportedBean; -import java.awt.Color; +import java.awt.*; import java.io.IOException; import java.util.Collections; import java.util.List; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; /** * Common base class for recording test result. @@ -68,6 +64,8 @@ import java.util.List; public abstract class AbstractTestResultAction implements HealthReportingAction { public final AbstractBuild owner; + private Map descriptions = new ConcurrentHashMap(); + protected AbstractTestResultAction(AbstractBuild owner) { this.owner = owner; } @@ -171,6 +169,20 @@ public abstract class AbstractTestResultAction + * The default implementation stores information in the 'this' object. + * + * @see TestObject#getDescription() + */ + protected String getDescription(TestObject object) { + return descriptions.get(object.getId()); + } + + protected void setDescription(TestObject object, String description) { + descriptions.put(object.getId(), description); + } + + public Object readResolve() { + if (descriptions == null) { + descriptions = new ConcurrentHashMap(); + } + + return this; + } } diff --git a/core/src/main/java/hudson/tasks/test/AggregatedTestResultAction.java b/core/src/main/java/hudson/tasks/test/AggregatedTestResultAction.java index 97113bb6ea336ffe9684864ea79856b2a494cf10..90030cf0a0681018f7d63aeecd54db13853968b7 100644 --- a/core/src/main/java/hudson/tasks/test/AggregatedTestResultAction.java +++ b/core/src/main/java/hudson/tasks/test/AggregatedTestResultAction.java @@ -1,7 +1,7 @@ /* * The MIT License * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Daniel Dyer, Red Hat, Inc. + * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Daniel Dyer, Red Hat, Inc., Yahoo!, Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -160,4 +160,28 @@ public abstract class AggregatedTestResultAction extends AbstractTestResultActio if(b==null) return null; return b.getAction(AbstractTestResultAction.class); } + + /** + * Since there's no TestObject that points this action as the owner + * (aggregated {@link TestObject}s point to their respective real owners, not 'this'), + * so this method should be never invoked. + * + * @deprecated + * so that IDE warns you if you accidentally try to call it. + */ + @Override + protected final String getDescription(TestObject object) { + throw new AssertionError(); + } + + /** + * See {@link #getDescription(TestObject)} + * + * @deprecated + * so that IDE warns you if you accidentally try to call it. + */ + @Override + protected final void setDescription(TestObject object, String description) { + throw new AssertionError(); + } } diff --git a/core/src/main/java/hudson/tasks/test/AggregatedTestResultPublisher.java b/core/src/main/java/hudson/tasks/test/AggregatedTestResultPublisher.java index 33faf0f85c548a3ef490032b3e59a22e4179892e..561abb1cc46b13aa3c6c9bf822e9f470442c737b 100644 --- a/core/src/main/java/hudson/tasks/test/AggregatedTestResultPublisher.java +++ b/core/src/main/java/hudson/tasks/test/AggregatedTestResultPublisher.java @@ -1,7 +1,7 @@ /* * The MIT License * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Michael B. Donohue + * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Michael B. Donohue, Yahoo!, Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -23,12 +23,12 @@ */ package hudson.tasks.test; +import hudson.model.AbstractBuild; +import hudson.model.AbstractProject; +import hudson.Extension; import hudson.Launcher; import hudson.Util; -import hudson.Extension; import static hudson.Util.fixNull; -import hudson.model.AbstractBuild; -import hudson.model.AbstractProject; import hudson.model.BuildListener; import hudson.model.Fingerprint.RangeSet; import hudson.model.Hudson; @@ -38,14 +38,15 @@ import hudson.model.Run; import hudson.model.TaskListener; import hudson.model.listeners.RunListener; import hudson.tasks.BuildStepDescriptor; +import hudson.tasks.BuildStepMonitor; +import hudson.tasks.Fingerprinter.FingerprintAction; import hudson.tasks.Publisher; import hudson.tasks.Recorder; -import hudson.tasks.Fingerprinter.FingerprintAction; import hudson.util.FormValidation; import net.sf.json.JSONObject; +import org.kohsuke.stapler.AncestorInPath; import org.kohsuke.stapler.QueryParameter; import org.kohsuke.stapler.StaplerRequest; -import org.kohsuke.stapler.AncestorInPath; import java.io.IOException; import java.util.ArrayList; @@ -77,6 +78,10 @@ public class AggregatedTestResultPublisher extends Recorder { return true; } + public BuildStepMonitor getRequiredMonitorService() { + return BuildStepMonitor.NONE; + } + /** * Action that serves the aggregated record. * @@ -154,6 +159,30 @@ public class AggregatedTestResultPublisher extends Recorder { return this; } + /** + * Since there's no TestObject that points this action as the owner + * (aggregated {@link TestObject}s point to their respective real owners, not 'this'), + * so this method should be never invoked. + * + * @deprecated + * so that IDE warns you if you accidentally try to call it. + */ + @Override + protected String getDescription(TestObject object) { + throw new AssertionError(); + } + + /** + * See {@link #getDescription(TestObject)} + * + * @deprecated + * so that IDE warns you if you accidentally try to call it. + */ + @Override + protected void setDescription(TestObject object, String description) { + throw new AssertionError(); + } + /** * Returns the individual test results that are aggregated. */ @@ -243,10 +272,7 @@ public class AggregatedTestResultPublisher extends Recorder { @Extension public static class RunListenerImpl extends RunListener { - public RunListenerImpl() { - super(Run.class); - } - + @Override public void onCompleted(Run run, TaskListener listener) { lastChanged = System.currentTimeMillis(); } @@ -263,6 +289,7 @@ public class AggregatedTestResultPublisher extends Recorder { return Messages.AggregatedTestResultPublisher_DisplayName(); } + @Override public String getHelpFile() { return "/help/tasks/aggregate-test/help.html"; } @@ -280,6 +307,7 @@ public class AggregatedTestResultPublisher extends Recorder { return FormValidation.ok(); } + @Override public AggregatedTestResultPublisher newInstance(StaplerRequest req, JSONObject formData) throws FormException { JSONObject s = formData.getJSONObject("specify"); if(s.isNullObject()) diff --git a/core/src/main/java/hudson/tasks/test/DefaultTestResultParserImpl.java b/core/src/main/java/hudson/tasks/test/DefaultTestResultParserImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..f01d68dc68044dad307af7e302bd883ee13db3c4 --- /dev/null +++ b/core/src/main/java/hudson/tasks/test/DefaultTestResultParserImpl.java @@ -0,0 +1,119 @@ +/* + * The MIT License + * + * Copyright (c) 2004-2009, Sun Microsystems, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.tasks.test; + +import hudson.AbortException; +import hudson.FilePath; +import hudson.FilePath.FileCallable; +import hudson.Launcher; +import hudson.Util; +import hudson.model.AbstractBuild; +import hudson.model.TaskListener; +import hudson.remoting.VirtualChannel; + +import java.io.File; +import java.io.IOException; +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +/** + * Default partial implementation of {@link TestResultParser} that handles GLOB dereferencing + * and other checks for user errors, such as misconfigured GLOBs, up-to-date checks on test reports. + * + *

    + * The instance of the parser will be serialized to the node that performed the build and the parsing will be done + * remotely on that slave. + * + * @since 1.343 + * @author Kohsuke Kawaguchi + */ +public abstract class DefaultTestResultParserImpl extends TestResultParser implements Serializable { + /** + * This method is executed on the slave that has the report files to parse test reports and builds {@link TestResult}. + * + * @param reportFiles + * List of files to be parsed. Never be empty nor null. + * @param launcher + * Can be used to fork processes on the machine where the build is running. Never null. + * @param listener + * Use this to report progress and other problems. Never null. + * + * @throws InterruptedException + * If the user cancels the build, it will be received as a thread interruption. Do not catch + * it, and instead just forward that through the call stack. + * @throws IOException + * If you don't care about handling exceptions gracefully, you can just throw IOException + * and let the default exception handling in Hudson takes care of it. + * @throws AbortException + * If you encounter an error that you handled gracefully, throw this exception and Hudson + * will not show a stack trace. + */ + protected abstract TestResult parse(List reportFiles, Launcher launcher, TaskListener listener) throws InterruptedException, IOException; + + @Override + public TestResult parse(final String testResultLocations, final AbstractBuild build, final Launcher launcher, final TaskListener listener) throws InterruptedException, IOException { + return build.getWorkspace().act(new FileCallable() { + final boolean ignoreTimestampCheck = IGNORE_TIMESTAMP_CHECK; // so that the property can be set on the master + final long buildTime = build.getTimestamp().getTimeInMillis(); + final long nowMaster = System.currentTimeMillis(); + + public TestResult invoke(File dir, VirtualChannel channel) throws IOException, InterruptedException { + final long nowSlave = System.currentTimeMillis(); + + // files older than this timestamp is considered stale + long localBuildTime = buildTime + (nowSlave - nowMaster); + + FilePath[] paths = new FilePath(dir).list(testResultLocations); + if (paths.length==0) + throw new AbortException("No test reports that matches "+testResultLocations+" found. Configuration error?"); + + // since dir is local, paths all point to the local files + List files = new ArrayList(paths.length); + for (FilePath path : paths) { + File report = new File(path.getRemote()); + if (ignoreTimestampCheck || localBuildTime - 3000 /*error margin*/ < report.lastModified()) { + // this file is created during this build + files.add(report); + } + } + + if (files.isEmpty()) { + // none of the files were new + throw new AbortException( + String.format( + "Test reports were found but none of them are new. Did tests run? \n"+ + "For example, %s is %s old\n", paths[0].getRemote(), + Util.getTimeSpanString(localBuildTime-paths[0].lastModified()))); + } + + return parse(files,launcher,listener); + } + }); + } + + private static final long serialVersionUID = 1L; + + public static final boolean IGNORE_TIMESTAMP_CHECK = Boolean.getBoolean(TestResultParser.class.getName()+".ignoreTimestampCheck"); +} diff --git a/core/src/main/java/hudson/tasks/test/MatrixTestResult.java b/core/src/main/java/hudson/tasks/test/MatrixTestResult.java index 96d52a03b3bb9a6718acc69e52f8ecf5044e3001..75399a679061c1c058515131ab06a315d41d2745 100644 --- a/core/src/main/java/hudson/tasks/test/MatrixTestResult.java +++ b/core/src/main/java/hudson/tasks/test/MatrixTestResult.java @@ -1,7 +1,7 @@ /* * The MIT License * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi + * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Yahoo!, Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -23,11 +23,11 @@ */ package hudson.tasks.test; -import hudson.model.AbstractBuild; -import hudson.model.Action; -import hudson.matrix.MatrixBuild; import hudson.matrix.Combination; +import hudson.matrix.MatrixBuild; import hudson.matrix.MatrixRun; +import hudson.model.AbstractBuild; +import hudson.model.Action; /** * {@link Action} that aggregates all the test results from {@link MatrixRun}s. @@ -55,4 +55,10 @@ public class MatrixTestResult extends AggregatedTestResultAction { MatrixBuild b = (MatrixBuild)owner; return b.getRun(Combination.fromString(child.name)); } + + @Override + public String getTestResultPath(TestResult it) { + // Prepend Configuration path + return it.getOwner().getParent().getShortUrl() + super.getTestResultPath(it); + } } diff --git a/core/src/main/java/hudson/tasks/junit/MetaTabulatedResult.java b/core/src/main/java/hudson/tasks/test/MetaTabulatedResult.java similarity index 82% rename from core/src/main/java/hudson/tasks/junit/MetaTabulatedResult.java rename to core/src/main/java/hudson/tasks/test/MetaTabulatedResult.java index e1489a878a1ea42dbbe0a33b769ea3e6ec571f19..b4e93e3e95381098fed6c8a67ed8c7fc1bace444 100644 --- a/core/src/main/java/hudson/tasks/junit/MetaTabulatedResult.java +++ b/core/src/main/java/hudson/tasks/test/MetaTabulatedResult.java @@ -1,7 +1,7 @@ /* * The MIT License * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi + * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Yahoo!, Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -21,24 +21,24 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package hudson.tasks.junit; +package hudson.tasks.test; + import java.util.Collection; -import java.util.List; /** + * The purpose of this class is to provide a good place for the + * jelly to bind to. * {@link TabulatedResult} whose immediate children * are other {@link TabulatedResult}s. * * @author Kohsuke Kawaguchi */ -abstract class MetaTabulatedResult extends TabulatedResult { - public abstract String getChildTitle(); +public abstract class MetaTabulatedResult extends TabulatedResult { /** * All failed tests. */ - public abstract List getFailedTests(); + public abstract Collection getFailedTests(); - public abstract Collection getChildren(); } diff --git a/core/src/main/java/hudson/tasks/test/SimpleCaseResult.java b/core/src/main/java/hudson/tasks/test/SimpleCaseResult.java new file mode 100644 index 0000000000000000000000000000000000000000..f157ed089694de4c2e3d7be4b5c63ed076630ad7 --- /dev/null +++ b/core/src/main/java/hudson/tasks/test/SimpleCaseResult.java @@ -0,0 +1,214 @@ +/* + * The MIT License + * + * Copyright (c) 2009, Yahoo!, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.tasks.test; + +import hudson.model.AbstractBuild; +import hudson.tasks.junit.TestAction; + +import java.util.Collection; +import java.util.List; +import java.util.ArrayList; +import java.util.Collections; +import java.util.logging.Logger; + +import static java.util.Collections.emptyList; + +/** + * The simplest possible case result, with no language ties. + * Acts as if it passed, has no children, and has no failed or skipped tests. + */ +public class SimpleCaseResult extends TestResult { + protected AbstractTestResultAction parentAction; + protected final List listOnlyContainingThisObject = new ArrayList(1); + protected float duration = 1.0f; + private static final Logger LOGGER = Logger.getLogger(SimpleCaseResult.class.getName()); + + public SimpleCaseResult(float duration) { + listOnlyContainingThisObject.add(this); + } + + public SimpleCaseResult() { + this(1.0f); + } + + /** + * Sets the parent action, which means the action that binds + * this particular case result to a build. Should not be null. + * @param parentAction + */ + @Override + public void setParentAction(AbstractTestResultAction parentAction) { + this.parentAction = parentAction; + } + + @Override + public AbstractTestResultAction getParentAction() { + return this.parentAction; + } + + @Override + public TestObject getParent() { + return null; + } + + @Override + public TestResult findCorrespondingResult(String id) { + if (id.equals(getId())) { + return this; + } + + return null; + } + + /** + * Gets the "children" of this test result that failed + * + * @return the children of this test result, if any, or an empty collection + */ + @Override + public Collection getFailedTests() { + return emptyList(); + } + + /** + * Gets the "children" of this test result that passed + * + * @return the children of this test result, if any, or an empty collection + */ + @Override + public Collection getPassedTests() { + return listOnlyContainingThisObject; + } + + /** + * Gets the "children" of this test result that were skipped + * + * @return the children of this test result, if any, or an empty list + */ + @Override + public Collection getSkippedTests() { + return emptyList(); + } + + /** + * Let's pretend that our trivial test result always passes. + * @return always true + */ + @Override + public boolean isPassed() { + return true; + } + + /** + * Tests whether the test was skipped or not. + * + * @return true if the test was not executed, false otherwise. + */ + public boolean isSkipped() { + return false; + } + + /** + * Returns true iff this test failed. + */ + public boolean isFailed() { + return false; + } + + /** + * Time took to run this test. In seconds. + */ + @Override + public float getDuration() { + return duration; + } + + /** + * Gets the name of this object. + */ + @Override + public String getName() { + return "Simple Case Result"; + } + + /** + * Gets the total number of passed tests. + */ + @Override + public int getPassCount() { + return 1; + } + + /** + * Gets the total number of failed tests. + */ + @Override + public int getFailCount() { + return 0; + } + + /** + * Gets the total number of skipped tests. + */ + @Override + public int getSkipCount() { + return 0; + } + + /** + * Gets the human readable title of this result object. + */ + @Override + public String getTitle() { + return "Simple Case Result"; // + } + + public String getDisplayName() { + return "Simple Case Result"; + } + + @Override + public AbstractBuild getOwner() { + if (parentAction == null) { + LOGGER.warning("in Trivial Test Result, parentAction is null, but getOwner() called"); + return null; + } + return parentAction.owner; + } + + @Override + public List getTestActions() { + return SimpleCaseResult.EMPTY_ACTION_LIST; + } + + + /** + * An empty list of actions, useful for tests + */ + public static final List EMPTY_ACTION_LIST = Collections.unmodifiableList(new ArrayList()); + + + + +} diff --git a/core/src/main/java/hudson/tasks/test/TabulatedResult.java b/core/src/main/java/hudson/tasks/test/TabulatedResult.java new file mode 100644 index 0000000000000000000000000000000000000000..47dcfd302c6028e0c7653e72c60c94690aeb3fa2 --- /dev/null +++ b/core/src/main/java/hudson/tasks/test/TabulatedResult.java @@ -0,0 +1,51 @@ +/* + * The MIT License + * + * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Daniel Dyer, Tom Huybrechts, Yahoo!, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.tasks.test; + +import java.util.Collection; + +/** + * Cumulated result of multiple tests. + * + *

    + * On top of {@link TestResult}, this class introduces a tree structure + * of {@link TestResult}s. + * + * @author Kohsuke Kawaguchi + */ +public abstract class TabulatedResult extends TestResult { + + /** + * Gets the child test result objects. + * + * @see TestObject#getParent() + */ + public abstract Collection getChildren(); + + public abstract boolean hasChildren(); + + public String getChildTitle() { + return ""; + } +} diff --git a/core/src/main/java/hudson/tasks/test/TestObject.java b/core/src/main/java/hudson/tasks/test/TestObject.java new file mode 100644 index 0000000000000000000000000000000000000000..529a437c552180c2e40187ac6d70d91807a3436d --- /dev/null +++ b/core/src/main/java/hudson/tasks/test/TestObject.java @@ -0,0 +1,411 @@ +/* + * The MIT License + * + * Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, + * Tom Huybrechts, Yahoo!, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.tasks.test; + +import hudson.Util; +import hudson.Functions; +import hudson.model.*; +import hudson.tasks.junit.History; +import hudson.tasks.junit.TestAction; +import hudson.tasks.junit.TestResultAction; +import org.kohsuke.stapler.*; +import org.kohsuke.stapler.export.ExportedBean; + +import javax.servlet.ServletException; +import java.io.IOException; +import java.util.*; +import java.util.logging.Logger; + +/** + * Base class for all test result objects. + * For compatibility with code that expects this class to be in hudson.tasks.junit, + * we've created a pure-abstract class, hudson.tasks.junit.TestObject. That + * stub class is deprecated; instead, people should use this class. + * + * @author Kohsuke Kawaguchi + */ +@ExportedBean +public abstract class TestObject extends hudson.tasks.junit.TestObject { + + private static final Logger LOGGER = Logger.getLogger(TestObject.class.getName()); + private volatile transient String id; + + public abstract AbstractBuild getOwner(); + + /** + * Reverse pointer of {@link TabulatedResult#getChildren()}. + */ + public abstract TestObject getParent(); + + @Override + public final String getId() { + if (id == null) { + StringBuilder buf = new StringBuilder(); + buf.append(getSafeName()); + + TestObject parent = getParent(); + if (parent != null) { + String parentId = parent.getId(); + if ((parentId != null) && (parentId.length() > 0)) { + buf.insert(0, '/'); + buf.insert(0, parent.getId()); + } + } + id = buf.toString(); + } + return id; + } + + /** + * Returns url relative to TestResult + */ + @Override + public String getUrl() { + return '/' + getId(); + } + + /** + * Returns the top level test result data. + * + * @deprecated This method returns a JUnit specific class. Use + * {@link #getTopLevelTestResult()} instead for a more general interface. + * @return + */ + @Override + public hudson.tasks.junit.TestResult getTestResult() { + TestObject parent = getParent(); + + return (parent == null ? null : getParent().getTestResult()); + } + + /** + * Returns the top level test result data. + * + * @return + */ + public TestResult getTopLevelTestResult() { + TestObject parent = getParent(); + + return (parent == null ? null : getParent().getTopLevelTestResult()); + } + + /** + * Computes the relative path to get to this test object from it. If + * it does not appear in the parent chain for this object, a + * relative path from the server root will be returned. + * + * @return A relative path to this object, potentially from the top of the + * Hudson object model + */ + public String getRelativePathFrom(TestObject it) { + + + // if (it is one of my ancestors) { + // return a relative path from it + // } else { + // return a complete path starting with "/" + // } + if (it==this) { + return "."; + } + + StringBuilder buf = new StringBuilder(); + TestObject next = this; + TestObject cur = this; + // Walk up my ancesotors from leaf to root, looking for "it" + // and accumulating a relative url as I go + while (next!=null && it!=next) { + cur = next; + buf.insert(0,'/'); + buf.insert(0,cur.getSafeName()); + next = cur.getParent(); + } + if (it==next) { + return buf.toString(); + } else { + // Keep adding on to the string we've built so far + + // Start with the test result action + AbstractTestResultAction action = getTestResultAction(); + if (action==null) { + LOGGER.warning("trying to get relative path, but we can't determine the action that owns this result."); + return ""; // this won't take us to the right place, but it also won't 404. + } + buf.insert(0,'/'); + buf.insert(0,action.getUrlName()); + + // Now the build + AbstractBuild myBuild = cur.getOwner(); + if (myBuild ==null) { + LOGGER.warning("trying to get relative path, but we can't determine the build that owns this result."); + return ""; // this won't take us to the right place, but it also won't 404. + } + buf.insert(0,'/'); + buf.insert(0,myBuild.getUrl()); + + // If we're inside a stapler request, just delegate to Hudson.Functions to get the relative path! + StaplerRequest req = Stapler.getCurrentRequest(); + if (req!=null && myBuild instanceof Item) { + buf.insert(0, '/'); + // Ugly but I don't see how else to convince the compiler that myBuild is an Item + Item myBuildAsItem = (Item) myBuild; + buf.insert(0, Functions.getRelativeLinkTo(myBuildAsItem)); + } else { + // We're not in a stapler request. Okay, give up. + LOGGER.info("trying to get relative path, but it is not my ancestor, and we're not in a stapler request. Trying absolute hudson url..."); + String hudsonRootUrl = Hudson.getInstance().getRootUrl(); + if (hudsonRootUrl==null||hudsonRootUrl.length()==0) { + LOGGER.warning("Can't find anything like a decent hudson url. Punting, returning empty string."); + return ""; + + } + buf.insert(0, '/'); + buf.insert(0, hudsonRootUrl); + } + + LOGGER.info("Here's our relative path: " + buf.toString()); + return buf.toString(); + } + + } + + /** + * Subclasses may override this method if they are + * associated with a particular subclass of + * AbstractTestResultAction. + * + * @return the test result action that connects this test result to a particular build + */ + @Override + public AbstractTestResultAction getTestResultAction() { + AbstractBuild owner = getOwner(); + if (owner != null) { + return owner.getAction(AbstractTestResultAction.class); + } else { + LOGGER.warning("owner is null when trying to getTestResultAction."); + return null; + } + } + + /** + * Get a list of all TestActions associated with this TestObject. + * @return + */ + @Override + public List getTestActions() { + AbstractTestResultAction atra = getTestResultAction(); + if ((atra != null) && (atra instanceof TestResultAction)) { + TestResultAction tra = (TestResultAction) atra; + return tra.getActions(this); + } else { + return new ArrayList(); + } + } + + /** + * Gets a test action of the class passed in. + * @param klazz + * @param an instance of the class passed in + * @return + */ + @Override + public T getTestAction(Class klazz) { + for (TestAction action : getTestActions()) { + if (klazz.isAssignableFrom(action.getClass())) { + return klazz.cast(action); + } + } + return null; + } + + /** + * Gets the counterpart of this {@link TestResult} in the previous run. + * + * @return null if no such counter part exists. + */ + public abstract TestResult getPreviousResult(); + + /** + * Gets the counterpart of this {@link TestResult} in the specified run. + * + * @return null if no such counter part exists. + */ + public abstract TestResult getResultInBuild(AbstractBuild build); + + /** + * Find the test result corresponding to the one identified by id> + * withint this test result. + * + * @param id The path to the original test result + * @return A corresponding test result, or null if there is no corresponding + * result. + */ + public abstract TestResult findCorrespondingResult(String id); + + /** + * Time took to run this test. In seconds. + */ + public abstract float getDuration(); + + /** + * Returns the string representation of the {@link #getDuration()}, in a + * human readable format. + */ + @Override + public String getDurationString() { + return Util.getTimeSpanString((long) (getDuration() * 1000)); + } + + @Override + public String getDescription() { + AbstractTestResultAction action = getTestResultAction(); + if (action != null) { + return action.getDescription(this); + } + return ""; + } + + @Override + public void setDescription(String description) { + AbstractTestResultAction action = getTestResultAction(); + if (action != null) { + action.setDescription(this, description); + } + } + + /** + * Exposes this object through the remote API. + */ + @Override + public Api getApi() { + return new Api(this); + } + + /** + * Gets the name of this object. + */ + @Override + public/* abstract */ String getName() { + return ""; + } + + /** + * Gets the version of {@link #getName()} that's URL-safe. + */ + @Override + public String getSafeName() { + return safe(getName()); + } + + @Override + public String getSearchUrl() { + return getSafeName(); + } + + /** + * #2988: uniquifies a {@link #getSafeName} amongst children of the parent. + */ + protected final synchronized String uniquifyName( + Collection siblings, String base) { + String uniquified = base; + int sequence = 1; + for (TestObject sibling : siblings) { + if (sibling != this && uniquified.equals(UNIQUIFIED_NAMES.get(sibling))) { + uniquified = base + '_' + ++sequence; + } + } + UNIQUIFIED_NAMES.put(this, uniquified); + return uniquified; + } + private static final Map UNIQUIFIED_NAMES = new WeakHashMap(); + + /** + * Replaces URL-unsafe characters. + */ + public static String safe(String s) { + // 3 replace calls is still 2-3x faster than a regex replaceAll + return s.replace('/', '_').replace('\\', '_').replace(':', '_'); + } + + /** + * Gets the total number of passed tests. + */ + public abstract int getPassCount(); + + /** + * Gets the total number of failed tests. + */ + public abstract int getFailCount(); + + /** + * Gets the total number of skipped tests. + */ + public abstract int getSkipCount(); + + /** + * Gets the total number of tests. + */ + @Override + public int getTotalCount() { + return getPassCount() + getFailCount() + getSkipCount(); + } + + @Override + public History getHistory() { + return new History(this); + } + + public Object getDynamic(String token, StaplerRequest req, + StaplerResponse rsp) { + for (Action a : getTestActions()) { + if (a == null) { + continue; // be defensive + } + String urlName = a.getUrlName(); + if (urlName == null) { + continue; + } + if (urlName.equals(token)) { + return a; + } + } + return null; + } + + public synchronized HttpResponse doSubmitDescription( + @QueryParameter String description) throws IOException, + ServletException { + if (getOwner() == null) { + LOGGER.severe("getOwner() is null, can't save description."); + } else { + getOwner().checkPermission(Run.UPDATE); + setDescription(description); + getOwner().save(); + } + + return new HttpRedirect("."); + } + private static final long serialVersionUID = 1L; +} diff --git a/core/src/main/java/hudson/tasks/test/TestResult.java b/core/src/main/java/hudson/tasks/test/TestResult.java new file mode 100644 index 0000000000000000000000000000000000000000..98b069eda61fa17605f27bd3c406ed971f0459cd --- /dev/null +++ b/core/src/main/java/hudson/tasks/test/TestResult.java @@ -0,0 +1,270 @@ +/* + * The MIT License + * + * Copyright (c) 2009, Yahoo!, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.tasks.test; + +import hudson.tasks.junit.TestAction; +import hudson.model.AbstractBuild; +import hudson.model.Run; +import hudson.model.Result; + +import java.util.Collection; + +import static java.util.Collections.emptyList; + + +/** + * A class that represents a general concept of a test result, without any + * language or implementation specifics. + * Subclasses must add @Exported annotation to the fields they want to export. + * + * @sine 1.343 + */ +public abstract class TestResult extends TestObject { + + /** + * If the concept of a parent action is important to a subclass, then it should + * provide a non-noop implementation of this method. + * @param action + */ + public void setParentAction(AbstractTestResultAction action) { + } + + /** + * Returns the action that points to the top level test result includes + * this test result. + * + * @return + */ + public AbstractTestResultAction getParentAction() { + return getOwner().getTestResultAction(); + } + + /** + * Request that the result update its counts of its children. Does not + * require a parent action or owner or siblings. Subclasses should + * implement this, unless they are *always* in a tallied state. + */ + public void tally() { + } + + /** + * Sets the parent test result + * @param parent + */ + public void setParent(TestObject parent) { + } + + /** + * Gets the human readable title of this result object. + */ + public /* abstract */ String getTitle(){ + return ""; + } + + /** + * Mark a build as unstable if there are failures. Otherwise, leave the + * build result unchanged. + * + * @return {@link Result#UNSTABLE} if there are test failures, null otherwise. + * + */ + public Result getBuildResult() { + if (getFailCount() > 0) { + return Result.UNSTABLE; + } else { + return null; + } + } + + /** + * Time it took to run this test. In seconds. + */ + public /* abstract */ float getDuration() { + return 0.0f; + } + + /** + * Gets the total number of passed tests. + */ + public /* abstract */ int getPassCount() { + return 0; + } + + /** + * Gets the total number of failed tests. + */ + public /* abstract */ int getFailCount() { + return 0; + } + + + /** + * Gets the total number of skipped tests. + */ + public /* abstract */ int getSkipCount() { + return 0; + } + + /** + * Gets the counter part of this {@link TestResult} in the previous run. + * + * @return null if no such counter part exists. + */ + public TestResult getPreviousResult() { + AbstractBuild b = getOwner(); + if (b == null) { + return null; + } + while(true) { + b = b.getPreviousBuild(); + if(b==null) + return null; + AbstractTestResultAction r = b.getAction(getParentAction().getClass()); + if(r!=null) { + TestResult result = r.findCorrespondingResult(this.getId()); + if (result!=null) + return result; + } + } + } + + /** + * Gets the counter part of this {@link TestResult} in the specified run. + * + * @return null if no such counter part exists. + */ + public TestResult getResultInBuild(AbstractBuild build) { + AbstractTestResultAction tra = build.getAction(getParentAction().getClass()); + if (tra == null) { + tra = build.getAction(AbstractTestResultAction.class); + } + return (tra == null) ? null : tra.findCorrespondingResult(this.getId()); + } + + /** + * Gets the "children" of this test result that failed + * @return the children of this test result, if any, or an empty collection + */ + public Collection getFailedTests() { + return emptyList(); + } + + + /** + * Gets the "children" of this test result that passed + * @return the children of this test result, if any, or an empty collection + */ + public Collection getPassedTests() { + return emptyList(); + } + + /** + * Gets the "children" of this test result that were skipped + * @return the children of this test result, if any, or an empty list + */ + public Collection getSkippedTests() { + return emptyList(); + } + + /** + * If this test failed, then return the build number + * when this test started failing. + */ + public int getFailedSince() { + return 0; + } + + /** + * If this test failed, then return the run + * when this test started failing. + */ + public Run getFailedSinceRun() { + return null; + } + + /** + * The stdout of this test. + */ + public String getStdout() { + return ""; + } + + /** + * The stderr of this test. + */ + public String getStderr() { + return ""; + } + + /** + * If there was an error or a failure, this is the stack trace, or otherwise null. + */ + public String getErrorStackTrace() { + return ""; + } + + /** + * If there was an error or a failure, this is the text from the message. + */ + public String getErrorDetails() { + return ""; + } + + /** + * @return true if the test was not skipped and did not fail, false otherwise. + */ + public boolean isPassed() { + return ((getSkipCount() == 0) && (getFailCount() == 0)); + } + + public String toPrettyString() { + StringBuilder sb = new StringBuilder(); + sb.append("{"); + sb.append("Name: ").append(this.getName()).append(", "); + sb.append("Result: ").append(this.getBuildResult()).append(",\n"); + sb.append("Total Count: ").append(this.getTotalCount()).append(", "); + sb.append("Fail: ").append(this.getFailCount()).append(", "); + sb.append("Skipt: ").append(this.getSkipCount()).append(", "); + sb.append("Pass: ").append(this.getSkipCount()).append(",\n"); + sb.append("Test Result Class: " ).append(this.getClass().getName()).append(" }\n"); + return sb.toString(); + } + + /** + * Annotate some text -- what does this do? + * @param text + * @return + */ + public String annotate(String text) { + if (text == null) + return null; + text = text.replace("&", "&").replace("<", "<").replaceAll( + "\\b(https?://[^\\s)>]+)", "$1"); + + for (TestAction action: getTestActions()) { + text = action.annotate(text); + } + return text; + } +} diff --git a/core/src/main/java/hudson/tasks/test/TestResultAggregator.java b/core/src/main/java/hudson/tasks/test/TestResultAggregator.java index ea1147a14f857ef3c3cc10c20ab156c8cd44337f..22d90b9134727dbe5bab7bbb260e320e4df2e373 100644 --- a/core/src/main/java/hudson/tasks/test/TestResultAggregator.java +++ b/core/src/main/java/hudson/tasks/test/TestResultAggregator.java @@ -1,7 +1,7 @@ /* * The MIT License * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi + * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Yahoo!, Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -23,11 +23,11 @@ */ package hudson.tasks.test; +import hudson.Launcher; import hudson.matrix.MatrixAggregator; import hudson.matrix.MatrixBuild; import hudson.matrix.MatrixRun; import hudson.model.BuildListener; -import hudson.Launcher; import java.io.IOException; @@ -44,6 +44,7 @@ public class TestResultAggregator extends MatrixAggregator { super(build, launcher, listener); } + @Override public boolean startBuild() throws InterruptedException, IOException { result = new MatrixTestResult(build); build.addAction(result); diff --git a/core/src/main/java/hudson/tasks/test/TestResultParser.java b/core/src/main/java/hudson/tasks/test/TestResultParser.java new file mode 100644 index 0000000000000000000000000000000000000000..9abfad00e64c58a65886ca2bf9e8f97e43f4504e --- /dev/null +++ b/core/src/main/java/hudson/tasks/test/TestResultParser.java @@ -0,0 +1,122 @@ +/* + * The MIT License + * + * Copyright (c) 2009, Yahoo!, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.tasks.test; + +import hudson.AbortException; +import hudson.ExtensionList; +import hudson.ExtensionPoint; +import hudson.Launcher; +import hudson.model.AbstractBuild; +import hudson.model.Hudson; +import hudson.model.TaskListener; +import hudson.tasks.Publisher; + +import java.io.IOException; + +/** + * Parses test result files and builds in-memory representation of it as {@link TestResult}. + * + *

    + * This extension point encapsulates the knowledge of a particular test report format and its parsing process, + * thereby improving the pluggability of test result parsing; integration with a new test tool can be done + * by just writing a parser, without writing a custom {@link Publisher}, and the test reports are displayed + * with the default UI and recognized by the rest of Hudson as test reports. + * + *

    + * Most typical implementations of this class should extend from {@link DefaultTestResultParserImpl}, + * which handles a set of default error checks on user inputs. + * + *

    + * Parsers are stateless, and the {@link #parse(String, AbstractBuild, Launcher, TaskListener)} method + * can be concurrently invoked by multiple threads for different builds. + * + * @since 1.343 + * @see DefaultTestResultParserImpl + */ +public abstract class TestResultParser implements ExtensionPoint { + /** + * Returns a human readable name of the parser, like "JUnit Parser". + */ + public String getDisplayName() { + return "Unknown Parser"; + } + + /** + * This text is used in the UI prompt for the GLOB that specifies files to be parsed by this parser. + * For example, "JUnit XML reports:" + */ + public String getTestResultLocationMessage() { + return "Paths to results files to parse:"; + } + + /** + * All registered {@link TestResultParser}s + */ + public static ExtensionList all() { + return Hudson.getInstance().getExtensionList(TestResultParser.class); + } + + /** + * Parses the specified set of files and builds a {@link TestResult} object that represents them. + * + *

    + * The implementation is encouraged to do the following: + * + *

      + *
    • + * If the build is successful but GLOB didn't match anything, report that as an error. This is + * to detect the error in GLOB. But don't do this if the build has already failed (for example, + * think of a failure in SCM checkout.) + * + *
    • + * Examine time stamp of test report files and if those are younger than the build, ignore them. + * This is to ignore test reports created by earlier executions. Take the possible timestamp + * difference in the master/slave into account. + *
    + * + * @param testResultLocations + * GLOB pattern relative to the {@linkplain AbstractBuild#getWorkspace() workspace} that + * specifies the locations of the test result files. Never null. + * @param build + * Build for which these tests are parsed. Never null. + * @param launcher + * Can be used to fork processes on the machine where the build is running. Never null. + * @param listener + * Use this to report progress and other problems. Never null. + * + * @throws InterruptedException + * If the user cancels the build, it will be received as a thread interruption. Do not catch + * it, and instead just forward that through the call stack. + * @throws IOException + * If you don't care about handling exceptions gracefully, you can just throw IOException + * and let the default exception handling in Hudson takes care of it. + * @throws AbortException + * If you encounter an error that you handled gracefully, throw this exception and Hudson + * will not show a stack trace. + */ + public abstract TestResult parse(String testResultLocations, + AbstractBuild build, Launcher launcher, + TaskListener listener) + throws InterruptedException, IOException; +} diff --git a/core/src/main/java/hudson/tasks/test/TestResultProjectAction.java b/core/src/main/java/hudson/tasks/test/TestResultProjectAction.java index 8a28cec0119ef60b9339557a92d3e0dcbd51d594..cd43428510678f932d56459cde88305f3b06ebd8 100644 --- a/core/src/main/java/hudson/tasks/test/TestResultProjectAction.java +++ b/core/src/main/java/hudson/tasks/test/TestResultProjectAction.java @@ -71,7 +71,7 @@ public class TestResultProjectAction implements Action { return "test"; } - protected AbstractTestResultAction getLastTestResultAction() { + public AbstractTestResultAction getLastTestResultAction() { final AbstractBuild tb = project.getLastSuccessfulBuild(); AbstractBuild b=project.getLastBuild(); diff --git a/core/src/main/java/hudson/tasks/test/package.html b/core/src/main/java/hudson/tasks/test/package.html index d7f21c11a2108e5c3fcbef03bbf50c440bb6a7ba..aff669076f2fa3b1f39fa16bad2264eed40ea5ce 100644 --- a/core/src/main/java/hudson/tasks/test/package.html +++ b/core/src/main/java/hudson/tasks/test/package.html @@ -1,7 +1,7 @@ - + Defines contracts that need to be implemented by a test reporting action (such as the built-in JUnit one). This contract allows Project to display a test result trend history. diff --git a/core/src/main/java/hudson/tools/CommandInstaller.java b/core/src/main/java/hudson/tools/CommandInstaller.java index 92bfa4e7f57ec35511b22bb01642052aa39098b7..744cdc6684951e674a3cd6a3d48f4a89dda5dd5b 100644 --- a/core/src/main/java/hudson/tools/CommandInstaller.java +++ b/core/src/main/java/hudson/tools/CommandInstaller.java @@ -31,12 +31,12 @@ import hudson.model.TaskListener; import hudson.tasks.CommandInterpreter; import hudson.util.FormValidation; import java.io.IOException; -import java.util.Collections; import org.kohsuke.stapler.DataBoundConstructor; import org.kohsuke.stapler.QueryParameter; /** * Installs a tool by running an arbitrary shell command. + * @since 1.305 */ public class CommandInstaller extends ToolInstaller { @@ -45,31 +45,40 @@ public class CommandInstaller extends ToolInstaller { */ private final String command; + /** + * Resulting tool home directory. + */ + private final String toolHome; + @DataBoundConstructor - public CommandInstaller(String label, String command) { + public CommandInstaller(String label, String command, String toolHome) { super(label); this.command = command; + this.toolHome = toolHome; } public String getCommand() { return command; } + public String getToolHome() { + return toolHome; + } + public FilePath performInstallation(ToolInstallation tool, Node node, TaskListener log) throws IOException, InterruptedException { - FilePath tools = node.getRootPath().child("tools"); + FilePath dir = preferredLocation(tool, node); // XXX support Windows batch scripts, Unix scripts with interpreter line, etc. (see CommandInterpreter subclasses) - FilePath script = tools.createTextTempFile("hudson", ".sh", command); + FilePath script = dir.createTextTempFile("hudson", ".sh", command); try { String[] cmd = {"sh", "-e", script.getRemote()}; - // XXX it always logs at least: "INFO: [tools] $ sh -e /hudson/tools/hudson8889216416382058262.sh" - int r = node.createLauncher(log).launch(cmd, Collections.emptyMap(), log.getLogger(), tools).join(); + int r = node.createLauncher(log).launch().cmds(cmd).stdout(log).pwd(dir).join(); if (r != 0) { throw new IOException("Command returned status " + r); } } finally { script.delete(); } - return node.createPath(tool.getHome()); + return dir.child(toolHome); } @Extension @@ -86,6 +95,15 @@ public class CommandInstaller extends ToolInstaller { return FormValidation.error(Messages.CommandInstaller_no_command()); } } + + public FormValidation doCheckToolHome(@QueryParameter String value) { + if (value.length() > 0) { + return FormValidation.ok(); + } else { + return FormValidation.error(Messages.CommandInstaller_no_toolHome()); + } + } + } } diff --git a/core/src/main/java/hudson/tools/DownloadFromUrlInstaller.java b/core/src/main/java/hudson/tools/DownloadFromUrlInstaller.java new file mode 100644 index 0000000000000000000000000000000000000000..90ce9b91aba833f9b6a24e90ee10aa933ea045c9 --- /dev/null +++ b/core/src/main/java/hudson/tools/DownloadFromUrlInstaller.java @@ -0,0 +1,180 @@ +package hudson.tools; + +import hudson.FilePath; +import hudson.model.DownloadService.Downloadable; +import hudson.model.Node; +import hudson.model.TaskListener; +import net.sf.json.JSONObject; +import org.kohsuke.stapler.DataBoundConstructor; + +import java.io.IOException; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; +import java.net.URL; + +/** + * Partial convenience implementation of {@link ToolInstaller} that just downloads + * an archive from the URL and extracts it. + * + *

    + * Each instance of this is configured to download from a specific URL identified by an ID. + * + * @author Kohsuke Kawaguchi + * @since 1.308 + */ +public abstract class DownloadFromUrlInstaller extends ToolInstaller { + public final String id; + + @DataBoundConstructor + protected DownloadFromUrlInstaller(String id) { + // this installer implementation is designed for platform independent binary, + // and as such we don't provide the label support + super(null); + this.id = id; + } + + /** + * Checks if the specified expected location already contains the installed version of the tool. + * + * This check needs to run fairly efficiently. The current implementation uses the souce URL of {@link Installable}, + * based on the assumption that released bits do not change its content. + */ + protected boolean isUpToDate(FilePath expectedLocation, Installable i) throws IOException, InterruptedException { + FilePath marker = expectedLocation.child(".installedFrom"); + return marker.exists() && marker.readToString().equals(i.url); + } + + /** + * Gets the {@link Installable} identified by {@link #id}. + * + * @return null if no such ID is found. + */ + public Installable getInstallable() throws IOException { + for (Installable i : ((DescriptorImpl)getDescriptor()).getInstallables()) + if(id.equals(i.id)) + return i; + return null; + } + + public FilePath performInstallation(ToolInstallation tool, Node node, TaskListener log) throws IOException, InterruptedException { + FilePath expected = preferredLocation(tool, node); + + Installable inst = getInstallable(); + if(inst==null) { + log.getLogger().println("Invalid tool ID "+id); + return expected; + } + + if(isUpToDate(expected,inst)) + return expected; + + if(expected.installIfNecessaryFrom(new URL(inst.url), log, "Unpacking " + inst.url + " to " + expected + " on " + node.getDisplayName())) { + expected.child(".timestamp").delete(); // we don't use the timestamp + FilePath base = findPullUpDirectory(expected); + if(base!=null && base!=expected) + base.moveAllChildrenTo(expected); + // leave a record for the next up-to-date check + expected.child(".installedFrom").write(inst.url,"UTF-8"); + expected.act(new ZipExtractionInstaller.ChmodRecAPlusX()); + } + + return expected; + } + + /** + * Often an archive contains an extra top-level directory that's unnecessary when extracted on the disk + * into the expected location. If your installation sources provide that kind of archives, override + * this method to find the real root location. + * + *

    + * The caller will "pull up" the discovered real root by throw away the intermediate directory, + * so that the user-configured "tool home" directory contains the right files. + * + *

    + * The default implementation applies some heuristics to auto-determine if the pull up is necessary. + * This should work for typical archive files. + * + * @param root + * The directory that contains the extracted archive. This directory contains nothing but the + * extracted archive. For example, if the user installed + * http://archive.apache.org/dist/ant/binaries/jakarta-ant-1.1.zip , this directory would contain + * a single directory "jakarta-ant". + * + * @return + * Return the real top directory inside {@code root} that contains the meat. In the above example, + * root.child("jakarta-ant") should be returned. If there's no directory to pull up, + * return null. + */ + protected FilePath findPullUpDirectory(FilePath root) throws IOException, InterruptedException { + // if the directory just contains one directory and that alone, assume that's the pull up subject + // otherwise leave it as is. + List children = root.list(); + if(children.size()!=1) return null; + if(children.get(0).isDirectory()) + return children.get(0); + return null; + } + + public static abstract class DescriptorImpl extends ToolInstallerDescriptor { + + @SuppressWarnings("deprecation") // intentionally adding dynamic item here + protected DescriptorImpl() { + Downloadable.all().add(createDownloadable()); + } + + protected Downloadable createDownloadable() { + return new Downloadable(getId()); + } + + /** + * This ID needs to be unique, and needs to match the ID token in the JSON update file. + *

    + * By default we use the fully-qualified class name of the {@link DownloadFromUrlInstaller} subtype. + */ + protected String getId() { + return clazz.getName().replace('$','.'); + } + + /** + * List of installable tools. + * + *

    + * The UI uses this information to populate the drop-down. Subtypes can override this method + * if it wants to change the way the list is filled. + * + * @return never null. + */ + public List getInstallables() throws IOException { + JSONObject d = Downloadable.get(getId()).getData(); + if(d==null) return Collections.emptyList(); + return Arrays.asList(((InstallableList)JSONObject.toBean(d,InstallableList.class)).list); + } + } + + /** + * Used for JSON databinding to parse the obtained list. + */ + public static class InstallableList { + // initialize with an empty array just in case JSON doesn't have the list field (which shouldn't happen.) + public Installable[] list = new Installable[0]; + } + + /** + * Downloadable and installable tool. + */ + public static class Installable { + /** + * Used internally to uniquely identify the name. + */ + public String id; + /** + * This is the human readable name. + */ + public String name; + /** + * URL. + */ + public String url; + } +} diff --git a/core/src/main/java/hudson/tools/InstallSourceProperty.java b/core/src/main/java/hudson/tools/InstallSourceProperty.java index 17f042de4b889e5d3c100c62b158f302fbf447c5..3680a8f68eaeef7ceee50ef39b6531dfa8866640 100644 --- a/core/src/main/java/hudson/tools/InstallSourceProperty.java +++ b/core/src/main/java/hudson/tools/InstallSourceProperty.java @@ -36,6 +36,7 @@ import java.io.IOException; * {@link ToolProperty} that shows auto installation options. * * @author Kohsuke Kawaguchi + * @since 1.305 */ public class InstallSourceProperty extends ToolProperty { // TODO: get the proper Saveable @@ -44,7 +45,9 @@ public class InstallSourceProperty extends ToolProperty { @DataBoundConstructor public InstallSourceProperty(List installers) throws IOException { - this.installers.replaceBy(installers); + if (installers != null) { + this.installers.replaceBy(installers); + } } @Override @@ -59,9 +62,9 @@ public class InstallSourceProperty extends ToolProperty { } @Extension - public static class DescriptorImpl extends ToolPropertyDescriptor { + public static class DescriptorImpl extends ToolPropertyDescriptor { public String getDisplayName() { - return "Install automatically"; + return Messages.InstallSourceProperty_DescriptorImpl_displayName(); } } } diff --git a/core/src/main/java/hudson/tools/InstallerTranslator.java b/core/src/main/java/hudson/tools/InstallerTranslator.java index 17a579f3db90f2973018b2db22244ffabfc20fa0..67d411952a3b31c8ad675f5815bfe78037d72588 100644 --- a/core/src/main/java/hudson/tools/InstallerTranslator.java +++ b/core/src/main/java/hudson/tools/InstallerTranslator.java @@ -34,6 +34,7 @@ import java.util.concurrent.Semaphore; /** * Actually runs installations. + * @since 1.305 */ @Extension public class InstallerTranslator extends ToolLocationTranslator { diff --git a/core/src/main/java/hudson/tools/JDKInstaller.java b/core/src/main/java/hudson/tools/JDKInstaller.java index 8b7d6f5a39cc7b767dbaeb1a88fe97b9dc496394..cdca2a34f5aa4688aeaa830c400605649049d3c1 100644 --- a/core/src/main/java/hudson/tools/JDKInstaller.java +++ b/core/src/main/java/hudson/tools/JDKInstaller.java @@ -1,7 +1,7 @@ /* * The MIT License * - * Copyright (c) 2009, Sun Microsystems, Inc. + * Copyright (c) 2009-2010, Sun Microsystems, Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -23,42 +23,49 @@ */ package hudson.tools; -import com.gargoylesoftware.htmlunit.WebClient; -import com.gargoylesoftware.htmlunit.html.HtmlForm; -import com.gargoylesoftware.htmlunit.html.HtmlInput; -import com.gargoylesoftware.htmlunit.html.HtmlOption; -import com.gargoylesoftware.htmlunit.html.HtmlPage; -import com.gargoylesoftware.htmlunit.html.HtmlSelect; import hudson.AbortException; import hudson.Extension; import hudson.FilePath; +import hudson.ProxyConfiguration; import hudson.Util; +import hudson.Launcher; +import hudson.model.Hudson; import hudson.util.FormValidation; -import hudson.util.TimeUnit2; import hudson.util.ArgumentListBuilder; -import hudson.FilePath.FileCallable; +import hudson.util.IOException2; import hudson.model.Node; import hudson.model.TaskListener; import hudson.model.DownloadService.Downloadable; +import hudson.model.JDK; import static hudson.tools.JDKInstaller.Preference.*; import hudson.remoting.Callable; -import hudson.remoting.VirtualChannel; +import org.jvnet.robust_http_client.RetryableHttpStream; import org.kohsuke.stapler.DataBoundConstructor; import org.kohsuke.stapler.QueryParameter; import org.apache.commons.io.IOUtils; +import org.apache.commons.io.output.NullWriter; +import org.w3c.tidy.Tidy; +import org.dom4j.io.DOMReader; +import org.dom4j.Document; +import org.dom4j.Element; import java.io.ByteArrayInputStream; import java.io.File; -import java.io.FileFilter; +import java.io.FileOutputStream; import java.io.IOException; import java.io.PrintStream; import java.io.InputStreamReader; import java.io.OutputStreamWriter; +import java.io.PrintWriter; +import java.io.InputStream; import java.net.URL; +import java.net.HttpURLConnection; +import java.net.URLEncoder; import java.util.ArrayList; import java.util.List; import java.util.Locale; import java.util.Arrays; +import java.util.Iterator; import java.util.logging.Logger; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -69,6 +76,7 @@ import net.sf.json.JSONObject; * Install JDKs from java.sun.com. * * @author Kohsuke Kawaguchi + * @since 1.305 */ public class JDKInstaller extends ToolInstaller { /** @@ -94,98 +102,34 @@ public class JDKInstaller extends ToolInstaller { } public FilePath performInstallation(ToolInstallation tool, Node node, TaskListener log) throws IOException, InterruptedException { - FilePath expectedLocation = node.createPath(tool.getHome()); + FilePath expectedLocation = preferredLocation(tool, node); PrintStream out = log.getLogger(); try { if(!acceptLicense) { - out.println("Unable to perform installation until the license is accepted."); + out.println(Messages.JDKInstaller_UnableToInstallUntilLicenseAccepted()); return expectedLocation; } // already installed? FilePath marker = expectedLocation.child(".installedByHudson"); - if(marker.exists()) + if (marker.exists() && marker.readToString().equals(id)) { return expectedLocation; + } + expectedLocation.deleteRecursive(); expectedLocation.mkdirs(); Platform p = Platform.of(node); URL url = locate(log, p, CPU.of(node)); out.println("Downloading "+url); - FilePath file = expectedLocation.child(fileName(p)); + FilePath file = expectedLocation.child(p.bundleFileName); file.copyFrom(url); - out.println("Installing "+file); - switch (p) { - case LINUX: - case SOLARIS: - file.chmod(0755); - if(node.createLauncher(log).launch(new String[]{file.getRemote(),"-noregister"},new String[0],new ByteArrayInputStream("yes".getBytes()),out,expectedLocation).join()!=0) - throw new AbortException("Failed to install JDK"); - - // JDK creates its own sub-directory, so pull them up - List paths = expectedLocation.list(JDK_FINDER); - if(paths.size()!=1) - throw new AbortException("Failed to find the extracted JDKs: "+paths); - - paths.get(0).act(PULLUP_DIRECTORY); - - // clean up - paths.get(0).delete(); - - break; - case WINDOWS: - /* - Windows silent installation is full of bad know-how. - - On Windows, command line argument to a process at the OS level is a single string, - not a string array like POSIX. When we pass arguments as string array, JRE eventually - turn it into a single string with adding quotes to "the right place". Unfortunately, - with the strange argument layout of InstallShield (like /v/qn" INSTALLDIR=foobar"), - it appears that the escaping done by JRE gets in the way, and prevents the installation. - Presumably because of this, my attempt to use /q/vn" INSTALLDIR=foo" didn't work with JDK5. - - I tried to locate exactly how InstallShield parses the arguments (and why it uses - awkward option like /qn, but couldn't find any. Instead, experiments revealed that - "/q/vn ARG ARG ARG" works just as well. This is presumably due to the Visual C++ runtime library - (which does single string -> string array conversion to invoke the main method in most Win32 process), - and this consistently worked on JDK5 and JDK4. - - Some of the official documentations are available at - - http://java.sun.com/j2se/1.5.0/sdksilent.html - - http://java.sun.com/j2se/1.4.2/docs/guide/plugin/developer_guide/silent.html - */ - // see - // - - FilePath logFile = node.getRootPath().createTempFile("jdk-install",".log"); - // JDK6u13 doesn't like path representation like "/tmp/foo", so make it a strict Windows format - String normalizedPath = expectedLocation.absolutize().getRemote(); - - ArgumentListBuilder args = new ArgumentListBuilder(); - args.add(file.getRemote()); - args.add("/s"); - args.add("/v/qn REBOOT=Suppress INSTALLDIR="+normalizedPath+" /L "+logFile.getRemote()); - - if(node.createLauncher(log).launch(args.toCommandArray(),new String[0],out,expectedLocation).join()!=0) { - out.println("Failed to install JDK"); - // log file is in UTF-16 - InputStreamReader in = new InputStreamReader(logFile.read(), "UTF-16"); - try { - IOUtils.copy(in,new OutputStreamWriter(out)); - } finally { - in.close(); - } - throw new AbortException(); - } - - logFile.delete(); - - break; - } + // JDK6u13 on Windows doesn't like path representation like "/tmp/foo", so make it a strict platform native format by doing 'absolutize' + install(node.createLauncher(log), p, new FilePathFileSystem(node), log, expectedLocation.absolutize().getRemote(), file.getRemote()); // successfully installed file.delete(); - marker.touch(System.currentTimeMillis()); + marker.write(id, null); } catch (DetectionFailedException e) { out.println("JDK installation skipped: "+e.getMessage()); @@ -195,85 +139,281 @@ public class JDKInstaller extends ToolInstaller { } /** - * Choose the file name suitable for the downloaded JDK bundle. + * Performs the JDK installation to a system, provided that the bundle was already downloaded. + * + * @param launcher + * Used to launch processes on the system. + * @param p + * Platform of the system. This determines how the bundle is installed. + * @param fs + * Abstraction of the file system manipulation on this system. + * @param log + * Where the output from the installation will be written. + * @param expectedLocation + * Path to install JDK to. Must be absolute and in the native file system notation. + * @param jdkBundle + * Path to the installed JDK bundle. (The bundle to download can be determined by {@link #locate(TaskListener, Platform, CPU)} call.) */ - private String fileName(Platform p) { + public void install(Launcher launcher, Platform p, FileSystem fs, TaskListener log, String expectedLocation, String jdkBundle) throws IOException, InterruptedException { + PrintStream out = log.getLogger(); + + out.println("Installing "+ jdkBundle); switch (p) { case LINUX: case SOLARIS: - return "jdk.sh"; + fs.chmod(jdkBundle,0755); + int exit = launcher.launch().cmds(jdkBundle, "-noregister") + .stdin(new ByteArrayInputStream("yes".getBytes())).stdout(out) + .pwd(new FilePath(launcher.getChannel(), expectedLocation)).join(); + if (exit != 0) + throw new AbortException(Messages.JDKInstaller_FailedToInstallJDK(exit)); + + // JDK creates its own sub-directory, so pull them up + List paths = fs.listSubDirectories(expectedLocation); + for (Iterator itr = paths.iterator(); itr.hasNext();) { + String s = itr.next(); + if (!s.matches("j(2s)?dk.*")) + itr.remove(); + } + if(paths.size()!=1) + throw new AbortException("Failed to find the extracted JDKs: "+paths); + + // remove the intermediate directory + fs.pullUp(expectedLocation+'/'+paths.get(0),expectedLocation); + break; case WINDOWS: - return "jdk.exe"; + /* + Windows silent installation is full of bad know-how. + + On Windows, command line argument to a process at the OS level is a single string, + not a string array like POSIX. When we pass arguments as string array, JRE eventually + turn it into a single string with adding quotes to "the right place". Unfortunately, + with the strange argument layout of InstallShield (like /v/qn" INSTALLDIR=foobar"), + it appears that the escaping done by JRE gets in the way, and prevents the installation. + Presumably because of this, my attempt to use /q/vn" INSTALLDIR=foo" didn't work with JDK5. + + I tried to locate exactly how InstallShield parses the arguments (and why it uses + awkward option like /qn, but couldn't find any. Instead, experiments revealed that + "/q/vn ARG ARG ARG" works just as well. This is presumably due to the Visual C++ runtime library + (which does single string -> string array conversion to invoke the main method in most Win32 process), + and this consistently worked on JDK5 and JDK4. + + Some of the official documentations are available at + - http://java.sun.com/j2se/1.5.0/sdksilent.html + - http://java.sun.com/j2se/1.4.2/docs/guide/plugin/developer_guide/silent.html + */ + String logFile = jdkBundle+".install.log"; + + ArgumentListBuilder args = new ArgumentListBuilder(); + args.add(jdkBundle); + args.add("/s"); + // according to http://community.acresso.com/showthread.php?t=83301, \" is the trick to quote values with whitespaces. + // Oh Windows, oh windows, why do you have to be so difficult? + args.add("/v/qn REBOOT=Suppress INSTALLDIR=\\\""+ expectedLocation +"\\\" /L \\\""+logFile+"\\\""); + + int r = launcher.launch().cmds(args).stdout(out) + .pwd(new FilePath(launcher.getChannel(), expectedLocation)).join(); + if (r != 0) { + out.println(Messages.JDKInstaller_FailedToInstallJDK(r)); + // log file is in UTF-16 + InputStreamReader in = new InputStreamReader(fs.read(logFile), "UTF-16"); + try { + IOUtils.copy(in,new OutputStreamWriter(out)); + } finally { + in.close(); + } + throw new AbortException(); + } + + fs.delete(logFile); + + break; } - throw new AssertionError(); } /** - * Finds the directory that JDK has created. + * Abstraction of the file system to perform JDK installation. + * Consider {@link FilePathFileSystem} as the canonical documentation of the contract. */ - private static final FileFilter JDK_FINDER = new FileFilter() { - public boolean accept(File f) { - return f.isDirectory() && f.getName().startsWith("jdk"); + public interface FileSystem { + void delete(String file) throws IOException, InterruptedException; + void chmod(String file,int mode) throws IOException, InterruptedException; + InputStream read(String file) throws IOException; + /** + * List sub-directories of the given directory and just return the file name portion. + */ + List listSubDirectories(String dir) throws IOException, InterruptedException; + void pullUp(String from, String to) throws IOException, InterruptedException; + } + + /*package*/ static final class FilePathFileSystem implements FileSystem { + private final Node node; + + FilePathFileSystem(Node node) { + this.node = node; } - }; + + public void delete(String file) throws IOException, InterruptedException { + $(file).delete(); + } + + public void chmod(String file, int mode) throws IOException, InterruptedException { + $(file).chmod(mode); + } + + public InputStream read(String file) throws IOException { + return $(file).read(); + } + + public List listSubDirectories(String dir) throws IOException, InterruptedException { + List r = new ArrayList(); + for( FilePath f : $(dir).listDirectories()) + r.add(f.getName()); + return r; + } + + public void pullUp(String from, String to) throws IOException, InterruptedException { + $(from).moveAllChildrenTo($(to)); + } + + private FilePath $(String file) { + return node.createPath(file); + } + } /** - * Moves all the contents of this directory into ".." + * This is where we locally cache this JDK. */ - private static final FileCallable PULLUP_DIRECTORY = new FileCallable() { - public Void invoke(File f, VirtualChannel channel) throws IOException { - File p = f.getParentFile(); - for(File child : f.listFiles()) { - File target = new File(p, child.getName()); - if(!child.renameTo(target)) - throw new IOException("Failed to rename "+child+" to "+target); - } - return null; - } - }; + private File getLocalCacheFile(Platform platform, CPU cpu) { + return new File(Hudson.getInstance().getRootDir(),"cache/jdks/"+platform+"/"+cpu+"/"+id); + } /** * Performs a license click through and obtains the one-time URL for downloading bits. - * */ - private URL locate(TaskListener log, Platform platform, CPU cpu) throws IOException { - final PrintStream out = log.getLogger(); - - final WebClient wc = new WebClient(); - wc.setJavaScriptEnabled(false); - wc.setCssEnabled(false); - - out.println("Visiting http://cds.sun.com/ for download"); - HtmlPage p = (HtmlPage)wc.getPage("https://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US/-/USD/ViewProductDetail-Start?ProductRef="+id); - HtmlForm form = p.getFormByName("aForm"); - ((HtmlInput)p.getElementById("dnld_license")).click(); - - // pick the right download. to make the comparison more robust, we do it in the upper case - HtmlOption primary=null,secondary=null; - HtmlSelect platformChoice = (HtmlSelect) p.getElementById("dnld_platform"); - for(HtmlOption opt : platformChoice.getOptions()) { - String value = opt.getValueAttribute().toUpperCase(Locale.ENGLISH); - if(!platform.is(value)) continue; - switch (cpu.accept(value)) { - case PRIMARY: primary = opt;break; - case SECONDARY: secondary=opt;break; - case UNACCEPTABLE: break; + public URL locate(TaskListener log, Platform platform, CPU cpu) throws IOException { + File cache = getLocalCacheFile(platform, cpu); + if (cache.exists()) return cache.toURL(); + + HttpURLConnection con = locateStage1(platform, cpu); + String page = IOUtils.toString(con.getInputStream()); + URL src = locateStage2(log, page); + + // download to a temporary file and rename it in to handle concurrency and failure correctly, + File tmp = new File(cache.getPath()+".tmp"); + tmp.getParentFile().mkdirs(); + try { + FileOutputStream out = new FileOutputStream(tmp); + try { + IOUtils.copy(new RetryableHttpStream(src) { + @Override + protected HttpURLConnection connect() throws IOException { + return (HttpURLConnection) ProxyConfiguration.open(url); + } + }, out); + } finally { + out.close(); } + + tmp.renameTo(cache); + return cache.toURL(); + } finally { + tmp.delete(); } - if(primary==null) primary=secondary; - if(primary==null) + } + + @SuppressWarnings("unchecked") // dom4j doesn't do generics, apparently... should probably switch to XOM + private HttpURLConnection locateStage1(Platform platform, CPU cpu) throws IOException { + URL url = new URL("https://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US/-/USD/ViewProductDetail-Start?ProductRef="+id); + String cookie; + Element form; + try { + HttpURLConnection con = (HttpURLConnection) ProxyConfiguration.open(url); + cookie = con.getHeaderField("Set-Cookie"); + LOGGER.fine("Cookie="+cookie); + + Tidy tidy = new Tidy(); + tidy.setErrout(new PrintWriter(new NullWriter())); + DOMReader domReader = new DOMReader(); + Document dom = domReader.read(tidy.parseDOM(con.getInputStream(), null)); + + form = null; + for (Element e : (List)dom.selectNodes("//form")) { + String action = e.attributeValue("action"); + LOGGER.fine("Found form:"+action); + if(action.contains("ViewFilteredProducts")) { + form = e; + break; + } + } + } catch (IOException e) { + throw new IOException2("Failed to access "+url,e); + } + + url = new URL(form.attributeValue("action")); + try { + HttpURLConnection con = (HttpURLConnection) ProxyConfiguration.open(url); + con.setRequestMethod("POST"); + con.setDoOutput(true); + con.setRequestProperty("Cookie",cookie); + con.setRequestProperty("Content-Type","application/x-www-form-urlencoded"); + PrintStream os = new PrintStream(con.getOutputStream()); + + // select platform + String primary=null,secondary=null; + Element p = (Element)form.selectSingleNode(".//select[@id='dnld_platform']"); + for (Element opt : (List)p.elements("option")) { + String value = opt.attributeValue("value"); + String vcap = value.toUpperCase(Locale.ENGLISH); + if(!platform.is(vcap)) continue; + switch (cpu.accept(vcap)) { + case PRIMARY: primary = value;break; + case SECONDARY: secondary=value;break; + case UNACCEPTABLE: break; + } + } + if(primary==null) primary=secondary; + if(primary==null) throw new AbortException("Couldn't find the right download for "+platform+" and "+ cpu +" combination"); - ((HtmlSelect)p.getElementById("dnld_platform")).setSelectedAttribute(primary,true); - p = (HtmlPage)form.submit(); + os.print(p.attributeValue("name")+'='+primary); + LOGGER.fine("Platform choice:"+primary); - out.println("Choosing the download bundle"); + // select language + Element l = (Element)form.selectSingleNode(".//select[@id='dnld_language']"); + if (l != null) { + os.print("&"+l.attributeValue("name")+"="+l.element("option").attributeValue("value")); + } + + // the rest + for (Element e : (List)form.selectNodes(".//input")) { + os.print('&'); + os.print(e.attributeValue("name")); + os.print('='); + String value = e.attributeValue("value"); + if(value==null) + os.print("on"); // assume this is a checkbox + else + os.print(URLEncoder.encode(value,"UTF-8")); + } + os.close(); + return con; + } catch (IOException e) { + throw new IOException2("Failed to access "+url,e); + } + } + + private URL locateStage2(TaskListener log, String page) throws IOException { + Pattern HREF = Pattern.compile(" that confuses dom4j/jtidy + + log.getLogger().println("Choosing the download bundle"); List urls = new ArrayList(); - // for some reason, the + +
    + + + + + + + + diff --git a/core/src/main/resources/hudson/PluginManager/sites_da.properties b/core/src/main/resources/hudson/PluginManager/sites_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..866155c8aa5bbdbfe6c13943b5c19a535ceabddb --- /dev/null +++ b/core/src/main/resources/hudson/PluginManager/sites_da.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Add...=Tilf\u00f8j... +Remove=Slet diff --git a/core/src/main/resources/hudson/PluginManager/sites_de.properties b/core/src/main/resources/hudson/PluginManager/sites_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..3d03a500376bf5dbf585f0403af7336a33abbde4 --- /dev/null +++ b/core/src/main/resources/hudson/PluginManager/sites_de.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Add...=Hinzufügen... +Remove=Entfernen diff --git a/core/src/main/resources/hudson/PluginManager/sites_es.properties b/core/src/main/resources/hudson/PluginManager/sites_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..4cd54bef9e3f92cb24b3ff97ffaf5beb84078d93 --- /dev/null +++ b/core/src/main/resources/hudson/PluginManager/sites_es.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Add...=Añadir... +Remove=Borrar diff --git a/core/src/main/resources/hudson/PluginManager/sites_ja.properties b/core/src/main/resources/hudson/PluginManager/sites_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..a55da61240f44acc0ecdb78d38a2023494147032 --- /dev/null +++ b/core/src/main/resources/hudson/PluginManager/sites_ja.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Add...=\u8FFD\u52A0... +Remove=\u524A\u9664 diff --git a/core/src/main/resources/hudson/PluginManager/sites_pt_BR.properties b/core/src/main/resources/hudson/PluginManager/sites_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..fe8c849e074f4ba6d0e301b1ed7e6a66ec06bd03 --- /dev/null +++ b/core/src/main/resources/hudson/PluginManager/sites_pt_BR.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Remove= +Add...= diff --git a/core/src/main/resources/hudson/PluginManager/tabBar.jelly b/core/src/main/resources/hudson/PluginManager/tabBar.jelly index a8e6f4183d44d3dd9029fdbc6c05c49892c49849..1a7e8eeb3a731b70e0848c9f96d929801beec224 100644 --- a/core/src/main/resources/hudson/PluginManager/tabBar.jelly +++ b/core/src/main/resources/hudson/PluginManager/tabBar.jelly @@ -1,7 +1,7 @@ - - -
    - \ No newline at end of file + diff --git a/core/src/main/resources/hudson/PluginManager/tabBar_da.properties b/core/src/main/resources/hudson/PluginManager/tabBar_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..339e06393cdf78b551f7e9256605871c4a3982a0 --- /dev/null +++ b/core/src/main/resources/hudson/PluginManager/tabBar_da.properties @@ -0,0 +1,27 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Installed=Installeret +Sites=Sites +Available=Tilg\u00e6ngelige +Advanced=Avanceret +Updates=Opdateringer diff --git a/core/src/main/resources/hudson/PluginManager/tabBar_de.properties b/core/src/main/resources/hudson/PluginManager/tabBar_de.properties index 6950cdda9443f36820d471885580f5ba863f29ca..4dc2c82617485a81e78d2f124230aafef2410f27 100644 --- a/core/src/main/resources/hudson/PluginManager/tabBar_de.properties +++ b/core/src/main/resources/hudson/PluginManager/tabBar_de.properties @@ -20,7 +20,9 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Updates=Aktualisierungen -Available=Verfügbar -Installed=Installiert -Advanced=Erweiterte Einstellungen +Updates=Aktualisierungen +Available=Verfügbar +Installed=Installiert +Advanced=Erweiterte Einstellungen +Sites=Quellen + diff --git a/core/src/main/resources/hudson/PluginManager/tabBar_es.properties b/core/src/main/resources/hudson/PluginManager/tabBar_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..e86eb33019a180984f91148f209bbffc02aa8f3e --- /dev/null +++ b/core/src/main/resources/hudson/PluginManager/tabBar_es.properties @@ -0,0 +1,27 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Updates=Actualizaciones disponibles +Available=Todos los plugins +Installed=Plugins instalados +Advanced=Configuracion avanzada +Sites=Sitios diff --git a/core/src/main/resources/hudson/PluginManager/tabBar_fi.properties b/core/src/main/resources/hudson/PluginManager/tabBar_fi.properties new file mode 100644 index 0000000000000000000000000000000000000000..b5ced1820791c04ebf07571b9146487b1bd4d924 --- /dev/null +++ b/core/src/main/resources/hudson/PluginManager/tabBar_fi.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Advanced=Edistyneet toiminnot +Available=Saatavilla +Installed=Asennetut +Updates=P\u00E4ivityksi\u00E4 diff --git a/core/src/main/resources/hudson/PluginManager/tabBar_fr.properties b/core/src/main/resources/hudson/PluginManager/tabBar_fr.properties index 387159c3531c907708be0a83b5d93476d828b9f1..cc02a5886f697867cdc0d773adf8f2a57b58aded 100644 --- a/core/src/main/resources/hudson/PluginManager/tabBar_fr.properties +++ b/core/src/main/resources/hudson/PluginManager/tabBar_fr.properties @@ -20,7 +20,7 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Updates=Mises à jour -Available=Disponibles -Installed=Installés -Advanced=Avancé +Updates=Mises à jour +Available=Disponibles +Installed=Installés +Advanced=Avancé diff --git a/core/src/main/resources/hudson/PluginManager/tabBar_hu.properties b/core/src/main/resources/hudson/PluginManager/tabBar_hu.properties new file mode 100644 index 0000000000000000000000000000000000000000..f2196a289d4d3e22f9f95db2a3b4f574abe2b91e --- /dev/null +++ b/core/src/main/resources/hudson/PluginManager/tabBar_hu.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Advanced=Speci\u00E1lis +Available=El\u00E9rhet\u0151 +Installed=Feltelep\u00EDtett +Updates=Friss\u00EDt\u00E9sek diff --git a/core/src/main/resources/hudson/PluginManager/tabBar_it.properties b/core/src/main/resources/hudson/PluginManager/tabBar_it.properties new file mode 100644 index 0000000000000000000000000000000000000000..96dce41f20e5c74795974e65a1e0f7834c40cddf --- /dev/null +++ b/core/src/main/resources/hudson/PluginManager/tabBar_it.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Advanced=Avanzate +Available=Disponibili +Installed=Installati +Updates=Aggiornamenti diff --git a/core/src/main/resources/hudson/PluginManager/tabBar_ko.properties b/core/src/main/resources/hudson/PluginManager/tabBar_ko.properties new file mode 100644 index 0000000000000000000000000000000000000000..ff0afdccbe10ff85fe9b6ab247a24ce2219941b1 --- /dev/null +++ b/core/src/main/resources/hudson/PluginManager/tabBar_ko.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Advanced=\uACE0\uAE09 +Available=\uC124\uCE58
    \uAC00\uB2A5 +Installed=\uC124\uCE58\uB428 +Updates=\uC5C5\uB370\uC774\uD2B8 diff --git a/core/src/main/resources/hudson/PluginManager/tabBar_nb_NO.properties b/core/src/main/resources/hudson/PluginManager/tabBar_nb_NO.properties new file mode 100644 index 0000000000000000000000000000000000000000..e1d1fc3f692b356054fa4ff7b38213c730c547b5 --- /dev/null +++ b/core/src/main/resources/hudson/PluginManager/tabBar_nb_NO.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Advanced=Avansert +Available=Tilgjengelige +Installed=Installert +Updates=Oppdateringer diff --git a/core/src/main/resources/hudson/PluginManager/tabBar_nl.properties b/core/src/main/resources/hudson/PluginManager/tabBar_nl.properties new file mode 100644 index 0000000000000000000000000000000000000000..6340b93d79c624b0c2b7d6d3d1ba447d7475d6c8 --- /dev/null +++ b/core/src/main/resources/hudson/PluginManager/tabBar_nl.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Wim Rosseel +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Updates=Nieuwere versies +Available=Beschikbaar +Installed=Ge\u00EFnstalleerd +Advanced=Uitgebreid diff --git a/core/src/main/resources/hudson/PluginManager/tabBar_pl.properties b/core/src/main/resources/hudson/PluginManager/tabBar_pl.properties new file mode 100644 index 0000000000000000000000000000000000000000..877a7ec8837d478c66d5b304ab4c4481a959a0fd --- /dev/null +++ b/core/src/main/resources/hudson/PluginManager/tabBar_pl.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Advanced=Zaawansowane +Available=Dost\u0119pne +Installed=Zainstalowane +Updates=Aktualizacje diff --git a/core/src/main/resources/hudson/PluginManager/tabBar_pt_BR.properties b/core/src/main/resources/hudson/PluginManager/tabBar_pt_BR.properties index 8be4826e257a8fa0454105e14ba576fb873e4967..40aa8dbf62563cd6b9467f27053487cec5dea6c2 100644 --- a/core/src/main/resources/hudson/PluginManager/tabBar_pt_BR.properties +++ b/core/src/main/resources/hudson/PluginManager/tabBar_pt_BR.properties @@ -20,7 +20,8 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Updates=Atualiza\u00E7\u00F5es -Available=Dispon\u00EDveis -Installed=Instalados -Advanced=Avan\u00E7ado +Updates=Atualiza\u00E7\u00F5es +Available=Dispon\u00EDveis +Installed=Instalados +Advanced=Avan\u00E7ado +Sites= diff --git a/core/src/main/resources/hudson/PluginManager/tabBar_ru.properties b/core/src/main/resources/hudson/PluginManager/tabBar_ru.properties new file mode 100644 index 0000000000000000000000000000000000000000..1f2f07ab785f4cf71e30e8ee8ea58f90a8e2f36e --- /dev/null +++ b/core/src/main/resources/hudson/PluginManager/tabBar_ru.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Advanced=\u0414\u043E\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u044C\u043D\u043E +Available=\u0414\u043E\u0441\u0442\u0443\u043F\u043D\u044B\u0435 \u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u044F +Installed=\u0423\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D\u043E +Updates=\u0421\u0432\u043E\u0434\u043A\u0430 diff --git a/core/src/main/resources/hudson/PluginManager/tabBar_sv_SE.properties b/core/src/main/resources/hudson/PluginManager/tabBar_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..bab5369732d4784d519abd17e3925267f9a5d983 --- /dev/null +++ b/core/src/main/resources/hudson/PluginManager/tabBar_sv_SE.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Advanced=Avancerat +Available=Tillg\u00E4ngliga +Installed=Installerade +Updates=Uppdatering diff --git a/core/src/main/resources/hudson/PluginManager/tabBar_tr.properties b/core/src/main/resources/hudson/PluginManager/tabBar_tr.properties index e6efb13ed3153494f9f0d1d496f72c4923166a3c..4db04149c2b228e92c3d8e54d9f7daaa6e46013e 100644 --- a/core/src/main/resources/hudson/PluginManager/tabBar_tr.properties +++ b/core/src/main/resources/hudson/PluginManager/tabBar_tr.properties @@ -20,7 +20,7 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Updates=G\u00fcncellemeler -Available=Kullan\u0131labilir -Installed=Y\u00fcklenmi\u015f -Advanced=Geli\u015fmi\u015f +Updates=G\u00fcncellemeler +Available=Kullan\u0131labilir +Installed=Y\u00fcklenmi\u015f +Advanced=Geli\u015fmi\u015f diff --git a/core/src/main/resources/hudson/PluginManager/tabBar_zh_CN.properties b/core/src/main/resources/hudson/PluginManager/tabBar_zh_CN.properties new file mode 100644 index 0000000000000000000000000000000000000000..457e5e7d7d15f0d6fca0d7db2bd148653e236166 --- /dev/null +++ b/core/src/main/resources/hudson/PluginManager/tabBar_zh_CN.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Advanced=\u9AD8\u7EA7 +Available=\u53EF\u9009\u63D2\u4EF6 +Installed=\u5DF2\u5B89\u88C5 +Updates=\u66F4\u65B0 diff --git a/core/src/main/resources/hudson/PluginManager/tabBar_zh_TW.properties b/core/src/main/resources/hudson/PluginManager/tabBar_zh_TW.properties new file mode 100644 index 0000000000000000000000000000000000000000..212525351042c8d89b2191350918a2c17cab2f94 --- /dev/null +++ b/core/src/main/resources/hudson/PluginManager/tabBar_zh_TW.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Advanced=\u9032\u968E +Available=\u6709\u6548\u7684 +Installed=\u5DF2\u5B89\u88DD +Updates=\u66F4\u65B0 diff --git a/core/src/main/resources/hudson/PluginManager/table.jelly b/core/src/main/resources/hudson/PluginManager/table.jelly index a9185b9005ca203832e5caa5d668f2b86c02cec7..58589652e8938d9cb6dbc73104ef3cfc586d7b90 100644 --- a/core/src/main/resources/hudson/PluginManager/table.jelly +++ b/core/src/main/resources/hudson/PluginManager/table.jelly @@ -1,7 +1,7 @@ - +<?xml version="1.0" encoding="UTF-8"?> @@ -58,4 +58,4 @@ THE SOFTWARE. - \ No newline at end of file + diff --git a/core/src/main/resources/hudson/cli/commands.xml b/core/src/main/resources/hudson/cli/commands.xml new file mode 100644 index 0000000000000000000000000000000000000000..36cd44b5ede26c674324170a96051271b91eb4b9 --- /dev/null +++ b/core/src/main/resources/hudson/cli/commands.xml @@ -0,0 +1,31 @@ + + + + + org.codehaus.groovy.tools.shell.commands.HelpCommand + org.codehaus.groovy.tools.shell.commands.ExitCommand + org.codehaus.groovy.tools.shell.commands.ImportCommand + org.codehaus.groovy.tools.shell.commands.DisplayCommand + org.codehaus.groovy.tools.shell.commands.ClearCommand + org.codehaus.groovy.tools.shell.commands.ShowCommand + org.codehaus.groovy.tools.shell.commands.InspectCommand + org.codehaus.groovy.tools.shell.commands.PurgeCommand + org.codehaus.groovy.tools.shell.commands.EditCommand + + + + org.codehaus.groovy.tools.shell.commands.HistoryCommand + org.codehaus.groovy.tools.shell.commands.AliasCommand + org.codehaus.groovy.tools.shell.commands.SetCommand + org.codehaus.groovy.tools.shell.commands.ShadowCommand + org.codehaus.groovy.tools.shell.commands.RegisterCommand + + diff --git a/core/src/main/resources/hudson/diagnosis/HudsonHomeDiskUsageMonitor/index.properties b/core/src/main/resources/hudson/diagnosis/HudsonHomeDiskUsageMonitor/index.properties index 51ff0de3094cd4cc96641b2964e133affb7cb4f3..0aa5810dc825d7ee7cd544631a73dcf50f9921bc 100644 --- a/core/src/main/resources/hudson/diagnosis/HudsonHomeDiskUsageMonitor/index.properties +++ b/core/src/main/resources/hudson/diagnosis/HudsonHomeDiskUsageMonitor/index.properties @@ -23,7 +23,7 @@ blurb=HUDSON_HOME is almost full description.1=\ Your HUDSON_HOME ({0}) is almost full. \ - When this directory completely fills up, it'll wrec havoc because Hudson can't store any more data. + When this directory completely fills up, it\'ll wreak havoc because Hudson can\'t store any more data. description.2=To prevent that problem, you should act now. solution.1=Clean up some files from this partition to make more room. solution.2=\ diff --git a/core/src/main/resources/hudson/diagnosis/HudsonHomeDiskUsageMonitor/index_da.properties b/core/src/main/resources/hudson/diagnosis/HudsonHomeDiskUsageMonitor/index_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..791fbc17753e37d81d4309098212089895b45f9e --- /dev/null +++ b/core/src/main/resources/hudson/diagnosis/HudsonHomeDiskUsageMonitor/index_da.properties @@ -0,0 +1,31 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +description.1=\ +Dit HUDSON_HOME ({0}) er n\u00e6sten fyldt. \ +N\u00e5r dette direktorie fylder helt op vil det sprede d\u00f8d og \u00f8del\u00e6ggelse, da Hudson ikke vil kunne gemme mere data. +solution.2=\ +Flyt HUDSON_HOME til et st\u00f8rre diskafsnit. +HUDSON_HOME\ is\ almost\ full=HUDSON_HOME\ er\ n\u00e6sten\ fyldt\ op +blurb=HUDSON_HOME er n\u00e6sten fyldt op +solution.1=Slet nogle filer p\u00e5 dette diskafsnit for at frig\u00f8re mere plads +description.2=For at undg\u00e5 problemer skal du handle nu. diff --git a/core/src/main/resources/hudson/diagnosis/HudsonHomeDiskUsageMonitor/index_de.properties b/core/src/main/resources/hudson/diagnosis/HudsonHomeDiskUsageMonitor/index_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..11802d7bdf10175804e0f3072d2807e7e1f0dc81 --- /dev/null +++ b/core/src/main/resources/hudson/diagnosis/HudsonHomeDiskUsageMonitor/index_de.properties @@ -0,0 +1,8 @@ +HUDSON_HOME\ is\ almost\ full=Der Speicherplatz für HUDSON_HOME is fast erschöpft. +blurb=Der Speicherplatz für HHUDSON_HOME is fast erschöpft. +description.1=Das Verzeichnis HUDSON_HOME ({0}) ist fast voll. Ist dieser Speicherplatz \ + vollständig erschöpft, kann Hudson keine weiteren Daten mehr speichern und wird abstürzen. +description.2=Um dieses Problem zu vermeiden, sollten Sie jetzt handeln. +solution.1=Löschen Sie Dateien dieses Laufwerks, um Speicherplatz wieder freizugeben. +solution.2=Verschieben Sie HUDSON_HOME auf ein Laufwerk mit mehr freiem Platz. \ + Eine Anleitung dazu finden Sie im
    Wiki. diff --git a/core/src/main/resources/hudson/diagnosis/HudsonHomeDiskUsageMonitor/index_es.properties b/core/src/main/resources/hudson/diagnosis/HudsonHomeDiskUsageMonitor/index_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..7ac67e290b307b500fb4069023a79ca3ff9a6a98 --- /dev/null +++ b/core/src/main/resources/hudson/diagnosis/HudsonHomeDiskUsageMonitor/index_es.properties @@ -0,0 +1,33 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +blurb=El directorio de Hudson (HUDSON_HOME) está casi lleno +description.1=\ + El directirio HUDSON_HOME ({0}) está casi lleno. \ + Cuando este directorio se llene completamente Hudson no podrá guardar nada mas y pueden ocurrir problemas imprevistos. +description.2=Debes hacer algo ahora para prevenir el problema. +solution.1=Borra ficheros de esta partición para liberar espacio. +solution.2=\ + Mueve el directorio de HUDSON_HOME a una partción mayor. \ + Echa un vistazo a esta página para saber cómo hacerlo. +HUDSON_HOME\ is\ almost\ full=El directirio HUDSON_HOME ({0}) está casi lleno. + diff --git a/core/src/main/resources/hudson/diagnosis/HudsonHomeDiskUsageMonitor/index_fr.properties b/core/src/main/resources/hudson/diagnosis/HudsonHomeDiskUsageMonitor/index_fr.properties index e18be46863425a8e411ff0a646bda283152f9e68..ee830a40b46e27fdff2cc787c39e9f99a8e9004a 100644 --- a/core/src/main/resources/hudson/diagnosis/HudsonHomeDiskUsageMonitor/index_fr.properties +++ b/core/src/main/resources/hudson/diagnosis/HudsonHomeDiskUsageMonitor/index_fr.properties @@ -21,13 +21,8 @@ # THE SOFTWARE. blurb=HUDSON_HOME est presque plein -description.1=\ - Votre répertoire HUDSON_HOME ({0}) est presque plein. \ - Quand il n''y aura plus d''espace disponible dans ce répertoire, Hudson aura un comportement erratique, \ - car il ne pourra plus stocker de données. -description.2=Pour éviter ce problème, vous devez agir maintenant. +description.1=Votre r\u00E9pertoire HUDSON_HOME ({0}) est presque plein. Quand il n''''y aura plus d''''espace disponible dans ce r\u00E9pertoire, Hudson aura un comportement erratique, car il ne pourra plus stocker de donn\u00E9es. +description.2=Pour \u00E9viter ce probl\u00E8me, vous devez agir maintenant. solution.1=Supprimez des fichiers sur cette partition afin de faire plus de place. -solution.2=\ - Déplacez HUDSON_HOME sur une partition plus grande. \ - Consultez notre Wiki pour la démarche à suivre. +solution.2=D\u00E9placez HUDSON_HOME sur une partition plus grande. Consultez notre Wiki pour la d\u00E9marche \u00E0 suivre. HUDSON_HOME\ is\ almost\ full=HUDSON_HOME est presque plein diff --git a/core/src/main/resources/hudson/diagnosis/HudsonHomeDiskUsageMonitor/index_ja.properties b/core/src/main/resources/hudson/diagnosis/HudsonHomeDiskUsageMonitor/index_ja.properties index 8d35d70dd6aece95faeb2e0ca1e0e37deff2ef90..79728dd564c3088493bda7b77560372db7b39626 100644 --- a/core/src/main/resources/hudson/diagnosis/HudsonHomeDiskUsageMonitor/index_ja.properties +++ b/core/src/main/resources/hudson/diagnosis/HudsonHomeDiskUsageMonitor/index_ja.properties @@ -1,6 +1,6 @@ # The MIT License # -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Seiji Sogabe +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Seiji Sogabe # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -23,9 +23,10 @@ blurb=HUDSON_HOME\u306E\u5BB9\u91CF\u304C\u307B\u307C\u3044\u3063\u3071\u3044\u3067\u3059\u3002 description.1=\ HUDSON_HOME ({0}) \u306E\u5BB9\u91CF\u304C\u307B\u307C\u3044\u3063\u3071\u3044\u3067\u3059\u3002\ - \u3053\u306E\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u304C\u3044\u3063\u3071\u3044\u306B\u306A\u3063\u305F\u3089\u3001\u3082\u3046\u3053\u308C\u4EE5\u4E0A\u30C7\u30FC\u30BF\u3092\u4FDD\u5B58\u3067\u304D\u306A\u3044\u306E\u3067\u304A\u304B\u3057\u304F\u306A\u308B\u3067\u3057\u3087\u3046\u3002 + \u3053\u306E\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u304C\u3044\u3063\u3071\u3044\u306B\u306A\u3063\u305F\u3089\u3001\u3082\u3046\u3053\u308C\u4EE5\u4E0A\u30C7\u30FC\u30BF\u3092\u4FDD\u5B58\u3067\u304D\u306A\u3044\u306E\u3067\u304A\u304B\u3057\u304F\u306A\u308A\u307E\u3059\u3002 description.2=\u554F\u984C\u304C\u8D77\u304D\u306A\u3044\u3088\u3046\u306B\u3001\u4ECA\u3059\u3050\u5BFE\u51E6\u3057\u306A\u304F\u3066\u306F\u306A\u308A\u307E\u305B\u3093\u3002 solution.1=\u3053\u306E\u30D1\u30FC\u30C6\u30A3\u30B7\u30E7\u30F3\u306E\u30D5\u30A1\u30A4\u30EB\u3092\u524A\u9664\u3057\u3066\u3001\u7A7A\u304D\u3092\u4F5C\u308A\u307E\u3059\u3002 solution.2=\ HUDSON_HOME\u3092\u3082\u3063\u3068\u5BB9\u91CF\u306E\u3042\u308B\u30D1\u30FC\u30C6\u30A3\u30B7\u30E7\u30F3\u306B\u79FB\u3057\u307E\u3059\u3002\ \u8A73\u3057\u3044\u65B9\u6CD5\u306F\u3001Wiki\u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044\u3002 +HUDSON_HOME\ is\ almost\ full=HUDSON_HOME\u306E\u5BB9\u91CF\u304C\u307B\u307C\u3044\u3063\u3071\u3044\u3067\u3059\u3002 diff --git a/core/src/main/resources/hudson/diagnosis/HudsonHomeDiskUsageMonitor/index_nl.properties b/core/src/main/resources/hudson/diagnosis/HudsonHomeDiskUsageMonitor/index_nl.properties new file mode 100644 index 0000000000000000000000000000000000000000..9c12edbca0c5ad21909acfafcd57e4a33f5f8802 --- /dev/null +++ b/core/src/main/resources/hudson/diagnosis/HudsonHomeDiskUsageMonitor/index_nl.properties @@ -0,0 +1,30 @@ +# The MIT License + +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Seiji Sogabe, Wim Rosseel + +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: + +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. + +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +blurb=Vrije ruimte in HUDSON_HOME is bijna opgebruikt! +description.1=\ + Uw vrije ruimte in HUDSON_HOME ({0}) is bijna opgebruikt. Wanneer er geen vrije ruimte meer beschikbaar is, zal dit de werking van Hudson, door het niet langer kunnen bewaren van gegevens, sterk verstoren. +description.2=Om problemen te vermijden, dient U nu in te grijpen. +solution.1=Gelieve ruimte vrij te maken op deze locatie. +solution.2=\ + Verhuis HUDSON_HOME naar een locatie met grotere capaciteit. Op onze Wiki vind je meer informatie over hoe je dit kunt realizeren. +HUDSON_HOME\ is\ almost\ full=Vrije ruimte in HUDSON_HOME is bijna opgebruikt! diff --git a/core/src/main/resources/hudson/diagnosis/HudsonHomeDiskUsageMonitor/index_pt_BR.properties b/core/src/main/resources/hudson/diagnosis/HudsonHomeDiskUsageMonitor/index_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..b69f180f5e124c6358c3fd4e9312d9cb1304216c --- /dev/null +++ b/core/src/main/resources/hudson/diagnosis/HudsonHomeDiskUsageMonitor/index_pt_BR.properties @@ -0,0 +1,42 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Reginaldo L. Russinholi +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +# To prevent that problem, you should act now. +description.2=Para prevenir este problema, você deveria agir agora. +# \ +# Your HUDSON_HOME ({0}) is almost full. \ +# When this directory completely fills up, it\'ll wreak havoc because Hudson can\'t store any more data. +description.1=Seu diretório HUDSON_HOME ({0}) está quase cheio. \ + Quando este diretório ficar completamente cheio, ocorrerá problemas porque o Hudson não pode mais armazenar dados. +# \ +# Move HUDSON_HOME to a bigger partition. \ +# See our Wiki for how to do this. +solution.2=\ + Mova o diretório HUDSON_HOME para uma partição maior. \ + Veja nosso Wiki para saber como fazer isto. + +HUDSON_HOME\ is\ almost\ full=HUDSON_HOME está quase cheio +# HUDSON_HOME is almost full +blurb=O diretório HUDSON_HOME está quase cheio + +# Clean up some files from this partition to make more room. +solution.1=Limpe alguns arquivos desta partição para liberar espaço. diff --git a/core/src/main/resources/hudson/diagnosis/HudsonHomeDiskUsageMonitor/message_da.properties b/core/src/main/resources/hudson/diagnosis/HudsonHomeDiskUsageMonitor/message_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..4548d4722e158c4dcd57f97b320d425dbb501e11 --- /dev/null +++ b/core/src/main/resources/hudson/diagnosis/HudsonHomeDiskUsageMonitor/message_da.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +blurb=Dit Hudson data direktorie "{0}" (ogs\u00e5 kendt som HUDSON_HOME) er n\u00e6sten fyldt. Du b\u00f8r handle f\u00f8r det fylder helt op. +Dismiss=Luk +Tell\ me\ more=Fort\u00e6l mig mere diff --git a/core/src/main/resources/hudson/diagnosis/HudsonHomeDiskUsageMonitor/message_de.properties b/core/src/main/resources/hudson/diagnosis/HudsonHomeDiskUsageMonitor/message_de.properties index 4411555b55c41b8d6698b9b4f4ce5f70342442af..852fbfac28f54914436c08f3d38de121e0e37853 100644 --- a/core/src/main/resources/hudson/diagnosis/HudsonHomeDiskUsageMonitor/message_de.properties +++ b/core/src/main/resources/hudson/diagnosis/HudsonHomeDiskUsageMonitor/message_de.properties @@ -1,5 +1,5 @@ -Tell\ me\ more=Mehr Informationen dazu -Dismiss=Zur Kenntnis genommen -blurb=\ - Ihr Hudson Datenverzeichnis "{0}" (alias HUDSON_HOME) ist fast voll. \ - Sie sollten handlen, bevor der Speicherplatz komplett erschöpft ist. +Tell\ me\ more=Mehr Informationen dazu +Dismiss=Zur Kenntnis genommen +blurb=\ + Ihr Hudson Datenverzeichnis "{0}" (alias HUDSON_HOME) ist fast voll. \ + Sie sollten handeln, bevor der Speicherplatz komplett erschöpft ist. diff --git a/core/src/main/resources/hudson/diagnosis/HudsonHomeDiskUsageMonitor/message_es.properties b/core/src/main/resources/hudson/diagnosis/HudsonHomeDiskUsageMonitor/message_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..a34d8ff7d705702091ac78043487b9584cdfa1fd --- /dev/null +++ b/core/src/main/resources/hudson/diagnosis/HudsonHomeDiskUsageMonitor/message_es.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +blurb=El directorio de Hudson "{0}" (HUDSON_HOME) está casi lleno. Haga algo antes de que se llene completamente. +Dismiss=Descartar +Tell\ me\ more=Más informacion diff --git a/core/src/main/resources/hudson/diagnosis/HudsonHomeDiskUsageMonitor/message_nl.properties b/core/src/main/resources/hudson/diagnosis/HudsonHomeDiskUsageMonitor/message_nl.properties new file mode 100644 index 0000000000000000000000000000000000000000..b4358605d91103f88320a20c912f705b103f36fd --- /dev/null +++ b/core/src/main/resources/hudson/diagnosis/HudsonHomeDiskUsageMonitor/message_nl.properties @@ -0,0 +1,25 @@ +# The MIT License + +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Wim Rosseel + +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: + +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. + +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +blurb=De vrije ruimte in uw Hudson data locatie "{0}" (ttz. HUDSON_HOME) is bijna opgebruikt. U dient in te grijpen vooralleer er geen vrije ruimte meer beschikbaar is! +Tell\ me\ more=Meer informatie... +Dismiss=Ok diff --git a/core/src/main/resources/hudson/diagnosis/HudsonHomeDiskUsageMonitor/message_pt_BR.properties b/core/src/main/resources/hudson/diagnosis/HudsonHomeDiskUsageMonitor/message_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..b69876a7f0f753de8fd8a15d1451baf1bd351eea --- /dev/null +++ b/core/src/main/resources/hudson/diagnosis/HudsonHomeDiskUsageMonitor/message_pt_BR.properties @@ -0,0 +1,27 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Reginaldo L. Russinholi +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Dismiss=Descartar +# Your Hudson data directory "{0}" (AKA HUDSON_HOME) is almost full. You should act on it before it gets completely full. +blurb=O diretório do Hudson "{0}" (HUDSON_HOME) está quase cheio. Algo deve ser feito antes que fique completamente cheio. +# Estes usu\u00E1rios podem se logar no Hudson. Este \u00E9 um super conjunto desta lista, \ +Tell\ me\ more=Mais informações diff --git a/core/src/main/resources/hudson/diagnosis/MemoryUsageMonitor/index_da.properties b/core/src/main/resources/hudson/diagnosis/MemoryUsageMonitor/index_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..0f55ae23977b92b86c601296a413b595e86a307b --- /dev/null +++ b/core/src/main/resources/hudson/diagnosis/MemoryUsageMonitor/index_da.properties @@ -0,0 +1,27 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Short=Kort +JVM\ Memory\ Usage=JVM Hukommelsesforbrug +Timespan=Tidsperiode +Medium=Mellem +Long=Lang diff --git a/core/src/main/resources/hudson/diagnosis/MemoryUsageMonitor/index_de.properties b/core/src/main/resources/hudson/diagnosis/MemoryUsageMonitor/index_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..1728ccff96fc908f6f21a3155171370c218e3270 --- /dev/null +++ b/core/src/main/resources/hudson/diagnosis/MemoryUsageMonitor/index_de.properties @@ -0,0 +1,5 @@ +JVM\ Memory\ Usage=JVM Speicherverbrauch +Timespan=Zeitraum +Short=Kurz +Medium=Mittel +Long=Lang diff --git a/core/src/main/resources/hudson/diagnosis/MemoryUsageMonitor/index_es.properties b/core/src/main/resources/hudson/diagnosis/MemoryUsageMonitor/index_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..fc4a82ba3a997207fe6370da9d238cd9aa5d2bde --- /dev/null +++ b/core/src/main/resources/hudson/diagnosis/MemoryUsageMonitor/index_es.properties @@ -0,0 +1,27 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +JVM\ Memory\ Usage=Uso de la memoria por java +Timespan=Timespan +Short=Pequeño +Medium=Mediano +Long=Grande diff --git a/core/src/main/resources/hudson/diagnosis/MemoryUsageMonitor/index_ja.properties b/core/src/main/resources/hudson/diagnosis/MemoryUsageMonitor/index_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..2e05136a61cdbc4c1f9701a8bfaa231aa3baa076 --- /dev/null +++ b/core/src/main/resources/hudson/diagnosis/MemoryUsageMonitor/index_ja.properties @@ -0,0 +1,27 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +JVM\ Memory\ Usage=JVM \u30E1\u30E2\u30EA\u4F7F\u7528\u91CF +Timespan=\u671F\u9593 +Short=\u77ED +Medium=\u4E2D +Long=\u9577 diff --git a/core/src/main/resources/hudson/diagnosis/MemoryUsageMonitor/index_nl.properties b/core/src/main/resources/hudson/diagnosis/MemoryUsageMonitor/index_nl.properties new file mode 100644 index 0000000000000000000000000000000000000000..6a3b23209ddbd0d6b8ca1bb890ad9ca797852fe9 --- /dev/null +++ b/core/src/main/resources/hudson/diagnosis/MemoryUsageMonitor/index_nl.properties @@ -0,0 +1,27 @@ +# The MIT License + +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Wim Rosseel + +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: + +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. + +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +JVM\ Memory\ Usage=Geheugengebruik JVM +Timespan=Tijdsvenster +Short=Kort +Medium=Medium +Long=Lang diff --git a/core/src/main/resources/hudson/diagnosis/MemoryUsageMonitor/index_pt_BR.properties b/core/src/main/resources/hudson/diagnosis/MemoryUsageMonitor/index_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..a98946ef1f0bd97cc375374b3729bba71a6c3001 --- /dev/null +++ b/core/src/main/resources/hudson/diagnosis/MemoryUsageMonitor/index_pt_BR.properties @@ -0,0 +1,27 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Reginaldo L. Russinholi +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Short=Pequeno +Timespan=Duração +JVM\ Memory\ Usage=Uso da memória pela JVM +Medium=Médio +Long=Longo diff --git a/core/src/main/resources/hudson/diagnosis/Messages.properties b/core/src/main/resources/hudson/diagnosis/Messages.properties index 72af5c5d0e59895fd8040ea106249d6feec41d5b..e42a504ac5b64a4b7ffc6444bdec6cc980f802cb 100644 --- a/core/src/main/resources/hudson/diagnosis/Messages.properties +++ b/core/src/main/resources/hudson/diagnosis/Messages.properties @@ -1,2 +1,3 @@ MemoryUsageMonitor.USED=Used -MemoryUsageMonitor.TOTAL=Total \ No newline at end of file +MemoryUsageMonitor.TOTAL=Total +OldDataMonitor.DisplayName=Old Data diff --git a/core/src/main/resources/hudson/diagnosis/Messages_da.properties b/core/src/main/resources/hudson/diagnosis/Messages_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..c0fd1236d8c434910a05b7a42ad17facabc5f1aa --- /dev/null +++ b/core/src/main/resources/hudson/diagnosis/Messages_da.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +MemoryUsageMonitor.TOTAL=Total +OldDataMonitor.DisplayName=Gamle Data +MemoryUsageMonitor.USED=Brugt diff --git a/core/src/main/resources/hudson/diagnosis/Messages_de.properties b/core/src/main/resources/hudson/diagnosis/Messages_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..7e9d8d3a6162d728f6140eca0bd344823f8db5b9 --- /dev/null +++ b/core/src/main/resources/hudson/diagnosis/Messages_de.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +MemoryUsageMonitor.USED=Verwendet +MemoryUsageMonitor.TOTAL=Total +OldDataMonitor.DisplayName=Veraltete Daten \ No newline at end of file diff --git a/core/src/main/resources/hudson/diagnosis/Messages_es.properties b/core/src/main/resources/hudson/diagnosis/Messages_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..4554c4d3cb7c0687b3ef27976cc8f3713d91e661 --- /dev/null +++ b/core/src/main/resources/hudson/diagnosis/Messages_es.properties @@ -0,0 +1,3 @@ +MemoryUsageMonitor.USED=Usada +MemoryUsageMonitor.TOTAL=Total +OldDataMonitor.DisplayName=Datos antiguos diff --git a/core/src/main/resources/hudson/diagnosis/Messages_ja.properties b/core/src/main/resources/hudson/diagnosis/Messages_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..d7608b00698bd8d22cd9576578ef7665ec4ff7e7 --- /dev/null +++ b/core/src/main/resources/hudson/diagnosis/Messages_ja.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +MemoryUsageMonitor.USED=\u4F7F\u7528 +MemoryUsageMonitor.TOTAL=\u5408\u8A08 +OldDataMonitor.DisplayName=\u65E7\u30C7\u30FC\u30BF diff --git a/core/src/main/resources/hudson/diagnosis/Messages_nl.properties b/core/src/main/resources/hudson/diagnosis/Messages_nl.properties new file mode 100644 index 0000000000000000000000000000000000000000..13de7ffc65cf6117183b9c7799a6141280cdb4b1 --- /dev/null +++ b/core/src/main/resources/hudson/diagnosis/Messages_nl.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Wim Rosseel +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +MemoryUsageMonitor.USED=In gebruik +MemoryUsageMonitor.TOTAL=Totaal diff --git a/core/src/main/resources/hudson/diagnosis/Messages_pt_BR.properties b/core/src/main/resources/hudson/diagnosis/Messages_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..dde4a19b122e224e6cebe14eb0b3d888f8c25134 --- /dev/null +++ b/core/src/main/resources/hudson/diagnosis/Messages_pt_BR.properties @@ -0,0 +1,28 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Reginaldo L. Russinholi +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +# Used +MemoryUsageMonitor.USED=Usada +# Total +MemoryUsageMonitor.TOTAL=Total +# Old Data +OldDataMonitor.DisplayName=Dados Antigos diff --git a/core/src/main/resources/hudson/diagnosis/OldDataMonitor/manage.jelly b/core/src/main/resources/hudson/diagnosis/OldDataMonitor/manage.jelly new file mode 100644 index 0000000000000000000000000000000000000000..6c4ab6c51b6036aa738c146f2a58c498be0e9d63 --- /dev/null +++ b/core/src/main/resources/hudson/diagnosis/OldDataMonitor/manage.jelly @@ -0,0 +1,99 @@ + + + + + + +

    ${%Manage Old Data}

    +

    ${%blurb.1}

    +

    ${%blurb.2}

    + + + + + + + + ${range} + + + + + + + + + + + + + +
    ${%Type}${%Name}${%Version}
    ${obj.class.name}${obj.fullName?:obj.fullDisplayName?:obj.displayName?:obj.name}${range}${item.value.extra}
    +

    ${%blurb.3}

    +

    ${%blurb.4}

    + + + +
    + ${%Resave data files with structure changes no newer than Hudson} + + ${%blurb.5} +
    + + +
    + + ${%No old data was found.} + +
    + +
    +

    ${%Unreadable Data}

    +

    ${%blurb.6}

    + + + + + + + + + + + + +
    ${%Type}${%Name}${%Error}
    ${obj.class.name}${obj.fullName?:obj.fullDisplayName?:obj.displayName?:obj.name}${item.value.extra}
    +
    +
    + + +
    + + + diff --git a/core/src/main/resources/hudson/diagnosis/OldDataMonitor/manage.properties b/core/src/main/resources/hudson/diagnosis/OldDataMonitor/manage.properties new file mode 100644 index 0000000000000000000000000000000000000000..0e82e646fa0375c45afdccedf2b423ddeb91dae7 --- /dev/null +++ b/core/src/main/resources/hudson/diagnosis/OldDataMonitor/manage.properties @@ -0,0 +1,51 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Alan Harder +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +blurb.1=\ + When there are changes in how data is stored on disk, Hudson uses the following strategy: \ + data is migrated to the new structure when it is loaded, but the file is not resaved in the \ + new format. This allows for downgrading Hudson if needed. However, it can also leave data \ + on disk in the old format indefinitely. The table below lists files containing such data, \ + and the Hudson version(s) where the data structure was changed. +blurb.2=\ + Sometimes errors occur while reading data (if a plugin adds some data and that plugin is \ + later disabled, if migration code is not written for structure changes, or if Hudson is \ + downgraded after it has already written data not readable by the older version). \ + These errors are logged, but the unreadable data is then skipped over, allowing Hudson to \ + startup and function properly. +blurb.3=\ + The form below may be used to resave these files in the current format. Doing so means a \ + downgrade to a Hudson release older than the selected version will not be able to read the \ + data stored in the new format. Note that simply using Hudson to create and configure jobs \ + and run builds can save data that may not be readable by older Hudson releases, even when \ + this form is not used. Also if any unreadable data errors are reported in the right side \ + of the table above, note that this data will be lost when the file is resaved. +blurb.4=\ + Eventually the code supporting these data migrations may be removed. Compatibility will be \ + retained for at least 150 releases since the structure change. Versions older than this are \ + in bold above, and it is recommended to resave these files. +blurb.5=\ + (downgrade as far back as the selected version may still be possible) +blurb.6=\ + It is acceptable to leave unreadable data in these files, as Hudson will safely ignore it. \ + To avoid the log messages at Hudson startup you can permanently delete the unreadable data \ + by resaving these files using the button below. diff --git a/core/src/main/resources/hudson/diagnosis/OldDataMonitor/manage_da.properties b/core/src/main/resources/hudson/diagnosis/OldDataMonitor/manage_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..84e47d586426719356a02e93e7c39196d835dd31 --- /dev/null +++ b/core/src/main/resources/hudson/diagnosis/OldDataMonitor/manage_da.properties @@ -0,0 +1,60 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +blurb.2=\ +Sommetider opst\u00e5r der fejl under l\u00e6sning af data (hvis en plugin tilf\u00f8jer data og selv samme \ +plugin senere bliver sl\u00e5et fra, hvis migrerings/opdaterings kode ikke er skrevet til struktur\u00e6ndringer, \ +eller hvis Hudson bliver nedgraderet efter der allerede er skrevet data der ikke kan l\u00e6ses af den \u00e6ldre version. \ +Disse fejl bliver logget, men ul\u00e6selig data bliver blot sprunget over, hvilket tillader Hudson at starte op \ +og k\u00f8re videre (omend uden adgang til ul\u00e6selig data)). +Error=Fejl +Type=Type +Unreadable\ Data=Ul\u00e6selig data +blurb.1=\ +N\u00e5r der er \u00e6ndringer i hvordan data bliver gemt p\u00e5 disk benytter Hudson f\u00f8lgende strategi: \ +data bliver migreret til den nye struktur under indl\u00e6sning, men filen bliver ikke gemt/overskrevet \ +i det nye format. Dette tillader nedgradering af Hudson om n\u00f8dvendigt. Men denne strategi kan ogs\u00e5 \ +efterlade data p\u00e5 disken i det gamle format p\u00e5 ubestemt tid. Tabellen herunder lister de filer der \ +indeholder s\u00e5dan data samt Hudson versionen hvor data-strukturen blev \u00e6ndret. +Resave\ data\ files\ with\ structure\ changes\ no\ newer\ than\ Hudson=Gem datafilerne med strukturelle \u00e6ndringer ikke nyere end Hudson +No\ old\ data\ was\ found.=Ingen gamle data blev fundet +blurb.6=\ +Det er acceptabelt at gemme ul\u00e6selig data i disse filer, da Hudson blot ignorerer dem. \ +For at undg\u00e5 logbeskeder under opstart af Hudson kan du permanent slette ul\u00e6selig data \ +ved at gemme disse filer med nedenst\u00e5ende knap. +Discard\ Unreadable\ Data=Smid ul\u00e6selig data v\u00e6k. +blurb.4=\ +P\u00e5 et tidspunkt vil koden der underst\u00f8tter disse gamle datastrukturer blive slettet, som led i kodeoprydning. \ +Kompatibilitet vil blive bibeholdt i mindst 150 versioner. Versioner \u00e6ldre end dette er vist i fed herover, \ +og det anbefales p\u00e5 det kraftigste at gemme disse filer i det nyeste format. +Version=Version +Upgrade=Opdater +blurb.5=(Nedgradering s\u00e5 langt tilbage som den valgte version er (m\u00e5ske) stadig muligt) +blurb.3=\ +Form''en herunder kan benyttes til at gemme disse filer i det korrekte format. At g\u00f8re dette \ +indeb\u00e6rer at hvis du efterf\u00f8lgende nedgraderer Hudson til en version \u00e6ldre end den valgte version \ +vil denne \u00e6ldre version af Hudson ikke l\u00e6ngere kunne l\u00e6se data''ene i det nyere format. \ +Bem\u00e6rk dog at daglig brug af Hudson, s\u00e5som oprettelse og konfiguration af jobs snildt kan gemme \ +data i formater der ikke vil v\u00e6re l\u00e6selige af \u00e6ldre versioner af Hudson. Bem\u00e6rk ogs\u00e5 \ +at ul\u00e6selig data vist i h\u00f8jre side af tabellen herover vil g\u00e5 tabt n\u00e5r du gemmer filen i det nye format. +Name=Navn +Manage\ Old\ Data=H\u00e5ndter Gamle Data diff --git a/core/src/main/resources/hudson/diagnosis/OldDataMonitor/manage_de.properties b/core/src/main/resources/hudson/diagnosis/OldDataMonitor/manage_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..986be366d60d6d0df2a73f8ecb12ba52f656c372 --- /dev/null +++ b/core/src/main/resources/hudson/diagnosis/OldDataMonitor/manage_de.properties @@ -0,0 +1,66 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Alan Harder, Simon Wiest +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Error=Fehler +Manage\ Old\ Data=Veraltete Daten verwalten +Name=Name +No\ old\ data\ was\ found.=Keine veralteten Daten gefunden. +Resave\ data\ files\ with\ structure\ changes\ no\ newer\ than\ Hudson=\ + Aktualisiere Dateien mit Strukturänderungen nicht aktueller als Hudson +Type=Typ +Unreadable\ Data=Nicht-lesbare Daten +Discard\ Unreadable\ Data=Nicht-lesbare Daten entfernen +Upgrade=Aktualisieren +Version=Version +blurb.1=\ + Ändert sich die Struktur von Konfigurationsdateien, geht Hudson folgendermaßen vor: \ + Dateien werden beim Einlesen in den Speicher in das neue Datenformat migriert, aber \ + nicht automatisch auf Festplatte zurückgeschrieben. Die Konfigurationsdateien bleiben also \ + unverändert. Dies ermöglicht bei Problemen ein Hudson-Downgrade zu einer früheren \ + Version. Auf der anderen Seite können dadurch Dateien endlos in längst veralteten \ + Formaten verbleiben. Die folgende Tabelle zeigt Dateien, die veraltete Strukturen verwenden, \ + sowie die Hudson-Version(en), in denen die Datenstruktur verändert wurde. +blurb.2=\ + Beim Einlesen von Konfigurationsdateien können Fehler auftreten, z.B. wenn ein Plugin \ + Daten hinzufügt und später deaktiviert wird, wenn kein Migrationscode für Strukturänderungen \ + geschrieben wurde oder Hudson auf eine ältere Version zurückgesetzt wird, nachdem die neuere \ + Version bereits Dateien mit einer neuen Struktur geschrieben hatte. Diese Fehler werden beim \ + Hochfahren von Hudson zwar protokolliert, die nicht-lesbaren Daten werden aber einfach \ + übersprungen, damit Hudson trotzdem starten und arbeiten kann. +blurb.3=\ + Mit der untenstehenden Funktion können Sie diese Datein im aktuellen Format neu abspeichern. \ + Damit entfällt die Möglichzeit, auf eine ältere als die ausgewählte Hudson-Version zurückzukehren. \ + Auch wenn Sie Konfigurationen bestehender Jobs ändern, werden diese Daten im neuen \ + Format gespeichert, was ein späteres Downgrade ausschließt. Nicht-lesbare Daten, die in der \ + Tabelle rechts dargestellt sind, werden bei der Aktualisierung dauerhaft entfernt. +blurb.4=\ + Langfristig wird Migrationscode zum Lesen veralteter Datenformate auch wieder entfernt werden. \ + Die Kompatibilität wird mindestens 150 Releases nach Änderung des Datenformates gewährleistet. \ + Versionen, die noch älter sind, werden fett dargestellt. Es wird emfohlen, diese Dateien neu \ + abzuspeichern. +blurb.5=\ + (ein Downgrade bis zur ausgewählten Version könnte immer noch möglich sein) +blurb.6=\ + Nicht-lesbare Daten stellen kein Problem dar, da Hudson sie einfach ignoriert. \ + Um jedoch lange Protokolle mit zahlreichen Warnungen während des Hochfahrens von Hudson zu \ + vermeiden, können Sie nicht-lesbare Daten dauerhaft entfernen, indem Sie diese über die \ + untenstehende Funktion neu abspeichern lassen. \ No newline at end of file diff --git a/core/src/main/resources/hudson/diagnosis/OldDataMonitor/manage_es.properties b/core/src/main/resources/hudson/diagnosis/OldDataMonitor/manage_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..692abed824ec0cd852b73630ca6b3a60486569b3 --- /dev/null +++ b/core/src/main/resources/hudson/diagnosis/OldDataMonitor/manage_es.properties @@ -0,0 +1,58 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Alan Harder +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +blurb.1=\ + Cuando se producen cambios en la forma de almacenar datos en disco, Hudson utiliza la siguiente estrategia: \ + los datos son migrados a la nueva estructura cuando son cargados, pero el fichero de datos no se salva con \ + el nuevo formato. Esto facilita el poder degradar Hudson a la versión antigua. La tabla de abajo muestra los \ + ficheros que contienen estos datos y la versión de Hudson a partir de la cual la estructura ha cambiado. +blurb.2=\ + Algunas veces se producen errores mientras se leen datos, por ejemplo cuando un plugin añade \ + datos y después se desactiva, o cuando no hay código que actualice los datos cuando cambia la \ + estructura, o cuando Hudson es degradado a una versión anterior. \ + Hudson avisa de todos estos errores y no carga los datos, lo que le permite arrancar y \ + funcionar adecuadamente. +blurb.3=\ + El formulario de abajo se puede usar para decirle a Hudson que salve los datos en el formato \ + actual, lo que implica que Hudson no se podrá degradar a una versión anterior. Si se listaran \ + errores de datos ilegibles en la tabla, esos datos no serían guardados cuando el fichero se guarde \ + con el nuevo formato. +blurb.4=\ + El código que soporta la migración de datos podrá ser borrado eventualmente. La compatibilidad \ + será mantenida durante al menos 150 versiones desde que la estructura cambie. Las versiones \ + anteriores estan en negrilla, y se recomienda salvar nuevamente estos ficheros. +blurb.5=\ + (será posible degradar Hudson hasta la version seleccionada). +blurb.6=\ + Es posible dejar datos ilegibles en estos ficheros porque Hudson los ignorará. Para evitar \ + mensajes de error cuando Hudson arranque, puedes borrar estos datos permanentemente pulsando \ + el botón de abajo. +Manage\ Old\ Data=Gestión de datos antiguos +Type=Tipo +Name=Nombre +Version=Versión +Error=Error +No\ old\ data\ was\ found.=No hay datos antiguos +Discard\ Unreadable\ Data=Deshechar datos ilegibles +Unreadable\ Data=Datos ilegibles +Resave\ data\ files\ with\ structure\ changes\ no\ newer\ than\ Hudson=Salvar datos con una estructura menos moderna que la versión: +Upgrade=Actualizar diff --git a/core/src/main/resources/hudson/diagnosis/OldDataMonitor/manage_fr.properties b/core/src/main/resources/hudson/diagnosis/OldDataMonitor/manage_fr.properties new file mode 100644 index 0000000000000000000000000000000000000000..396316f0a86d633796a7f02a66f6c97e2dbba3e2 --- /dev/null +++ b/core/src/main/resources/hudson/diagnosis/OldDataMonitor/manage_fr.properties @@ -0,0 +1,28 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Error=Erreur +Name=Nom +Type=Type +Unreadable\ Data=Donn\u00E9es illisibles +Upgrade=Mettre \u00E0 jour +Version=Version diff --git a/core/src/main/resources/hudson/diagnosis/OldDataMonitor/manage_ja.properties b/core/src/main/resources/hudson/diagnosis/OldDataMonitor/manage_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..5ecd6bc6968f053c71f984ccff1efb6c0970858e --- /dev/null +++ b/core/src/main/resources/hudson/diagnosis/OldDataMonitor/manage_ja.properties @@ -0,0 +1,58 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +blurb.1=\ + \u30C7\u30FC\u30BF\u306E\u4FDD\u5B58\u5F62\u5F0F\u306B\u5909\u66F4\u304C\u3042\u308B\u5834\u5408\u3001Hudson\u306F\u6B21\u306E\u51E6\u7406\u3092\u884C\u3044\u307E\u3059\u3002\ + \u30ED\u30FC\u30C9\u6642\u306B\u65B0\u3057\u3044\u5F62\u5F0F\u306B\u79FB\u884C\u3057\u307E\u3059\u304C\u3001\u65B0\u3057\u3044\u5F62\u5F0F\u3067\u306F\u4FDD\u5B58\u3057\u307E\u305B\u3093\u3002\ + \u3053\u308C\u306F\u3001\u5FC5\u8981\u304C\u3042\u308C\u3070Hudson\u3092\u30C0\u30A6\u30F3\u30B0\u30EC\u30FC\u30C9\u3067\u304D\u308B\u3088\u3046\u306B\u3059\u308B\u305F\u3081\u3067\u3059\u304C\u3001\ + \u3044\u3064\u307E\u3067\u3082\u30C7\u30A3\u30B9\u30AF\u4E0A\u306B\u53E4\u3044\u5F62\u5F0F\u3067\u30C7\u30FC\u30BF\u3092\u6B8B\u3057\u305F\u307E\u307E\u306B\u3057\u3066\u3057\u307E\u3044\u307E\u3059\u3002\ + \u6B21\u306E\u8868\u306B\u306F\u3001\u305D\u306E\u3088\u3046\u306A\u30C7\u30FC\u30BF\u3092\u542B\u3080\u30D5\u30A1\u30A4\u30EB\u3068\u3001\u30C7\u30FC\u30BF\u306E\u5F62\u5F0F\u304C\u5909\u66F4\u306B\u306A\u3063\u305FHudson\u306E\u30D0\u30FC\u30B8\u30E7\u30F3\u304C\u8868\u793A\u3055\u308C\u3066\u3044\u307E\u3059\u3002 +blurb.2=\ + \u30C7\u30FC\u30BF\u30ED\u30FC\u30C9\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3059\u308B\u3053\u3068\u304C\u3042\u308A\u307E\u3059\ + (\u30D7\u30E9\u30B0\u30A4\u30F3\u304C\u3042\u308B\u30C7\u30FC\u30BF\u3092\u8FFD\u52A0\u3057\u305F\u5F8C\u306B\u305D\u306E\u30D7\u30E9\u30B0\u30A4\u30F3\u304C\u7121\u52B9\u306B\u306A\u3063\u305F\u3001\u5F62\u5F0F\u5909\u66F4\u306B\u5BFE\u5FDC\u3059\u308B\u51E6\u7406\u304C\u5B9F\u88C5\u3055\u308C\u3066\u3044\u306A\u3044\u3001\ + \u65E7\u30D0\u30FC\u30B8\u30E7\u30F3\u304C\u8AAD\u3081\u306A\u3044\u30C7\u30FC\u30BF\u3092\u3059\u3067\u306B\u66F8\u304D\u8FBC\u3093\u3060\u5F8C\u306BHudson\u3092\u30C0\u30A6\u30F3\u30B0\u30EC\u30FC\u30C9\u3057\u305F\u306A\u3069)\u3002\ + Hudson\u304C\u8D77\u52D5\u3057\u6B63\u5E38\u306B\u52D5\u4F5C\u3059\u308B\u3088\u3046\u306B\u3001\u3053\u308C\u3089\u306E\u30A8\u30E9\u30FC\u3092\u30ED\u30B0\u306B\u51FA\u529B\u3057\u3001\u8AAD\u3081\u306A\u3044\u30C7\u30FC\u30BF\u3092\u30B9\u30AD\u30C3\u30D7\u3057\u307E\u3059\u3002 +blurb.3=\ + \u6B21\u306E\u30D5\u30A9\u30FC\u30E0\u3092\u5229\u7528\u3057\u3066\u3053\u308C\u3089\u306E\u53E4\u3044\u30D5\u30A1\u30A4\u30EB\u3092\u73FE\u5728\u306E\u5F62\u5F0F\u3067\u518D\u4FDD\u5B58\u3057\u307E\u3059\u3002\ + \u518D\u4FDD\u5B58\u3059\u308B\u3068\u3001\u9078\u629E\u3057\u305F\u30D0\u30FC\u30B8\u30E7\u30F3\u3088\u308A\u53E4\u3044\u3001\u65B0\u3057\u3044\u5F62\u5F0F\u3067\u4FDD\u5B58\u3055\u308C\u305F\u30C7\u30FC\u30BF\u3092\u8AAD\u3081\u306A\u3044Hudson\u306B\u30C0\u30A6\u30F3\u30B0\u30EC\u30FC\u30C9\u3059\u308B\u3053\u3068\u306B\u306A\u308A\u307E\u3059\u3002 + \u3053\u306E\u30D5\u30A9\u30FC\u30E0\u3092\u4F7F\u7528\u3057\u306A\u304F\u3066\u3082\u3001Hudson\u3092\u4F7F\u7528\u3057\u3066\u30B8\u30E7\u30D6\u306E\u4F5C\u6210\u3001\u8A2D\u5B9A\u304A\u3088\u3073\u5B9F\u884C\u3092\u884C\u3048\u3070\u3001 \ + \u53E4\u3044Hudson\u3067\u306F\u8AAD\u3081\u306A\u3044\u30C7\u30FC\u30BF\u3092\u4FDD\u5B58\u3059\u308B\u3053\u3068\u3082\u3067\u304D\u308B\u3053\u3068\u306B\u6CE8\u610F\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u307E\u305F\u3001\u8AAD\u3081\u306A\u3044\u30C7\u30FC\u30BF\u304C\u8868\u793A\u3055\u308C\u3066\u3082\u3001\ + \u30D5\u30A1\u30A4\u30EB\u3092\u518D\u4FDD\u5B58\u3059\u308B\u3068\u524A\u9664\u3055\u308C\u308B\u3053\u3068\u306B\u6CE8\u610F\u3057\u3066\u304F\u3060\u3055\u3044\u3002 +blurb.4=\ + \u30C7\u30FC\u30BF\u79FB\u884C\u3092\u30B5\u30DD\u30FC\u30C8\u3059\u308B\u30B3\u30FC\u30C9\u306F\u3001\u3044\u3064\u304B\u524A\u9664\u3055\u308C\u307E\u3059\u3002\ + \u5F62\u5F0F\u306E\u5909\u66F4\u304C\u3042\u3063\u305F\u30EA\u30EA\u30FC\u30B9\u304B\u3089\u5C11\u306A\u304F\u3068\u3082150\u30EA\u30EA\u30FC\u30B9\u306B\u3064\u3044\u3066\u306F\u3001\u4E92\u63DB\u6027\u306F\u4FDD\u8A3C\u3055\u308C\u307E\u3059\u3002\ + \u305D\u308C\u3088\u308A\u3082\u53E4\u3044\u30D0\u30FC\u30B8\u30E7\u30F3\u306F\u30DC\u30FC\u30EB\u30C9\u3067\u8868\u793A\u3055\u308C\u307E\u3059\u3002\u305D\u308C\u3089\u306E\u30D5\u30A1\u30A4\u30EB\u306F\u518D\u4FDD\u5B58\u3059\u308B\u3088\u3046\u306B\u3057\u3066\u304F\u3060\u3055\u3044\u3002 +blurb.5=\ + (\u9078\u629E\u3055\u308C\u305F\u30D0\u30FC\u30B8\u30E7\u30F3\u304C\u53EF\u80FD\u306A\u9650\u308A\u30C0\u30A6\u30F3\u30B0\u30EC\u30FC\u30C9\u3057\u307E\u3059) +blurb.6=\ + Hudson\u306F\u8AAD\u3081\u306A\u3044\u30C7\u30FC\u30BF\u3092\u7121\u8996\u3059\u308B\u306E\u3067\u3001\u305D\u306E\u307E\u307E\u306B\u3057\u3066\u304A\u304F\u3053\u3068\u3082\u3067\u304D\u307E\u3059\u3002\ + Hudson\u8D77\u52D5\u6642\u306B\u30ED\u30B0\u30E1\u30C3\u30BB\u30FC\u30B8\u3092\u51FA\u529B\u3057\u306A\u3044\u3088\u3046\u306B\u3001\u30DC\u30BF\u30F3\u3092\u62BC\u4E0B\u3057\u3066\u8AAD\u3081\u306A\u3044\u30C7\u30FC\u30BF\u3092\u4E8B\u524D\u306B\u524A\u9664\u3059\u308B\u3053\u3068\u3082\u3067\u304D\u307E\u3059\u3002 +Manage\ Old\ Data=\u65E7\u30C7\u30FC\u30BF\u306E\u7BA1\u7406 +Type=\u578B +Name=\u540D\u524D +Version=\u30D0\u30FC\u30B8\u30E7\u30F3 +Upgrade=\u30A2\u30C3\u30D7\u30B0\u30EC\u30FC\u30C9 +Error=\u30A8\u30E9\u30FC +No\ old\ data\ was\ found.=\u65E7\u30C7\u30FC\u30BF\u306F\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3067\u3057\u305F\u3002 +Discard\ Unreadable\ Data=\u8AAD\u3081\u306A\u3044\u30C7\u30FC\u30BF\u3092\u7121\u8996 +Unreadable\ Data=\u8AAD\u3081\u306A\u3044\u30C7\u30FC\u30BF +Resave\ data\ files\ with\ structure\ changes\ no\ newer\ than\ Hudson= diff --git a/core/src/main/resources/hudson/diagnosis/OldDataMonitor/manage_pt_BR.properties b/core/src/main/resources/hudson/diagnosis/OldDataMonitor/manage_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..97a73f054688f3ad4d24e5beeff4a4aa502cbcb5 --- /dev/null +++ b/core/src/main/resources/hudson/diagnosis/OldDataMonitor/manage_pt_BR.properties @@ -0,0 +1,91 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Reginaldo L. Russinholi +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +# \ +# When there are changes in how data is stored on disk, Hudson uses the following strategy: \ +# data is migrated to the new structure when it is loaded, but the file is not resaved in the \ +# new format. This allows for downgrading Hudson if needed. However, it can also leave data \ +# on disk in the old format indefinitely. The table below lists files containing such data, \ +# and the Hudson version(s) where the data structure was changed. +blurb.1=\ + Quando existem mudanças em como os dados são armazenados no disco, o Hudson usa a seguinte estratégia: \ + os dados são migrados para a nova estrutura quando o Hudson é carregado, mas o arquivo não é salvo \ + novamente no novo formato. Isto permite o downgrade do Hudson se necessário. Entretanto, ele também \ + pode ser deixado no disco no formato antigo. A table abaixo lista os arquivos contendo tais dados, \ + e a(s) versão(ões) do Hudson onde a estrutura de dados foi alterada. +# \ +# Sometimes errors occur while reading data (if a plugin adds some data and that plugin is \ +# later disabled, if migration code is not written for structure changes, or if Hudson is \ +# downgraded after it has already written data not readable by the older version). \ +# These errors are logged, but the unreadable data is then skipped over, allowing Hudson to \ +# startup and function properly. +blurb.2=\ + Alguma vezes ocorrem erros enquanto lendo dados (se um plugin adiciona algum dado e este plugin é \ + desativado posteriormente, se o código de migração não suporta mudanças de estrutura, ou se for feito \ + um downgrade do Hudson após ele já ter escrito dados não suportados por versões anteriores). \ + Estes erros são registrados no log, mas os dados ilegíveis ignorados, permitindo que o Hudson \ + seja iniciado e funcione apropriadamente. +# \ +# The form below may be used to resave these files in the current format. Doing so means a \ +# downgrade to a Hudson release older than the selected version will not be able to read the \ +# data stored in the new format. Note that simply using Hudson to create and configure jobs \ +# and run builds can save data that may not be readable by older Hudson releases, even when \ +# this form is not used. Also if any unreadable data errors are reported in the right side \ +# of the table above, note that this data will be lost when the file is resaved. +blurb.3=\ + O formulário abaixo pode ser usado para salvar novamente estes arquivos no formato atual. Fazer isso \ + significa que um downgrade para uma versão do Hudson mais antiga do que a selecionada não será capaz \ + de ler os dados armazenados no novo formato. Note que simplesmente usando o Hudson para criar e configurar \ + tarefas e executar construções pode salvar dados que não podem ser lidos por versões anteriores do Hudson,\ + mesmo quando este formulário não é usado. Também se qualquer erro de dado ilegível for reportado no lado \ + direito da tabela acima, estes dados serão perdidos quando o arquivo for salvo novamente. +# \ +# Eventually the code supporting these data migrations may be removed. Compatibility will be \ +# retained for at least 150 releases since the structure change. Versions older than this are \ +# in bold above, and it is recommended to resave these files. +blurb.4=\ + Eventualmente o código que suporta a migração de dados pode ser removido. A compatibilidade \ + será mantida ao menos por 150 versões desde a mudança na estrutura. Versões mais antigas que\ + esta então em negrito, e é recomendado salvar novamente estes arquivos. +# \ +# (downgrade as far back as the selected version may still be possible) +blurb.5=\ + (é possível fazer o downgrade do Hudson até a versão selecionada) +# \ +# It is acceptable to leave unreadable data in these files, as Hudson will safely ignore it. \ +# To avoid the log messages at Hudson startup you can permanently delete the unreadable data \ +# by resaving these files using the button below. +blurb.6=\ + É aceitável deixar dados ilegíveis nestes arquivos, porque o Hudson irá ignorá-los. \ + Para evitar mensagens de erro na inicialização do Hudos você pode excluir permanentemente\ + os dados ilegíveis usando o botão abaixo. + +Type=Tipo +Discard\ Unreadable\ Data=Discartar Dados Ilegíveis +Version=Versão +Upgrade=Atualizar +Error=Erro +Unreadable\ Data=Dado Ilegível +Resave\ data\ files\ with\ structure\ changes\ no\ newer\ than\ Hudson=Salvar arquivos de dados com mudanças de estruturas que não sejam mais novas que o Hudson +No\ old\ data\ was\ found.=Nenhum dado antigo foi encontrado. +Name=Nome +Manage\ Old\ Data=Administrar Dados Antigos diff --git a/core/src/main/resources/hudson/diagnosis/OldDataMonitor/message.jelly b/core/src/main/resources/hudson/diagnosis/OldDataMonitor/message.jelly new file mode 100644 index 0000000000000000000000000000000000000000..82608a7191a780839114a153210677d55c3b69b6 --- /dev/null +++ b/core/src/main/resources/hudson/diagnosis/OldDataMonitor/message.jelly @@ -0,0 +1,35 @@ + + + +
    +
    + ${%You have data stored in an older format and/or unreadable data.} + + + + + +
    +
    diff --git a/core/src/main/resources/hudson/diagnosis/OldDataMonitor/message_da.properties b/core/src/main/resources/hudson/diagnosis/OldDataMonitor/message_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..5f214ddcf30140168e23e2488b0b277aace0781a --- /dev/null +++ b/core/src/main/resources/hudson/diagnosis/OldDataMonitor/message_da.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +You\ have\ data\ stored\ in\ an\ older\ format\ and/or\ unreadable\ data.=Du har data gemt i et \u00e6ldre og/eller ul\u00e6seligt format. +Dismiss=Luk +Manage=H\u00e5ndter diff --git a/core/src/main/resources/hudson/diagnosis/OldDataMonitor/message_de.properties b/core/src/main/resources/hudson/diagnosis/OldDataMonitor/message_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..2fa1e7cae2763c4bf7e74f472e0f7ba1f87bc3bf --- /dev/null +++ b/core/src/main/resources/hudson/diagnosis/OldDataMonitor/message_de.properties @@ -0,0 +1,27 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Alan Harder, Simon Wiest +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + + +Dismiss=Ignorieren +Manage=Verwalten +You\ have\ data\ stored\ in\ an\ older\ format\ and/or\ unreadable\ data.=\ + Es liegen Daten in einem veralteten Format und/oder nicht-lesbare Daten vor. \ No newline at end of file diff --git a/core/src/main/resources/hudson/diagnosis/OldDataMonitor/message_es.properties b/core/src/main/resources/hudson/diagnosis/OldDataMonitor/message_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..7c746c03a0042b4a4d26867cd68e50fb5c66f96b --- /dev/null +++ b/core/src/main/resources/hudson/diagnosis/OldDataMonitor/message_es.properties @@ -0,0 +1,27 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Alan Harder +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +You\ have\ data\ stored\ in\ an\ older\ format\ and/or\ unreadable\ data.= \ + Existen datos ilegibles, o guardados con un formato antiguo. +Manage=Administrar +Dismiss=Ignorar + diff --git a/core/src/main/resources/hudson/diagnosis/OldDataMonitor/message_fr.properties b/core/src/main/resources/hudson/diagnosis/OldDataMonitor/message_fr.properties new file mode 100644 index 0000000000000000000000000000000000000000..cac9ecc14011daa8048e00fcc41797c08f437133 --- /dev/null +++ b/core/src/main/resources/hudson/diagnosis/OldDataMonitor/message_fr.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Dismiss=Abandonner +Manage=G\u00E9rer +You\ have\ data\ stored\ in\ an\ older\ format\ and/or\ unreadable\ data.=Vous avez des donn\u00E9es stock\u00E9es dans un vieux format et/ou des donn\u00E9es illisibles diff --git a/core/src/main/resources/hudson/diagnosis/OldDataMonitor/message_ja.properties b/core/src/main/resources/hudson/diagnosis/OldDataMonitor/message_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..31193fa7cfd77d04ba7ed522ba860a2989cbe57f --- /dev/null +++ b/core/src/main/resources/hudson/diagnosis/OldDataMonitor/message_ja.properties @@ -0,0 +1,27 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +You\ have\ data\ stored\ in\ an\ older\ format\ and/or\ unreadable\ data.= \ + \u53E4\u3044\u5F62\u5F0F\u3082\u3057\u304F\u306F\u8AAD\u3081\u306A\u3044\u30C7\u30FC\u30BF\u304C\u3042\u308A\u307E\u3059\u3002 +Manage=\u7BA1\u7406 +Dismiss=\u7121\u8996 + diff --git a/core/src/main/resources/hudson/diagnosis/OldDataMonitor/message_pt_BR.properties b/core/src/main/resources/hudson/diagnosis/OldDataMonitor/message_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..2ce68f4d0927d81219235d95667cfe8b4de3ffaf --- /dev/null +++ b/core/src/main/resources/hudson/diagnosis/OldDataMonitor/message_pt_BR.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Reginaldo L. Russinholi +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Dismiss=Descartar +You\ have\ data\ stored\ in\ an\ older\ format\ and/or\ unreadable\ data.=Você tem dados armazenados no formato antigo ou dados ilegíveis. +Manage=Administrar diff --git a/core/src/main/resources/hudson/diagnosis/ReverseProxySetupMonitor/message.jelly b/core/src/main/resources/hudson/diagnosis/ReverseProxySetupMonitor/message.jelly new file mode 100644 index 0000000000000000000000000000000000000000..2f9c006b6722f80388e9d69f0d417632d1577622 --- /dev/null +++ b/core/src/main/resources/hudson/diagnosis/ReverseProxySetupMonitor/message.jelly @@ -0,0 +1,45 @@ + + + + + + diff --git a/core/src/main/resources/hudson/diagnosis/ReverseProxySetupMonitor/message.properties b/core/src/main/resources/hudson/diagnosis/ReverseProxySetupMonitor/message.properties new file mode 100644 index 0000000000000000000000000000000000000000..4edbd27c4db7e37a1dcdb958158c7a79e9e04627 --- /dev/null +++ b/core/src/main/resources/hudson/diagnosis/ReverseProxySetupMonitor/message.properties @@ -0,0 +1 @@ +blurb=It appears that your reverse proxy set up is broken. \ No newline at end of file diff --git a/core/src/main/resources/hudson/diagnosis/ReverseProxySetupMonitor/message_da.properties b/core/src/main/resources/hudson/diagnosis/ReverseProxySetupMonitor/message_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..95b45052367fe6c2c7b5dec7359b6e25c252b21d --- /dev/null +++ b/core/src/main/resources/hudson/diagnosis/ReverseProxySetupMonitor/message_da.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +More\ Info=Mere Info +blurb=Det ser ud til at din omvendt proxy konfiguration er i uorden. +Dismiss=Luk diff --git a/core/src/main/resources/hudson/diagnosis/ReverseProxySetupMonitor/message_es.properties b/core/src/main/resources/hudson/diagnosis/ReverseProxySetupMonitor/message_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..ecf5bb1824b698c82c2c38099ae688d6e3251d1e --- /dev/null +++ b/core/src/main/resources/hudson/diagnosis/ReverseProxySetupMonitor/message_es.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Dismiss=Cerrar +More\ Info=Más información +# It appears that your reverse proxy set up is broken. +blurb=Parece que la configuración de proxy inverso está mal diff --git a/core/src/main/resources/hudson/diagnosis/ReverseProxySetupMonitor/message_ja.properties b/core/src/main/resources/hudson/diagnosis/ReverseProxySetupMonitor/message_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..ebf8306cb2878016b4c441aceca55030aa382f9f --- /dev/null +++ b/core/src/main/resources/hudson/diagnosis/ReverseProxySetupMonitor/message_ja.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +More\ Info=\u8a73\u7d30 +Dismiss=\u4e2d\u6b62 +blurb=\u30ea\u30d0\u30fc\u30b9\u30d7\u30ed\u30ad\u30b7\u30fc\u306e\u8a2d\u5b9a\u304c\u304a\u304b\u3057\u3044\u3088\u3046\u3067\u3059\u3002 \ No newline at end of file diff --git a/core/src/main/resources/hudson/diagnosis/ReverseProxySetupMonitor/message_pt_BR.properties b/core/src/main/resources/hudson/diagnosis/ReverseProxySetupMonitor/message_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..dd1db1e7fc35f33c5aaf148d5b7b33c42773184c --- /dev/null +++ b/core/src/main/resources/hudson/diagnosis/ReverseProxySetupMonitor/message_pt_BR.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Reginaldo L. Russinholi +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Dismiss=Descartar +More\ Info=Mais Informação +# It appears that your reverse proxy set up is broken. +blurb=Parece que a configuração de proxy reverso está com problemas. diff --git a/core/src/main/resources/hudson/diagnosis/TooManyJobsButNoView/message_da.properties b/core/src/main/resources/hudson/diagnosis/TooManyJobsButNoView/message_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..dfa9ed0505373efe56adad650ba13e02961ff349 --- /dev/null +++ b/core/src/main/resources/hudson/diagnosis/TooManyJobsButNoView/message_da.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +blurb=Det ser ud til at du har et stort antal jobs. Vidste du at man kan organisere sine jobs i forskellige visninger? \ +Du kan klikke '+' i topbj\u00e6lken p\u00e5 oversigtssiden hvorn\u00e5rsomhelst for at lave en ny visning. +Create\ a\ view\ now=Lav en ny visning +Dismiss=Luk diff --git a/core/src/main/resources/hudson/diagnosis/TooManyJobsButNoView/message_de.properties b/core/src/main/resources/hudson/diagnosis/TooManyJobsButNoView/message_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..24b68f43083b2c8b8a354a5a5bb91f8aefaf3eae --- /dev/null +++ b/core/src/main/resources/hudson/diagnosis/TooManyJobsButNoView/message_de.properties @@ -0,0 +1,5 @@ +Create\ a\ view\ now=Neue Ansicht jetzt erstellen +Dismiss=Schließen +blurb=Es sind zurzeit sehr viele Jobs angelegt. Wussten Sie schon, dass Sie Ihre Jobs in \ + unterschiedliche Ansichten gruppieren können? Klicken Sie auf '+' im Seitenkopf, \ + um eine neue Ansicht zu erstellen. diff --git a/core/src/main/resources/hudson/diagnosis/TooManyJobsButNoView/message_es.properties b/core/src/main/resources/hudson/diagnosis/TooManyJobsButNoView/message_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..70642fad6e1746cf1b300556e8d0201073f64ce6 --- /dev/null +++ b/core/src/main/resources/hudson/diagnosis/TooManyJobsButNoView/message_es.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +blurb=Parece que hay un numero muy grande de proyectos en la pagina. ¿Sabías que puedes organizarlos en vistas? \ + Puedes pulsar sobre ''+'' en el principio de esta página para crear nuevas vistas. +Create\ a\ view\ now=Crear una vista ahora +Dismiss=Descartar diff --git a/core/src/main/resources/hudson/diagnosis/TooManyJobsButNoView/message_fr.properties b/core/src/main/resources/hudson/diagnosis/TooManyJobsButNoView/message_fr.properties index b9a9c9ea46287d86551b5687b1e9e591a59c8f21..82ce267577c1e9b47606a3688dfd6acffb16dfb1 100644 --- a/core/src/main/resources/hudson/diagnosis/TooManyJobsButNoView/message_fr.properties +++ b/core/src/main/resources/hudson/diagnosis/TooManyJobsButNoView/message_fr.properties @@ -20,7 +20,6 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Create\ a\ view\ now=Créer une vue maintenant +Create\ a\ view\ now=Cr\u00E9er une vue maintenant Dismiss=J''ai compris -blurb=Il semble y avoir un grand nombre de jobs. Saviez-vous que vous pouvez organiser vos jobs dans des vues séparées ? \ - Pour cela, cliquez sur le '+' dans la page principale pour créer une nouvelle vue à tout moment. +blurb=Il semble y avoir un grand nombre de jobs. Saviez-vous que vous pouvez organiser vos jobs dans des vues s\u00E9par\u00E9es ? Pour cela, cliquez sur le ''+'' dans la page principale pour cr\u00E9er une nouvelle vue \u00E0 tout moment. diff --git a/core/src/main/resources/hudson/diagnosis/TooManyJobsButNoView/message_ja.properties b/core/src/main/resources/hudson/diagnosis/TooManyJobsButNoView/message_ja.properties index c88187d363e0dd8f276cb77950ff579c0347946b..f6b3e858bf1c4b5808fde888b44ec5cd62a66739 100644 --- a/core/src/main/resources/hudson/diagnosis/TooManyJobsButNoView/message_ja.properties +++ b/core/src/main/resources/hudson/diagnosis/TooManyJobsButNoView/message_ja.properties @@ -1,3 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + Create\ a\ view\ now=\u30D3\u30E5\u30FC\u3092\u65B0\u898F\u4F5C\u6210 Dismiss=\u7121\u8996 blurb=\ diff --git a/core/src/main/resources/hudson/diagnosis/TooManyJobsButNoView/message_nl.properties b/core/src/main/resources/hudson/diagnosis/TooManyJobsButNoView/message_nl.properties new file mode 100644 index 0000000000000000000000000000000000000000..088de65b167f6973f99d59ae0cbbb3fae262abc2 --- /dev/null +++ b/core/src/main/resources/hudson/diagnosis/TooManyJobsButNoView/message_nl.properties @@ -0,0 +1,25 @@ +# The MIT License + +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Wim Rosseel + +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: + +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. + +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE + +blurb=Er blijken een grote hoeveelheid jobs gedefinieerd. Wist U dat het mogelijk is om je jobs in aparte overzichtsschermen te groeperen? U kunt gelijk wanneer op de '+' bovenaan de pagina klikken om een nieuw overzichtsscherm te cre\u00EBren. +Dismiss=Ok +Create\ a\ view\ now=Cre\u00EBer nu een nieuw overzichtsscherm. diff --git a/core/src/main/resources/hudson/diagnosis/TooManyJobsButNoView/message_pt_BR.properties b/core/src/main/resources/hudson/diagnosis/TooManyJobsButNoView/message_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..473321906eb5b8b9df49d05add573dbf55738685 --- /dev/null +++ b/core/src/main/resources/hudson/diagnosis/TooManyJobsButNoView/message_pt_BR.properties @@ -0,0 +1,29 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Reginaldo L. Russinholi +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Dismiss=Descartar +# There appears to be a large number of jobs. Did you know that you can organize your jobs to different views? \ +# You can click '+' in the top page to create a new view any time. +blurb=\ + Parece haver um número grande de tarefas. Você sabia que você pode orgazinar suas tarefas para diferentes visualizações? \ + Você pode clicar '+' no topo da página para criar uma nova visualização a qualquer hora. +Create\ a\ view\ now=Criar uma nova visualização agora diff --git a/core/src/main/resources/hudson/fsp/Messages.properties b/core/src/main/resources/hudson/fsp/Messages.properties index 4a8b60234173743c3929c0080f63640d359d62a9..8a7a2ba3d109c424df9e764a583a80dc1ad2ca8a 100644 --- a/core/src/main/resources/hudson/fsp/Messages.properties +++ b/core/src/main/resources/hudson/fsp/Messages.properties @@ -1,6 +1,6 @@ # The MIT License # -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -25,6 +25,6 @@ WorkspaceSnapshotSCM.IncorrectJobType={0} isn''t a job that has a workspace. WorkspaceSnapshotSCM.NoBuild=There''s no qualifying build for the {0} permalink in {1} WorkspaceSnapshotSCM.NoSuchPermalink=No such permalink ''{0}'' exists for {1} WorkspaceSnapshotSCM.NoWorkspace=\ - {0} {1} doesn''t have a workspace snapshot attached,n\ + {0} {1} doesn''t have a workspace snapshot attached,\n\ probably because when the build was done, no other jobs needed its workspace snapshot.\n\ - Please run another build in {0} to get the workspace snapshot taken. \ No newline at end of file + Please run another build in {0} to get the workspace snapshot taken. diff --git a/core/src/main/resources/hudson/fsp/Messages_da.properties b/core/src/main/resources/hudson/fsp/Messages_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..5f9ad9a99eafc368940f6ddf2e776bee2b498219 --- /dev/null +++ b/core/src/main/resources/hudson/fsp/Messages_da.properties @@ -0,0 +1,30 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +WorkspaceSnapshotSCM.NoSuchPermalink=Intet permalink ''{0}'' eksisterer for {1} +WorkspaceSnapshotSCM.NoBuild=Der er intet kvalificeret byg til {0} permalinket i {1} +WorkspaceSnapshotSCM.IncorrectJobType={0} er ikke en jobtype der har et arbejdsomr\u00e5de. +WorkspaceSnapshotSCM.NoWorkspace=\ +{0} {1} har ikke noget arbejdsomr\u00e5de\u00f8jebliksbillede tilknyttet,\n\ +formentlig skyldes dette at ingen andre jobs havde behov for dette jobs arbejdsomr\u00e5de\u00f8jebliksbillede da bygget afsluttede\n\ +K\u00f8r endnu et byg i {0} for at f\u00e5 taget et arbejdsomr\u00e5de\u00f8jebliksbillede. +WorkspaceSnapshotSCM.NoSuchJob=Intet job ''{0}'' eksisterer. M\u00e5ske mente du ''{1}''? diff --git a/core/src/main/resources/hudson/fsp/Messages_de.properties b/core/src/main/resources/hudson/fsp/Messages_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..8702fa937cee369b463d38c59fceb385883c5d24 --- /dev/null +++ b/core/src/main/resources/hudson/fsp/Messages_de.properties @@ -0,0 +1,31 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +WorkspaceSnapshotSCM.NoSuchJob=Job ''{0}'' existiert nicht. Meinten Sie ''{1}''? +WorkspaceSnapshotSCM.IncorrectJobType={0} ist kein Job mit einem Arbeitsbereich. +WorkspaceSnapshotSCM.NoBuild=Es existiert kein passender Build für den Permalink ''{0}'' in {1}. +WorkspaceSnapshotSCM.NoSuchPermalink=Es existiert kein Permalink ''{0}'' für {1} +WorkspaceSnapshotSCM.NoWorkspace=\ + Mit {0} {1} ist kein Schnappschuß eines Arbeitsbereiches verknüpft,\n\ + vermutlich weil zum Zeitpunkt des Builds kein anderer Job den Schnappschuß benötigte.\n\ + Starten Sie einen neuen Build in {0}, um einen Schnappschuß des Arbeitsbereiches erstellen zu lassen. + \ No newline at end of file diff --git a/core/src/main/resources/hudson/fsp/Messages_es.properties b/core/src/main/resources/hudson/fsp/Messages_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..31f6ea4dbf1a5a1d60531602ff674ddf427fffe5 --- /dev/null +++ b/core/src/main/resources/hudson/fsp/Messages_es.properties @@ -0,0 +1,30 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +WorkspaceSnapshotSCM.NoSuchJob=No existe la tarea ''{0}'' . Quizás quieras decir ''{1}'' +WorkspaceSnapshotSCM.IncorrectJobType={0} no es una tarea con espacio de trabajo. +WorkspaceSnapshotSCM.NoBuild=No hay ninguna ejecución válida para el permalink {0} en {1} +WorkspaceSnapshotSCM.NoSuchPermalink=No existe el permalink ''{0}'' para {1} +WorkspaceSnapshotSCM.NoWorkspace=\ + {0} {1} no tiene ningún espacio de trabajo,\n \ + es posible que no se haya ejecutado nunca o que ninguna otra tarea necesite su espacio de trabajo. + diff --git a/core/src/main/resources/hudson/fsp/Messages_nl.properties b/core/src/main/resources/hudson/fsp/Messages_nl.properties index 8a5a0efa95a0c3a10f7b78e37a0166de0ae4a030..5a7b49e9881193b2860c5f580c703d3cf910689e 100644 --- a/core/src/main/resources/hudson/fsp/Messages_nl.properties +++ b/core/src/main/resources/hudson/fsp/Messages_nl.properties @@ -1,6 +1,6 @@ # The MIT License # -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Wim Rosseel +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Wim Rosseel # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -24,6 +24,6 @@ WorkspaceSnapshotSCM.IncorrectJobType={0} is een job zonder werkplaats! WorkspaceSnapshotSCM.NoBuild=Er is geen bouwpoging die voldoet aan de {0} permanente referentie in {1} WorkspaceSnapshotSCM.NoSuchPermalink=Er bestaat geen permanente referentie ''{0}'' voor {1} WorkspaceSnapshotSCM.NoWorkspace=\ - {O} {1} heeft geen gekoppelde werkplaatskopie.n\ - Waarschijnlijk was er geen enkele job die deze kopie nodig had, wanneer deze bouwpoging plaats vond.n\ + {0} {1} heeft geen gekoppelde werkplaatskopie.\n\ + Waarschijnlijk was er geen enkele job die deze kopie nodig had, wanneer deze bouwpoging plaats vond.\n\ Gelieve een nieuwe bouwpogin in {0} te starten, teneinde een nieuwe werkplaatskopie te bekomen. diff --git a/core/src/main/resources/hudson/fsp/Messages_pt_BR.properties b/core/src/main/resources/hudson/fsp/Messages_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..40ccd06f89f760460c37afb172af7c16ce35443b --- /dev/null +++ b/core/src/main/resources/hudson/fsp/Messages_pt_BR.properties @@ -0,0 +1,38 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Reginaldo L. Russinholi +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +# {0} isn''t a job that has a workspace. +WorkspaceSnapshotSCM.IncorrectJobType={0} não é uma tarefa com uma área de trabalho +# No such permalink ''{0}'' exists for {1} +WorkspaceSnapshotSCM.NoSuchPermalink=Não existe o link permanente ''{0}'' para {1} +# There''s no qualifying build for the {0} permalink in {1} +WorkspaceSnapshotSCM.NoBuild=Não há nenhuma construção válida para o link permanente {0} em {1} +# \ +# {0} {1} doesn''t have a workspace snapshot attached,\n\ +# probably because when the build was done, no other jobs needed its workspace snapshot.\n\ +# Please run another build in {0} to get the workspace snapshot taken. +WorkspaceSnapshotSCM.NoWorkspace=\ + {0} {1} não tem um snapshot da área de trabalho anexecado, \n\ + provavelmente porque quando a construção foi feita, nenhuma outra tarefa precisou deste snapshot.\n\ + Por favor execute uma outra construção em {0} para que um snapshot da área de trabalho seja tirado. +# No such job ''{0}'' exists. Perhaps you meant ''{1}''? +WorkspaceSnapshotSCM.NoSuchJob=Não existe tal tarefa ''{0}''. Talvez você quis dizer ''{1}''? diff --git a/core/src/main/resources/hudson/init/impl/Messages.properties b/core/src/main/resources/hudson/init/impl/Messages.properties new file mode 100644 index 0000000000000000000000000000000000000000..90001daca9170c5af1cb727c5bcb244282bc6b59 --- /dev/null +++ b/core/src/main/resources/hudson/init/impl/Messages.properties @@ -0,0 +1,2 @@ +GroovyInitScript.init=Executing user-defined init script +InitialUserContent.init=Preparing initial user content \ No newline at end of file diff --git a/core/src/main/resources/hudson/init/impl/Messages_da.properties b/core/src/main/resources/hudson/init/impl/Messages_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..3cf97b4262a87f70ae923a1664700dbb68c2e3db --- /dev/null +++ b/core/src/main/resources/hudson/init/impl/Messages_da.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +GroovyInitScript.init=Eksekverer brugerdefineret init skript +InitialUserContent.init=Forbereder initielt brugerindhold diff --git a/core/src/main/resources/hudson/init/impl/Messages_de.properties b/core/src/main/resources/hudson/init/impl/Messages_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..2fe6d88021ff8c0c291c9e96cef741691671a9b5 --- /dev/null +++ b/core/src/main/resources/hudson/init/impl/Messages_de.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +GroovyInitScript.init=Führe benutzerdefiniertes Initialisierungsskript aus +InitialUserContent.init=Initialisiere benutzerdefinierte Inhalte \ No newline at end of file diff --git a/core/src/main/resources/hudson/init/impl/Messages_es.properties b/core/src/main/resources/hudson/init/impl/Messages_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..3f4d85e10d569056b0eb77a7f44e9e82c97df37a --- /dev/null +++ b/core/src/main/resources/hudson/init/impl/Messages_es.properties @@ -0,0 +1,2 @@ +GroovyInitScript.init=Ejecutando un script de inicio definido por el usuario +InitialUserContent.init=Preparando el contenido inicial para el usuario diff --git a/core/src/main/resources/hudson/init/impl/Messages_ja.properties b/core/src/main/resources/hudson/init/impl/Messages_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..d02c1971e03e741ef29c4154450eaae78bbf1bfd --- /dev/null +++ b/core/src/main/resources/hudson/init/impl/Messages_ja.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +GroovyInitScript.init=\u30E6\u30FC\u30B6\u30FC\u5B9A\u7FA9\u306E\u521D\u671F\u5316\u30B9\u30AF\u30EA\u30D7\u30C8\u3092\u5B9F\u884C\u4E2D +InitialUserContent.init=\u30E6\u30FC\u30B6\u30FC\u30B3\u30F3\u30C6\u30F3\u30C4\u306E\u521D\u671F\u5316\u3092\u6E96\u5099\u4E2D diff --git a/core/src/main/resources/hudson/init/impl/Messages_pt_BR.properties b/core/src/main/resources/hudson/init/impl/Messages_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..ae4ce3c88d93cb459da4a0cba8b3fc24d90f0aee --- /dev/null +++ b/core/src/main/resources/hudson/init/impl/Messages_pt_BR.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Reginaldo L. Russinholi +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +# Executing user-defined init script +GroovyInitScript.init=Executando um script de inicialização definido pelo usuário +# Preparing initial user content +InitialUserContent.init=Preparando o conteúdo inicial para o usuário diff --git a/core/src/main/resources/hudson/lifecycle/Messages.properties b/core/src/main/resources/hudson/lifecycle/Messages.properties index 9e91aa1441d76b62b49aaa3e38352affb4af6618..236d965a813620fcb728e76bb8fb2cbe1241c249 100644 --- a/core/src/main/resources/hudson/lifecycle/Messages.properties +++ b/core/src/main/resources/hudson/lifecycle/Messages.properties @@ -21,4 +21,8 @@ # THE SOFTWARE. WindowsInstallerLink.DisplayName=Install as Windows Service -WindowsInstallerLink.Description=Installs Hudson as a Windows service to this system, so that Hudson starts automatically when the machine boots. \ No newline at end of file +WindowsInstallerLink.Description=Installs Hudson as a Windows service to this system, so that Hudson starts automatically when the machine boots. +WindowsSlaveInstaller.ConfirmInstallation=This will install a slave agent as a Windows service, so that a Hudson slave starts automatically when the machine boots. +WindowsSlaveInstaller.DotNetRequired=.NET Framework 2.0 or later is required for this feature +WindowsSlaveInstaller.InstallationSuccessful=Installation was successful. Would you like to start the service now? +WindowsSlaveInstaller.RootFsDoesntExist=Slave root directory ''{0}'' doesn''t exist \ No newline at end of file diff --git a/core/src/main/resources/hudson/lifecycle/Messages_da.properties b/core/src/main/resources/hudson/lifecycle/Messages_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..a1acb6de3a8d2548c97eada688c32365c67d76be --- /dev/null +++ b/core/src/main/resources/hudson/lifecycle/Messages_da.properties @@ -0,0 +1,28 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +WindowsInstallerLink.DisplayName=Installer som Windows service +WindowsSlaveInstaller.DotNetRequired=Denne feature kr\u00e6ver .NET framework 2.0 eller nyere +WindowsSlaveInstaller.RootFsDoesntExist=Slave roddirektorie ''{0}'' findes ikke +WindowsSlaveInstaller.InstallationSuccessful=Installationen lykkedes. Vil du gerne starte service''en nu ? +WindowsInstallerLink.Description=Installerer Hudson som en Windows service p\u00e5 denne computer, s\u00e5 Hudson starter automatisk n\u00e5r computeren starter op. +WindowsSlaveInstaller.ConfirmInstallation=Dette vil installere en Hudson slave agent som en Windows service, s\u00e5 Hudson slaven vil starte automatisk n\u00e5r computeren starter op. diff --git a/core/src/main/resources/hudson/lifecycle/Messages_de.properties b/core/src/main/resources/hudson/lifecycle/Messages_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..3cd2b81ffc397ca981aaacb69b94d54b12588a99 --- /dev/null +++ b/core/src/main/resources/hudson/lifecycle/Messages_de.properties @@ -0,0 +1,30 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +WindowsInstallerLink.DisplayName=Als Windows-Dienst installieren +WindowsInstallerLink.Description=\ + Installiert Hudson als Windows-Dienst: Dadurch wird Hudson \ + automatisch nach einem Neustart des Rechners gestartet. +WindowsSlaveInstaller.ConfirmInstallation=Dies installiert einen Slave-Agent als Windows-Dienst. +WindowsSlaveInstaller.DotNetRequired=.NET Framework 2.0 oder höher ist für dieses Funktionsmerkmal erforderlich. +WindowsSlaveInstaller.InstallationSuccessful=Installation erfolgreich. Möchten Sie den Dienst jetzt starten? +WindowsSlaveInstaller.RootFsDoesntExist=Stammverzeichnis ''{0}'' existiert auf dem Slave-Knoten nicht. \ No newline at end of file diff --git a/core/src/main/resources/hudson/lifecycle/Messages_es.properties b/core/src/main/resources/hudson/lifecycle/Messages_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..628f91b1129c6ec9348ef51ce7feb158003abc9c --- /dev/null +++ b/core/src/main/resources/hudson/lifecycle/Messages_es.properties @@ -0,0 +1,28 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +WindowsInstallerLink.DisplayName=Instalar como un servicio de Windows +WindowsInstallerLink.Description=Instalar Hudson como un servicio de Windows en este sistema, de manera que Hudson se inicie cuando el sistema arranque. +WindowsSlaveInstaller.ConfirmInstallation=Esto instalará el agente esclavo como un servicio de Windows. +WindowsSlaveInstaller.DotNetRequired=Es necesario tener instalado: .NET Framework 2.0 o posterior, para que esta característica funcione. +WindowsSlaveInstaller.InstallationSuccessful=La instalación ha sido correcta. ¿Quieres arrancar el servicio ahora? +WindowsSlaveInstaller.RootFsDoesntExist=El directorio raiz {0} en el esclavo no existe. diff --git a/core/src/main/resources/hudson/lifecycle/Messages_ja.properties b/core/src/main/resources/hudson/lifecycle/Messages_ja.properties index b8d87c0bce5b54e79ab147c4e67909018b06ac37..f3dd99cb0df242a495845066643fc7bc8f8c13b7 100644 --- a/core/src/main/resources/hudson/lifecycle/Messages_ja.properties +++ b/core/src/main/resources/hudson/lifecycle/Messages_ja.properties @@ -21,4 +21,8 @@ # THE SOFTWARE. WindowsInstallerLink.DisplayName=Windows\u306E\u30B5\u30FC\u30D3\u30B9\u3068\u3057\u3066\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB -WindowsInstallerLink.Description=\u30DE\u30B7\u30F3\u304C\u30D6\u30FC\u30C8\u3057\u305F\u3068\u304D\u306BHudson\u304C\u81EA\u52D5\u7684\u306B\u958B\u59CB\u3059\u308B\u3088\u3046\u306B\u3001Windows\u306E\u30B5\u30FC\u30D3\u30B9\u3068\u3057\u3066Hudson\u3092\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3057\u307E\u3059\u3002 \ No newline at end of file +WindowsInstallerLink.Description=\u30DE\u30B7\u30F3\u304C\u30D6\u30FC\u30C8\u3057\u305F\u3068\u304D\u306BHudson\u304C\u81EA\u52D5\u7684\u306B\u958B\u59CB\u3059\u308B\u3088\u3046\u306B\u3001Windows\u306E\u30B5\u30FC\u30D3\u30B9\u3068\u3057\u3066Hudson\u3092\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3057\u307E\u3059\u3002 +WindowsSlaveInstaller.ConfirmInstallation=\u30B9\u30EC\u30FC\u30D6\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8\u3092Windows\u306E\u30B5\u30FC\u30D3\u30B9\u3068\u3057\u3066\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3057\u307E\u3059\u3002 +WindowsSlaveInstaller.DotNetRequired=.NET Framework 2.0 \u4EE5\u964D\u304C\u5FC5\u8981\u3067\u3059\u3002 +WindowsSlaveInstaller.InstallationSuccessful=\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u304C\u6210\u529F\u3057\u307E\u3057\u305F\u3002\u4ECA\u3059\u3050\u30B5\u30FC\u30D3\u30B9\u3092\u958B\u59CB\u3057\u307E\u3059\u304B? +WindowsSlaveInstaller.RootFsDoesntExist=\u30B9\u30EC\u30FC\u30D6\u306E\u30EB\u30FC\u30C8\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA ''{0}'' \u304C\u5B58\u5728\u3057\u307E\u305B\u3093\u3002 \ No newline at end of file diff --git a/core/src/main/resources/hudson/lifecycle/Messages_pt_BR.properties b/core/src/main/resources/hudson/lifecycle/Messages_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..db4013bb8031f4dfbe3f6acd26b5ef214f9ae99f --- /dev/null +++ b/core/src/main/resources/hudson/lifecycle/Messages_pt_BR.properties @@ -0,0 +1,34 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Reginaldo L. Russinholi +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +# Install as Windows Service +WindowsInstallerLink.DisplayName=Instalar como servi\u00e7o do Windows +# Slave root directory ''{0}'' doesn''t exist +WindowsSlaveInstaller.RootFsDoesntExist=O diret\u00f3rio ra\u00edz ''{0}'' do slave n\u00e3o existe +# .NET Framework 2.0 or later is required for this feature +WindowsSlaveInstaller.DotNetRequired=.NET Framework 2.0 ou posterior \u00e9 necess\u00e1rio para esta funcionalidade +# This will install a slave agent as a Windows service, so that a Hudson slave starts automatically when the machine boots. +WindowsSlaveInstaller.ConfirmInstallation=Isto instalar\u00e1 o agente slave como um servi\u00e7o do Windows, de maneira que um slave Hudson inicie automaticamente quando a m\u00e1quina iniciar. +# Installation was successful. Would you like to start the service now? +WindowsSlaveInstaller.InstallationSuccessful=Instala\u00e7\u00e3o feita com sucesso. Gostaria de iniciar o servi\u00e7o agora? +# Installs Hudson as a Windows service to this system, so that Hudson starts automatically when the machine boots. +WindowsInstallerLink.Description=Instala o Hudson como um servi\u00e7o do Windows neste sistema, de maneira que o Hudson inicie quando a m\u00e1quina iniciar. diff --git a/core/src/main/resources/hudson/lifecycle/WindowsInstallerLink/_restart_da.properties b/core/src/main/resources/hudson/lifecycle/WindowsInstallerLink/_restart_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..3d5bd2039496b3514552ba61e893482c8aac7b20 --- /dev/null +++ b/core/src/main/resources/hudson/lifecycle/WindowsInstallerLink/_restart_da.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Please\ wait\ while\ Hudson\ is\ restarting=Vent venligst imens Hudson genstarter +blurb=Du vil automatisk blive taget til din nye Hudson om f\u00e5 sekunder. \ +Hvis service''en af uvisse \u00e5rsager ikke starter op, kig i Windows event loggen for fejlmeddelelser og konsult\u00e9r \ diff --git a/core/src/main/resources/hudson/lifecycle/WindowsInstallerLink/_restart_de.properties b/core/src/main/resources/hudson/lifecycle/WindowsInstallerLink/_restart_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..21d47d51c1a8d5a5832bca12a2682952f60c9361 --- /dev/null +++ b/core/src/main/resources/hudson/lifecycle/WindowsInstallerLink/_restart_de.properties @@ -0,0 +1,4 @@ +Please\ wait\ while\ Hudson\ is\ restarting=Bitte warten Sie, während Hudson neu gestartet wird +blurb=Sie sollten automatisch in wenigen Sekunden auf die neue Hudson-Instanz weitergeleitet werden. \ + Sollte der Windows-Dienst nicht starten, suchen Sie im Windows Ereignisprotokoll nach Fehlermeldungen und lesen Sie \ + weitere Hinweise im Wiki. diff --git a/core/src/main/resources/hudson/lifecycle/WindowsInstallerLink/_restart_es.properties b/core/src/main/resources/hudson/lifecycle/WindowsInstallerLink/_restart_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..6d34b287876c551bc3c53f492c483443c04fa989 --- /dev/null +++ b/core/src/main/resources/hudson/lifecycle/WindowsInstallerLink/_restart_es.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +blurb=Serás redirigido automáticamente al nuevo Hudson en unos segundos. \ + Si por alguna razón el servicio falla, consulta el ''log'' de eventos de windows \ + y echa un vistazo a esta página. +Please\ wait\ while\ Hudson\ is\ restarting=Por favor espera mientras Hudson es reiniciado diff --git a/core/src/main/resources/hudson/lifecycle/WindowsInstallerLink/_restart_fr.properties b/core/src/main/resources/hudson/lifecycle/WindowsInstallerLink/_restart_fr.properties index 1fe25ef7873271fd578a586f540de0f02ce3a5cb..8a0a3a58834c66ae7fc477b10712dae3063588ba 100644 --- a/core/src/main/resources/hudson/lifecycle/WindowsInstallerLink/_restart_fr.properties +++ b/core/src/main/resources/hudson/lifecycle/WindowsInstallerLink/_restart_fr.properties @@ -20,9 +20,9 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Please\ wait\ while\ Hudson\ is\ restarting=Veuillez patienter pendant le redémarrage de Hudson -blurb=Vous devriez être emmené automatiquement vers la nouvelle instance \ - de Hudson dans quelques secondes. \ - Si par hasard le service ne parvient pas à se lancer, vérifiez les logs \ - d''événements Windows et consultez \ - la page wiki. +Please\ wait\ while\ Hudson\ is\ restarting=Veuillez patienter pendant le redémarrage de Hudson +blurb=Vous devriez être emmené automatiquement vers la nouvelle instance \ + de Hudson dans quelques secondes. \ + Si par hasard le service ne parvient pas à se lancer, vérifiez les logs \ + d''événements Windows et consultez \ + la page wiki. diff --git a/core/src/main/resources/hudson/lifecycle/WindowsInstallerLink/_restart_pt_BR.properties b/core/src/main/resources/hudson/lifecycle/WindowsInstallerLink/_restart_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..a7b411ce492b86a2a04ec4acf1621c6f3e071e44 --- /dev/null +++ b/core/src/main/resources/hudson/lifecycle/WindowsInstallerLink/_restart_pt_BR.properties @@ -0,0 +1,31 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Reginaldo L. Russinholi +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Please\ wait\ while\ Hudson\ is\ restarting=Por favor aguarde enquanto o Hudson está reiniciando +# You should be taken automatically to the new Hudson in a few seconds. \ +# If for some reasons the service fails to start, check Windows event log for errors and consult \ +# online wiki page. +blurb=\ + Você deveria ser direcionado automaticamente ao novo Hudson em poucos segundos. \ + Se por alguma razão o serviço falhar ao iniciar, verifique no log de eventos do Windows os erros e consulte \ + página wiki online. + diff --git a/core/src/main/resources/hudson/lifecycle/WindowsInstallerLink/index.jelly b/core/src/main/resources/hudson/lifecycle/WindowsInstallerLink/index.jelly index c5ccaefb0d6d1b8986b293fe6133655048dee43f..8996a349a90556163c87adac18d4df332bf03002 100644 --- a/core/src/main/resources/hudson/lifecycle/WindowsInstallerLink/index.jelly +++ b/core/src/main/resources/hudson/lifecycle/WindowsInstallerLink/index.jelly @@ -38,7 +38,7 @@ THE SOFTWARE.
    - + @@ -63,4 +63,4 @@ THE SOFTWARE. - \ No newline at end of file + diff --git a/core/src/main/resources/hudson/lifecycle/WindowsInstallerLink/index_da.properties b/core/src/main/resources/hudson/lifecycle/WindowsInstallerLink/index_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..cf46921f66fec684e1e13795fbdec353f76d249d --- /dev/null +++ b/core/src/main/resources/hudson/lifecycle/WindowsInstallerLink/index_da.properties @@ -0,0 +1,30 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Install\ as\ Windows\ Service=Installer som Windows service +Yes=Ja +restartBlurb=Installationen lykkedes. Vil du standse denne Hudson og starte din nyligt installerede Windows service? +Install=Installer +Installation\ Directory=Installations direktorie +installBlurb=At installere Hudson som en Windows service g\u00f8r det muligt for Hudson at starte under Windows opstart, \ +uafh\u00e6ngig af hvilken bruger, om nogen, der logger ind interaktivt. +Installation\ Complete=Installation fuldf\u00f8rt diff --git a/core/src/main/resources/hudson/lifecycle/WindowsInstallerLink/index_de.properties b/core/src/main/resources/hudson/lifecycle/WindowsInstallerLink/index_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..ec1c45d3a0e97fd65b493471ee672106a395e662 --- /dev/null +++ b/core/src/main/resources/hudson/lifecycle/WindowsInstallerLink/index_de.properties @@ -0,0 +1,9 @@ +Install\ as\ Windows\ Service=Als Windows-Dienst installieren +installBlurb=Als Windows-Dienst wird Hudson automatisch nach jedem Rechnerneustart ausgeführt, \ + ganz unabhängig davon, welcher Anwender den Rechner interaktiv verwendet. +Installation\ Directory=Installationsverzeichnis +Install=Installieren +Installation\ Complete=Installation abgeschlossen. +restartBlurb=Die Installation wurde erfolgreich abgeschlossen. Soll diese Hudson-Instanz beendet \ + und der neu installierte Windows-Dienst gestartet werden? +Yes=Ja diff --git a/core/src/main/resources/hudson/lifecycle/WindowsInstallerLink/index_es.properties b/core/src/main/resources/hudson/lifecycle/WindowsInstallerLink/index_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..def762a398f9bcdaaf704844c0ba1273c36fef12 --- /dev/null +++ b/core/src/main/resources/hudson/lifecycle/WindowsInstallerLink/index_es.properties @@ -0,0 +1,29 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +installBlurb=Instalando Hudson como un servicio de windows, esto arrancará Hudson cuando la máquina arranca. +restartBlurb=La instalación se ha hecho correctamente. ¿Quieres cerrar que este Hudson y que se arranque el nuevo servicio de Hudson recien instalado en Windows? +Installation\ Directory=Directorio de instalación +Yes=Sí +Installation\ Complete=Instalación completa +Install\ as\ Windows\ Service=Instalar como un servicio de Windows +Install=Instalar diff --git a/core/src/main/resources/hudson/lifecycle/WindowsInstallerLink/index_fr.properties b/core/src/main/resources/hudson/lifecycle/WindowsInstallerLink/index_fr.properties index b184dd47df35bcd4e036cb78d09138f7dc573d3e..488765237104680fc52314ed01ee8c38f83486cf 100644 --- a/core/src/main/resources/hudson/lifecycle/WindowsInstallerLink/index_fr.properties +++ b/core/src/main/resources/hudson/lifecycle/WindowsInstallerLink/index_fr.properties @@ -20,12 +20,12 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Installation\ Directory=Répertoire d''installation -Install=Installation -Installation\ Complete=Installation terminée -restartBlurb=L''installation s''est achevée correctement. Voulez-vous arrêter cette instance de Hudson et lancer ce nouveau service Windows? -Yes=Oui -Install\ as\ Windows\ Service=Installer en tant que Service Windows -installBlurb=L''installation de Hudson en tant que service Windows vous \ - permet de lancer Hudson dès le démarrage de la machine, quel que soit \ - l''utilisateur qui intéragit avec Hudson. +Installation\ Directory=Répertoire d''installation +Install=Installation +Installation\ Complete=Installation terminée +restartBlurb=L''installation s''est achevée correctement. Voulez-vous arrêter cette instance de Hudson et lancer ce nouveau service Windows? +Yes=Oui +Install\ as\ Windows\ Service=Installer en tant que Service Windows +installBlurb=L''installation de Hudson en tant que service Windows vous \ + permet de lancer Hudson dès le démarrage de la machine, quel que soit \ + l''utilisateur qui intéragit avec Hudson. diff --git a/core/src/main/resources/hudson/lifecycle/WindowsInstallerLink/index_nl.properties b/core/src/main/resources/hudson/lifecycle/WindowsInstallerLink/index_nl.properties index d16e5e872c9a7c5c17720b358102bd55595cdc70..855dc9013fbb6de615bd12de55562fe065dc26af 100644 --- a/core/src/main/resources/hudson/lifecycle/WindowsInstallerLink/index_nl.properties +++ b/core/src/main/resources/hudson/lifecycle/WindowsInstallerLink/index_nl.properties @@ -20,11 +20,11 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Installation\ Directory=Installatiemap -Install=Installeer -Installation\ Complete=Installatie succesvol uitgevoerd -restartBlurb=De installatie werd successvol uitgevoerd. Gelieve uw Hudson instantie te stoppen en de nieuwe Windows service te starten. -Yes=Ja -Install\ as\ Windows\ Service=Installeren als Windows service. -installBlurb=Het installeren van Hudson als Windows service laat u toe om Hudson automatisch te laten starten bij \ - het opstarten van uw systeem, onafhankelijk van wie actief is op het systeem. +Installation\ Directory=Installatiemap +Install=Installeer +Installation\ Complete=Installatie succesvol uitgevoerd +restartBlurb=De installatie werd successvol uitgevoerd. Gelieve uw Hudson instantie te stoppen en de nieuwe Windows service te starten. +Yes=Ja +Install\ as\ Windows\ Service=Installeren als Windows service. +installBlurb=Het installeren van Hudson als Windows service laat u toe om Hudson automatisch te laten starten bij \ + het opstarten van uw systeem, onafhankelijk van wie actief is op het systeem. diff --git a/core/src/main/resources/hudson/lifecycle/WindowsInstallerLink/index_pt_BR.properties b/core/src/main/resources/hudson/lifecycle/WindowsInstallerLink/index_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..fb65ec5a5aceb3ee3bf335316f58a71512ddc895 --- /dev/null +++ b/core/src/main/resources/hudson/lifecycle/WindowsInstallerLink/index_pt_BR.properties @@ -0,0 +1,33 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Reginaldo L. Russinholi +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +# Installation is successfully completed. Do you want to stop this Hudson and start a newly installed Windows service? +restartBlurb=Instalação completada com sucesso. Deseja parar o Hudson atual e iniciar o recente instalado serviço do Windows? +Installation\ Directory=Diretório de Instalação +Install\ as\ Windows\ Service=Instalar como serviço do Windows +Yes=Sim +Install=Instalar +# Installing Hudson as a Windows service allows you to start Hudson as soon as the machine starts, and regardless of \ +# who is interactively using Hudson. +installBlurb=Instalar o Hudson como um serviço do Windows permite iniciar o Hudson tão logo a máquina inicie, e independente de \ + quem está interativamente usando o Hudson. +Installation\ Complete=Instalação Completa diff --git a/core/src/main/resources/hudson/logging/LogRecorder/configure_da.properties b/core/src/main/resources/hudson/logging/LogRecorder/configure_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..72487507e04262610e2f4bd1ca237f7a77ba09d5 --- /dev/null +++ b/core/src/main/resources/hudson/logging/LogRecorder/configure_da.properties @@ -0,0 +1,28 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Log\ level=Log niveau +List\ of\ loggers\ and\ the\ log\ levels\ to\ record=Liste af loggere og logniveauer der optages +Logger=Loggere +Save=Gem +Loggers=Loggere +Name=Navn diff --git a/core/src/main/resources/hudson/logging/LogRecorder/configure_de.properties b/core/src/main/resources/hudson/logging/LogRecorder/configure_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..4727c20b2890ed11cfa003129074767650f4797d --- /dev/null +++ b/core/src/main/resources/hudson/logging/LogRecorder/configure_de.properties @@ -0,0 +1,28 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Name=Name +Loggers=Logger +List\ of\ loggers\ and\ the\ log\ levels\ to\ record=Liste der Logger und der Prioritäten, die aufgezeichnet werden +Logger=Logger +Log\ level=Priorität +Save=Übernehmen diff --git a/core/src/main/resources/hudson/logging/LogRecorder/configure_es.properties b/core/src/main/resources/hudson/logging/LogRecorder/configure_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..4d56e57d15d2c373f6c5c31ba68d7b074b3055cd --- /dev/null +++ b/core/src/main/resources/hudson/logging/LogRecorder/configure_es.properties @@ -0,0 +1,29 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Name=Nombre +Loggers=Loggers +List\ of\ loggers\ and\ the\ log\ levels\ to\ record=Lista de Loggers y de niveles de Log para registrar +Logger=Logger +Log\ level=Nivel de Log +Save=Guardar + diff --git a/core/src/main/resources/hudson/logging/LogRecorder/configure_fr.properties b/core/src/main/resources/hudson/logging/LogRecorder/configure_fr.properties index 82e7cba23d0282c25cc7e7e1d30b9f430bc7e33b..bcc2343d062a54ec555243868d8c157e68d17474 100644 --- a/core/src/main/resources/hudson/logging/LogRecorder/configure_fr.properties +++ b/core/src/main/resources/hudson/logging/LogRecorder/configure_fr.properties @@ -20,9 +20,9 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Name=Nom -Loggers= -List\ of\ loggers\ and\ the\ log\ levels\ to\ record=Liste des loggers et des niveaux de log à enregistrer -Logger= -Log\ level=Niveau de log -Save=Enregistrer +Name=Nom +Loggers= +List\ of\ loggers\ and\ the\ log\ levels\ to\ record=Liste des loggers et des niveaux de log à enregistrer +Logger= +Log\ level=Niveau de log +Save=Enregistrer diff --git a/core/src/main/resources/hudson/logging/LogRecorder/configure_pt_BR.properties b/core/src/main/resources/hudson/logging/LogRecorder/configure_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..9b0777fa26f62f121833b0c398660d72c860fcf9 --- /dev/null +++ b/core/src/main/resources/hudson/logging/LogRecorder/configure_pt_BR.properties @@ -0,0 +1,28 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Reginaldo L. Russinholi +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Log\ level=Nível de log +List\ of\ loggers\ and\ the\ log\ levels\ to\ record=Lista dos loggers e níveis de log para registrar +Logger=Logger +Save=Salvar +Loggers=Loggers +Name=Nome diff --git a/core/src/main/resources/hudson/logging/LogRecorder/delete_da.properties b/core/src/main/resources/hudson/logging/LogRecorder/delete_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..94eb7a4093f61111210e3e227661edf66bf4c833 --- /dev/null +++ b/core/src/main/resources/hudson/logging/LogRecorder/delete_da.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Yes=Ja +Are\ you\ sure\ about\ deleting\ this\ log\ recorder?=Er du sikker p\u00e5 at du vil slette denne logopsamler? diff --git a/core/src/main/resources/hudson/logging/LogRecorder/delete_de.properties b/core/src/main/resources/hudson/logging/LogRecorder/delete_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..c50f74e586f1a1af08ea8661757981c8fbfc2adb --- /dev/null +++ b/core/src/main/resources/hudson/logging/LogRecorder/delete_de.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Are\ you\ sure\ about\ deleting\ this\ log\ recorder?=Möchten Sie diesen Log-Rekorder wirklich löschen? +Yes=Ja diff --git a/core/src/main/resources/hudson/logging/LogRecorder/delete_es.properties b/core/src/main/resources/hudson/logging/LogRecorder/delete_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..c928ee58953e8bb2100733e7bc81dfc27afb018f --- /dev/null +++ b/core/src/main/resources/hudson/logging/LogRecorder/delete_es.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Are\ you\ sure\ about\ deleting\ this\ log\ recorder?=Estas seguro de querer borrar este registro de ''logs'' +Yes=Sí diff --git a/core/src/main/resources/hudson/logging/LogRecorder/delete_fr.properties b/core/src/main/resources/hudson/logging/LogRecorder/delete_fr.properties index 41d67c2ef97705979b6211bd0cff087ecfa0a9da..a3c03477a6249df1a0ba35eaf91b60da4cc8ed5d 100644 --- a/core/src/main/resources/hudson/logging/LogRecorder/delete_fr.properties +++ b/core/src/main/resources/hudson/logging/LogRecorder/delete_fr.properties @@ -20,5 +20,5 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Are\ you\ sure\ about\ deleting\ this\ log\ recorder?=Etes-vous certain de vouloir effacer cet enregistreur de log? -Yes=Oui +Are\ you\ sure\ about\ deleting\ this\ log\ recorder?=Etes-vous certain de vouloir effacer cet enregistreur de log? +Yes=Oui diff --git a/core/src/main/resources/hudson/logging/LogRecorder/delete_pt_BR.properties b/core/src/main/resources/hudson/logging/LogRecorder/delete_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..a43f7e1e94efcbafec9f38eebdd0f11a8a7223c7 --- /dev/null +++ b/core/src/main/resources/hudson/logging/LogRecorder/delete_pt_BR.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Reginaldo L. Russinholi +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Yes=Sim +Are\ you\ sure\ about\ deleting\ this\ log\ recorder?=Tem certeza que deseja apagar este gravador de log? diff --git a/core/src/main/resources/hudson/logging/LogRecorder/sidepanel_da.properties b/core/src/main/resources/hudson/logging/LogRecorder/sidepanel_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..a9bcf21b76c499ca04b77d96fadf0c281d489677 --- /dev/null +++ b/core/src/main/resources/hudson/logging/LogRecorder/sidepanel_da.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Configure=Konfigurer +Delete=Slet +Back\ to\ Loggers=Tilbage til loggere +Log\ records=Logopsamlere diff --git a/core/src/main/resources/hudson/logging/LogRecorder/sidepanel_de.properties b/core/src/main/resources/hudson/logging/LogRecorder/sidepanel_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..e3c8a7ca1da4bebe88e5535c1f0a16e11357178f --- /dev/null +++ b/core/src/main/resources/hudson/logging/LogRecorder/sidepanel_de.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Back\ to\ Loggers=Zurück zu den Loggern +Log\ records=Log-Aufzeichnungen +Configure=Konfigurieren +Delete=Löschen diff --git a/core/src/main/resources/hudson/logging/LogRecorder/sidepanel_es.properties b/core/src/main/resources/hudson/logging/LogRecorder/sidepanel_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..50f64015e219b5b1548a70f2dce3bab680f16c61 --- /dev/null +++ b/core/src/main/resources/hudson/logging/LogRecorder/sidepanel_es.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Back\ to\ Loggers=Volver +Log\ records=Líneas de ''log'' +Configure=Configurar +Delete=Borrar diff --git a/core/src/main/resources/hudson/logging/LogRecorder/sidepanel_fr.properties b/core/src/main/resources/hudson/logging/LogRecorder/sidepanel_fr.properties index e7e66a91799529d4eeb53f9bc9e9ad8793b5c0f6..7951daf47478c8001bb09929597b3ee73a4b123e 100644 --- a/core/src/main/resources/hudson/logging/LogRecorder/sidepanel_fr.properties +++ b/core/src/main/resources/hudson/logging/LogRecorder/sidepanel_fr.properties @@ -20,7 +20,7 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Back\ to\ Loggers=Retourner aux loggers -Log\ records=Enregistrements de log -Configure=Configurer -Delete=Supprimer +Back\ to\ Loggers=Retourner aux loggers +Log\ records=Enregistrements de log +Configure=Configurer +Delete=Supprimer diff --git a/core/src/main/resources/hudson/logging/LogRecorder/sidepanel_pt_BR.properties b/core/src/main/resources/hudson/logging/LogRecorder/sidepanel_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..d12757ac1567738b0f92877c051bc0fd27d54fda --- /dev/null +++ b/core/src/main/resources/hudson/logging/LogRecorder/sidepanel_pt_BR.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Configure=Configurar +Delete=Apagar +Back\ to\ Loggers=Voltar para Loggers +Log\ records=Registros de Log diff --git a/core/src/main/resources/hudson/logging/LogRecorder/sidepanel_zh_CN.properties b/core/src/main/resources/hudson/logging/LogRecorder/sidepanel_zh_CN.properties new file mode 100644 index 0000000000000000000000000000000000000000..87bed4cdb74536d3c1dc8b6c4ad05997c6771b41 --- /dev/null +++ b/core/src/main/resources/hudson/logging/LogRecorder/sidepanel_zh_CN.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Back\ to\ Loggers=\u8FD4\u56DE +Configure=\u8BBE\u7F6E +Delete=\u5220\u9664 +Log\ records=\u65E5\u5FD7\u8BB0\u5F55 diff --git a/core/src/main/resources/hudson/logging/LogRecorderManager/all.jelly b/core/src/main/resources/hudson/logging/LogRecorderManager/all.jelly index 459ad1ad01366bbe85d4eb874fb68d7ffeb4d7dc..57b9da1fa917fc0e13a5aa688d1f3f5d20c7f7ee 100644 --- a/core/src/main/resources/hudson/logging/LogRecorderManager/all.jelly +++ b/core/src/main/resources/hudson/logging/LogRecorderManager/all.jelly @@ -1,7 +1,7 @@ + + + + + + +

    + ${%Logger Configuration} + +

    +
    + + + + + + + + + + + + + + +
    ${%Name}${%Level}
    ${name}${logger.level}
    +

    ${%defaultLoggerMsg}

    +

    ${%Adjust Levels}

    + + ${%Name}: + ${%Level}: + + + + + + + diff --git a/core/src/main/resources/hudson/logging/LogRecorderManager/levels.properties b/core/src/main/resources/hudson/logging/LogRecorderManager/levels.properties new file mode 100644 index 0000000000000000000000000000000000000000..b651cae30ae247eae2d634f6492715bd9807882f --- /dev/null +++ b/core/src/main/resources/hudson/logging/LogRecorderManager/levels.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +url=http://wiki.hudson-ci.org/display/HUDSON/Logger+Configuration +defaultLoggerMsg=Logger with no name is the default logger. \ +This level will be inherited by all loggers without a configured level. diff --git a/core/src/main/resources/hudson/logging/LogRecorderManager/levels_da.properties b/core/src/main/resources/hudson/logging/LogRecorderManager/levels_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..95016f5cfd47de37c52e1fe01841e4930b8e1511 --- /dev/null +++ b/core/src/main/resources/hudson/logging/LogRecorderManager/levels_da.properties @@ -0,0 +1,30 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Level=Niveau +url=http://wiki.hudson-ci.org/display/HUDSON/Logger+Configuration +defaultLoggerMsg=Unavngiven logger er standardlogger. \ +Dette niveau vil nedarve til alle loggere uden et konfigurationsniveau. +Name=Navn +Adjust\ Levels=Juster niveau +Submit=Gem +Logger\ Configuration=Logger konfiguration diff --git a/core/src/main/resources/hudson/logging/LogRecorderManager/levels_de.properties b/core/src/main/resources/hudson/logging/LogRecorderManager/levels_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..067011b86af2ce1fcc7a528d8d710c3797707fb8 --- /dev/null +++ b/core/src/main/resources/hudson/logging/LogRecorderManager/levels_de.properties @@ -0,0 +1,30 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Logger\ Configuration=Logger-Konfiguration +url=http://wiki.hudson-ci.org/display/HUDSON/Logger+Configuration +Name=Name +Level=Priorität +Submit=Übernehmen +Adjust\ Levels=Prioritäten (levels) anpassen +defaultLoggerMsg=Der Logger ohne Namen ist der Default-Logger. Seine Priorität \ + wird von allen Loggern übernommen, für die keine Priorität explizit angegeben wurde. \ No newline at end of file diff --git a/core/src/main/resources/hudson/logging/LogRecorderManager/levels_es.properties b/core/src/main/resources/hudson/logging/LogRecorderManager/levels_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..b8128e67c3f1a52ca5d3d089621713bed92d5a7b --- /dev/null +++ b/core/src/main/resources/hudson/logging/LogRecorderManager/levels_es.properties @@ -0,0 +1,30 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +url=http://wiki.hudson-ci.org/display/HUDSON/Logger+Configuration +Level=Nivel de log +Logger\ Configuration=Configuración del logger +Submit=Enviar +Name=Nombre +defaultLoggerMsg=Por defecto se usa un Logger sin mombre. \ + Este nivel será heredado por todos los loggers que no estén configurados con un nivel de log. +Adjust\ Levels=Ajustar niveles de log. diff --git a/core/src/main/resources/hudson/logging/LogRecorderManager/levels_fr.properties b/core/src/main/resources/hudson/logging/LogRecorderManager/levels_fr.properties new file mode 100644 index 0000000000000000000000000000000000000000..20ea2596ccda3f237a0f0d08bca5c35b887f56c9 --- /dev/null +++ b/core/src/main/resources/hudson/logging/LogRecorderManager/levels_fr.properties @@ -0,0 +1,27 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Eric Lefevre-Ardant +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Logger\ Configuration=Configuration du logger +Name=Nom +Level=Niveau +Submit=Envoyer +url=http://wiki.hudson-ci.org/display/HUDSON/Logger+Configuration diff --git a/core/src/main/resources/hudson/logging/LogRecorderManager/levels_ja.properties b/core/src/main/resources/hudson/logging/LogRecorderManager/levels_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..b67ba4f4b2aeced2397f30a49d7965c7656dedbd --- /dev/null +++ b/core/src/main/resources/hudson/logging/LogRecorderManager/levels_ja.properties @@ -0,0 +1,31 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Logger\ Configuration=\u30ED\u30AC\u30FC\u306E\u8A2D\u5B9A +Name=\u540D\u524D +Level=\u30EC\u30D9\u30EB +Submit=\u767B\u9332 +url=http://wiki.hudson-ci.org/display/JA/Logger+Configuration +defaultLoggerMsg=\u540D\u524D\u304C\u306A\u3044\u30ED\u30AC\u30FC\u306F\u30C7\u30D5\u30A9\u30EB\u30C8\u306E\u30ED\u30AC\u30FC\u3067\u3059\u3002\ + \u30C7\u30D5\u30A9\u30EB\u30C8\u306E\u30ED\u30AC\u30FC\u306E\u30EC\u30D9\u30EB\u306F\u3001\u8A2D\u5B9A\u3057\u306A\u304F\u3066\u3082\u5168\u3066\u306E\u30ED\u30AC\u30FC\u306B\u5F15\u304D\u7D99\u304C\u308C\u307E\u3059\u3002 +Adjust\ Levels=\u30EC\u30D9\u30EB\u306E\u8ABF\u6574 + diff --git a/core/src/main/resources/hudson/logging/LogRecorderManager/levels_nl.properties b/core/src/main/resources/hudson/logging/LogRecorderManager/levels_nl.properties new file mode 100644 index 0000000000000000000000000000000000000000..57ade0e9d4a001c93dddbe0122ecdbf11bf16fec --- /dev/null +++ b/core/src/main/resources/hudson/logging/LogRecorderManager/levels_nl.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Level=Niveau +Logger\ Configuration=Logger configuratie +Name=Naam diff --git a/core/src/main/resources/hudson/logging/LogRecorderManager/levels_pt_BR.properties b/core/src/main/resources/hudson/logging/LogRecorderManager/levels_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..7c75a280a7b4453190356764ea6405b3d64c8815 --- /dev/null +++ b/core/src/main/resources/hudson/logging/LogRecorderManager/levels_pt_BR.properties @@ -0,0 +1,33 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Reginaldo L. Russinholi +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Level=N\u00EDvel +# http://wiki.hudson-ci.org/display/HUDSON/Logger+Configuration +url=http://wiki.hudson-ci.org/display/HUDSON/Logger+Configuration +# Logger with no name is the default logger. \ +# This level will be inherited by all loggers without a configured level. +defaultLoggerMsg=O logger sem nenhum nome é o logger padrão. \ + Este nível será herdado por todos os loggers sem um nível configurado. +Name=Nome +Adjust\ Levels=Ajustar Níveis +Submit=Submeter +Logger\ Configuration=Configura\u00E7\u00E3o do logger diff --git a/core/src/main/resources/hudson/logging/LogRecorderManager/levels_ru.properties b/core/src/main/resources/hudson/logging/LogRecorderManager/levels_ru.properties new file mode 100644 index 0000000000000000000000000000000000000000..fc1b6971f77af48bff852bb3b94448514e008c1f --- /dev/null +++ b/core/src/main/resources/hudson/logging/LogRecorderManager/levels_ru.properties @@ -0,0 +1,29 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Adjust\ Levels=\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430 \u0443\u0440\u043E\u0432\u043D\u0435\u0439 \u043B\u043E\u0433\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F +Level=\u0423\u0440\u043E\u0432\u0435\u043D\u044C \u043B\u043E\u0433\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F +Logger\ Configuration=\u041A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044F \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0442\u043E\u0440\u0430 \u043B\u043E\u0433\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F +Name=\u0418\u043C\u044F +Submit=\u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C +defaultLoggerMsg=\u0420\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0442\u043E\u0440 \u0431\u0435\u0437 \u0438\u043C\u0435\u043D\u0438 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442\u0441\u044F \u043F\u043E-\u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E. \u0423\u0440\u043E\u0432\u0435\u043D\u044C \u043B\u043E\u0433\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F \u0437\u0430\u0434\u0430\u043D\u043D\u044B\u0439 \u0434\u043B\u044F \u043D\u0435\u0433\u043E \u043D\u0430\u0441\u043B\u0435\u0434\u0443\u0435\u0442\u0441\u044F \u0432\u0441\u0435\u043C\u0438 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0442\u043E\u0440\u0430\u043C\u0438, \u0434\u043B\u044F \u043A\u043E\u0442\u043E\u0440\u044B\u0445 \u0443\u0440\u043E\u0432\u0435\u043D\u044C \u043B\u043E\u0433\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F \u043D\u0435 \u0437\u0430\u0434\u0430\u043D. +url=http://wiki.hudson-ci.org/display/HUDSON/Logger+Configuration diff --git a/core/src/main/resources/hudson/logging/LogRecorderManager/new_da.properties b/core/src/main/resources/hudson/logging/LogRecorderManager/new_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..03a148422b18e1455627f2af8e0b878e6833ba15 --- /dev/null +++ b/core/src/main/resources/hudson/logging/LogRecorderManager/new_da.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Name=Navn diff --git a/core/src/main/resources/hudson/logging/LogRecorderManager/new_de.properties b/core/src/main/resources/hudson/logging/LogRecorderManager/new_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..742a35bc0f7cc833806c07c3e048720a2c536969 --- /dev/null +++ b/core/src/main/resources/hudson/logging/LogRecorderManager/new_de.properties @@ -0,0 +1 @@ +Name=Name diff --git a/core/src/main/resources/hudson/logging/LogRecorderManager/new_es.properties b/core/src/main/resources/hudson/logging/LogRecorderManager/new_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..4ad9e470e326b080373db8b67a7c695ec1784501 --- /dev/null +++ b/core/src/main/resources/hudson/logging/LogRecorderManager/new_es.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Name=Nombre diff --git a/core/src/main/resources/hudson/logging/LogRecorderManager/new_fr.properties b/core/src/main/resources/hudson/logging/LogRecorderManager/new_fr.properties index 0f3d0e17f1f649e9a14d523503377de5786d9aac..8df6c555c0b5150757f34e5eff15dcb39a2d0238 100644 --- a/core/src/main/resources/hudson/logging/LogRecorderManager/new_fr.properties +++ b/core/src/main/resources/hudson/logging/LogRecorderManager/new_fr.properties @@ -20,4 +20,4 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Name=Nom +Name=Nom diff --git a/core/src/main/resources/hudson/logging/LogRecorderManager/new_ko.properties b/core/src/main/resources/hudson/logging/LogRecorderManager/new_ko.properties new file mode 100644 index 0000000000000000000000000000000000000000..fd73b83c81bf3e8d1132c60f900956f5330c9cf8 --- /dev/null +++ b/core/src/main/resources/hudson/logging/LogRecorderManager/new_ko.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Name=\uC774\uB984 diff --git a/core/src/main/resources/hudson/logging/LogRecorderManager/new_pt_BR.properties b/core/src/main/resources/hudson/logging/LogRecorderManager/new_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..2e93fb01bb3330284661a9735b6ade59cce4af97 --- /dev/null +++ b/core/src/main/resources/hudson/logging/LogRecorderManager/new_pt_BR.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Reginaldo L. Russinholi +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Name=Nome diff --git a/core/src/main/resources/hudson/logging/LogRecorderManager/new_ru.properties b/core/src/main/resources/hudson/logging/LogRecorderManager/new_ru.properties new file mode 100644 index 0000000000000000000000000000000000000000..e08ee3b50f04fdc90e26626a2ae07807611aa6eb --- /dev/null +++ b/core/src/main/resources/hudson/logging/LogRecorderManager/new_ru.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Name=\u0418\u043C\u044F diff --git a/core/src/main/resources/hudson/logging/LogRecorderManager/new_zh_CN.properties b/core/src/main/resources/hudson/logging/LogRecorderManager/new_zh_CN.properties new file mode 100644 index 0000000000000000000000000000000000000000..fdd20db4f466c46ba473d87d8a89787b19797a2e --- /dev/null +++ b/core/src/main/resources/hudson/logging/LogRecorderManager/new_zh_CN.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Name=\u540D\u79F0 diff --git a/core/src/main/resources/hudson/logging/LogRecorderManager/sidepanel.jelly b/core/src/main/resources/hudson/logging/LogRecorderManager/sidepanel.jelly index 0c8fe4b64e86e1a218df7cef502458907adb1204..4005a034df657bd19be92648257f53cde4dd40f3 100644 --- a/core/src/main/resources/hudson/logging/LogRecorderManager/sidepanel.jelly +++ b/core/src/main/resources/hudson/logging/LogRecorderManager/sidepanel.jelly @@ -33,6 +33,7 @@ THE SOFTWARE. + - \ No newline at end of file + diff --git a/core/src/main/resources/hudson/logging/LogRecorderManager/sidepanel_da.properties b/core/src/main/resources/hudson/logging/LogRecorderManager/sidepanel_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..a23ce68156b57bd43b0f543a41d2a6b6ba0b7151 --- /dev/null +++ b/core/src/main/resources/hudson/logging/LogRecorderManager/sidepanel_da.properties @@ -0,0 +1,27 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +All\ Logs=Alle logs +New\ Log\ Recorder=Ny logopsamler +Back\ to\ Dashboard=Tilbage til oversigtssiden +Logger\ List=Loggerliste +Log\ Levels=Logningsniveauer diff --git a/core/src/main/resources/hudson/logging/LogRecorderManager/sidepanel_de.properties b/core/src/main/resources/hudson/logging/LogRecorderManager/sidepanel_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..c02cdd108948872567ee7678b070305d845903fa --- /dev/null +++ b/core/src/main/resources/hudson/logging/LogRecorderManager/sidepanel_de.properties @@ -0,0 +1,5 @@ +Back\ to\ Dashboard=Zurück zur Übersicht +Logger\ List=Logger-Liste +All\ Logs=Alle Logs +New\ Log\ Recorder=Neuer Log-Rekorder +Log\ Levels=Log-Prioritäten (Levels) \ No newline at end of file diff --git a/core/src/main/resources/hudson/logging/LogRecorderManager/sidepanel_es.properties b/core/src/main/resources/hudson/logging/LogRecorderManager/sidepanel_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..11ce844bb06181747aa3b64963bf5fd01e9bf09f --- /dev/null +++ b/core/src/main/resources/hudson/logging/LogRecorderManager/sidepanel_es.properties @@ -0,0 +1,27 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Back\ to\ Dashboard=Volver al Panel de control +Logger\ List=Lista de Loggers +All\ Logs=Todos los Logs +New\ Log\ Recorder=Nuevo registro de Logs +Log\ Levels=Niveles de Log diff --git a/core/src/main/resources/hudson/logging/LogRecorderManager/sidepanel_fr.properties b/core/src/main/resources/hudson/logging/LogRecorderManager/sidepanel_fr.properties index 6b8406f330d19b8e0fe910cec7b9ef71dc925952..c1e36971959ae2d441c7ebcb04787a427c32413f 100644 --- a/core/src/main/resources/hudson/logging/LogRecorderManager/sidepanel_fr.properties +++ b/core/src/main/resources/hudson/logging/LogRecorderManager/sidepanel_fr.properties @@ -20,7 +20,7 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Back\ to\ Dashboard=Retour au tableau de bord -Logger\ List=Liste des loggers -All\ Logs=Tous les logs -New\ Log\ Recorder=Nouveau enregistreur de log +Back\ to\ Dashboard=Retour au tableau de bord +Logger\ List=Liste des loggers +All\ Logs=Tous les logs +New\ Log\ Recorder=Nouveau enregistreur de log diff --git a/core/src/main/resources/hudson/logging/LogRecorderManager/sidepanel_ja.properties b/core/src/main/resources/hudson/logging/LogRecorderManager/sidepanel_ja.properties index cc96668c20e0a34c47308c96ed8c70123ab8d904..fc0c1d955b9bac323752f2426025313d5fe4a260 100644 --- a/core/src/main/resources/hudson/logging/LogRecorderManager/sidepanel_ja.properties +++ b/core/src/main/resources/hudson/logging/LogRecorderManager/sidepanel_ja.properties @@ -24,3 +24,4 @@ Back\ to\ Dashboard=\u30C0\u30C3\u30B7\u30E5\u30DC\u30FC\u30C9\u3078\u623B\u308B Logger\ List=\u30ED\u30AC\u30FC\u30EA\u30B9\u30C8 All\ Logs=\u3059\u3079\u3066\u306E\u30ED\u30B0 New\ Log\ Recorder=\u65B0\u898F\u30EC\u30B3\u30FC\u30C0\u30FC\u767B\u9332 +Log\ Levels=\u30ED\u30B0\u30EC\u30D9\u30EB diff --git a/core/src/main/resources/hudson/logging/LogRecorderManager/sidepanel_ko.properties b/core/src/main/resources/hudson/logging/LogRecorderManager/sidepanel_ko.properties new file mode 100644 index 0000000000000000000000000000000000000000..c69d4bb5f490a0bb062c22909ba782f3671982d6 --- /dev/null +++ b/core/src/main/resources/hudson/logging/LogRecorderManager/sidepanel_ko.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +All\ Logs=\uBAA8\uB4E0 \uB85C\uADF8 +Back\ to\ Dashboard=\uB300\uC2DC\uBCF4\uB4DC\uB85C \uB3CC\uC544\uAC10 +Logger\ List=\uB85C\uADF8 \uBAA9\uB85D +New\ Log\ Recorder=\uC0C8 \uB85C\uADF8 \uAE30\uB85D\uAE30 diff --git a/core/src/main/resources/hudson/logging/LogRecorderManager/sidepanel_nl.properties b/core/src/main/resources/hudson/logging/LogRecorderManager/sidepanel_nl.properties new file mode 100644 index 0000000000000000000000000000000000000000..357c9e34cca341669609a5ea914b553d794612db --- /dev/null +++ b/core/src/main/resources/hudson/logging/LogRecorderManager/sidepanel_nl.properties @@ -0,0 +1,27 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +All\ Logs=Alle Logs +Back\ to\ Dashboard=Terug naar Dashboard +Log\ Levels=Logniveaus +Logger\ List=Lijst Loggers +New\ Log\ Recorder=Nieuw Logrecord diff --git a/core/src/main/resources/hudson/logging/LogRecorderManager/sidepanel_pt_BR.properties b/core/src/main/resources/hudson/logging/LogRecorderManager/sidepanel_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..184504939422adde87048cb16f9f4b47c6b481ad --- /dev/null +++ b/core/src/main/resources/hudson/logging/LogRecorderManager/sidepanel_pt_BR.properties @@ -0,0 +1,27 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Reginaldo L. Russinholi +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +All\ Logs=Todos os Logs +New\ Log\ Recorder=Novo Registrador de Log +Back\ to\ Dashboard=Voltar para o Painel Principal +Logger\ List=Lista de Loggers +Log\ Levels=Níveis de Log diff --git a/core/src/main/resources/hudson/logging/LogRecorderManager/sidepanel_ru.properties b/core/src/main/resources/hudson/logging/LogRecorderManager/sidepanel_ru.properties new file mode 100644 index 0000000000000000000000000000000000000000..ddeacfb06aca1b7a187265ee0f40148e0fdea890 --- /dev/null +++ b/core/src/main/resources/hudson/logging/LogRecorderManager/sidepanel_ru.properties @@ -0,0 +1,27 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +All\ Logs=\u0412\u0441\u0435 \u043B\u043E\u0433\u0438 +Back\ to\ Dashboard=\u0414\u043E\u043C\u043E\u0439 +Log\ Levels=\u0423\u0440\u043E\u0432\u043D\u0438 \u043B\u043E\u0433\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F +Logger\ List=\u0421\u043F\u0438\u0441\u043E\u043A \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0442\u043E\u0440\u043E\u0432 +New\ Log\ Recorder=\u041D\u043E\u0432\u044B\u0439 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0442\u043E\u0440 \u043B\u043E\u0433\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F diff --git a/core/src/main/resources/hudson/logging/LogRecorderManager/sidepanel_sv_SE.properties b/core/src/main/resources/hudson/logging/LogRecorderManager/sidepanel_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..b6b68e1b22414b871baa2d43fd3adf2ddc2b819f --- /dev/null +++ b/core/src/main/resources/hudson/logging/LogRecorderManager/sidepanel_sv_SE.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Back\ to\ Dashboard=Tillbaka till instrumentpanel diff --git a/core/src/main/resources/hudson/logging/LogRecorderManager/sidepanel_zh_CN.properties b/core/src/main/resources/hudson/logging/LogRecorderManager/sidepanel_zh_CN.properties new file mode 100644 index 0000000000000000000000000000000000000000..46ec69d8a76551ff51b3f8b4431a3fc12dbde618 --- /dev/null +++ b/core/src/main/resources/hudson/logging/LogRecorderManager/sidepanel_zh_CN.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +All\ Logs=\u6240\u6709\u65E5\u5FD7 +Back\ to\ Dashboard=\u8FD4\u56DE +Logger\ List=\u65E5\u5FD7\u5217\u8868 +New\ Log\ Recorder=\u65B0\u5EFA\u65E5\u5FD7\u8BB0\u5F55\u5668 diff --git a/core/src/main/resources/hudson/logging/LogRecorderManager/sidepanel_zh_TW.properties b/core/src/main/resources/hudson/logging/LogRecorderManager/sidepanel_zh_TW.properties new file mode 100644 index 0000000000000000000000000000000000000000..165c428b4fe19529e8cc752975249563d15a04bf --- /dev/null +++ b/core/src/main/resources/hudson/logging/LogRecorderManager/sidepanel_zh_TW.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +All\ Logs=\u6240\u6709\u8A18\u9304 diff --git a/core/src/main/resources/hudson/logging/Messages.properties b/core/src/main/resources/hudson/logging/Messages.properties new file mode 100644 index 0000000000000000000000000000000000000000..ec09714430ae33ee4f70be66aa0d04c95388db69 --- /dev/null +++ b/core/src/main/resources/hudson/logging/Messages.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + +LogRecorderManager.init=Initialing log recorders +LogRecorderManager.DisplayName=log \ No newline at end of file diff --git a/core/src/main/resources/hudson/logging/Messages_da.properties b/core/src/main/resources/hudson/logging/Messages_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..0974f257d5e8b44cf5c9f84814d26593c5ecf5e9 --- /dev/null +++ b/core/src/main/resources/hudson/logging/Messages_da.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +LogRecorderManager.init=Initialiserer log opsamlere +LogRecorderManager.DisplayName=Log diff --git a/core/src/main/resources/hudson/logging/Messages_de.properties b/core/src/main/resources/hudson/logging/Messages_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..f76b7ce7c4ea11b2a94abd23aed52abb7386a9c3 --- /dev/null +++ b/core/src/main/resources/hudson/logging/Messages_de.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +LogRecorderManager.init=Initialisiere Log-Rekorder \ No newline at end of file diff --git a/core/src/main/resources/hudson/logging/Messages_es.properties b/core/src/main/resources/hudson/logging/Messages_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..6df73071373d74729fe5045353325378850166c2 --- /dev/null +++ b/core/src/main/resources/hudson/logging/Messages_es.properties @@ -0,0 +1,2 @@ +LogRecorderManager.init=Inicializando registros de ''log'' +LogRecorderManager.DisplayName=log diff --git a/core/src/main/resources/hudson/logging/Messages_ja.properties b/core/src/main/resources/hudson/logging/Messages_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..a452b731fb00491c71eff0f5886a8e3ca9491779 --- /dev/null +++ b/core/src/main/resources/hudson/logging/Messages_ja.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + +LogRecorderManager.init=\u30ED\u30B0\u30EC\u30B3\u30FC\u30C0\u30FC\u306E\u521D\u671F\u5316\u4E2D +LogRecorderManager.DisplayName=\u30ED\u30B0 \ No newline at end of file diff --git a/core/src/main/resources/hudson/logging/Messages_pt_BR.properties b/core/src/main/resources/hudson/logging/Messages_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..f49cd7a239911ce12edc3c81c25948ff7552b6c8 --- /dev/null +++ b/core/src/main/resources/hudson/logging/Messages_pt_BR.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Reginaldo L. Russinholi +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +# Initialing log recorders +LogRecorderManager.init=Inicializando registradores de log +# log +LogRecorderManager.DisplayName=log diff --git a/core/src/main/resources/hudson/matrix/JDKAxis/config.jelly b/core/src/main/resources/hudson/matrix/JDKAxis/config.jelly new file mode 100644 index 0000000000000000000000000000000000000000..9e82ffbbd7d94eb86bcd2de7ad933002ec2d9a09 --- /dev/null +++ b/core/src/main/resources/hudson/matrix/JDKAxis/config.jelly @@ -0,0 +1,34 @@ + + + + + + + + + + + + diff --git a/core/src/main/resources/hudson/matrix/LabelAxis/config.jelly b/core/src/main/resources/hudson/matrix/LabelAxis/config.jelly new file mode 100644 index 0000000000000000000000000000000000000000..0ba23b81ae96f2b12b43f2ec17894288cdf57dd5 --- /dev/null +++ b/core/src/main/resources/hudson/matrix/LabelAxis/config.jelly @@ -0,0 +1,56 @@ + + + + + + + +
    + + + diff --git a/core/src/main/resources/hudson/matrix/LabelAxis/config_da.properties b/core/src/main/resources/hudson/matrix/LabelAxis/config_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..bf0e83943cd27f796757bdedd80e62990e215060 --- /dev/null +++ b/core/src/main/resources/hudson/matrix/LabelAxis/config_da.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Node/Label=Node/Etiket +Labels=Etiketter +Individual\ nodes=Individuelle noder +Name=Navn diff --git a/core/src/main/resources/hudson/matrix/LabelAxis/config_ja.properties b/core/src/main/resources/hudson/matrix/LabelAxis/config_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..7d3dc298e06f0d381bc733d00fd237cafd28adc2 --- /dev/null +++ b/core/src/main/resources/hudson/matrix/LabelAxis/config_ja.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Name=\u540d\u524d +Node/Label=\u30ce\u30fc\u30c9/\u30e9\u30d9\u30eb +Labels=\u30e9\u30d9\u30eb +Individual\ nodes=\u500b\u5225\u306e\u30ce\u30fc\u30c9 \ No newline at end of file diff --git a/war/resources/help/matrix/label.html b/core/src/main/resources/hudson/matrix/LabelAxis/help-labels.html similarity index 100% rename from war/resources/help/matrix/label.html rename to core/src/main/resources/hudson/matrix/LabelAxis/help-labels.html diff --git a/core/src/main/resources/hudson/matrix/LabelAxis/help-labels_de.html b/core/src/main/resources/hudson/matrix/LabelAxis/help-labels_de.html new file mode 100644 index 0000000000000000000000000000000000000000..a9519252b16f6a890a6c6501f81599b78644044e --- /dev/null +++ b/core/src/main/resources/hudson/matrix/LabelAxis/help-labels_de.html @@ -0,0 +1,30 @@ +
    + Geben Sie die Knoten an, auf denen Ihre Builds ausgeführt werden sollen. +
      +
    • + Ist kein Knoten ausgewählt, wird Hudson einen verfügbaren Knoten auswählen, + um den Build durchzuführen (dies ist das gleiche Verhalten wie beim + "Free-Style-Projekt", wenn "Projekt an Knoten binden" abgewählt ist). + Dies ist sinnvoll, wenn das Projekt keine Abhängigkeiten zu einem bestimmten + Knoten aufweist, da es Hudson erlaubt, die Knoten optimal einzusetzen. +
    • + Ist ein Knoten ausgewählt, wird Hudson den Build immer auf dem gewählten Knoten + (wenn ein Knoten unter "Bestimmte Knoten" ausgewählt wurde) oder auf einem Knoten, + der zum gewählten Label gehört (wenn ein Knoten unter "Labels" ausgewählt wurde), ausführen. + Dies ist sinnvoll, wenn der Build auf einem bestimmten Rechner oder + Rechnergruppe ausgeführt werden soll. Beispielsweise könnte der Build ein + bestimmtes Betriebssystem wie MacOS X voraussetzen. +
    • + Sind mehrere Knoten ausgewählt, wird die Konfigurationsmatrix so erweitert, + dass sie alle Werte beinhaltet. Builds werden dann auf allen gewählten Knoten/Labels + ausgeführt. + Dies ist sinnvoll, wenn Sie beispielsweise Tests unter Windows, Linux und + Solaris ausführen möchten. +
    + +
    + Während eines Builds ist der aktuelle Name des Knotens bzw. des Labels als Achse + label sichtbar. + Im Hilfetext zu "Achsen" finden Sie weitere Informationen, wie Sie auf die + Werte der Achsenvariablen zugreifen können. +
    \ No newline at end of file diff --git a/war/resources/help/matrix/label_fr.html b/core/src/main/resources/hudson/matrix/LabelAxis/help-labels_fr.html similarity index 100% rename from war/resources/help/matrix/label_fr.html rename to core/src/main/resources/hudson/matrix/LabelAxis/help-labels_fr.html diff --git a/war/resources/help/matrix/label_ja.html b/core/src/main/resources/hudson/matrix/LabelAxis/help-labels_ja.html similarity index 100% rename from war/resources/help/matrix/label_ja.html rename to core/src/main/resources/hudson/matrix/LabelAxis/help-labels_ja.html diff --git a/war/resources/help/matrix/label_nl.html b/core/src/main/resources/hudson/matrix/LabelAxis/help-labels_nl.html old mode 100755 new mode 100644 similarity index 100% rename from war/resources/help/matrix/label_nl.html rename to core/src/main/resources/hudson/matrix/LabelAxis/help-labels_nl.html diff --git a/war/resources/help/matrix/label_pt_BR.html b/core/src/main/resources/hudson/matrix/LabelAxis/help-labels_pt_BR.html similarity index 100% rename from war/resources/help/matrix/label_pt_BR.html rename to core/src/main/resources/hudson/matrix/LabelAxis/help-labels_pt_BR.html diff --git a/war/resources/help/matrix/label_ru.html b/core/src/main/resources/hudson/matrix/LabelAxis/help-labels_ru.html similarity index 100% rename from war/resources/help/matrix/label_ru.html rename to core/src/main/resources/hudson/matrix/LabelAxis/help-labels_ru.html diff --git a/war/resources/help/matrix/label_tr.html b/core/src/main/resources/hudson/matrix/LabelAxis/help-labels_tr.html similarity index 100% rename from war/resources/help/matrix/label_tr.html rename to core/src/main/resources/hudson/matrix/LabelAxis/help-labels_tr.html diff --git a/core/src/main/resources/hudson/matrix/MatrixBuild/ajaxMatrix.jelly b/core/src/main/resources/hudson/matrix/MatrixBuild/ajaxMatrix.jelly index 88f8a8099f51dd013c874a8ea74c4d08944606e6..3f2860108124680a23e7c36901a4429be7f370c5 100644 --- a/core/src/main/resources/hudson/matrix/MatrixBuild/ajaxMatrix.jelly +++ b/core/src/main/resources/hudson/matrix/MatrixBuild/ajaxMatrix.jelly @@ -25,6 +25,7 @@ THE SOFTWARE. + @@ -34,7 +35,7 @@ THE SOFTWARE. ${%Not run} - + ${p.tooltip} ${p.combination.toString(o.z)} diff --git a/core/src/main/resources/hudson/matrix/MatrixBuild/ajaxMatrix_da.properties b/core/src/main/resources/hudson/matrix/MatrixBuild/ajaxMatrix_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..9d5c0d78b242bcc2d123ebc1a584a6bd34645fb6 --- /dev/null +++ b/core/src/main/resources/hudson/matrix/MatrixBuild/ajaxMatrix_da.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Not\ run=Ikke k\u00f8rt diff --git a/core/src/main/resources/hudson/matrix/MatrixBuild/ajaxMatrix_de.properties b/core/src/main/resources/hudson/matrix/MatrixBuild/ajaxMatrix_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..0b34ad1f349f4a95a00d40b21e1df414e55fc8a0 --- /dev/null +++ b/core/src/main/resources/hudson/matrix/MatrixBuild/ajaxMatrix_de.properties @@ -0,0 +1 @@ +Not\ run=Nicht gelaufen diff --git a/core/src/main/resources/hudson/matrix/MatrixBuild/ajaxMatrix_es.properties b/core/src/main/resources/hudson/matrix/MatrixBuild/ajaxMatrix_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..5796368ce80cf481a46c0782b960b74883d1651b --- /dev/null +++ b/core/src/main/resources/hudson/matrix/MatrixBuild/ajaxMatrix_es.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Not\ run=No ejecutar diff --git a/core/src/main/resources/hudson/matrix/MatrixBuild/ajaxMatrix_ja.properties b/core/src/main/resources/hudson/matrix/MatrixBuild/ajaxMatrix_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..78f16d75f9d325863486789cd4b40d3df30b33e1 --- /dev/null +++ b/core/src/main/resources/hudson/matrix/MatrixBuild/ajaxMatrix_ja.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Not\ run=\u672A\u5B9F\u884C diff --git a/core/src/main/resources/hudson/matrix/MatrixBuild/ajaxMatrix_pt_BR.properties b/core/src/main/resources/hudson/matrix/MatrixBuild/ajaxMatrix_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..a81fa8825e70fc10c057366409cc7205b9668ccb --- /dev/null +++ b/core/src/main/resources/hudson/matrix/MatrixBuild/ajaxMatrix_pt_BR.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Reginaldo L. Russinholi +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Not\ run=Não executar diff --git a/core/src/main/resources/hudson/matrix/MatrixBuild/main.jelly b/core/src/main/resources/hudson/matrix/MatrixBuild/main.jelly index 43bb90fd7a6e0eda1b7372494365f11514e9e21d..1701ef174d889a18aea172cc87076a97bdb35da6 100644 --- a/core/src/main/resources/hudson/matrix/MatrixBuild/main.jelly +++ b/core/src/main/resources/hudson/matrix/MatrixBuild/main.jelly @@ -22,6 +22,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --> + \ No newline at end of file diff --git a/core/src/main/resources/hudson/matrix/MatrixProject/ajaxMatrix.jelly b/core/src/main/resources/hudson/matrix/MatrixProject/ajaxMatrix.jelly index 1fba0a0a5c70b2054f944d7659665d3b393b631b..3046cc7fb839307f95e9dcc24b96f3a16cc4e686 100644 --- a/core/src/main/resources/hudson/matrix/MatrixProject/ajaxMatrix.jelly +++ b/core/src/main/resources/hudson/matrix/MatrixProject/ajaxMatrix.jelly @@ -25,6 +25,7 @@ THE SOFTWARE. + diff --git a/core/src/main/resources/hudson/matrix/MatrixProject/ajaxMatrix_da.properties b/core/src/main/resources/hudson/matrix/MatrixProject/ajaxMatrix_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..9a6b92b5ae6f26a0a87c39543d9a3b344e9396ef --- /dev/null +++ b/core/src/main/resources/hudson/matrix/MatrixProject/ajaxMatrix_da.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Not\ configured=Ikke konfigureret diff --git a/core/src/main/resources/hudson/matrix/MatrixProject/ajaxMatrix_de.properties b/core/src/main/resources/hudson/matrix/MatrixProject/ajaxMatrix_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..0b7f459d48f1663b2cacdb6077b6d7813510da6e --- /dev/null +++ b/core/src/main/resources/hudson/matrix/MatrixProject/ajaxMatrix_de.properties @@ -0,0 +1 @@ +Not\ configured=Nicht konfiguriert diff --git a/core/src/main/resources/hudson/matrix/MatrixProject/ajaxMatrix_es.properties b/core/src/main/resources/hudson/matrix/MatrixProject/ajaxMatrix_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..f8e08a24a2f3441e16b57b10db78897fa03023a6 --- /dev/null +++ b/core/src/main/resources/hudson/matrix/MatrixProject/ajaxMatrix_es.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Not\ configured=Sin configurar diff --git a/core/src/main/resources/hudson/matrix/MatrixProject/ajaxMatrix_ja.properties b/core/src/main/resources/hudson/matrix/MatrixProject/ajaxMatrix_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..0ec0e07631b3a10dc7198f5a5047d265c53ff147 --- /dev/null +++ b/core/src/main/resources/hudson/matrix/MatrixProject/ajaxMatrix_ja.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Not\ configured=\u672A\u8A2D\u5B9A diff --git a/core/src/main/resources/hudson/matrix/MatrixProject/ajaxMatrix_pt_BR.properties b/core/src/main/resources/hudson/matrix/MatrixProject/ajaxMatrix_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..4f281c50d9dad0eca5c0831077c399ae09315052 --- /dev/null +++ b/core/src/main/resources/hudson/matrix/MatrixProject/ajaxMatrix_pt_BR.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Not\ configured=Não configurado diff --git a/core/src/main/resources/hudson/matrix/MatrixProject/configure-entries.jelly b/core/src/main/resources/hudson/matrix/MatrixProject/configure-entries.jelly index 3ccc9d85060d8e4fc74102664a560789f32bc3c9..c41c7b7a9ad0730dcfef6b932b235dc97de18774 100644 --- a/core/src/main/resources/hudson/matrix/MatrixProject/configure-entries.jelly +++ b/core/src/main/resources/hudson/matrix/MatrixProject/configure-entries.jelly @@ -1,7 +1,7 @@ + + + + + + + + - - - - - - - - - - - - - - - - - -
    - - - -
    -
    -
    - - - - - - - - - - - - - -
    - - -
    -
    -
    -
    -
    -
    - + + + + + + + + + + @@ -113,6 +67,19 @@ THE SOFTWARE. + + + + + + + + +
    diff --git a/core/src/main/resources/hudson/matrix/MatrixProject/configure-entries.properties b/core/src/main/resources/hudson/matrix/MatrixProject/configure-entries.properties new file mode 100644 index 0000000000000000000000000000000000000000..20f08d55090a23d9dcdfd7eebf51ecbe423c74e9 --- /dev/null +++ b/core/src/main/resources/hudson/matrix/MatrixProject/configure-entries.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +required.result.description=\ + Execute the rest of the combinations only if the touchstone builds has (at least) the selected result. diff --git a/core/src/main/resources/hudson/matrix/MatrixProject/configure-entries_da.properties b/core/src/main/resources/hudson/matrix/MatrixProject/configure-entries_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..e6e58b33805711e4cfd9278f628562c1371d063f --- /dev/null +++ b/core/src/main/resources/hudson/matrix/MatrixProject/configure-entries_da.properties @@ -0,0 +1,34 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Stable=Stabil +Required\ result=N\u00f8dvendigt resultat +Execute\ touchstone\ builds\ first=K\u00f8r touchstone byg f\u00f8rst +Filter=Filter +Unstable=Ustabil +Combination\ Filter=Kombinationsfilter +Advanced\ Project\ Options=Avancerede Indstillinger +Configuration\ Matrix=\ +Afvikl kun resten af byggene hvis touchstone byggene har mindst det \u00f8nskede resultat. +Add\ axis=Tilf\u00f8j Akse +Run\ each\ configuration\ sequentially=K\u00f8r hver konfiguration sekventielt +required.result.description=Afvikl kun resten af kombinationerne hvis touchstone byggene har mindst det \u00f8nskede resultat. diff --git a/core/src/main/resources/hudson/matrix/MatrixProject/configure-entries_de.properties b/core/src/main/resources/hudson/matrix/MatrixProject/configure-entries_de.properties index 29c092ff0de96ae34b5cc0fc7bae8930d07caf64..b696353b29063988f9836cf5f99c338e88806caa 100644 --- a/core/src/main/resources/hudson/matrix/MatrixProject/configure-entries_de.properties +++ b/core/src/main/resources/hudson/matrix/MatrixProject/configure-entries_de.properties @@ -20,6 +20,12 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. + +Required\ result=Mindest-Resultat +Stable=Stabil +Unstable=Instabil +required.result.description=Führe verbleibende Kombinationen nur aus, wenn \ + die Touchstone-Builds mindestens das gewählte Resultat lieferten. Advanced\ Project\ Options=Erweiterte Projekteinstellungen Configuration\ Matrix=Konfigurationsmatrix Build\ on\ multiple\ nodes=Baue auf mehreren Knoten @@ -31,3 +37,7 @@ Delete=L Individual\ nodes=Einzelne Knoten Labels=Labels Axes=Achsen +Combination\ Filter=Kombinationsfilter +Filter=Filter +Execute\ touchstone\ builds\ first=Touchstone-Builds zuerst ausführen +Run\ each\ configuration\ sequentially=Konfigurationen sequentiell ausführen diff --git a/core/src/main/resources/hudson/matrix/MatrixProject/configure-entries_es.properties b/core/src/main/resources/hudson/matrix/MatrixProject/configure-entries_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..1305fa0aae143a74c6c9960a1491de2645ec0c75 --- /dev/null +++ b/core/src/main/resources/hudson/matrix/MatrixProject/configure-entries_es.properties @@ -0,0 +1,41 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Advanced\ Project\ Options=Opciones avanzadas del proyecto +Configuration\ Matrix=Matriz de configuración +Build\ on\ multiple\ nodes=Ejecutar en múltiples nodos +Node=Nodo +Individual\ nodes=Nodos individuales +Labels=Etiquetas +Axes=Ejes +Name=Nombre +Values=Valores +Add\ more\ axis=Añadir mas ejes +Delete=Borrar +Run\ each\ configuration\ sequentially=Ejecutar cada configuración secuencialmente +Combination\ Filter=Filtro de combinación +Filter=Filtro +Execute\ touchstone\ builds\ first=Lanzar ejecuciones ''touchtone'' primero +Stable=Estable +Required\ result=Resultado requerido +Unstable=Inestable +required.result.description=Ejecutar el resto de combinaciones sólamente cuando la ejecución tiene (al menos) el resultado seleccionado. diff --git a/core/src/main/resources/hudson/matrix/MatrixProject/configure-entries_ja.properties b/core/src/main/resources/hudson/matrix/MatrixProject/configure-entries_ja.properties index 500ccdd524d821c1148f48ce29f0dacadaa5b2e0..4d4e28308560df17b2e060f173ecb962d2e61061 100644 --- a/core/src/main/resources/hudson/matrix/MatrixProject/configure-entries_ja.properties +++ b/core/src/main/resources/hudson/matrix/MatrixProject/configure-entries_ja.properties @@ -1,6 +1,6 @@ # The MIT License # -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe, Stephen Connolly, id:cactusman +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe, Stephen Connolly, id:cactusman # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -20,16 +20,24 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Advanced\ Project\ Options=\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u9AD8\u5EA6\u306A\u8A2D\u5B9A -Axes=\u69CB\u6210\u8EF8 -Configuration\ Matrix=\u69CB\u6210\u30DE\u30C8\u30EA\u30C3\u30AF\u30B9 -Build\ on\ multiple\ nodes=\u8907\u6570\u306E\u30CE\u30FC\u30C9\u4E0A\u3067\u306E\u30D3\u30EB\u30C9 -Node=\u30CE\u30FC\u30C9 -Name=\u540D\u524D +Advanced\ Project\ Options=\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u9ad8\u5ea6\u306a\u8a2d\u5b9a +Axes=\u69cb\u6210\u8ef8 +Configuration\ Matrix=\u30de\u30c8\u30ea\u30c3\u30af\u30b9\u306e\u8a2d\u5b9a +Build\ on\ multiple\ nodes=\u8907\u6570\u306e\u30ce\u30fc\u30c9\u4e0a\u3067\u306e\u30d3\u30eb\u30c9 +Node=\u30ce\u30fc\u30c9 +Name=\u540d\u524d Values=\u5024 -Add\ more\ axis=\u8EF8\u306E\u8FFD\u52A0 -Delete=\u524A\u9664 -Individual\ nodes=\u500B\u5225\u306E\u30CE\u30FC\u30C9 -Labels=\u30E9\u30D9\u30EB -Combination\ Filter=\u7D44\u307F\u5408\u308F\u305B\u30D5\u30A3\u30EB\u30BF\u30FC -Filter=\u30D5\u30A3\u30EB\u30BF\u30FC \ No newline at end of file +Add\ axis=\u8ef8\u306e\u8ffd\u52a0 +Delete=\u524a\u9664 +Individual\ nodes=\u500b\u5225\u306e\u30ce\u30fc\u30c9 +Labels=\u30e9\u30d9\u30eb +Combination\ Filter=\u7d44\u307f\u5408\u308f\u305b\u30d5\u30a3\u30eb\u30bf\u30fc +Filter=\u30d5\u30a3\u30eb\u30bf\u30fc +Run\ each\ configuration\ sequentially=\u5404\u8a2d\u5b9a\u3092\u9806\u6b21\u8d77\u52d5 +Execute\ touchstone\ builds\ first=\u6700\u521d\u306b\u7279\u5b9a\u306e\u30d3\u30eb\u30c9\u3092\u5b9f\u884c +Required\ result=\u30d3\u30eb\u30c9\u7d50\u679c\u6761\u4ef6 +required.result.description=\ + \u6700\u521d\u306b\u5b9f\u884c\u3057\u305f\u30d3\u30eb\u30c9\u304c(\u5c11\u306a\u304f\u3068\u3082)\u9078\u629e\u3057\u305f\u7d50\u679c\u3067\u3042\u308b\u5834\u5408\u306e\u307f\u3001\u6b8b\u308a\u306e\u7d44\u307f\u5408\u308f\u305b\u3092\u5b9f\u884c\u3057\u307e\u3059\u3002 +Stable=\u5b89\u5b9a +Unstable=\u4e0d\u5b89\u5b9a + diff --git a/core/src/main/resources/hudson/matrix/MatrixProject/configure-entries_pt_BR.properties b/core/src/main/resources/hudson/matrix/MatrixProject/configure-entries_pt_BR.properties index edc29366d5d5c130a0590b8448a94f26c2fef8bf..b069e18f5e09956011e708f7014d09ac8eed8ae4 100644 --- a/core/src/main/resources/hudson/matrix/MatrixProject/configure-entries_pt_BR.properties +++ b/core/src/main/resources/hudson/matrix/MatrixProject/configure-entries_pt_BR.properties @@ -27,4 +27,18 @@ Node=Nodo Name=Nome Values=Valor Add\ more\ axis=Adicionar mais eixos -Delete=Apagar \ No newline at end of file +Delete=Apagar +Axes=Eixos +Execute\ touchstone\ builds\ first=Executar construções ''touchstone'' primeiro +Unstable=Instável +Labels=Etiquetas +Run\ each\ configuration\ sequentially=Executar cada configuração sequencialmente +Individual\ nodes=Nós individuais +Stable=Estável +Required\ result=Resultado requerido +Filter=Filtro +Combination\ Filter=Filtro de Combinação +# \ +# Execute the rest of the combinations only if the touchstone builds has (at least) the selected result. +required.result.description=\ + Executar o resto das combinações apenas se as construções ''touchstone'' tiverem (pelo menos) o resultado selecionado. diff --git a/core/src/main/resources/hudson/matrix/MatrixProject/help-runSequentially.html b/core/src/main/resources/hudson/matrix/MatrixProject/help-runSequentially.html new file mode 100644 index 0000000000000000000000000000000000000000..4c18630d666a8e9fcf8a50b378c12ffe54fc6b03 --- /dev/null +++ b/core/src/main/resources/hudson/matrix/MatrixProject/help-runSequentially.html @@ -0,0 +1,5 @@ +
    + With this option checked, Hudson builds each configuration in a sequence. + This can be useful if your configuration needs to access the shared resource + like database, as well as to avoid crowding out other jobs. +
    \ No newline at end of file diff --git a/core/src/main/resources/hudson/matrix/MatrixProject/help-runSequentially_de.html b/core/src/main/resources/hudson/matrix/MatrixProject/help-runSequentially_de.html new file mode 100644 index 0000000000000000000000000000000000000000..a212786c360c2cc0085f690dbd3f5767b485d3db --- /dev/null +++ b/core/src/main/resources/hudson/matrix/MatrixProject/help-runSequentially_de.html @@ -0,0 +1,6 @@ +
    + Wenn angewählt, baut Hudson alle Konfigurationen sequentiell nacheinander. + Dies kann zum einen nützlich sein, wenn Konfigurationen eine gemeinsame Ressource + benötigen, z.B. eine Datenbank. Zum anderen vermeidet es die Verdrängung + anderer Jobs in der Build-Warteschlange. +
    \ No newline at end of file diff --git a/core/src/main/resources/hudson/matrix/MatrixProject/help-runSequentially_ja.html b/core/src/main/resources/hudson/matrix/MatrixProject/help-runSequentially_ja.html new file mode 100644 index 0000000000000000000000000000000000000000..9304375819c5a7e10207a29c46c8b6ec45db41ba --- /dev/null +++ b/core/src/main/resources/hudson/matrix/MatrixProject/help-runSequentially_ja.html @@ -0,0 +1,4 @@ +
    + å„設定を順番ã«ãƒ“ルドã—ã¾ã™ã€‚ã“ã‚Œã¯ã€(複数ジョブãŒåŒæ™‚ã«ãƒ“ルドã•ã‚Œã‚‹ã“ã¨ã«ã‚ˆã‚Š)ä»–ã®ã‚¸ãƒ§ãƒ–ãŒãƒ“ルドã•ã‚Œãªã„ã“ã¨ã‚’防ãã¨ã¨ã‚‚ã«ã€ + データベースã®ã‚ˆã†ãªå…±æœ‰ãƒªã‚½ãƒ¼ã‚¹ã¸ã®ã‚¢ã‚¯ã‚»ã‚¹ã‚’å¿…è¦ã¨ã™ã‚‹å ´åˆã«å½¹ã«ç«‹ã¡ã¾ã™ã€‚ +
    \ No newline at end of file diff --git a/core/src/main/resources/hudson/matrix/MatrixProject/index.jelly b/core/src/main/resources/hudson/matrix/MatrixProject/index.jelly index 0b7da4c17d87c006e2ee690a1827256a00588e47..55f0c76ca9803ab256fcb4fc190cd5fbdcc5570e 100644 --- a/core/src/main/resources/hudson/matrix/MatrixProject/index.jelly +++ b/core/src/main/resources/hudson/matrix/MatrixProject/index.jelly @@ -22,12 +22,24 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --> +

    ${%Project} ${it.name}

    - + + + +
    +
    + ${%This project is currently disabled} + + + +
    +
    +
    diff --git a/core/src/main/resources/hudson/matrix/MatrixProject/index_da.properties b/core/src/main/resources/hudson/matrix/MatrixProject/index_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..3ffe407a4243c339c491ddc8a219f1bcefb602ca --- /dev/null +++ b/core/src/main/resources/hudson/matrix/MatrixProject/index_da.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +This\ project\ is\ currently\ disabled=Dette projekt er for nuv\u00e6rende sl\u00e5et fra +Enable=Sl\u00e5 til +Project=Projekt diff --git a/core/src/main/resources/hudson/matrix/MatrixProject/index_es.properties b/core/src/main/resources/hudson/matrix/MatrixProject/index_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..a28a350c8ed9be257911a5ba69f0b7a69353d45f --- /dev/null +++ b/core/src/main/resources/hudson/matrix/MatrixProject/index_es.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Project=Proyecto diff --git a/core/src/main/resources/hudson/matrix/MatrixProject/index_fi.properties b/core/src/main/resources/hudson/matrix/MatrixProject/index_fi.properties new file mode 100644 index 0000000000000000000000000000000000000000..51ce9039c36ba450361b0886b9174da7ca49d660 --- /dev/null +++ b/core/src/main/resources/hudson/matrix/MatrixProject/index_fi.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Project=Projekti diff --git a/core/src/main/resources/hudson/matrix/MatrixProject/index_ja.properties b/core/src/main/resources/hudson/matrix/MatrixProject/index_ja.properties index ce542304ffcfb38b02b531802b852157bc6363f1..d94e1f88b322da0d72c6115959dbd1ea265ccfe4 100644 --- a/core/src/main/resources/hudson/matrix/MatrixProject/index_ja.properties +++ b/core/src/main/resources/hudson/matrix/MatrixProject/index_ja.properties @@ -1,6 +1,6 @@ # The MIT License # -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:cactusman +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:cactusman # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -21,3 +21,5 @@ # THE SOFTWARE. Project=\u30d7\u30ed\u30b8\u30a7\u30af\u30c8 +This\ project\ is\ currently\ disabled=\u73fe\u5728\u3001\u3053\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306f\u7121\u52b9\u3067\u3059\u3002 +Enable=\u6709\u52b9\u5316 diff --git a/core/src/main/resources/hudson/matrix/MatrixProject/newJobDetail.jelly b/core/src/main/resources/hudson/matrix/MatrixProject/newJobDetail.jelly index 489155118e03e506d52edabdbff76dfe7bd10867..583f693ef4b8404f29909eb5f8c8062382d73114 100644 --- a/core/src/main/resources/hudson/matrix/MatrixProject/newJobDetail.jelly +++ b/core/src/main/resources/hudson/matrix/MatrixProject/newJobDetail.jelly @@ -22,6 +22,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --> +
    ${%body}
    \ No newline at end of file diff --git a/core/src/main/resources/hudson/matrix/MatrixProject/newJobDetail_da.properties b/core/src/main/resources/hudson/matrix/MatrixProject/newJobDetail_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..87c2f60f88df4ef4b4310d3f19db17181fe64f64 --- /dev/null +++ b/core/src/main/resources/hudson/matrix/MatrixProject/newJobDetail_da.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +body=Velegnet til projekter der har behov for mange forskellige konfigurationer, \ +s\u00e5som test p\u00e5 flere milj\u00f8er, operativsystemer, platformspecifikke byg, osv. diff --git a/core/src/main/resources/hudson/matrix/MatrixProject/newJobDetail_es.properties b/core/src/main/resources/hudson/matrix/MatrixProject/newJobDetail_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..9b336d0754e76ed1379668906393ef71cc9138f4 --- /dev/null +++ b/core/src/main/resources/hudson/matrix/MatrixProject/newJobDetail_es.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:cactusman +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +body=\ + Adecuado para proyectos que requieran un gran número de configuraciones diferentes, \ + como testear en multiples entornos, ejecutar sobre plataformas concretas, etc. + diff --git a/core/src/main/resources/hudson/matrix/MatrixProject/newJobDetail_it.properties b/core/src/main/resources/hudson/matrix/MatrixProject/newJobDetail_it.properties new file mode 100644 index 0000000000000000000000000000000000000000..d0caf427e66ed84d848193eb3ab662ed5ea2a5ec --- /dev/null +++ b/core/src/main/resources/hudson/matrix/MatrixProject/newJobDetail_it.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +body=Adatto a progetto che necessitano di un ampio numero di configurazioni diverse, come test su pi\u00F9 ambienti, build specifiche per piattaforma, ecc. diff --git a/core/src/main/resources/hudson/matrix/MatrixProject/newJobDetail_ko.properties b/core/src/main/resources/hudson/matrix/MatrixProject/newJobDetail_ko.properties new file mode 100644 index 0000000000000000000000000000000000000000..95b265ca549d484f2b0abdc9fcf69819f7ebee18 --- /dev/null +++ b/core/src/main/resources/hudson/matrix/MatrixProject/newJobDetail_ko.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +body=\uB2E4\uC591\uD55C \uD658\uACBD\uC5D0\uC11C\uC758 \uD14C\uC2A4\uD2B8, \uD50C\uB798\uD3FC \uD2B9\uC131 \uBE4C\uB4DC, \uAE30\uD0C0 \uB4F1\uB4F1 \uCC98\uB7FC \uB2E4\uC218\uC758 \uC11C\uB85C\uB2E4\uB978 \uD658\uACBD\uC124\uC815\uC774 \uD544\uC694\uD55C \uD504\uB85C\uC81D\uD2B8\uC5D0 \uC801\uD569\uD568. diff --git a/core/src/main/resources/hudson/matrix/MatrixProject/newJobDetail_nb_NO.properties b/core/src/main/resources/hudson/matrix/MatrixProject/newJobDetail_nb_NO.properties new file mode 100644 index 0000000000000000000000000000000000000000..c85c562933bae59240208ed52f7686d7cdf9f377 --- /dev/null +++ b/core/src/main/resources/hudson/matrix/MatrixProject/newJobDetail_nb_NO.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +body=Egner seg for prosjekter som trenger et stort antall forskjellige konfigurasjoner, som testing i forskjellige milj\u00F8er, plattformspesifikke bygg osv. diff --git a/core/src/main/resources/hudson/matrix/MatrixProject/newJobDetail_sv_SE.properties b/core/src/main/resources/hudson/matrix/MatrixProject/newJobDetail_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..d1b17ee8a205b5fe70a5a7c84aa162da3d43c1f5 --- /dev/null +++ b/core/src/main/resources/hudson/matrix/MatrixProject/newJobDetail_sv_SE.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +body=L\u00E4mplig f\u00F6r projekt som beh\u00F6ver ett stort antal olika konfigurationer, s\u00E5som testning p\u00E5 flera milj\u00F6er, plattformsneutrala byggen, etc. diff --git a/core/src/main/resources/hudson/matrix/MatrixProject/newJobDetail_zh_CN.properties b/core/src/main/resources/hudson/matrix/MatrixProject/newJobDetail_zh_CN.properties new file mode 100644 index 0000000000000000000000000000000000000000..7540ad5f3c8768de7a953123618779911b66943b --- /dev/null +++ b/core/src/main/resources/hudson/matrix/MatrixProject/newJobDetail_zh_CN.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:cactusman +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +body=\u9002\u7528\u4e8e\u591a\u914d\u7f6e\u9879\u76ee,\u4f8b\u5982\u591a\u73af\u5883\u6d4b\u8bd5,\u5e73\u53f0\u6307\u5b9a\u6784\u5efa,\u7b49\u7b49. diff --git a/core/src/main/resources/hudson/matrix/Messages.properties b/core/src/main/resources/hudson/matrix/Messages.properties index 88a5285b44a7c036542711edb694bd29f70c6c67..6789c01e80f96478ac54fc1d85823523379839f9 100644 --- a/core/src/main/resources/hudson/matrix/Messages.properties +++ b/core/src/main/resources/hudson/matrix/Messages.properties @@ -20,7 +20,8 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -MatrixProject.DisplayName=Build multi-configuration project (alpha) +MatrixProject.DisplayName=Build multi-configuration project +MatrixProject.DuplicateAxisName=Duplicate axis name MatrixBuild.Triggering=Triggering {0} MatrixBuild.AppearsCancelled={0} appears to be cancelled @@ -30,3 +31,7 @@ MatrixBuild.Interrupting=Interrupting {0} MatrixConfiguration.Pronoun=Configuration MatrixRun.KeptBecauseOfParent=Kept because {0} is kept + +JDKAxis.DisplayName=JDK +LabelAxis.DisplayName=Slaves +TextArea.DisplayName=User-defined Axis \ No newline at end of file diff --git a/core/src/main/resources/hudson/matrix/Messages_da.properties b/core/src/main/resources/hudson/matrix/Messages_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..3bda032a6871b90ecb04a2146cb42c07a8c2e87b --- /dev/null +++ b/core/src/main/resources/hudson/matrix/Messages_da.properties @@ -0,0 +1,33 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +MatrixRun.KeptBecauseOfParent=Gemt da {0} er gemt +TextArea.DisplayName=Brugerdefineret akse +MatrixProject.DuplicateAxisName=Dupliker akse navn +MatrixBuild.Triggering=Starter {0} +LabelAxis.DisplayName=Slaver +JDKAxis.DisplayName=JDK +MatrixBuild.AppearsCancelled={0} ser ud til at v\u00e6re aflyst +MatrixConfiguration.Pronoun=Konfiguration +MatrixProject.DisplayName=Byg multi-konfigurationsprojekt +MatrixBuild.Cancelled=Aflyst {0} +MatrixBuild.Interrupting=Afbryder {0} diff --git a/core/src/main/resources/hudson/matrix/Messages_de.properties b/core/src/main/resources/hudson/matrix/Messages_de.properties index d323f6b3469a830b5632596df8a3e6ae082e92a8..a95a87232b250df9d0ba29ebb6c717165757f4aa 100644 --- a/core/src/main/resources/hudson/matrix/Messages_de.properties +++ b/core/src/main/resources/hudson/matrix/Messages_de.properties @@ -20,7 +20,8 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -MatrixProject.DisplayName=Multikonfigurationsprojekt bauen (alpha) +MatrixProject.DisplayName=Multikonfigurationsprojekt bauen +MatrixProject.DuplicateAxisName=Name der Achse existiert bereits MatrixBuild.Triggering=Löse {0} aus MatrixBuild.AppearsCancelled={0} scheint abgebrochen worden zu sein diff --git a/core/src/main/resources/hudson/matrix/Messages_es.properties b/core/src/main/resources/hudson/matrix/Messages_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..1b9ae3e8e3079c3c803bc3faee71c07e4fa6ac6e --- /dev/null +++ b/core/src/main/resources/hudson/matrix/Messages_es.properties @@ -0,0 +1,33 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:cactusman +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +MatrixProject.DisplayName=Crear un proyecto multi-configuración +MatrixProject.DuplicateAxisName=Duplicar el nombre común + +MatrixBuild.Triggering=Lanzado {0} +MatrixBuild.AppearsCancelled={0} parece haber sido cancelado +MatrixBuild.Cancelled=Cancelado {0} +MatrixBuild.Interrupting=Abortando {0} + +MatrixConfiguration.Pronoun=Configuración + +MatrixRun.KeptBecauseOfParent=Guardado porque {0} está guardado diff --git a/core/src/main/resources/hudson/matrix/Messages_fr.properties b/core/src/main/resources/hudson/matrix/Messages_fr.properties index 61d3e40caccb2ca77b9f31ff2728daeb33636409..73ff67c358b2f78d2a487c48b26d5d986c9354b0 100644 --- a/core/src/main/resources/hudson/matrix/Messages_fr.properties +++ b/core/src/main/resources/hudson/matrix/Messages_fr.properties @@ -20,11 +20,11 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -MatrixProject.DisplayName=Construire un projet multi-configuration (alpha) +MatrixProject.DisplayName=Construire un projet multi-configuration MatrixBuild.Triggering=Lancement de {0} MatrixBuild.AppearsCancelled={0} semble annulé MatrixBuild.Cancelled={0} a été annulé MatrixBuild.Interrupting={0} en cours d''interruption -MatrixConfiguration.Pronoun=Configuration \ No newline at end of file +MatrixConfiguration.Pronoun=Configuration diff --git a/core/src/main/resources/hudson/matrix/Messages_ja.properties b/core/src/main/resources/hudson/matrix/Messages_ja.properties index 1863342d8eb3d66474017d001d2844f081d4d993..6d02a6af011bc333419b10a29007224f6e3c0e06 100644 --- a/core/src/main/resources/hudson/matrix/Messages_ja.properties +++ b/core/src/main/resources/hudson/matrix/Messages_ja.properties @@ -1,6 +1,6 @@ # The MIT License # -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe, id:cactusman +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe, id:cactusman # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -20,12 +20,17 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -MatrixProject.DisplayName=\u30DE\u30EB\u30C1\u69CB\u6210\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u30D3\u30EB\u30C9\uFF08\u30A2\u30EB\u30D5\u30A1\uFF09 +MatrixProject.DisplayName=\u30de\u30eb\u30c1\u69cb\u6210\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u30d3\u30eb\u30c9 +MatrixProject.DuplicateAxisName=\u69cb\u6210\u8ef8\u540d\u304c\u91cd\u8907\u3057\u3066\u3044\u307e\u3059 -MatrixBuild.Triggering={0}\u306E\u8D77\u52D5 -MatrixBuild.AppearsCancelled={0}\u306F\u4E2D\u6B62\u3055\u308C\u305F\u3088\u3046\u3067\u3059 -MatrixBuild.Cancelled={0}\u306E\u4E2D\u6B62 -MatrixBuild.Interrupting={0}\u3078\u306E\u5272\u308A\u8FBC\u307F +MatrixBuild.Triggering={0}\u306e\u8d77\u52d5 +MatrixBuild.AppearsCancelled={0}\u306f\u4e2d\u6b62\u3055\u308c\u305f\u3088\u3046\u3067\u3059 +MatrixBuild.Cancelled={0}\u306e\u4e2d\u6b62 +MatrixBuild.Interrupting={0}\u3078\u306e\u5272\u308a\u8fbc\u307f -MatrixConfiguration.Pronoun=\u8A2D\u5B9A -MatrixRun.KeptBecauseOfParent={0}\u304C\u4FDD\u7559\u4E2D\u306E\u305F\u3081\u4FDD\u7559\u3057\u307E\u3059 +MatrixConfiguration.Pronoun=\u8a2d\u5b9a +MatrixRun.KeptBecauseOfParent={0}\u304c\u4fdd\u7559\u4e2d\u306e\u305f\u3081\u4fdd\u7559\u3057\u307e\u3059 + +JDKAxis.DisplayName=JDK +LabelAxis.DisplayName=\u30b9\u30ec\u30fc\u30d6 +TextArea.DisplayName=\u30e6\u30fc\u30b6\u5b9a\u7fa9 diff --git a/core/src/main/resources/hudson/matrix/Messages_nl.properties b/core/src/main/resources/hudson/matrix/Messages_nl.properties index 4f91ee2e7f077c64a7b71af8f0e82a8278cfd201..6f2854cf4734de50e456a70a6194aa8b07acc94f 100644 --- a/core/src/main/resources/hudson/matrix/Messages_nl.properties +++ b/core/src/main/resources/hudson/matrix/Messages_nl.properties @@ -20,7 +20,7 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -MatrixProject.DisplayName=Bouw een multi-configuratie project (alfa) +MatrixProject.DisplayName=Bouw een multi-configuratie project MatrixBuild.Triggering=Starten van {0} MatrixBuild.AppearsCancelled={0} blijkt geannuleerd diff --git a/core/src/main/resources/hudson/matrix/Messages_pt_BR.properties b/core/src/main/resources/hudson/matrix/Messages_pt_BR.properties index 8024a4c8903ecdf75bc61a9b7f9e3d32d9e9b79d..f4a93ae2129f6077ad6f91ac8b31f6f2424cb3ac 100644 --- a/core/src/main/resources/hudson/matrix/Messages_pt_BR.properties +++ b/core/src/main/resources/hudson/matrix/Messages_pt_BR.properties @@ -20,11 +20,15 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -MatrixProject.DisplayName=Construir projeto de m\u00FAltiplas configura\u00E7\u00F5es (alpha) +MatrixProject.DisplayName=Construir projeto de m\u00FAltiplas configura\u00E7\u00F5es MatrixBuild.Triggering=Disparando {0} MatrixBuild.AppearsCancelled={0} parece estar cancelado MatrixBuild.Cancelled=Cancelado {0} MatrixBuild.Interrupting=Interrompendo {0} -MatrixConfiguration.Pronoun=Configura\u00E7\u00E3o \ No newline at end of file +MatrixConfiguration.Pronoun=Configura\u00E7\u00E3o +# Kept because {0} is kept +MatrixRun.KeptBecauseOfParent=Mantido porque {0} está sendo mantido +# Duplicate axis name +MatrixProject.DuplicateAxisName=Nome de eixo duplicado diff --git a/core/src/main/resources/hudson/matrix/Messages_ru.properties b/core/src/main/resources/hudson/matrix/Messages_ru.properties index ede61212f8b79b6a50968bc84ab53c54ded26f5f..54753e19a34ebbd4a7fc3b404a31aaa8067f79ab 100644 --- a/core/src/main/resources/hudson/matrix/Messages_ru.properties +++ b/core/src/main/resources/hudson/matrix/Messages_ru.properties @@ -20,7 +20,7 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -MatrixProject.DisplayName=\u041c\u0443\u043b\u044c\u0442\u0438\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 (\u0430\u043b\u044c\u0444\u0430) +MatrixProject.DisplayName=\u041c\u0443\u043b\u044c\u0442\u0438\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 MatrixBuild.Triggering=\u0410\u043a\u0442\u0438\u0432\u0438\u0440\u0443\u044e {0} MatrixBuild.AppearsCancelled={0} \u043f\u043e \u0432\u0441\u0435\u0439 \u0432\u0438\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u043f\u0440\u0435\u0440\u0432\u0430\u043d\u0430 diff --git a/core/src/main/resources/hudson/matrix/Messages_tr.properties b/core/src/main/resources/hudson/matrix/Messages_tr.properties index a6c368bc6210b6bb033dda1bc2bdf15a761986c4..a63c95565a216792184fe959f1212220b9e5660b 100644 --- a/core/src/main/resources/hudson/matrix/Messages_tr.properties +++ b/core/src/main/resources/hudson/matrix/Messages_tr.properties @@ -20,7 +20,7 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -MatrixProject.DisplayName=\u00c7oklu-konfig\u00fcrasyona sahip proje yap\u0131land\u0131r (alpha) +MatrixProject.DisplayName=\u00c7oklu-konfig\u00fcrasyona sahip proje yap\u0131land\u0131r MatrixBuild.Triggering={0} tetikleniyor MatrixBuild.AppearsCancelled={0} iptal edilmi\u015f gör\u00fcn\u00fcyor diff --git a/core/src/main/resources/hudson/matrix/Messages_zh_CN.properties b/core/src/main/resources/hudson/matrix/Messages_zh_CN.properties new file mode 100644 index 0000000000000000000000000000000000000000..5af13aa446bf746e4a82e6fb0581067422b002ff --- /dev/null +++ b/core/src/main/resources/hudson/matrix/Messages_zh_CN.properties @@ -0,0 +1,37 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:cactusman +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +MatrixProject.DisplayName=\u6784\u5efa\u4e00\u4e2a\u591a\u914d\u7f6e\u9879\u76ee +MatrixProject.DuplicateAxisName=Duplicate axis name + +MatrixBuild.Triggering=Triggering {0} +MatrixBuild.AppearsCancelled={0} appears to be cancelled +MatrixBuild.Cancelled=Cancelled {0} +MatrixBuild.Interrupting=Interrupting {0} + +MatrixConfiguration.Pronoun=Configuration + +MatrixRun.KeptBecauseOfParent=Kept because {0} is kept + +JDKAxis.DisplayName=JDK +LabelAxis.DisplayName=Slaves +TextArea.DisplayName=User-defined Axis \ No newline at end of file diff --git a/core/src/main/resources/hudson/matrix/TextAxis/config.jelly b/core/src/main/resources/hudson/matrix/TextAxis/config.jelly new file mode 100644 index 0000000000000000000000000000000000000000..14128b88e5589cb0db56e4e94f05b840b9d32fbd --- /dev/null +++ b/core/src/main/resources/hudson/matrix/TextAxis/config.jelly @@ -0,0 +1,32 @@ + + + + + + + + + + diff --git a/core/src/main/resources/hudson/matrix/TextAxis/config_da.properties b/core/src/main/resources/hudson/matrix/TextAxis/config_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..402f2e9f6535081a57432896de9ae3ad8891a8e8 --- /dev/null +++ b/core/src/main/resources/hudson/matrix/TextAxis/config_da.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Values=V\u00e6rdier +Name=Navn diff --git a/core/src/main/resources/hudson/matrix/TextAxis/config_ja.properties b/core/src/main/resources/hudson/matrix/TextAxis/config_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..27fe8f674aa94829ee6944df024ad727a243f6b8 --- /dev/null +++ b/core/src/main/resources/hudson/matrix/TextAxis/config_ja.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Name=\u540d\u524d +Values=\u5024 \ No newline at end of file diff --git a/core/src/main/resources/hudson/matrix/TextAxis/help-valueString.html b/core/src/main/resources/hudson/matrix/TextAxis/help-valueString.html new file mode 100644 index 0000000000000000000000000000000000000000..ab60f508535123fac9a3f7dbeea6e0f0487bf3a2 --- /dev/null +++ b/core/src/main/resources/hudson/matrix/TextAxis/help-valueString.html @@ -0,0 +1,4 @@ +
    + Values assigned to variables. Multiple values are separated by whitespace or newlines. + Use shell quoting syntax for a value that contains whitespace. +
    diff --git a/core/src/main/resources/hudson/matrix/TextAxis/help-valueString_de.html b/core/src/main/resources/hudson/matrix/TextAxis/help-valueString_de.html new file mode 100644 index 0000000000000000000000000000000000000000..b874856d768e30c1bec33befac58ba107957f3d8 --- /dev/null +++ b/core/src/main/resources/hudson/matrix/TextAxis/help-valueString_de.html @@ -0,0 +1,5 @@ +
    + Geben Sie hier die Werte an, welche die Variable annehmen kann. + Mehrere Werte werden durch Leerraum oder Zeilenumbrüche getrennt. + Verwenden Sie die Shell-Notation, um Werte mit Leerräumen anzugeben. +
    \ No newline at end of file diff --git a/war/resources/help/matrix/axis-value_fr.html b/core/src/main/resources/hudson/matrix/TextAxis/help-valueString_fr.html similarity index 100% rename from war/resources/help/matrix/axis-value_fr.html rename to core/src/main/resources/hudson/matrix/TextAxis/help-valueString_fr.html diff --git a/core/src/main/resources/hudson/matrix/TextAxis/help-valueString_ja.html b/core/src/main/resources/hudson/matrix/TextAxis/help-valueString_ja.html new file mode 100644 index 0000000000000000000000000000000000000000..e399128d56e81b0e72c1cd613ae7e5cb4b846f9e --- /dev/null +++ b/core/src/main/resources/hudson/matrix/TextAxis/help-valueString_ja.html @@ -0,0 +1,4 @@ +
    + 変数ã«å‰²ã‚Šå½“ã¦ã‚‹å€¤ã§ã™ã€‚複数ã®å€¤ã‚’設定ã™ã‚‹å ´åˆã¯ã€ã‚¹ãƒšãƒ¼ã‚¹ã‹æ”¹è¡Œã§åŒºåˆ‡ã‚Šã¾ã™ã€‚ + 値ãŒã‚¹ãƒšãƒ¼ã‚¹ã‚’å«ã‚€å ´åˆã¯ã€Shellã¨åŒæ§˜ã«å¼•ç”¨ç¬¦ã‚’使用ã—ã¦ãã ã•ã„。 +
    \ No newline at end of file diff --git a/war/resources/help/matrix/axis-value_nl.html b/core/src/main/resources/hudson/matrix/TextAxis/help-valueString_nl.html old mode 100755 new mode 100644 similarity index 100% rename from war/resources/help/matrix/axis-value_nl.html rename to core/src/main/resources/hudson/matrix/TextAxis/help-valueString_nl.html diff --git a/war/resources/help/matrix/axis-value_pt_BR.html b/core/src/main/resources/hudson/matrix/TextAxis/help-valueString_pt_BR.html similarity index 100% rename from war/resources/help/matrix/axis-value_pt_BR.html rename to core/src/main/resources/hudson/matrix/TextAxis/help-valueString_pt_BR.html diff --git a/war/resources/help/matrix/axis-value_ru.html b/core/src/main/resources/hudson/matrix/TextAxis/help-valueString_ru.html similarity index 100% rename from war/resources/help/matrix/axis-value_ru.html rename to core/src/main/resources/hudson/matrix/TextAxis/help-valueString_ru.html diff --git a/war/resources/help/matrix/axis-value_tr.html b/core/src/main/resources/hudson/matrix/TextAxis/help-valueString_tr.html similarity index 100% rename from war/resources/help/matrix/axis-value_tr.html rename to core/src/main/resources/hudson/matrix/TextAxis/help-valueString_tr.html diff --git a/core/src/main/resources/hudson/model/AbstractBuild/changes_da.properties b/core/src/main/resources/hudson/model/AbstractBuild/changes_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..a5beaf9d9e4b9d2977f7678572fee7970fa8d5f2 --- /dev/null +++ b/core/src/main/resources/hudson/model/AbstractBuild/changes_da.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Changes=\u00c6ndringer diff --git a/core/src/main/resources/hudson/model/AbstractBuild/changes_el.properties b/core/src/main/resources/hudson/model/AbstractBuild/changes_el.properties new file mode 100644 index 0000000000000000000000000000000000000000..f1f929b867facd53454dc528cb0ffe6eb4029b84 --- /dev/null +++ b/core/src/main/resources/hudson/model/AbstractBuild/changes_el.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Changes=\u0391\u03BB\u03BB\u03B1\u03B3\u03AD\u03C2 diff --git a/core/src/main/resources/hudson/model/AbstractBuild/changes_es.properties b/core/src/main/resources/hudson/model/AbstractBuild/changes_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..4adf6e57d8910028e7e1ce553ed26e6a871598aa --- /dev/null +++ b/core/src/main/resources/hudson/model/AbstractBuild/changes_es.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Changes=Cambios diff --git a/core/src/main/resources/hudson/model/AbstractBuild/changes_fi.properties b/core/src/main/resources/hudson/model/AbstractBuild/changes_fi.properties new file mode 100644 index 0000000000000000000000000000000000000000..583978cf896fb054d15c97421afc1e1f6a0b8756 --- /dev/null +++ b/core/src/main/resources/hudson/model/AbstractBuild/changes_fi.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Changes=Muutokset diff --git a/core/src/main/resources/hudson/model/AbstractBuild/changes_ko.properties b/core/src/main/resources/hudson/model/AbstractBuild/changes_ko.properties new file mode 100644 index 0000000000000000000000000000000000000000..8b51d43374d268f2a1648f14bf72b5e2357a6e68 --- /dev/null +++ b/core/src/main/resources/hudson/model/AbstractBuild/changes_ko.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Changes=\uBCC0\uACBD\uC0AC\uD56D diff --git a/core/src/main/resources/hudson/model/AbstractBuild/changes_sv_SE.properties b/core/src/main/resources/hudson/model/AbstractBuild/changes_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..6c29ba317d1056c61e9433b1a89d86942343b6b8 --- /dev/null +++ b/core/src/main/resources/hudson/model/AbstractBuild/changes_sv_SE.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Changes=F\u00F6r\u00E4ndringar diff --git a/core/src/main/resources/hudson/model/AbstractBuild/changes_zh_CN.properties b/core/src/main/resources/hudson/model/AbstractBuild/changes_zh_CN.properties new file mode 100644 index 0000000000000000000000000000000000000000..b5e048f6e584c53809b3581dfb721834cd88ff6a --- /dev/null +++ b/core/src/main/resources/hudson/model/AbstractBuild/changes_zh_CN.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Changes=\u53D8\u66F4\u96C6 diff --git a/core/src/main/resources/hudson/model/AbstractBuild/changes_zh_TW.properties b/core/src/main/resources/hudson/model/AbstractBuild/changes_zh_TW.properties new file mode 100644 index 0000000000000000000000000000000000000000..d0ce38bd63e50ec55950fad2daedffff2150ac12 --- /dev/null +++ b/core/src/main/resources/hudson/model/AbstractBuild/changes_zh_TW.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Changes=\u8B8A\u66F4 diff --git a/core/src/main/resources/hudson/model/AbstractBuild/index.jelly b/core/src/main/resources/hudson/model/AbstractBuild/index.jelly index d0fa47b203a6ceb4c7c248a80499d476b5481afd..c66658b7ad67988f67d725624a9387d7ffb9932b 100644 --- a/core/src/main/resources/hudson/model/AbstractBuild/index.jelly +++ b/core/src/main/resources/hudson/model/AbstractBuild/index.jelly @@ -1,7 +1,8 @@ -
    - - - - - + diff --git a/core/src/main/resources/hudson/model/AbstractBuild/sidepanel_da.properties b/core/src/main/resources/hudson/model/AbstractBuild/sidepanel_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..f3b69f29b1a549a148ec28eb455d208ed714af18 --- /dev/null +++ b/core/src/main/resources/hudson/model/AbstractBuild/sidepanel_da.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Previous\ Build=Foreg\u00e5ende Byg +Next\ Build=N\u00e6ste Byg diff --git a/core/src/main/resources/hudson/model/AbstractBuild/sidepanel_de.properties b/core/src/main/resources/hudson/model/AbstractBuild/sidepanel_de.properties index d71449f0cf03670fe4ffb1d24078799ca7062de3..c39ff9b228f5045ec96a3b5f3cd0880dfaa58fc1 100644 --- a/core/src/main/resources/hudson/model/AbstractBuild/sidepanel_de.properties +++ b/core/src/main/resources/hudson/model/AbstractBuild/sidepanel_de.properties @@ -20,10 +20,5 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Back\ to\ Project=Zurück zum Projekt -Status=Status -Changes=Änderungen -Console\ Output=Konsolenausgabe -raw=unformatiert Previous\ Build=Vorheriger Build Next\ Build=Nachfolgender Build diff --git a/core/src/main/resources/hudson/model/AbstractBuild/sidepanel_el.properties b/core/src/main/resources/hudson/model/AbstractBuild/sidepanel_el.properties new file mode 100644 index 0000000000000000000000000000000000000000..42832dc86cb195798ff84df2daf08df7618491f9 --- /dev/null +++ b/core/src/main/resources/hudson/model/AbstractBuild/sidepanel_el.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Previous\ Build=\u03A0\u03C1\u03BF\u03B7\u03B3\u03BF\u03CD\u03BC\u03B5\u03BD\u03BF Build diff --git a/core/src/main/resources/hudson/model/AbstractBuild/sidepanel_es.properties b/core/src/main/resources/hudson/model/AbstractBuild/sidepanel_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..23fc8fc8a8f2b6b45ac427523fccd7c75102825f --- /dev/null +++ b/core/src/main/resources/hudson/model/AbstractBuild/sidepanel_es.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Previous\ Build=Ejecucion previa +Next\ Build=Ejecución siguiente diff --git a/core/src/main/resources/hudson/model/AbstractBuild/sidepanel_fi.properties b/core/src/main/resources/hudson/model/AbstractBuild/sidepanel_fi.properties new file mode 100644 index 0000000000000000000000000000000000000000..dbe3f704d64550645b50267a54210374541909e4 --- /dev/null +++ b/core/src/main/resources/hudson/model/AbstractBuild/sidepanel_fi.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Previous\ Build=Edellinen k\u00E4\u00E4nn\u00F6s diff --git a/core/src/main/resources/hudson/model/AbstractBuild/sidepanel_hu.properties b/core/src/main/resources/hudson/model/AbstractBuild/sidepanel_hu.properties new file mode 100644 index 0000000000000000000000000000000000000000..e6883b60a9d7d50ad926b37e3db5da2d9086bb4f --- /dev/null +++ b/core/src/main/resources/hudson/model/AbstractBuild/sidepanel_hu.properties @@ -0,0 +1,28 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Back\ to\ Project=Vissza a Projekthez +Changes=V\u00E1ltoz\u00E1sok +Console\ Output=Parancssor Kimenete +Previous\ Build=El\u0151z\u0151 \u00C9p\u00EDt\u00E9s +Status=\u00C1llapot +raw=nyers diff --git a/core/src/main/resources/hudson/model/AbstractBuild/sidepanel_it.properties b/core/src/main/resources/hudson/model/AbstractBuild/sidepanel_it.properties new file mode 100644 index 0000000000000000000000000000000000000000..5a544d9ec22ba111a7301936eaf961155c651f29 --- /dev/null +++ b/core/src/main/resources/hudson/model/AbstractBuild/sidepanel_it.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Previous\ Build=Build precedente diff --git a/core/src/main/resources/hudson/model/AbstractBuild/sidepanel_ja.properties b/core/src/main/resources/hudson/model/AbstractBuild/sidepanel_ja.properties index c7d8678c214d449d61ca98e141ab7112e37212df..a048b685507d1c7758b1901ba94b6bf036075f9e 100644 --- a/core/src/main/resources/hudson/model/AbstractBuild/sidepanel_ja.properties +++ b/core/src/main/resources/hudson/model/AbstractBuild/sidepanel_ja.properties @@ -1,6 +1,6 @@ # The MIT License # -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:cactusman +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:cactusman # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -20,10 +20,5 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Back\ to\ Project=\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3078\u623b\u308b -Status=\u72b6\u614b -Changes=\u5909\u66f4 -Console\ Output=\u30b3\u30f3\u30bd\u30fc\u30eb\u51fa\u529b -raw=\u672a\u52a0\u5de5 -Previous\ Build=\u524d\u306e\u30d3\u30eb\u30c9 -Next\ Build=\u6b21\u306e\u30d3\u30eb\u30c9 \ No newline at end of file +Previous\ Build=\u524D\u306E\u30D3\u30EB\u30C9 +Next\ Build=\u6B21\u306E\u30D3\u30EB\u30C9 \ No newline at end of file diff --git a/core/src/main/resources/hudson/model/AbstractBuild/sidepanel_ko.properties b/core/src/main/resources/hudson/model/AbstractBuild/sidepanel_ko.properties new file mode 100644 index 0000000000000000000000000000000000000000..e0bc35f753b6b90f6295addaa37890eda4225180 --- /dev/null +++ b/core/src/main/resources/hudson/model/AbstractBuild/sidepanel_ko.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Previous\ Build=\uC774\uC804 \uBE4C\uB4DC diff --git a/core/src/main/resources/hudson/model/AbstractBuild/sidepanel_nb_NO.properties b/core/src/main/resources/hudson/model/AbstractBuild/sidepanel_nb_NO.properties new file mode 100644 index 0000000000000000000000000000000000000000..1f517dfbf163c98d9ad8f0cd63acf98238f0a4af --- /dev/null +++ b/core/src/main/resources/hudson/model/AbstractBuild/sidepanel_nb_NO.properties @@ -0,0 +1,27 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Back\ to\ Project=Tilbake til prosjekt +Changes=Endringer +Console\ Output=Skjerm logg +Previous\ Build=Forrige bygg +Status=Status diff --git a/core/src/main/resources/hudson/model/AbstractBuild/sidepanel_pt_BR.properties b/core/src/main/resources/hudson/model/AbstractBuild/sidepanel_pt_BR.properties index 391c56b61539298fe9b164ac65f6645dafb67011..80c2bf5d47fa0ac0e88419f7eeb92cef78043cd1 100644 --- a/core/src/main/resources/hudson/model/AbstractBuild/sidepanel_pt_BR.properties +++ b/core/src/main/resources/hudson/model/AbstractBuild/sidepanel_pt_BR.properties @@ -20,10 +20,5 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Back\ to\ Project=Voltar para Projeto -Status=Estado -Changes=Mudan\u00E7as -Console\ Output=Sa\u00EDda do Console -raw=sem formata\u00E7\u00E3o Previous\ Build=Constru\u00E7\u00E3o Anterior Next\ Build=Pr\u00F3xima Constru\u00E7\u00E3o diff --git a/core/src/main/resources/hudson/model/AbstractBuild/sidepanel_pt_PT.properties b/core/src/main/resources/hudson/model/AbstractBuild/sidepanel_pt_PT.properties new file mode 100644 index 0000000000000000000000000000000000000000..acf789fac7812260bc4f814226843b17d0d63d8c --- /dev/null +++ b/core/src/main/resources/hudson/model/AbstractBuild/sidepanel_pt_PT.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Next\ Build=Pr\u00F3xima Build diff --git a/core/src/main/resources/hudson/model/AbstractBuild/sidepanel_sl.properties b/core/src/main/resources/hudson/model/AbstractBuild/sidepanel_sl.properties new file mode 100644 index 0000000000000000000000000000000000000000..f1589f80cb4396199e0f3103b1db576f66eeb6c2 --- /dev/null +++ b/core/src/main/resources/hudson/model/AbstractBuild/sidepanel_sl.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Previous\ Build=Prej\u0161nje prevajanje diff --git a/core/src/main/resources/hudson/model/AbstractBuild/sidepanel_sv_SE.properties b/core/src/main/resources/hudson/model/AbstractBuild/sidepanel_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..a0b54b82c414d341459ddd3bf7640fe53312170c --- /dev/null +++ b/core/src/main/resources/hudson/model/AbstractBuild/sidepanel_sv_SE.properties @@ -0,0 +1,28 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Back\ to\ Project=Tillbaka till jobb +Changes=F\u00F6r\u00E4ndringar +Console\ Output=Konsollutskrift +Next\ Build=N\u00E4sta bygge +Previous\ Build=F\u00F6rg\u00E5ende bygge +Status=Status diff --git a/core/src/main/resources/hudson/model/AbstractBuild/sidepanel_zh_CN.properties b/core/src/main/resources/hudson/model/AbstractBuild/sidepanel_zh_CN.properties new file mode 100644 index 0000000000000000000000000000000000000000..2e14edeac9d22d4cb30d4a8f0a22af4d6afab3af --- /dev/null +++ b/core/src/main/resources/hudson/model/AbstractBuild/sidepanel_zh_CN.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Next\ Build=\u540e\u4e00\u6b21\u6784\u5efa +Previous\ Build=\u524d\u4e00\u6b21\u6784\u5efa diff --git a/core/src/main/resources/hudson/model/AbstractBuild/sidepanel_zh_TW.properties b/core/src/main/resources/hudson/model/AbstractBuild/sidepanel_zh_TW.properties new file mode 100644 index 0000000000000000000000000000000000000000..8382801f8b75748cd4eb74eef7a203c7d515d21d --- /dev/null +++ b/core/src/main/resources/hudson/model/AbstractBuild/sidepanel_zh_TW.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Next\ Build=\u4E0B\u4E00\u500B\u5EFA\u69CB +Previous\ Build=\u4E0A\u6B21\u5EFA\u69CB diff --git a/core/src/main/resources/hudson/model/AbstractBuild/tasks.jelly b/core/src/main/resources/hudson/model/AbstractBuild/tasks.jelly new file mode 100644 index 0000000000000000000000000000000000000000..26a3c55a90ebccc9880c12bbe4b28085d5ef4658 --- /dev/null +++ b/core/src/main/resources/hudson/model/AbstractBuild/tasks.jelly @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/core/src/main/resources/hudson/model/AbstractBuild/tasks_da.properties b/core/src/main/resources/hudson/model/AbstractBuild/tasks_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..f159e5152af18a5055ea7a339c90c8451214dbd6 --- /dev/null +++ b/core/src/main/resources/hudson/model/AbstractBuild/tasks_da.properties @@ -0,0 +1,27 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Changes=\u00c6ndringer +raw=r\u00e5 +Status=Status +Console\ Output=Konsol Output +Back\ to\ Project=Tilbage til Projekt diff --git a/core/src/main/resources/hudson/model/AbstractBuild/tasks_de.properties b/core/src/main/resources/hudson/model/AbstractBuild/tasks_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..c45d693fb5f6f7c23891bdd0c657363161acde0e --- /dev/null +++ b/core/src/main/resources/hudson/model/AbstractBuild/tasks_de.properties @@ -0,0 +1,27 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Back\ to\ Project=Zur\u00FCck zum Job +Status=Status +Changes=\u00C4nderungen +Console\ Output=Konsolenausgabe +raw=unformatiert diff --git a/core/src/main/resources/hudson/model/AbstractBuild/tasks_el.properties b/core/src/main/resources/hudson/model/AbstractBuild/tasks_el.properties new file mode 100644 index 0000000000000000000000000000000000000000..c2105ce7b09a9083fa9a8dfb8c95c05420181a44 --- /dev/null +++ b/core/src/main/resources/hudson/model/AbstractBuild/tasks_el.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Back\ to\ Project=\u0395\u03C0\u03B9\u03C3\u03C4\u03C1\u03BF\u03C6\u03AE \u03C3\u03C4\u03BF Project +Changes=\u0391\u03BB\u03BB\u03B1\u03B3\u03AD\u03C2 +Status=\u039A\u03B1\u03C4\u03AC\u03C3\u03C4\u03B1\u03C3\u03B7 diff --git a/core/src/main/resources/hudson/model/AbstractBuild/tasks_es.properties b/core/src/main/resources/hudson/model/AbstractBuild/tasks_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..4866cdeeb8dccd987d8dbd5dff79a50b74a9e0fe --- /dev/null +++ b/core/src/main/resources/hudson/model/AbstractBuild/tasks_es.properties @@ -0,0 +1,29 @@ +### +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Console\ Output=Salida de consola +Back\ to\ Project=Volver al Proyecto +Changes=Cambios +Status=Estado +raw=crudo (raw) + diff --git a/core/src/main/resources/hudson/model/AbstractBuild/tasks_fi.properties b/core/src/main/resources/hudson/model/AbstractBuild/tasks_fi.properties new file mode 100644 index 0000000000000000000000000000000000000000..6ca3f22456c916b73a3e01dfc36c0d73c608532f --- /dev/null +++ b/core/src/main/resources/hudson/model/AbstractBuild/tasks_fi.properties @@ -0,0 +1,27 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Back\ to\ Project=Takaisin projektiin +Changes=Muutokset +Console\ Output=Konsoli +Status=Tila +raw=muotoilematon diff --git a/core/src/main/resources/hudson/model/AbstractBuild/tasks_fr.properties b/core/src/main/resources/hudson/model/AbstractBuild/tasks_fr.properties new file mode 100644 index 0000000000000000000000000000000000000000..3369357c3defaa28c772275fe518b66213fb6c7f --- /dev/null +++ b/core/src/main/resources/hudson/model/AbstractBuild/tasks_fr.properties @@ -0,0 +1,27 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Back\ to\ Project=Retour au Projet +Changes=Changements +Console\ Output=Sortie de la console +Status=Statut +raw=brut diff --git a/core/src/main/resources/hudson/model/AbstractBuild/tasks_it.properties b/core/src/main/resources/hudson/model/AbstractBuild/tasks_it.properties new file mode 100644 index 0000000000000000000000000000000000000000..43b75fa759d77acd3af70a684bb4b6aa854ab49e --- /dev/null +++ b/core/src/main/resources/hudson/model/AbstractBuild/tasks_it.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Back\ to\ Project=Torna al Progetto +Changes=Modifiche +Console\ Output=Output Console +Status=Stato diff --git a/core/src/main/resources/hudson/model/AbstractBuild/tasks_ja.properties b/core/src/main/resources/hudson/model/AbstractBuild/tasks_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..92b0a2fb1b4ae1fb4a155542726f5dcfe7420b28 --- /dev/null +++ b/core/src/main/resources/hudson/model/AbstractBuild/tasks_ja.properties @@ -0,0 +1,27 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc.,Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Back\ to\ Project=\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3078\u623B\u308B +Status=\u72B6\u614B +Changes=\u5909\u66F4 +Console\ Output=\u30B3\u30F3\u30BD\u30FC\u30EB\u51FA\u529B +raw=\u672A\u52A0\u5DE5 diff --git a/core/src/main/resources/hudson/model/AbstractBuild/tasks_ko.properties b/core/src/main/resources/hudson/model/AbstractBuild/tasks_ko.properties new file mode 100644 index 0000000000000000000000000000000000000000..b329c2412e624be737c5f09e54d0fb489d89c408 --- /dev/null +++ b/core/src/main/resources/hudson/model/AbstractBuild/tasks_ko.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Back\ to\ Project=\uD504\uB85C\uC81D\uD2B8\uB85C \uB3CC\uC544\uAC00\uAE30 +Changes=\uBCC0\uACBD\uC0AC\uD56D +Console\ Output=\uCF58\uC194 \uCD9C\uB825 +Status=\uC0C1\uD0DC diff --git a/core/src/main/resources/hudson/model/AbstractBuild/tasks_nl.properties b/core/src/main/resources/hudson/model/AbstractBuild/tasks_nl.properties new file mode 100644 index 0000000000000000000000000000000000000000..93095459e9f43aee928d46f238f39a0e0c4bd14f --- /dev/null +++ b/core/src/main/resources/hudson/model/AbstractBuild/tasks_nl.properties @@ -0,0 +1,27 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Back\ to\ Project=Terug naar Project +Changes=Wijzigingen +Console\ Output=Uitvoer van de Console +Status=Status +raw=ruw diff --git a/core/src/main/resources/hudson/model/AbstractBuild/tasks_pt_BR.properties b/core/src/main/resources/hudson/model/AbstractBuild/tasks_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..3281f3d814243026317203dbc788d5d463c5965d --- /dev/null +++ b/core/src/main/resources/hudson/model/AbstractBuild/tasks_pt_BR.properties @@ -0,0 +1,27 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Back\ to\ Project=Voltar ao Projeto +Changes=Mudan\u00E7as +Console\ Output=Sa\u00EDda do Console +Status=Estado +raw=sem formata\u00E7\u00E3o diff --git a/core/src/main/resources/hudson/model/AbstractBuild/tasks_ru.properties b/core/src/main/resources/hudson/model/AbstractBuild/tasks_ru.properties new file mode 100644 index 0000000000000000000000000000000000000000..431295a0f782a95cf6cb92f83c67dafcb2d138d3 --- /dev/null +++ b/core/src/main/resources/hudson/model/AbstractBuild/tasks_ru.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Back\ to\ Project=\u041D\u0430\u0437\u0430\u0434 \u043A \u041F\u0440\u043E\u0435\u043A\u0442\u0443 +Changes=\u0418\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F +Console\ Output=\u0412\u044B\u0432\u043E\u0434 \u043A\u043E\u043D\u0441\u043E\u043B\u0438 +Status=\u0421\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0435 diff --git a/core/src/main/resources/hudson/model/AbstractBuild/tasks_sl.properties b/core/src/main/resources/hudson/model/AbstractBuild/tasks_sl.properties new file mode 100644 index 0000000000000000000000000000000000000000..88a01f971a3d70618027569cf49555d3db66844a --- /dev/null +++ b/core/src/main/resources/hudson/model/AbstractBuild/tasks_sl.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Back\ to\ Project=Nazaj na projekt +Changes=Spremembe +Console\ Output=Izpis konzole diff --git a/core/src/main/resources/hudson/model/AbstractBuild/tasks_sv_SE.properties b/core/src/main/resources/hudson/model/AbstractBuild/tasks_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..a85c0195cbdaaec9512b1256ded4b8ac6066d64d --- /dev/null +++ b/core/src/main/resources/hudson/model/AbstractBuild/tasks_sv_SE.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Back\ to\ Project=Tillbaka till Projektet +Changes=F\u00F6r\u00E4ndringar +Console\ Output=Konsollutskrift +Status=Status diff --git a/core/src/main/resources/hudson/model/AbstractBuild/tasks_zh_CN.properties b/core/src/main/resources/hudson/model/AbstractBuild/tasks_zh_CN.properties new file mode 100644 index 0000000000000000000000000000000000000000..96a6c5bfa647cbd72e9ce619b9c901b451f38ac7 --- /dev/null +++ b/core/src/main/resources/hudson/model/AbstractBuild/tasks_zh_CN.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Back\ to\ Project=\u8FD4\u56DE\u9879\u76EE +Changes=\u53D8\u66F4\u96C6 +Console\ Output=\u547D\u4EE4\u884C\u8F93\u51FA +Status=\u72B6\u6001 diff --git a/core/src/main/resources/hudson/model/AbstractBuild/tasks_zh_TW.properties b/core/src/main/resources/hudson/model/AbstractBuild/tasks_zh_TW.properties new file mode 100644 index 0000000000000000000000000000000000000000..87d8137dd6e2b3e31476e2c9900387eba65083d6 --- /dev/null +++ b/core/src/main/resources/hudson/model/AbstractBuild/tasks_zh_TW.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Back\ to\ Project=\u56DE\u5230\u5C08\u6848 +Changes=\u8B8A\u66F4 +Console\ Output=\u756B\u9762\u8F38\u51FA +Status=\u72C0\u614B diff --git a/core/src/main/resources/hudson/model/AbstractItem/configure-common.jelly b/core/src/main/resources/hudson/model/AbstractItem/configure-common.jelly index 9aadd613e5296195de490a552467420c2fbe364e..fb40c916659dda8b8133f7e2af8c36262e8baffe 100644 --- a/core/src/main/resources/hudson/model/AbstractItem/configure-common.jelly +++ b/core/src/main/resources/hudson/model/AbstractItem/configure-common.jelly @@ -1,7 +1,8 @@ - + + + + - + - - + - - + + - + + + - + diff --git a/core/src/main/resources/hudson/model/AbstractItem/configure-common.properties b/core/src/main/resources/hudson/model/AbstractItem/configure-common.properties index eb271feac85baf00b5cb1ae362ac1b5899b22561..623d91bba7afae2968259663f2b0de780da05c70 100644 --- a/core/src/main/resources/hudson/model/AbstractItem/configure-common.properties +++ b/core/src/main/resources/hudson/model/AbstractItem/configure-common.properties @@ -20,4 +20,6 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -default.value=(Default) +default.value=(Default) +Advanced\ Project\ Options\ configure-common=Advanced Project Options +title.concurrentbuilds=Execute concurrent builds if necessary (beta) diff --git a/core/src/main/resources/hudson/model/AbstractItem/configure-common_da.properties b/core/src/main/resources/hudson/model/AbstractItem/configure-common_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..a9b20cbd8a18d3c251315a2b31ce51a88b2e3d1a --- /dev/null +++ b/core/src/main/resources/hudson/model/AbstractItem/configure-common_da.properties @@ -0,0 +1,28 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Label\ Expression=Etiketudtryk +default.value=(Standard) +Restrict\ where\ this\ project\ can\ be\ run=Begr\u00e6ns hvor dette projekt kan k\u00f8res +title.concurrentbuilds=K\u00f8r parallelle byg om n\u00f8dvendigt (beta) +Advanced\ Project\ Options\ configure-common=Avancerede projektindstillinger +JDK\ to\ be\ used\ for\ this\ project=JDK der skal benyttes til dette projekt diff --git a/core/src/main/resources/hudson/model/AbstractItem/configure-common_de.properties b/core/src/main/resources/hudson/model/AbstractItem/configure-common_de.properties index 34568aeb91d905de145641177357666f972206d0..a87916c56469fc8c15482f17df37ea55f54700b3 100644 --- a/core/src/main/resources/hudson/model/AbstractItem/configure-common_de.properties +++ b/core/src/main/resources/hudson/model/AbstractItem/configure-common_de.properties @@ -20,7 +20,9 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Advanced\ Project\ Options=Erweitere Projekteinstellungen JDK\ to\ be\ used\ for\ this\ project=JDK, das für dieses Projekt verwendet wird -Tie\ this\ project\ to\ a\ node=Binde dieses Projekt an einen Knoten +Tie\ this\ project\ to\ a\ node=Binde dieses Projekt an einen bestimmten Knoten Node=Knoten +default.value=(Vorgabewert) +Advanced\ Project\ Options\ configure-common=Erweiterte Projekteinstellungen +title.concurrentbuilds=Parallele Builds ausführen, wenn notwendig (beta) diff --git a/core/src/main/resources/hudson/model/AbstractItem/configure-common_es.properties b/core/src/main/resources/hudson/model/AbstractItem/configure-common_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..22f34fa4fe860f9a3d5f9a42208466acb47586ed --- /dev/null +++ b/core/src/main/resources/hudson/model/AbstractItem/configure-common_es.properties @@ -0,0 +1,28 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Eric Lefevre-Ardant +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +default.value=(por defecto) +Advanced\ Project\ Options\ configure-common=Opciones avanzadas del proyecto +title.concurrentbuilds=Lanzar ejecuciones concurrentes en caso de ser necesario (en pruebas) +JDK\ to\ be\ used\ for\ this\ project=JDK que se debe usar para este proyecto +Node=Nodo +Tie\ this\ project\ to\ a\ node=Asociar este proyecto con el nodo diff --git a/core/src/main/resources/hudson/model/AbstractItem/configure-common_fr.properties b/core/src/main/resources/hudson/model/AbstractItem/configure-common_fr.properties index 1ceae4959c12f7a6da4b4266536f9c5e8fdab08e..12478d0550a820e55b7fb48529e0bac49c66232f 100644 --- a/core/src/main/resources/hudson/model/AbstractItem/configure-common_fr.properties +++ b/core/src/main/resources/hudson/model/AbstractItem/configure-common_fr.properties @@ -20,8 +20,10 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Advanced\ Project\ Options=Options avancées du projet +Advanced\ Project\ Options\ configure-common=Options avancées du projet Tie\ this\ project\ to\ a\ node=Associer ce projet à un noeud Node=Noeud +Execute\ concurrent\ builds\ if\ necessary\ =Ex\u00E9cuter les builds en parall\u00E8le si n\u00E9cessaire JDK\ to\ be\ used\ for\ this\ project=Le JDK à utiliser pour ce projet default.value=(Valeur par défaut) +title.concurrentbuilds=Ex\u00E9cuter des builds simultan\u00E9ment si n\u00E9cessaire (beta) diff --git a/core/src/main/resources/hudson/model/AbstractItem/configure-common_ja.properties b/core/src/main/resources/hudson/model/AbstractItem/configure-common_ja.properties index 5c9658673d63bda24845f861ce22716890676860..03fdcd8a6a65c6cfda989a06eeb3e20882939c96 100644 --- a/core/src/main/resources/hudson/model/AbstractItem/configure-common_ja.properties +++ b/core/src/main/resources/hudson/model/AbstractItem/configure-common_ja.properties @@ -1,6 +1,6 @@ # The MIT License # -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe, id:cactusman +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe, id:cactusman # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -21,7 +21,10 @@ # THE SOFTWARE. JDK\ to\ be\ used\ for\ this\ project=\u3053\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3067\u4f7f\u7528\u3059\u308bJDK -Advanced\ Project\ Options=\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u9ad8\u5ea6\u306a\u30aa\u30d7\u30b7\u30e7\u30f3 +Advanced\ Project\ Options\ configure-common=\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u9ad8\u5ea6\u306a\u30aa\u30d7\u30b7\u30e7\u30f3 Tie\ this\ project\ to\ a\ node=\u3053\u306e\u30d3\u30eb\u30c9\u306f\u6307\u5b9a\u306e\u30ce\u30fc\u30c9\u4e0a\u3067\u306e\u307f\u5b9f\u884c Node=\u30ce\u30fc\u30c9 -default.value=\u30c7\u30d5\u30a9\u30eb\u30c8 \ No newline at end of file +default.value=\u30c7\u30d5\u30a9\u30eb\u30c8 +title.concurrentbuilds=\u53ef\u80fd\u3067\u3042\u308c\u3070\u4e26\u884c\u3057\u3066\u30d3\u30eb\u30c9 (\u30d9\u30fc\u30bf) +Restrict\ where\ this\ project\ can\ be\ run=\u5b9f\u884c\u3059\u308b\u30ce\u30fc\u30c9\u3092\u5236\u9650 +Label\ Expression=\u30e9\u30d9\u30eb\u5f0f \ No newline at end of file diff --git a/core/src/main/resources/hudson/model/AbstractItem/configure-common_nl.properties b/core/src/main/resources/hudson/model/AbstractItem/configure-common_nl.properties index fc27b82789110f805568e50ab52ef7ef3f9c919e..4fbf612e9eeb61cbd3c191f0c2ad4f137857221f 100644 --- a/core/src/main/resources/hudson/model/AbstractItem/configure-common_nl.properties +++ b/core/src/main/resources/hudson/model/AbstractItem/configure-common_nl.properties @@ -20,4 +20,4 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Advanced\ Project\ Options=Geavanceerde projectopties +Advanced\ Project\ Options\ configure-common=Geavanceerde projectopties diff --git a/core/src/main/resources/hudson/model/AbstractItem/configure-common_pt_BR.properties b/core/src/main/resources/hudson/model/AbstractItem/configure-common_pt_BR.properties index 35e707d2c4ce514124d9557da5747f8a77998258..42d537dbab0f0d7c4afb5f80302f4c05373c4905 100644 --- a/core/src/main/resources/hudson/model/AbstractItem/configure-common_pt_BR.properties +++ b/core/src/main/resources/hudson/model/AbstractItem/configure-common_pt_BR.properties @@ -20,4 +20,11 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Advanced\ Project\ Options=Op\u00E7\u00F5es Avan\u00E7adas do Projeto +Advanced\ Project\ Options\ configure-common=Op\u00E7\u00F5es Avan\u00E7adas do Projeto +# (Default) +default.value= +Node=Nodo +# Execute concurrent builds if necessary (beta) +title.concurrentbuilds= +Tie\ this\ project\ to\ a\ node= +JDK\ to\ be\ used\ for\ this\ project= diff --git a/core/src/main/resources/hudson/model/AbstractItem/configure-common_ru.properties b/core/src/main/resources/hudson/model/AbstractItem/configure-common_ru.properties index 8488da927d48363eb439dc7cf5221b0a7e2fd5dc..58a58ca89047dde868d2349114486a9b7c4c1beb 100644 --- a/core/src/main/resources/hudson/model/AbstractItem/configure-common_ru.properties +++ b/core/src/main/resources/hudson/model/AbstractItem/configure-common_ru.properties @@ -20,7 +20,7 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Advanced\ Project\ Options=\u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u044b\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 +Advanced\ Project\ Options\ configure-common=\u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u044b\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 JDK\ to\ be\ used\ for\ this\ project=JDK \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d \u0432 \u044d\u0442\u043e\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435 Tie\ this\ project\ to\ a\ node=\u041f\u0440\u0438\u0432\u044f\u0437\u0430\u0442\u044c \u043f\u0440\u043e\u0435\u043a\u0442 \u043a \u0443\u0437\u043b\u0443 Node=\u0423\u0437\u0435\u043b diff --git a/core/src/main/resources/hudson/model/AbstractItem/configure-common_tr.properties b/core/src/main/resources/hudson/model/AbstractItem/configure-common_tr.properties index 28690a3f4094c8c0663bdf18e73013a6e85b925f..eceb9e13f25d92415ae9d203abd6b2534928b92d 100644 --- a/core/src/main/resources/hudson/model/AbstractItem/configure-common_tr.properties +++ b/core/src/main/resources/hudson/model/AbstractItem/configure-common_tr.properties @@ -20,7 +20,7 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Advanced\ Project\ Options=Geli\u015fmi\u015f\ Proje\ Se\u00e7enekleri +Advanced\ Project\ Options\ configure-common=Geli\u015fmi\u015f\ Proje\ Se\u00e7enekleri JDK\ to\ be\ used\ for\ this\ project=Bu proje i\u00e7in kullan\u0131lacak olan JDK default.value=(Varsay\u0131lan) Tie\ this\ project\ to\ a\ node=Bu projeyi bir noda ba\u011fla diff --git a/core/src/main/resources/hudson/model/AbstractItem/configure-scm.jellytag b/core/src/main/resources/hudson/model/AbstractItem/configure-scm.jellytag new file mode 100644 index 0000000000000000000000000000000000000000..bbafc5456f1bca5b8eb6829c440ffb9d8a7ee684 --- /dev/null +++ b/core/src/main/resources/hudson/model/AbstractItem/configure-scm.jellytag @@ -0,0 +1,31 @@ + + + + + + + diff --git a/core/src/main/resources/hudson/model/AbstractItem/delete_da.properties b/core/src/main/resources/hudson/model/AbstractItem/delete_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..67850704da91760ec521ca310ba44a13bb32c82b --- /dev/null +++ b/core/src/main/resources/hudson/model/AbstractItem/delete_da.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Yes=Ja +Are\ you\ sure\ about\ deleting\ the\ job?=Er du sikker p\u00e5 at du vil slette dette job? diff --git a/core/src/main/resources/hudson/model/AbstractItem/delete_es.properties b/core/src/main/resources/hudson/model/AbstractItem/delete_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..ede072a9e3633f0c1ea5a5ca02bc2549a2d9a202 --- /dev/null +++ b/core/src/main/resources/hudson/model/AbstractItem/delete_es.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Are\ you\ sure\ about\ deleting\ the\ job?=¿Estás seguro de querer borrar el proyecto? +Yes=Sí diff --git a/core/src/main/resources/hudson/model/AbstractItem/delete_hu.properties b/core/src/main/resources/hudson/model/AbstractItem/delete_hu.properties new file mode 100644 index 0000000000000000000000000000000000000000..fb60f1fd727008856a54910f05e1436aa660e952 --- /dev/null +++ b/core/src/main/resources/hudson/model/AbstractItem/delete_hu.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Are\ you\ sure\ about\ deleting\ the\ job?=Biztos benne, hogy t\u00F6r\u00F6lni szeretn\u00E9 a munk\u00E1t? +Yes=Igen diff --git a/core/src/main/resources/hudson/model/AbstractItem/delete_ko.properties b/core/src/main/resources/hudson/model/AbstractItem/delete_ko.properties new file mode 100644 index 0000000000000000000000000000000000000000..89f1bc181f27ef8aef5021b3e280e216400e2af5 --- /dev/null +++ b/core/src/main/resources/hudson/model/AbstractItem/delete_ko.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Are\ you\ sure\ about\ deleting\ the\ job?=\uC815\uB9D0\uB85C \uC774 \uC791\uC5C5\uC744 \uC0AD\uC81C\uD569\uB2C8\uAE4C? +Yes=\uB124 diff --git a/core/src/main/resources/hudson/model/AbstractItem/delete_sv_SE.properties b/core/src/main/resources/hudson/model/AbstractItem/delete_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..468a77c7cb305f8cf11c8e4e0b803ab165440a1f --- /dev/null +++ b/core/src/main/resources/hudson/model/AbstractItem/delete_sv_SE.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Are\ you\ sure\ about\ deleting\ the\ job?=\u00C4r du s\u00E4ker p\u00E5 att du vill ta bort projektet? +Yes=Ja diff --git a/core/src/main/resources/hudson/model/AbstractItem/delete_zh_CN.properties b/core/src/main/resources/hudson/model/AbstractItem/delete_zh_CN.properties new file mode 100644 index 0000000000000000000000000000000000000000..05d53d99efee38644a5de379531ff53f5ae7715c --- /dev/null +++ b/core/src/main/resources/hudson/model/AbstractItem/delete_zh_CN.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Are\ you\ sure\ about\ deleting\ the\ job?=\u786E\u5B9A\u8981\u5220\u9664\u5F53\u524D\u4EFB\u52A1\u5417\uFF1F +Yes=\u662F diff --git a/core/src/main/resources/hudson/model/AbstractItem/delete_zh_TW.properties b/core/src/main/resources/hudson/model/AbstractItem/delete_zh_TW.properties new file mode 100644 index 0000000000000000000000000000000000000000..b859b19d2f6d9162c270f1cfdee612f1db658827 --- /dev/null +++ b/core/src/main/resources/hudson/model/AbstractItem/delete_zh_TW.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Are\ you\ sure\ about\ deleting\ the\ job?=\u4F60\u78BA\u5B9A\u8981\u522A\u9664\u9019\u500B\u5DE5\u4F5C\u55CE? +Yes=\u662F\u7684 diff --git a/core/src/main/resources/hudson/model/AbstractItem/help-concurrentBuild.html b/core/src/main/resources/hudson/model/AbstractItem/help-concurrentBuild.html new file mode 100644 index 0000000000000000000000000000000000000000..957ec1e34431607df39f6b0da717491a6a5999d0 --- /dev/null +++ b/core/src/main/resources/hudson/model/AbstractItem/help-concurrentBuild.html @@ -0,0 +1,18 @@ +
    + If this option is checked, Hudson will schedule and execute multiple builds concurrently (provided + that you have sufficient executors and incoming build requests.) This is useful on builds and test jobs that + take a long time, as each build will only contain a smaller number of changes, and the total turn-around + time decreases due to the shorter time a build request spends waiting for the previous build to complete. + It is also very useful with parameterized builds, whose individual executions are independent from each other. + +

    + For other kinds of jobs, allowing concurrent executions of multiple builds may be problematic, + for example if it assumes a monopoly on a certain resource, like database, or for jobs where you use Hudson + as a cron replacement. + +

    + If you use a custom workspace and enable this option, all your builds will run on the same workspace, + thus unless a care is taken by your side, it'll likely to collide with each other. + Otherwise, even when they are run on the same node, Hudson will use different workspaces to keep + them isolated. +

    \ No newline at end of file diff --git a/core/src/main/resources/hudson/model/AbstractItem/help-concurrentBuild_de.html b/core/src/main/resources/hudson/model/AbstractItem/help-concurrentBuild_de.html new file mode 100644 index 0000000000000000000000000000000000000000..e93498d19a78195926c26f9dc8f145397a205dac --- /dev/null +++ b/core/src/main/resources/hudson/model/AbstractItem/help-concurrentBuild_de.html @@ -0,0 +1,19 @@ +
    + Wenn angewählt, wird Hudson Builds parallel planen und ausführen (vorausgesetzt, es existieren + ausreichend viele Build-Prozessoren und Build-Aufträge). Dies ist nützlich bei Build- und Testjobs, die + lange dauern: Wird öfter gebaut, so beinhaltet ein Build weniger Änderungen. Gleichzeitig verringert sich + die Gesamtzeit, da ein Build nun nicht mehr so lange auf das Ende des vorausgehenden Builds warten muss. + Parallele Ausführung ist oft auch in Kombination mit parametrisierten Builds nützlich, die + unabhängig voneinander gebaut werden können. + +

    + Für bestimmte Arten von Jobs kann eine parallele Ausführung mehrerer Builds problematisch sein, + z.B. wenn der Build exklusiven Zugriff auf eine bestimmte Ressource, etwa eine Datenbank, voraussetzt + oder für Jobs, bei denen Hudson als cron-Ersatz eingesetzt wird. + +

    + Wenn Sie einen angepassten Arbeitsbereich verwenden und diese Option aktivieren, werden alle Ihre + Builds gleichzeitig im selben Arbeitsbereich ausgeführt. Ohne weitere Vorkehrungen von Ihrer Seite + werden Ihre Builds dann voraussichtlich miteinander kollidieren. Ist die Option deaktiviert, benutzt Hudson + für Builds jeweils einen eigenen, isolierten Arbeitsbereich - sogar wenn sie auf demselben Knoten ausgeführt werden. +

    \ No newline at end of file diff --git a/core/src/main/resources/hudson/model/AbstractItem/help-concurrentBuild_ja.html b/core/src/main/resources/hudson/model/AbstractItem/help-concurrentBuild_ja.html new file mode 100644 index 0000000000000000000000000000000000000000..4ed0f80f91d4f3a657dd86c6d4e444b1708cd56a --- /dev/null +++ b/core/src/main/resources/hudson/model/AbstractItem/help-concurrentBuild_ja.html @@ -0,0 +1,14 @@ +
    + ã“ã®ã‚ªãƒ—ションをãƒã‚§ãƒƒã‚¯ã™ã‚‹ã¨ã€è¤‡æ•°ã®ãƒ“ルドをåŒæ™‚ã«ã‚¹ã‚±ã‚¸ãƒ¥ãƒ¼ãƒ«ã—実行ã—ã¾ã™(å分ãªã‚¨ã‚°ã‚¼ã‚­ãƒ¥ãƒ¼ã‚¿ãƒ¼ã¨ãƒ“ルドã®è¦æ±‚ãŒã‚ã‚‹å ´åˆ)。 + å„ビルドã®å¤‰æ›´ã¯å°‘ãªã„ã«ã‚‚ã‹ã‹ã‚らãšãƒ“ルドやテストã«æ™‚é–“ãŒã‹ã‹ã‚‹å ´åˆã«æœ‰åŠ¹ã§ã€ãƒ“ルドã®è¦æ±‚ãŒå…ˆè¡Œã™ã‚‹ãƒ“ルドã®å®Œäº†ã‚’å¾…ã¤æ™‚間をより短ãã™ã‚‹ã“ã¨ã§ã€ + 全体ã®ã‚¿ãƒ¼ãƒ³ã‚¢ãƒ©ã‚¦ãƒ³ãƒ‰ã‚¿ã‚¤ãƒ ã‚’減らã—ã¾ã™ã€‚ + 個々ã®ã‚¨ã‚°ã‚¼ã‚­ãƒ¥ãƒ¼ã‚¿ãƒ¼ãŒäº’ã„ã«ç‹¬ç«‹ã—ã¦ã„るパラメータ化ã•ã‚ŒãŸãƒ“ルドã§ã‚‚有効ã§ã™ã€‚ + +

    + 上記以外ã®ã‚¸ãƒ§ãƒ–ã§ã€è¤‡æ•°ãƒ“ルドをåŒæ™‚ã«å®Ÿè¡Œã™ã‚‹ã¨å•é¡ŒãŒç”Ÿã˜ã‚‹ã‹ã‚‚ã—ã‚Œã¾ã›ã‚“。例ãˆã°ã€ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã®ã‚ˆã†ã«ã‚る特定ã®ãƒªã‚½ãƒ¼ã‚¹ã‚’å æœ‰ã™ã‚‹ã‚‚ã®ã‚„〠+ Hudsonをクーロンã®ä»£ã‚ã‚Šã«ä½¿ã†å ´åˆãªã©ã¯è€ƒãˆã‚‰ã‚Œã¾ã™ã€‚ + +

    + カスタムワークスペースを使用ã—ã¦ã„ã‚‹ã¨ã™ã¹ã¦ã®ãƒ“ルドã¯åŒã˜ãƒ¯ãƒ¼ã‚¯ã‚¹ãƒšãƒ¼ã‚¹ã‚’使用ã™ã‚‹ã®ã§ã€æ³¨æ„ã—ãªã„ã¨ãƒ“ルドãŒè¡çªã—ã¾ã™ã€‚ + åŒä¸€ãƒŽãƒ¼ãƒ‰ã§ãƒ“ルドを実行ã™ã‚‹ã¨ãã«ã¯ã€Hudsonã¯ç•°ãªã‚‹ãƒ¯ãƒ¼ã‚¯ã‚¹ãƒšãƒ¼ã‚¹ã‚’使用ã—ã¦å„ビルドãŒç‹¬ç«‹ã—ãŸã‚‚ã®ã«ãªã‚‹ã‚ˆã†ã«ã—ã¾ã™ã€‚ +

    \ No newline at end of file diff --git a/core/src/main/resources/hudson/model/AbstractItem/noWorkspace_da.properties b/core/src/main/resources/hudson/model/AbstractItem/noWorkspace_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..66bc1814435494ff1dad3f6f8873aed231e58ff6 --- /dev/null +++ b/core/src/main/resources/hudson/model/AbstractItem/noWorkspace_da.properties @@ -0,0 +1,30 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +li3=Arbejdsomr\u00e5de direktoriet ({0}) er fjernet udenfor Hudson. +There''s\ no\ workspace\ for\ this\ project.\ Possible\ reasons\ are\:=Der er ikke noget arbejdsomr\u00e5de til dette projekt. Mulige grunde kan v\u00e6re: +A\ project\ won''t\ have\ any\ workspace\ until\ at\ least\ one\ build\ is\ performed.=At projektet ikke har et arbejdsomr\u00e5de f\u00f8r mindst et byg er udf\u00f8rt. +The\ project\ was\ renamed\ recently\ and\ no\ build\ was\ done\ under\ the\ new\ name.=\ +Projektet er blevet omd\u00f8bt for nyligt og ingen byg er endnu udf\u00f8rt under det nye navn +Error\:\ no\ workspace=Fejl: intet arbejdsomr\u00e5de +text=K\u00f8r et byg for at f\u00e5 Hudson til at lave et arbejdsomr\u00e5de. +The\ slave\ this\ project\ has\ run\ on\ for\ the\ last\ time\ was\ removed.=Slaven projektet sidst k\u00f8rte p\u00e5 er blevet fjernet. diff --git a/core/src/main/resources/hudson/model/AbstractItem/noWorkspace_de.properties b/core/src/main/resources/hudson/model/AbstractItem/noWorkspace_de.properties index 278011aa31a1e8052b1309fa8cba61e938484407..34799834ad24356d97711d723c0533ad3047692c 100644 --- a/core/src/main/resources/hudson/model/AbstractItem/noWorkspace_de.properties +++ b/core/src/main/resources/hudson/model/AbstractItem/noWorkspace_de.properties @@ -29,5 +29,5 @@ The\ project\ was\ renamed\ recently\ and\ no\ build\ was\ done\ under\ the\ new Das Projekt wurde vor kurzem umbenannt und noch kein Build unter dem neuen Namen ausgeführt. The\ slave\ this\ project\ has\ run\ on\ for\ the\ last\ time\ was\ removed.=\ Der Slave, auf dem dieses Projekt das letzte Mal ausgeführt wurde, wurde entfernt. -li3=Das Arbeitsvereichsverzeichnis ({0}) wurde außerhalb von Hudson entfernt. +li3=Das Arbeitsbereichsverzeichnis ({0}) wurde außerhalb von Hudson entfernt. text=Starten Sie einen Build, um von Hudson einen Arbeitsbereich anlegen zu lassen. diff --git a/core/src/main/resources/hudson/model/AbstractItem/noWorkspace_es.properties b/core/src/main/resources/hudson/model/AbstractItem/noWorkspace_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..60dbb2f6e56fae8e10f842656a7bd76a5a58f416 --- /dev/null +++ b/core/src/main/resources/hudson/model/AbstractItem/noWorkspace_es.properties @@ -0,0 +1,31 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:cactusman +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +li3=El directorio de trabajo ({0}) se moverá fuera de Hudson. +text=Lanzar una ejecución para que Hudson cree el directorio de trabajo. +There''s\ no\ workspace\ for\ this\ project.\ Possible\ reasons\ are\:=No hay espacio de trabajo para este proyecto, las causas posibles son: +The\ project\ was\ renamed\ recently\ and\ no\ build\ was\ done\ under\ the\ new\ name.=El proyecto se ha renombrado y no se a ejecutado desde entonces +Error\:\ no\ workspace=Error, no hay espacio de trabajo +The\ slave\ this\ project\ has\ run\ on\ for\ the\ last\ time\ was\ removed.=El nodo esclavo donde se ejecutó la última vez se ha eliminado +A\ project\ won''t\ have\ any\ workspace\ until\ at\ least\ one\ build\ is\ performed.=Un proyecto no tiene espacio de trabajo hasta que se ejecuta por primera vez + + diff --git a/core/src/main/resources/hudson/model/AbstractItem/noWorkspace_ja.properties b/core/src/main/resources/hudson/model/AbstractItem/noWorkspace_ja.properties index fd2deba7c61a9e9d842bc7e80c955e6aae823b8d..78b27020f64c92d418633ea5d200dab779253a5d 100644 --- a/core/src/main/resources/hudson/model/AbstractItem/noWorkspace_ja.properties +++ b/core/src/main/resources/hudson/model/AbstractItem/noWorkspace_ja.properties @@ -1,6 +1,6 @@ # The MIT License # -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe, id:cactusman +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe, id:cactusman # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -20,16 +20,17 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Error\:\ no\ workspace=\u30a8\u30e9\u30fc\uff1a\u3000\u30ef\u30fc\u30af\u30b9\u30da\u30fc\u30b9\u304c\u5b58\u5728\u3057\u307e\u305b\u3093 - -There's\ no\ workspace\ for\ this\ project.\ Possible\ reasons\ are\:=\ - \u3053\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u30ef\u30fc\u30af\u30b9\u30da\u30fc\u30b9\u304c\u5b58\u5728\u3057\u307e\u305b\u3093\u3002\u4ee5\u4e0b\u306e\u7406\u7531\u304c\u8003\u3048\u3089\u308c\u307e\u3059\u3002 +Error\:\ no\ workspace=\u30A8\u30E9\u30FC\uFF1A\u3000\u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9\u304C\u5B58\u5728\u3057\u307E\u305B\u3093 +A\ project\ won''t\ have\ any\ workspace\ until\ at\ least\ one\ build\ is\ performed.=\ + \u5C11\u306A\u304F\u3068\u30821\u3064\u306E\u30D3\u30EB\u30C9\u304C\u5B9F\u884C\u3055\u308C\u306A\u3044\u9650\u308A\u3001\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306B\u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9\u306F\u4F5C\u6210\u3055\u308C\u307E\u305B\u3093\u3002 +There''s\ no\ workspace\ for\ this\ project.\ Possible\ reasons\ are\:=\ + \u3053\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9\u304C\u5B58\u5728\u3057\u307E\u305B\u3093\u3002\u4EE5\u4E0B\u306E\u7406\u7531\u304C\u8003\u3048\u3089\u308C\u307E\u3059\u3002 The\ project\ was\ renamed\ recently\ and\ no\ build\ was\ done\ under\ the\ new\ name.=\ - \u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u304c\u65b0\u3057\u3044\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u540d\u306b\u5909\u66f4\u3055\u308c\u305f\u5f8c\u306b\u3001\u305d\u306e\u540d\u524d\u3067\u30d3\u30eb\u30c9\u304c\u5b9f\u884c\u3055\u308c\u3066\u3044\u306a\u3044\u3002 + \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u304C\u65B0\u3057\u3044\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u540D\u306B\u5909\u66F4\u3055\u308C\u305F\u5F8C\u306B\u3001\u305D\u306E\u540D\u524D\u3067\u30D3\u30EB\u30C9\u304C\u5B9F\u884C\u3055\u308C\u3066\u3044\u306A\u3044\u3002 The\ slave\ this\ project\ has\ run\ on\ for\ the\ last\ time\ was\ removed.=\ - \u3053\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3092\u6700\u5f8c\u306b\u5b9f\u884c\u3057\u305f\u30b9\u30ec\u30fc\u30d6\u304c\u3001\u5916\u3055\u308c\u305f\u3002 -li3=\u30ef\u30fc\u30af\u30b9\u30da\u30fc\u30b9\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\uff08{0}\uff09\u304cHudson\u306e\u7ba1\u7406\u5916\u3078\u53d6\u308a\u9664\u304b\u308c\u305f\u3002 -text=Hudson\u304c\u30ef\u30fc\u30af\u30b9\u30da\u30fc\u30b9\u3092\u4f5c\u6210\u3059\u308b\u305f\u3081\u306b\u3001\u30d3\u30eb\u30c9\u3092\u5b9f\u884c\u3057\u3066\u304f\u3060\u3055\u3044\u3002 + \u3053\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3092\u6700\u5F8C\u306B\u5B9F\u884C\u3057\u305F\u30B9\u30EC\u30FC\u30D6\u304C\u3001\u5916\u3055\u308C\u305F\u3002 +li3=\u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\uFF08{0}\uFF09\u304CHudson\u306E\u7BA1\u7406\u5916\u3078\u53D6\u308A\u9664\u304B\u308C\u305F\u3002 +text=Hudson\u304C\u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9\u3092\u4F5C\u6210\u3059\u308B\u305F\u3081\u306B\u3001\u30D3\u30EB\u30C9\u3092\u5B9F\u884C\u3057\u3066\u304F\u3060\u3055\u3044\u3002 diff --git a/core/src/main/resources/hudson/model/AbstractItem/noWorkspace_pt_BR.properties b/core/src/main/resources/hudson/model/AbstractItem/noWorkspace_pt_BR.properties index f997c84ca7a8427f01d79ae7eede914a104de5d9..ca934e507f385733c62996c01d62bb7361f23fc4 100644 --- a/core/src/main/resources/hudson/model/AbstractItem/noWorkspace_pt_BR.properties +++ b/core/src/main/resources/hudson/model/AbstractItem/noWorkspace_pt_BR.properties @@ -21,9 +21,11 @@ # THE SOFTWARE. Error\:\ no\ workspace=Erro: nenhum workspace -A\ project\ won't\ have\ any\ workspace\ until\ at\ least\ one\ build\ is\ performed.=Um projeto n\u00E3o ter\u00E1 nehum workspace at\u00E9 que pelo menos uma constru\u00E7\u00E3o seja feita. -There's\ no\ workspace\ for\ this\ project.\ Possible\ reasons\ are\:=N\u00E3o h\u00E1 nenhum workspace para este projeto. As poss\u00EDveis raz\u00F5es s\u00E3o: The\ project\ was\ renamed\ recently\ and\ no\ build\ was\ done\ under\ the\ new\ name.=O projeto foi renomeado recentemente e nenhuma constru\u00E7\u00E3o foi feita sob o novo nome. The\ slave\ this\ project\ has\ run\ on\ for\ the\ last\ time\ was\ removed.=A m\u00E1quina slave que este projeto executou pela \u00FAltima vez foi removida. li3=O diret\u00F3rio de workspace ({0}) foi removido externamente do Hudson. text=Executar uma constru\u00E7\u00E3o para que o Hudson crie um workspace. +There''s\ no\ workspace\ for\ this\ project.\ Possible\ reasons\ are\:= +A\ project\ won''t\ have\ any\ workspace\ until\ at\ least\ one\ build\ is\ performed.= +A\ project\ won't\ have\ any\ workspace\ until\ at\ least\ one\ build\ is\ performed.= +There's\ no\ workspace\ for\ this\ project.\ Possible\ reasons\ are\:= diff --git a/core/src/main/resources/hudson/model/AbstractModelObject/descriptionForm.jelly b/core/src/main/resources/hudson/model/AbstractModelObject/descriptionForm.jelly index 1c5c6cdf5d1fe34b28334d27cc2b1cf20074a085..e913e327f88f159a52163a2bffefe274c6e2c10f 100644 --- a/core/src/main/resources/hudson/model/AbstractModelObject/descriptionForm.jelly +++ b/core/src/main/resources/hudson/model/AbstractModelObject/descriptionForm.jelly @@ -26,6 +26,9 @@ THE SOFTWARE. Used by editableDescription.jelly for loading the edit form. --> + + +
    @@ -34,4 +37,4 @@ THE SOFTWARE.
    -
    \ No newline at end of file + diff --git a/core/src/main/resources/hudson/model/AbstractModelObject/descriptionForm_da.properties b/core/src/main/resources/hudson/model/AbstractModelObject/descriptionForm_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..3bdeaf1bbf93fee0efd4e63aa48a2d70cd723c99 --- /dev/null +++ b/core/src/main/resources/hudson/model/AbstractModelObject/descriptionForm_da.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Submit=Gem diff --git a/core/src/main/resources/hudson/model/AbstractModelObject/descriptionForm_de.properties b/core/src/main/resources/hudson/model/AbstractModelObject/descriptionForm_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..be6f61244fa9b35f07eeb97734f882027c6d6c43 --- /dev/null +++ b/core/src/main/resources/hudson/model/AbstractModelObject/descriptionForm_de.properties @@ -0,0 +1,2 @@ +Submit=Übernehmen + diff --git a/core/src/main/resources/hudson/model/AbstractModelObject/descriptionForm_es.properties b/core/src/main/resources/hudson/model/AbstractModelObject/descriptionForm_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..5fffca25522bdfc90a757d39649f268f56d61e67 --- /dev/null +++ b/core/src/main/resources/hudson/model/AbstractModelObject/descriptionForm_es.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Submit=Enviar diff --git a/core/src/main/resources/hudson/model/AbstractModelObject/descriptionForm_fr.properties b/core/src/main/resources/hudson/model/AbstractModelObject/descriptionForm_fr.properties index bd9afc308316b0ed0a10d15076786cdfdd30a0d6..526a39d3d025bb51117149865bc0e881f94093be 100644 --- a/core/src/main/resources/hudson/model/AbstractModelObject/descriptionForm_fr.properties +++ b/core/src/main/resources/hudson/model/AbstractModelObject/descriptionForm_fr.properties @@ -20,4 +20,4 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Submit=Envoyer +Submit=Envoyer diff --git a/core/src/main/resources/hudson/model/AbstractModelObject/descriptionForm_pt_BR.properties b/core/src/main/resources/hudson/model/AbstractModelObject/descriptionForm_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..6fe38bc84199eda98f0b5180394d0f40e638dc96 --- /dev/null +++ b/core/src/main/resources/hudson/model/AbstractModelObject/descriptionForm_pt_BR.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Submit=Submeter diff --git a/core/src/main/resources/hudson/model/AbstractModelObject/descriptionForm_tr.properties b/core/src/main/resources/hudson/model/AbstractModelObject/descriptionForm_tr.properties index 243791f92f54452ed7884e6deeeeed61cf9c4ca2..9bbde41249370e2b1bfbafb933d213084b8e9a5e 100644 --- a/core/src/main/resources/hudson/model/AbstractModelObject/descriptionForm_tr.properties +++ b/core/src/main/resources/hudson/model/AbstractModelObject/descriptionForm_tr.properties @@ -20,4 +20,4 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Submit=G\u00f6nder +Submit=G\u00f6nder diff --git a/core/src/main/resources/hudson/model/AbstractModelObject/editDescription_da.properties b/core/src/main/resources/hudson/model/AbstractModelObject/editDescription_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..3bdeaf1bbf93fee0efd4e63aa48a2d70cd723c99 --- /dev/null +++ b/core/src/main/resources/hudson/model/AbstractModelObject/editDescription_da.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Submit=Gem diff --git a/core/src/main/resources/hudson/model/AbstractModelObject/editDescription_de.properties b/core/src/main/resources/hudson/model/AbstractModelObject/editDescription_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..abc47f4038cc558cb033acc0dc73e174a6ceaaf7 --- /dev/null +++ b/core/src/main/resources/hudson/model/AbstractModelObject/editDescription_de.properties @@ -0,0 +1 @@ +Submit=Übernehmen diff --git a/core/src/main/resources/hudson/model/AbstractModelObject/editDescription_es.properties b/core/src/main/resources/hudson/model/AbstractModelObject/editDescription_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..5fffca25522bdfc90a757d39649f268f56d61e67 --- /dev/null +++ b/core/src/main/resources/hudson/model/AbstractModelObject/editDescription_es.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Submit=Enviar diff --git a/core/src/main/resources/hudson/model/AbstractModelObject/editDescription_fr.properties b/core/src/main/resources/hudson/model/AbstractModelObject/editDescription_fr.properties index bd9afc308316b0ed0a10d15076786cdfdd30a0d6..526a39d3d025bb51117149865bc0e881f94093be 100644 --- a/core/src/main/resources/hudson/model/AbstractModelObject/editDescription_fr.properties +++ b/core/src/main/resources/hudson/model/AbstractModelObject/editDescription_fr.properties @@ -20,4 +20,4 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Submit=Envoyer +Submit=Envoyer diff --git a/core/src/main/resources/hudson/model/AbstractModelObject/editDescription_pt_BR.properties b/core/src/main/resources/hudson/model/AbstractModelObject/editDescription_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..6fe38bc84199eda98f0b5180394d0f40e638dc96 --- /dev/null +++ b/core/src/main/resources/hudson/model/AbstractModelObject/editDescription_pt_BR.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Submit=Submeter diff --git a/core/src/main/resources/hudson/model/AbstractModelObject/editDescription_tr.properties b/core/src/main/resources/hudson/model/AbstractModelObject/editDescription_tr.properties index 243791f92f54452ed7884e6deeeeed61cf9c4ca2..9bbde41249370e2b1bfbafb933d213084b8e9a5e 100644 --- a/core/src/main/resources/hudson/model/AbstractModelObject/editDescription_tr.properties +++ b/core/src/main/resources/hudson/model/AbstractModelObject/editDescription_tr.properties @@ -20,4 +20,4 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Submit=G\u00f6nder +Submit=G\u00f6nder diff --git a/core/src/main/resources/hudson/model/AbstractModelObject/error.jelly b/core/src/main/resources/hudson/model/AbstractModelObject/error.jelly index 87bd0a55eb8f5f61e3f5588a39a6a4f2e80d6194..5dc6b2842c0cb86f5f37e9980aebbeef93893f87 100644 --- a/core/src/main/resources/hudson/model/AbstractModelObject/error.jelly +++ b/core/src/main/resources/hudson/model/AbstractModelObject/error.jelly @@ -24,8 +24,8 @@ THE SOFTWARE. - - + +

    ${%Error}

    diff --git a/core/src/main/resources/hudson/model/AbstractModelObject/error_da.properties b/core/src/main/resources/hudson/model/AbstractModelObject/error_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..ffd78f2352e3a11c232d643b9766f6c6b37fac93 --- /dev/null +++ b/core/src/main/resources/hudson/model/AbstractModelObject/error_da.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Detail...=Detalje... +Error=Fejl diff --git a/core/src/main/resources/hudson/model/AbstractModelObject/error_de.properties b/core/src/main/resources/hudson/model/AbstractModelObject/error_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..ced3ec58785997551c27d83c003f78edfe7518d2 --- /dev/null +++ b/core/src/main/resources/hudson/model/AbstractModelObject/error_de.properties @@ -0,0 +1,2 @@ +Error=Fehler +Detail...=Details... diff --git a/core/src/main/resources/hudson/model/AbstractModelObject/error_es.properties b/core/src/main/resources/hudson/model/AbstractModelObject/error_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..792ab81a5318ce5b6f202342740ac46a9e16b86d --- /dev/null +++ b/core/src/main/resources/hudson/model/AbstractModelObject/error_es.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Error=Error +Detail...=Detalles... diff --git a/core/src/main/resources/hudson/model/AbstractModelObject/error_fr.properties b/core/src/main/resources/hudson/model/AbstractModelObject/error_fr.properties index 2f18a5f773ff715ec0a2f97f37a87aebc92334b8..5ae81465407ddd9209011a6f3ab84f591109273a 100644 --- a/core/src/main/resources/hudson/model/AbstractModelObject/error_fr.properties +++ b/core/src/main/resources/hudson/model/AbstractModelObject/error_fr.properties @@ -20,5 +20,5 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Error=Erreur -Detail...=Détails... +Error=Erreur +Detail...=Détails... diff --git a/core/src/main/resources/hudson/model/AbstractModelObject/error_pt_BR.properties b/core/src/main/resources/hudson/model/AbstractModelObject/error_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..8c1ddd2eacc0aa81f3ac1b753abbb3d16610cfcd --- /dev/null +++ b/core/src/main/resources/hudson/model/AbstractModelObject/error_pt_BR.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Detail...= +Error=Erro diff --git a/core/src/main/resources/hudson/model/AbstractModelObject/error_tr.properties b/core/src/main/resources/hudson/model/AbstractModelObject/error_tr.properties index 0167e368586935dc40c418428ec350ff2e2e98fb..5c489df97082bd0afd57e9ef7b6b1d0a3de08c7b 100644 --- a/core/src/main/resources/hudson/model/AbstractModelObject/error_tr.properties +++ b/core/src/main/resources/hudson/model/AbstractModelObject/error_tr.properties @@ -20,5 +20,5 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Error=Hata -Detail...=Detay... +Error=Hata +Detail...=Detay... diff --git a/core/src/main/resources/hudson/model/AbstractProject/BecauseOfUpstreamBuildInProgress/summary.jelly b/core/src/main/resources/hudson/model/AbstractProject/BecauseOfUpstreamBuildInProgress/summary.jelly new file mode 100644 index 0000000000000000000000000000000000000000..2fb40a6807f6d6588eefa7d7069762595e6b251e --- /dev/null +++ b/core/src/main/resources/hudson/model/AbstractProject/BecauseOfUpstreamBuildInProgress/summary.jelly @@ -0,0 +1,31 @@ + + + + + + + + + \ No newline at end of file diff --git a/core/src/main/resources/hudson/model/AbstractProject/BecauseOfUpstreamBuildInProgress/summary.properties b/core/src/main/resources/hudson/model/AbstractProject/BecauseOfUpstreamBuildInProgress/summary.properties new file mode 100644 index 0000000000000000000000000000000000000000..e537898f6284899cea16a5d720236758b8fdb41f --- /dev/null +++ b/core/src/main/resources/hudson/model/AbstractProject/BecauseOfUpstreamBuildInProgress/summary.properties @@ -0,0 +1,22 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +description=Upstream project {0} is already building. \ No newline at end of file diff --git a/core/src/main/resources/hudson/model/AbstractProject/BecauseOfUpstreamBuildInProgress/summary_es.properties b/core/src/main/resources/hudson/model/AbstractProject/BecauseOfUpstreamBuildInProgress/summary_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..02590d49190d4a42e6f91a0fd99393893d2f1b1b --- /dev/null +++ b/core/src/main/resources/hudson/model/AbstractProject/BecauseOfUpstreamBuildInProgress/summary_es.properties @@ -0,0 +1,21 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. diff --git a/core/src/main/resources/hudson/model/AbstractProject/BecauseOfUpstreamBuildInProgress/summary_ja.properties b/core/src/main/resources/hudson/model/AbstractProject/BecauseOfUpstreamBuildInProgress/summary_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..0a8160544097e978c03f05dde73d687b9075e816 --- /dev/null +++ b/core/src/main/resources/hudson/model/AbstractProject/BecauseOfUpstreamBuildInProgress/summary_ja.properties @@ -0,0 +1,22 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +description=\u4E0A\u6D41\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8 {0} \u306F\u3059\u3067\u306B\u30D3\u30EB\u30C9\u6E08\u307F\u3067\u3059\u3002 \ No newline at end of file diff --git a/core/src/main/resources/hudson/model/AbstractProject/changes.jelly b/core/src/main/resources/hudson/model/AbstractProject/changes.jelly index b54e7255f125351becf1edf5f060d7bf95261c48..2fb8834c296efe6df5f3ccd084411da0b2837fe6 100644 --- a/core/src/main/resources/hudson/model/AbstractProject/changes.jelly +++ b/core/src/main/resources/hudson/model/AbstractProject/changes.jelly @@ -35,8 +35,8 @@ THE SOFTWARE.

    ${%Changes} - ${%from.label(from)} - ${%to.label(to)} + ${%from.label(from)} +  ${%to.label(to)}

    diff --git a/core/src/main/resources/hudson/model/AbstractProject/changes.properties b/core/src/main/resources/hudson/model/AbstractProject/changes.properties index 18a075609d48ab07acb12764bbb33cae59db3378..0a353fc073294ee3e0afb6d9d87f35161d3066e4 100644 --- a/core/src/main/resources/hudson/model/AbstractProject/changes.properties +++ b/core/src/main/resources/hudson/model/AbstractProject/changes.properties @@ -20,6 +20,6 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -changes.title={0} Changes -from.label=from {0} -to.label=to {0} \ No newline at end of file +changes.title={0} Changes +from.label=from #{0} +to.label=to #{0} \ No newline at end of file diff --git a/core/src/main/resources/hudson/model/AbstractProject/changes_da.properties b/core/src/main/resources/hudson/model/AbstractProject/changes_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..62e5d9fb042e311ab1ddd7c6af513e835ecffce5 --- /dev/null +++ b/core/src/main/resources/hudson/model/AbstractProject/changes_da.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Changes=\u00c6ndringer +from.label=# fra #{0} +to.label=# til #{0} +changes.title=# {0} \u00c6ndringer diff --git a/core/src/main/resources/hudson/model/AbstractProject/changes_de.properties b/core/src/main/resources/hudson/model/AbstractProject/changes_de.properties index f439524342c694d0815cfa0230d42fad57ce1465..48613c9e054ecc24757d3fa2e02e16dea1d9232b 100644 --- a/core/src/main/resources/hudson/model/AbstractProject/changes_de.properties +++ b/core/src/main/resources/hudson/model/AbstractProject/changes_de.properties @@ -21,3 +21,6 @@ # THE SOFTWARE. Changes=Änderungen +changes.title=Änderungen in {0} +from.label=von #{0} +to.label=bis #{0} diff --git a/core/src/main/resources/hudson/model/AbstractProject/changes_es.properties b/core/src/main/resources/hudson/model/AbstractProject/changes_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..58fbbca97d6a24fdd135ea9f1ea95b3579821dcb --- /dev/null +++ b/core/src/main/resources/hudson/model/AbstractProject/changes_es.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Eric Lefevre-Ardant +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +changes.title={0} Cambios +from.label=desde #{0} +to.label=hasta #{0} +Changes=Cambios diff --git a/core/src/main/resources/hudson/model/AbstractProject/changes_fr.properties b/core/src/main/resources/hudson/model/AbstractProject/changes_fr.properties index f311986ee274be9ce66e62bf8433504f83d3fb36..7a1f9cc5fb96f69305aba250faa40117ebe75b4c 100644 --- a/core/src/main/resources/hudson/model/AbstractProject/changes_fr.properties +++ b/core/src/main/resources/hudson/model/AbstractProject/changes_fr.properties @@ -22,5 +22,5 @@ changes.title=Changements dans {0} Changes=Changements -from.label=de {0} -to.label=à {0} +from.label=de #{0} +to.label=à #{0} diff --git a/core/src/main/resources/hudson/model/AbstractProject/changes_it.properties b/core/src/main/resources/hudson/model/AbstractProject/changes_it.properties new file mode 100644 index 0000000000000000000000000000000000000000..ce8726d8913fe83ea72503a508fb41adfd979151 --- /dev/null +++ b/core/src/main/resources/hudson/model/AbstractProject/changes_it.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Changes=Modifiche diff --git a/core/src/main/resources/hudson/model/AbstractProject/changes_ja.properties b/core/src/main/resources/hudson/model/AbstractProject/changes_ja.properties index 152a35bc12d1b1718655d99bf8aa304ca6491215..bd4946b6f77fcc8a02fb585b597f18f591d30c06 100644 --- a/core/src/main/resources/hudson/model/AbstractProject/changes_ja.properties +++ b/core/src/main/resources/hudson/model/AbstractProject/changes_ja.properties @@ -1,6 +1,6 @@ # The MIT License # -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:cactusman +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:cactusman. Seiji Sogabe # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -20,4 +20,7 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Changes=\u5909\u66f4 \ No newline at end of file +changes.title={0}\u306E\u5909\u66F4 +Changes=\u5909\u66F4 +from.label=#{0} \u304B\u3089 +to.label=#{0} \u307E\u3067 \ No newline at end of file diff --git a/core/src/main/resources/hudson/model/AbstractProject/changes_pt_BR.properties b/core/src/main/resources/hudson/model/AbstractProject/changes_pt_BR.properties index 0b14733d44860ab37483870ebe55be9e3382e357..d195567921ba68bae7c2b97c6712004ae0ea8088 100644 --- a/core/src/main/resources/hudson/model/AbstractProject/changes_pt_BR.properties +++ b/core/src/main/resources/hudson/model/AbstractProject/changes_pt_BR.properties @@ -21,3 +21,9 @@ # THE SOFTWARE. Changes=Mudan\u00E7as +# from #{0} +from.label= +# to #{0} +to.label= +# {0} Changes +changes.title= diff --git a/core/src/main/resources/hudson/model/AbstractProject/changes_sv_SE.properties b/core/src/main/resources/hudson/model/AbstractProject/changes_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..6c29ba317d1056c61e9433b1a89d86942343b6b8 --- /dev/null +++ b/core/src/main/resources/hudson/model/AbstractProject/changes_sv_SE.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Changes=F\u00F6r\u00E4ndringar diff --git a/core/src/main/resources/hudson/model/AbstractProject/changes_tr.properties b/core/src/main/resources/hudson/model/AbstractProject/changes_tr.properties index f73073baa2b17903e2215be642899fe21cac9549..244c86996b12b06011839ce97f28b8d76bca79b7 100644 --- a/core/src/main/resources/hudson/model/AbstractProject/changes_tr.properties +++ b/core/src/main/resources/hudson/model/AbstractProject/changes_tr.properties @@ -22,5 +22,5 @@ Changes=De\u011fi\u015fiklikler changes.title={0} degi\u015fiklik -from.label={0}'dan -to.label={0}'a +from.label=#{0}'dan +to.label=#{0}'a diff --git a/core/src/main/resources/hudson/model/AbstractProject/changes_zh_CN.properties b/core/src/main/resources/hudson/model/AbstractProject/changes_zh_CN.properties new file mode 100644 index 0000000000000000000000000000000000000000..b5e048f6e584c53809b3581dfb721834cd88ff6a --- /dev/null +++ b/core/src/main/resources/hudson/model/AbstractProject/changes_zh_CN.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Changes=\u53D8\u66F4\u96C6 diff --git a/core/src/main/resources/hudson/model/AbstractProject/changes_zh_TW.properties b/core/src/main/resources/hudson/model/AbstractProject/changes_zh_TW.properties new file mode 100644 index 0000000000000000000000000000000000000000..64ee1eb921437d4271adf18ee62e883f9dc82fa2 --- /dev/null +++ b/core/src/main/resources/hudson/model/AbstractProject/changes_zh_TW.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Changes=\u6539\u8B8A diff --git a/core/src/main/resources/hudson/model/AbstractProject/help-assignedLabelString.html b/core/src/main/resources/hudson/model/AbstractProject/help-assignedLabelString.html new file mode 100644 index 0000000000000000000000000000000000000000..5a21d5ccb65bf2a6243e60b94510fe3fb6df22f1 --- /dev/null +++ b/core/src/main/resources/hudson/model/AbstractProject/help-assignedLabelString.html @@ -0,0 +1,52 @@ +
    + If you want to always run this project on a specific node/slave, just specify its name. + This works well when you have a small number of nodes. + +

    + As the size of the cluster grows, it becomes useful not to tie projects to specific slaves, + as it hurts resource utilization when slaves may come and go. For such situation, assign labels + to slaves to classify their capabilities and characteristics, and specify a boolean expression + over those labels to decide where to run. + +

    Valid Operators

    +

    + The following operators are supported, in the order of precedence. +

    +
    (expr)
    +
    parenthesis
    + +
    !expr
    +
    negation
    + +
    expr&&expr
    +
    + and +
    + +
    expr||expr
    +
    + or +
    + +
    a -> b
    +
    + "implies" operator. Equivalent to !a|b. + For example, windows->x64 could be thought of as "if run on a Windows slave, + that slave must be 64bit." It still allows Hudson to run this build on linux. +
    + +
    a <-> b
    +
    + "if and only if" operator. Equivalent to a&&b || !a&&!b. + For example, windows->sfbay could be thought of as "if run on a Windows slave, + that slave must be in the SF bay area, but if not on Windows, it must not be in the bay area." +
    +
    +

    + All operators are left-associative (i.e., a->b->c <-> (a->b)->c ) + An expression can contain whitespace for better readability, and it'll be ignored. + +

    + Label names or slave names can be quoted if they contain unsafe characters. For example, + "hudson-solaris (Solaris)" || "Windows 2008" +

    \ No newline at end of file diff --git a/core/src/main/resources/hudson/model/AbstractProject/main.jelly b/core/src/main/resources/hudson/model/AbstractProject/main.jelly index c154d8286acde808be3123d0f0e76ac4377ec83f..6e4089ea9b0398d6ef68cc8a0ffad0e75efb4c7d 100644 --- a/core/src/main/resources/hudson/model/AbstractProject/main.jelly +++ b/core/src/main/resources/hudson/model/AbstractProject/main.jelly @@ -1,7 +1,8 @@ + + + + + + +

    ${%Error: Wipe Out Workspace blocked by SCM}

    +

    + ${%The SCM for this project has blocked this attempt to wipe out the project's workspace.} +

    +
    +
    +
    \ No newline at end of file diff --git a/core/src/main/resources/hudson/model/AbstractProject/wipeOutWorkspaceBlocked_da.properties b/core/src/main/resources/hudson/model/AbstractProject/wipeOutWorkspaceBlocked_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..052ddd6f4bca9dba6b2ab285245b0ab1b020fff3 --- /dev/null +++ b/core/src/main/resources/hudson/model/AbstractProject/wipeOutWorkspaceBlocked_da.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Error\:\ Wipe\ Out\ Workspace\ blocked\ by\ SCM=Fejl: Arbejdsomr\u00e5desletning blokeret af kildekodestyring (SCM) +The\ SCM\ for\ this\ project\ has\ blocked\ this\ attempt\ to\ wipe\ out\ the\ project''s\ workspace.=\ +Kildekodestyringen (SCM) for dette projekt har blokeret dette fors\u00f8g p\u00e5 at slette projektets arbejdsomr\u00e5de. diff --git a/core/src/main/resources/hudson/model/AbstractProject/wipeOutWorkspaceBlocked_de.properties b/core/src/main/resources/hudson/model/AbstractProject/wipeOutWorkspaceBlocked_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..7fc14f9a17576eaa86c3ab52434e1707a5a8e8c9 --- /dev/null +++ b/core/src/main/resources/hudson/model/AbstractProject/wipeOutWorkspaceBlocked_de.properties @@ -0,0 +1,3 @@ +Error\:\ Wipe\ Out\ Workspace\ blocked\ by\ SCM=Fehler: Löschen des Arbeitsbereichs blockiert durch SCM +The\ SCM\ for\ this\ project\ has\ blocked\ this\ attempt\ to\ wipe\ out\ the\ project's\ workspace.=\ + Das SCM dieses Projekts blockierte das Löschen des Arbeitsbereichs. diff --git a/core/src/main/resources/hudson/model/AbstractProject/wipeOutWorkspaceBlocked_es.properties b/core/src/main/resources/hudson/model/AbstractProject/wipeOutWorkspaceBlocked_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..8f366236cfb64a05b026ebdb20c6a13a31eb9fc3 --- /dev/null +++ b/core/src/main/resources/hudson/model/AbstractProject/wipeOutWorkspaceBlocked_es.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Error\:\ Wipe\ Out\ Workspace\ blocked\ by\ SCM=Error: La limpieza del espacio de trabajo está bloqueada por el software de gestion del repositorio (SCM) +The\ SCM\ for\ this\ project\ has\ blocked\ this\ attempt\ to\ wipe\ out\ the\ project''s\ workspace.= Algun comando de gestion del repositorio (SCM) ha bloqueado el intento de limpieza dle espacio de trabajo. + diff --git a/core/src/main/resources/hudson/model/AbstractProject/wipeOutWorkspaceBlocked_ja.properties b/core/src/main/resources/hudson/model/AbstractProject/wipeOutWorkspaceBlocked_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..95beb4d8d580c3432a4800785d8c5a3c95a22a84 --- /dev/null +++ b/core/src/main/resources/hudson/model/AbstractProject/wipeOutWorkspaceBlocked_ja.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Error\:\ Wipe\ Out\ Workspace\ blocked\ by\ SCM=\u30A8\u30E9\u30FC: SCM\u306B\u30D6\u30ED\u30C3\u30AF\u3055\u308C\u305F\u305F\u3081\u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9\u3092\u30AF\u30EA\u30A2\u3067\u304D\u307E\u305B\u3093\u3002 +The\ SCM\ for\ this\ project\ has\ blocked\ this\ attempt\ to\ wipe\ out\ the\ project''s\ workspace.=\ + \u3053\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306ESCM\u304C\u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9\u306E\u30AF\u30EA\u30A2\u3092\u30D6\u30ED\u30C3\u30AF\u3057\u307E\u3057\u305F\u3002 diff --git a/core/src/main/resources/hudson/model/AbstractProject/wipeOutWorkspaceBlocked_pt_BR.properties b/core/src/main/resources/hudson/model/AbstractProject/wipeOutWorkspaceBlocked_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..537e65cfe57493f8a2b28e724d56dd1bf9c2ea52 --- /dev/null +++ b/core/src/main/resources/hudson/model/AbstractProject/wipeOutWorkspaceBlocked_pt_BR.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Error\:\ Wipe\ Out\ Workspace\ blocked\ by\ SCM= +The\ SCM\ for\ this\ project\ has\ blocked\ this\ attempt\ to\ wipe\ out\ the\ project''s\ workspace.= +The\ SCM\ for\ this\ project\ has\ blocked\ this\ attempt\ to\ wipe\ out\ the\ project's\ workspace.= diff --git a/core/src/main/resources/hudson/model/AbstractProject/wipeOutWorkspace_da.properties b/core/src/main/resources/hudson/model/AbstractProject/wipeOutWorkspace_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..d78bc492d1dba861fb83c94a336bf7ed2483f659 --- /dev/null +++ b/core/src/main/resources/hudson/model/AbstractProject/wipeOutWorkspace_da.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Yes=Ja +title=Er du sikker p\u00e5 at du vil slette arbejdsomr\u00e5det? diff --git a/core/src/main/resources/hudson/model/AbstractProject/wipeOutWorkspace_de.properties b/core/src/main/resources/hudson/model/AbstractProject/wipeOutWorkspace_de.properties index 10767983fbeac179a0d289a66d8a8d82a7c2c49d..31028d4d44edf1374e03230f0ebbef62f01ffd3a 100644 --- a/core/src/main/resources/hudson/model/AbstractProject/wipeOutWorkspace_de.properties +++ b/core/src/main/resources/hudson/model/AbstractProject/wipeOutWorkspace_de.properties @@ -20,5 +20,5 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -title=Sind Sie sicher, daß die den Arbeitsbereich löschen möchten? +title=Sind Sie sicher, dass sie den Arbeitsbereich löschen möchten? Yes=Ja diff --git a/core/src/main/resources/hudson/model/AbstractProject/wipeOutWorkspace_es.properties b/core/src/main/resources/hudson/model/AbstractProject/wipeOutWorkspace_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..6c3cbdb5ac5a51ae6cf2c06756d1965345d974a1 --- /dev/null +++ b/core/src/main/resources/hudson/model/AbstractProject/wipeOutWorkspace_es.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +title=¿Estás seguro de que quieres limpiar el espacio de trabajo? +Yes=Sí diff --git a/core/src/main/resources/hudson/model/AbstractProject/wipeOutWorkspace_fr.properties b/core/src/main/resources/hudson/model/AbstractProject/wipeOutWorkspace_fr.properties index 3bf34ae3425ffe2523d2d1b8b345511a36337fdc..1464f72b0c2b4cc4012b1d2a7c32899744211cdd 100644 --- a/core/src/main/resources/hudson/model/AbstractProject/wipeOutWorkspace_fr.properties +++ b/core/src/main/resources/hudson/model/AbstractProject/wipeOutWorkspace_fr.properties @@ -20,5 +20,5 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -title=Voulez-vous vraiment effacer le répertoire de travail? -Yes=Oui +title=Voulez-vous vraiment effacer le répertoire de travail? +Yes=Oui diff --git a/core/src/main/resources/hudson/model/AbstractProject/wipeOutWorkspace_pt_BR.properties b/core/src/main/resources/hudson/model/AbstractProject/wipeOutWorkspace_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..80d03170263f2ae7fc41f2c2a8ba69fb4a8ac936 --- /dev/null +++ b/core/src/main/resources/hudson/model/AbstractProject/wipeOutWorkspace_pt_BR.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Yes=Sim +# Are you sure about wiping out the workspace? +title= diff --git a/core/src/main/resources/hudson/model/AbstractProject/wipeOutWorkspace_ru.properties b/core/src/main/resources/hudson/model/AbstractProject/wipeOutWorkspace_ru.properties new file mode 100644 index 0000000000000000000000000000000000000000..f290982c087bdf2478770d7787633def2576f50d --- /dev/null +++ b/core/src/main/resources/hudson/model/AbstractProject/wipeOutWorkspace_ru.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Yes=\u0414\u0430 +title=\u041F\u043E\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435, \u0447\u0442\u043E \u0432\u044B \u0445\u043E\u0442\u0438\u0442\u0435 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043A\u0438 \u0443\u0434\u0430\u043B\u0438\u0442\u044C \u0432\u0441\u0435 \u0444\u0430\u0439\u043B\u044B \u0438\u0437 \u0421\u0431\u043E\u0440\u043E\u0447\u043D\u043E\u0439 \u0414\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u0438? diff --git a/core/src/main/resources/hudson/model/AbstractProject/wipeOutWorkspace_sv_SE.properties b/core/src/main/resources/hudson/model/AbstractProject/wipeOutWorkspace_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..6e91a8ff41f34bec6f41705de9b4d99664b1e14a --- /dev/null +++ b/core/src/main/resources/hudson/model/AbstractProject/wipeOutWorkspace_sv_SE.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Yes=Ja +title=\u00C4r du s\u00E4ker p\u00E5 att du vill rensa arbetsytan? diff --git a/core/src/main/resources/hudson/model/AbstractProject/wipeOutWorkspace_zh_CN.properties b/core/src/main/resources/hudson/model/AbstractProject/wipeOutWorkspace_zh_CN.properties new file mode 100644 index 0000000000000000000000000000000000000000..47447f9a7a68edb5fa8178b9665e864f326c33c6 --- /dev/null +++ b/core/src/main/resources/hudson/model/AbstractProject/wipeOutWorkspace_zh_CN.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Yes=\u662F +title=\u786E\u5B9A\u60F3\u8981\u6E05\u7A7A\u5DE5\u4F5C\u533A\u5417\uFF1F diff --git a/core/src/main/resources/hudson/model/AbstractProject/wipeOutWorkspace_zh_TW.properties b/core/src/main/resources/hudson/model/AbstractProject/wipeOutWorkspace_zh_TW.properties new file mode 100644 index 0000000000000000000000000000000000000000..8a7a03ed30a87d7c78b0bf05854f3726a5be785c --- /dev/null +++ b/core/src/main/resources/hudson/model/AbstractProject/wipeOutWorkspace_zh_TW.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Yes=\u662F +title=\u4F60\u78BA\u5B9A\u8981\u6E05\u9664\u5DE5\u4F5C\u5340? diff --git a/core/src/main/resources/hudson/model/AgentSlave/config_da.properties b/core/src/main/resources/hudson/model/AgentSlave/config_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..b88296191e5b9ec7e9467bddfd5a42a951f698d8 --- /dev/null +++ b/core/src/main/resources/hudson/model/AgentSlave/config_da.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +launch\ command=affyr kommando diff --git a/core/src/main/resources/hudson/model/AgentSlave/config_de.properties b/core/src/main/resources/hudson/model/AgentSlave/config_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..5351d66157da3b8061b828103c2f130834145680 --- /dev/null +++ b/core/src/main/resources/hudson/model/AgentSlave/config_de.properties @@ -0,0 +1 @@ +launch\ command=Startkommando diff --git a/core/src/main/resources/hudson/model/AgentSlave/config_es.properties b/core/src/main/resources/hudson/model/AgentSlave/config_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..71e58d063b011fafda7047781798b6609c920be8 --- /dev/null +++ b/core/src/main/resources/hudson/model/AgentSlave/config_es.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +launch\ command=Comando para lanzar diff --git a/core/src/main/resources/hudson/model/AgentSlave/config_fr.properties b/core/src/main/resources/hudson/model/AgentSlave/config_fr.properties index 0bbef1de7e05f39c07894c365c89404c178aec5a..8ef0f2df51846f1642a5abd77c62d83bde1f5342 100644 --- a/core/src/main/resources/hudson/model/AgentSlave/config_fr.properties +++ b/core/src/main/resources/hudson/model/AgentSlave/config_fr.properties @@ -20,4 +20,4 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -launch\ command=commande de lancement +launch\ command=commande de lancement diff --git a/core/src/main/resources/hudson/model/AgentSlave/config_ja.properties b/core/src/main/resources/hudson/model/AgentSlave/config_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..5f12e632ac899f2e66d379f93fc4cfa4b9726804 --- /dev/null +++ b/core/src/main/resources/hudson/model/AgentSlave/config_ja.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +launch\ command=\u30B3\u30DE\u30F3\u30C9\u306E\u8D77\u52D5 diff --git a/core/src/main/resources/hudson/model/AgentSlave/config_pt_BR.properties b/core/src/main/resources/hudson/model/AgentSlave/config_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..7420bd58546e06e78a54c527245119b437a9c601 --- /dev/null +++ b/core/src/main/resources/hudson/model/AgentSlave/config_pt_BR.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +launch\ command=comando de lan\u00E7amento diff --git a/core/src/main/resources/hudson/model/AgentSlave/config_tr.properties b/core/src/main/resources/hudson/model/AgentSlave/config_tr.properties index 23f6ddf59556fe8b246dca816013349b61fa11c0..fa84f4d319f402a5ea0e3eae1bf9aa241cf0de85 100644 --- a/core/src/main/resources/hudson/model/AgentSlave/config_tr.properties +++ b/core/src/main/resources/hudson/model/AgentSlave/config_tr.properties @@ -20,4 +20,4 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -launch\ command=komutu \u00e7al\u0131\u015ft\u0131r +launch\ command=komutu \u00e7al\u0131\u015ft\u0131r diff --git a/core/src/main/resources/hudson/model/AllView/newViewDetail_da.properties b/core/src/main/resources/hudson/model/AllView/newViewDetail_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..43160acc43565cd24d21c0bdeec0f047a6a081a9 --- /dev/null +++ b/core/src/main/resources/hudson/model/AllView/newViewDetail_da.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +blurb=Denne visning viser all jobs i Hudson. diff --git a/core/src/main/resources/hudson/model/AllView/newViewDetail_de.properties b/core/src/main/resources/hudson/model/AllView/newViewDetail_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..f8a636cf30a2cef7b5136c6288da18d9308440d0 --- /dev/null +++ b/core/src/main/resources/hudson/model/AllView/newViewDetail_de.properties @@ -0,0 +1 @@ +blurb=Diese Ansicht zeigt alle angelegten Jobs. diff --git a/core/src/main/resources/hudson/model/AllView/newViewDetail_es.properties b/core/src/main/resources/hudson/model/AllView/newViewDetail_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..094e1caeb2300f4dfb3545b88a06cf30e84a1028 --- /dev/null +++ b/core/src/main/resources/hudson/model/AllView/newViewDetail_es.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +blurb=Esta vista muestra todas los proyectos de Hudson. diff --git a/core/src/main/resources/hudson/model/AllView/newViewDetail_fr.properties b/core/src/main/resources/hudson/model/AllView/newViewDetail_fr.properties index 7c982bc8f638f2f20638407d1dc628feea3ec3fe..b20772e7e97fb64aabf0630b3b575f71b4139a74 100644 --- a/core/src/main/resources/hudson/model/AllView/newViewDetail_fr.properties +++ b/core/src/main/resources/hudson/model/AllView/newViewDetail_fr.properties @@ -20,4 +20,4 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -blurb=Cette vue montre montre tous les jobs Hudson. +blurb=Cette vue montre montre tous les jobs Hudson. diff --git a/core/src/main/resources/hudson/model/AllView/newViewDetail_ja.properties b/core/src/main/resources/hudson/model/AllView/newViewDetail_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..1bce5b7f36e65f9052fb4f9d3d3b1d89f27db560 --- /dev/null +++ b/core/src/main/resources/hudson/model/AllView/newViewDetail_ja.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +blurb=\u3059\u3079\u3066\u306E\u30B8\u30E7\u30D6\u3092\u8868\u793A\u3059\u308B\u30D3\u30E5\u30FC\u3067\u3059\u3002 diff --git a/core/src/main/resources/hudson/model/AllView/newViewDetail_pt_BR.properties b/core/src/main/resources/hudson/model/AllView/newViewDetail_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..d342ca2f0e8ad29ecc905a57ca7e87d9d33ebcb0 --- /dev/null +++ b/core/src/main/resources/hudson/model/AllView/newViewDetail_pt_BR.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +# This view shows all the jobs on Hudson. +blurb=\ +# Estes usu\u00E1rios podem se logar no Hudson. Este \u00E9 um super conjunto desta lista, \ diff --git a/core/src/main/resources/hudson/model/AllView/noJob_da.properties b/core/src/main/resources/hudson/model/AllView/noJob_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..e19ae15fa5e82e559aa560235b1905db0dc3a173 --- /dev/null +++ b/core/src/main/resources/hudson/model/AllView/noJob_da.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +login=Log ind for at lave nye jobs. +Welcome\ to\ Hudson!=Velkommen til Hudson! +newJob=Opret et nyt job for at komme i gang. +signup=Hvis du ikke allerede har en konto kan du oprette en nu. diff --git a/core/src/main/resources/hudson/model/AllView/noJob_de.properties b/core/src/main/resources/hudson/model/AllView/noJob_de.properties index 68ff7b38cb49e8b7e1872cca50671918c8f8ddb1..07176d790dcedabe301bb17bb30ad75f24224d4d 100644 --- a/core/src/main/resources/hudson/model/AllView/noJob_de.properties +++ b/core/src/main/resources/hudson/model/AllView/noJob_de.properties @@ -1,6 +1,6 @@ # The MIT License # -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/core/src/main/resources/hudson/model/AllView/noJob_es.properties b/core/src/main/resources/hudson/model/AllView/noJob_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..8332f93480911626652d3133a49ab3ee09e4506b --- /dev/null +++ b/core/src/main/resources/hudson/model/AllView/noJob_es.properties @@ -0,0 +1,31 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +newJob=Crea nuevas tareas para comenzar. + +login=Entra para crear nuevas tareas. + +signup=Si no tienes una cuenta, puedes crear una ahora. +newJob=Nueva tarea +Welcome\ to\ Hudson!=Bienvenido a Hudson +signup=Registrarse + diff --git a/core/src/main/resources/hudson/model/AllView/noJob_ja.properties b/core/src/main/resources/hudson/model/AllView/noJob_ja.properties index 912cfcfb4dc096fce1648f736ee9ae73fc63af87..f0e157c23e1cb27cbbc77c55889d0ab8e6d0f2fa 100644 --- a/core/src/main/resources/hudson/model/AllView/noJob_ja.properties +++ b/core/src/main/resources/hudson/model/AllView/noJob_ja.properties @@ -1,6 +1,6 @@ # The MIT License # -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -20,10 +20,7 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Welcome\ to\ Hudson!=Hudson\u3078\u3088\u3046\u3053\u305d\uff01 - -newJob=\u958b\u59cb\u3059\u308b\u305f\u3081\u306b\u65b0\u3057\u3044\u30b8\u30e7\u30d6\u3092\u4f5c\u6210\u3057\u3066\u304f\u3060\u3055\u3044\u3002 - -login=\u65b0\u3057\u3044\u30b8\u30e7\u30d6\u3092\u4f5c\u6210\u3059\u308b\u306b\u306f\u3001\u30ed\u30b0\u30a4\u30f3\u3057\u3066\u304f\u3060\u3055\u3044\u3002 - -signup=\u3082\u3057\u3042\u306a\u305f\u304c\u30a2\u30ab\u30a6\u30f3\u30c8\u3092\u6301\u3063\u3066\u3044\u306a\u3051\u308c\u3070\u3001\u4eca\u53c2\u52a0\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002 \ No newline at end of file +Welcome\ to\ Hudson!=Hudson\u3078\u3088\u3046\u3053\u305D\uFF01 +newJob=\u958B\u59CB\u3059\u308B\u305F\u3081\u306B\u65B0\u3057\u3044\u30B8\u30E7\u30D6\u3092\u4F5C\u6210\u3057\u3066\u304F\u3060\u3055\u3044\u3002 +login=\u65B0\u3057\u3044\u30B8\u30E7\u30D6\u3092\u4F5C\u6210\u3059\u308B\u306B\u306F\u3001\u30ED\u30B0\u30A4\u30F3\u3057\u3066\u304F\u3060\u3055\u3044\u3002 +signup=\u3082\u3057\u3042\u306A\u305F\u304C\u30A2\u30AB\u30A6\u30F3\u30C8\u3092\u6301\u3063\u3066\u3044\u306A\u3051\u308C\u3070\u3001\u4ECA\u53C2\u52A0\u3059\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u3059\u3002 diff --git a/core/src/main/resources/hudson/model/AllView/noJob_ko.properties b/core/src/main/resources/hudson/model/AllView/noJob_ko.properties index b06775bf789d6fc26d4c067fca1d8d10044ba6ee..8019f4c507fe3b5d23ad337e096c38a5e7ee16bc 100644 --- a/core/src/main/resources/hudson/model/AllView/noJob_ko.properties +++ b/core/src/main/resources/hudson/model/AllView/noJob_ko.properties @@ -20,7 +20,7 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Welcome\ to\ Hudson\!=Hudson\uC5D0 \uC624\uC2E0 \uAC83\uC744 \uD658\uC601\uD569\uB2C8\uB2E4. -newJob=\uC2DC\uC791\uD558\uB824\uBA74 \uC0C8 \uC791\uC5C5\uB97C \uB9CC\uB4E4\uC5B4 \uC8FC\uC2DC\uAE30 \uBC14\uB78D\uB2C8\uB2E4. -login=\uC0C8\uB85C\uC6B4 \uC791\uC5C5\uC744 \uB9CC\uB4E4\uB824\uBA74 \uB85C\uADF8\uC778\uD574 \uC8FC\uC138\uC694. -signup=\uB9CC\uC57D \uB2F9\uC2E0\uC774 \uACC4\uC815\uC744 \uAC00\uC9C0\uACE0 \uC788\uC9C0 \uC54A\uC73C\uBA74, \uC9C0\uAE08 \uAC00\uC785\uD558\uC2E4 \uC218 \uC788\uC2B5\uB2C8\uB2E4. +Welcome\ to\ Hudson\!=Hudson\uC5D0 \uC624\uC2E0 \uAC83\uC744 \uD658\uC601\uD569\uB2C8\uB2E4. +newJob=\uC2DC\uC791\uD558\uB824\uBA74 \uC0C8 \uC791\uC5C5\uB97C \uB9CC\uB4E4\uC5B4 \uC8FC\uC2DC\uAE30 \uBC14\uB78D\uB2C8\uB2E4. +login=\uC0C8\uB85C\uC6B4 \uC791\uC5C5\uC744 \uB9CC\uB4E4\uB824\uBA74 \uB85C\uADF8\uC778\uD574 \uC8FC\uC138\uC694. +signup=\uB9CC\uC57D \uB2F9\uC2E0\uC774 \uACC4\uC815\uC744 \uAC00\uC9C0\uACE0 \uC788\uC9C0 \uC54A\uC73C\uBA74, \uC9C0\uAE08 \uAC00\uC785\uD558\uC2E4 \uC218 \uC788\uC2B5\uB2C8\uB2E4. diff --git a/core/src/main/resources/hudson/model/AllView/noJob_pt_BR.properties b/core/src/main/resources/hudson/model/AllView/noJob_pt_BR.properties index b2f86bb252419c7f8a4690d867046d82f6bbab6f..ecfd510fd7dd3ff0b695f3194da31a483ceb634f 100644 --- a/core/src/main/resources/hudson/model/AllView/noJob_pt_BR.properties +++ b/core/src/main/resources/hudson/model/AllView/noJob_pt_BR.properties @@ -20,7 +20,7 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Welcome\ to\ Hudson\!=Bem vindo ao Hudson! newJob=Por favor crie novas tarefas para iniciar. login=Efetue login para criar novas tarefas. signup=Se voc\u00EA ainda n\u00E3o tem uma conta, voc\u00EA pode criar uma conta agora. +Welcome\ to\ Hudson!= diff --git a/core/src/main/resources/hudson/model/Api/index.jelly b/core/src/main/resources/hudson/model/Api/index.jelly index 475f7f94a2689c43fa2198b8b3aab3181a989924..c574ec87abab6f912bd87285b83094f7751204ed 100644 --- a/core/src/main/resources/hudson/model/Api/index.jelly +++ b/core/src/main/resources/hudson/model/Api/index.jelly @@ -40,7 +40,7 @@ THE SOFTWARE. Schema is also available.

    - You can also specify optional XPath to control the fragment you'd like to obtain. + You can also specify optional XPath to control the fragment you'd like to obtain (but see below). For example, ../api/xml?xpath=/*/*[0]. If the XPath only matches a text node, the result will be sent with text/plain MIME type to simplify further processing. @@ -51,7 +51,7 @@ THE SOFTWARE.

    Similarly exclude query parameter can be used to exclude nodes that match the given XPath from the result. This is useful for - trimming down the amount of data fetch. This query parameter can be specified + trimming down the amount of data you fetch (but again see below). This query parameter can be specified multiple times.

    @@ -79,17 +79,31 @@ THE SOFTWARE. the documentation.

    -

    Controling the amount of data you fetch

    +

    Controlling the amount of data you fetch

    - In both formats, the depth query parameter can be used to control the amount of data + In all formats, the depth query parameter can be used to control the amount of data you'll receive. The default is depth=0, but by increasing this value you can get a lot of data by single remote API invocation (the downside is bigger bandwidth requirement.) Compare depth=0 and depth=1 and see what the difference is for yourself. Also note that data created by a smaller depth value is always a subset of the data created by a bigger depth value.

    +

    + A newer alternative is the tree query parameter. This works with any format, e.g. JSON; + is more efficient than using depth with exclude (since information + does not need to be generated on the server and then discarded); and may be easier to use, + since you need only know what elements you are looking for, rather than what you are not looking + for (which is anyway an open-ended list when plugins can contribute API elements). + The value should be a list of property names to include, with subproperties inside square braces. + Try tree=jobs[name],views[name,jobs[name]] + to see just a list of jobs (only giving the name) and views (giving the name and jobs they contain). + Note: for array-type properties (such as jobs in this example), + the name must be given in the original plural, not in the singular as the element would appear in XML (&lt;job&gt;). + This will be more natural for e.g. json?tree=jobs[name] anyway: + the JSON writer does not do plural-to-singular mangling because arrays are represented explicitly. +

    -
    \ No newline at end of file + diff --git a/core/src/main/resources/hudson/model/BooleanParameterDefinition/config_da.properties b/core/src/main/resources/hudson/model/BooleanParameterDefinition/config_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..1fa04ed0bbe56ac76817703b42a16a3ada8c597d --- /dev/null +++ b/core/src/main/resources/hudson/model/BooleanParameterDefinition/config_da.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Name=Navn +Default\ Value=Standardv\u00e6rdi +Description=Beskrivelse diff --git a/core/src/main/resources/hudson/model/BooleanParameterDefinition/config_de.properties b/core/src/main/resources/hudson/model/BooleanParameterDefinition/config_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..ac7c983a08168374394124e6a3a15f2649e3def8 --- /dev/null +++ b/core/src/main/resources/hudson/model/BooleanParameterDefinition/config_de.properties @@ -0,0 +1,3 @@ +Name=Name +Default\ Value=Vorgabewert +Description=Beschreibung diff --git a/core/src/main/resources/hudson/model/BooleanParameterDefinition/config_es.properties b/core/src/main/resources/hudson/model/BooleanParameterDefinition/config_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..0effa47580d572ea68bcd204becf957067a1aeb9 --- /dev/null +++ b/core/src/main/resources/hudson/model/BooleanParameterDefinition/config_es.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Name=Nombre +Default\ Value=Valor por defecto +Description=Descripción diff --git a/core/src/main/resources/hudson/model/BooleanParameterDefinition/config_fr.properties b/core/src/main/resources/hudson/model/BooleanParameterDefinition/config_fr.properties index 717dc17032f75d8e04973981f8d9a969bbfa9934..74d03dea8399d4a2a9d5c634d3b6dc146fd8ba29 100644 --- a/core/src/main/resources/hudson/model/BooleanParameterDefinition/config_fr.properties +++ b/core/src/main/resources/hudson/model/BooleanParameterDefinition/config_fr.properties @@ -21,5 +21,5 @@ # THE SOFTWARE. Name=Nom -Default\ Value=Valeur par défaut -Description= +Default\ Value=Valeur par d\u00E9faut +Description=Description diff --git a/core/src/main/resources/hudson/model/BooleanParameterDefinition/config_pt_BR.properties b/core/src/main/resources/hudson/model/BooleanParameterDefinition/config_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..c92c06cfcf02d63dba6711e3ca1991f82354397e --- /dev/null +++ b/core/src/main/resources/hudson/model/BooleanParameterDefinition/config_pt_BR.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Name= +Default\ Value= +Description= diff --git a/core/src/main/resources/hudson/model/BooleanParameterDefinition/config_ru.properties b/core/src/main/resources/hudson/model/BooleanParameterDefinition/config_ru.properties new file mode 100644 index 0000000000000000000000000000000000000000..069c2794cb070004792fba81b59af29a9e601b76 --- /dev/null +++ b/core/src/main/resources/hudson/model/BooleanParameterDefinition/config_ru.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Default\ Value=\u0417\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u043F\u043E-\u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E +Description=\u041E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 +Name=\u0418\u043C\u044F diff --git a/core/src/main/resources/hudson/model/BuildAuthorizationToken/config.jelly b/core/src/main/resources/hudson/model/BuildAuthorizationToken/config.jelly index 2e5f002997c4587aa48194799550de4c91e5a19b..7bb9fd38f839bc59fea3c05d2d6e42c88955f7e6 100644 --- a/core/src/main/resources/hudson/model/BuildAuthorizationToken/config.jelly +++ b/core/src/main/resources/hudson/model/BuildAuthorizationToken/config.jelly @@ -1,7 +1,8 @@ + + + Show timeline trend image. It takes two builds + + + + +
    +
    + + diff --git a/core/src/main/resources/hudson/model/Cause/UpstreamCause/description.jelly b/core/src/main/resources/hudson/model/Cause/UpstreamCause/description.jelly index 49178b059e73d911bebe4fb329787c68e8809057..28e734f000977c95f0de173032180e37c4887bde 100644 --- a/core/src/main/resources/hudson/model/Cause/UpstreamCause/description.jelly +++ b/core/src/main/resources/hudson/model/Cause/UpstreamCause/description.jelly @@ -23,5 +23,5 @@ THE SOFTWARE. --> -

    ${it.upstreamUrl!=null ? "%started_by_project(it.upstreamProject,it.upstreamBuild.toString(),it.upstreamUrl,rootURL)" : it.shortDescription}

    + ${it.upstreamUrl!=null ? "%started_by_project(it.upstreamProject,it.upstreamBuild.toString(),it.upstreamUrl,rootURL)" : it.shortDescription}
    diff --git a/core/src/main/resources/hudson/model/Cause/UpstreamCause/description_da.properties b/core/src/main/resources/hudson/model/Cause/UpstreamCause/description_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..544ac6bad5c37699730861cb3d795aebbf56fcbc --- /dev/null +++ b/core/src/main/resources/hudson/model/Cause/UpstreamCause/description_da.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +started_by_project=Startet af upstream projekt {0} byg nummer {1} diff --git a/core/src/main/resources/hudson/model/Cause/UpstreamCause/description_de.properties b/core/src/main/resources/hudson/model/Cause/UpstreamCause/description_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..0e283733cbd5be19c3877526ed2fc11f0d27600c --- /dev/null +++ b/core/src/main/resources/hudson/model/Cause/UpstreamCause/description_de.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Alan Harder, Simon Wiest +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +started_by_project=Gestartet durch vorgelagertes Projekt {0}, Build {1} + diff --git a/core/src/main/resources/hudson/model/Cause/UpstreamCause/description_es.properties b/core/src/main/resources/hudson/model/Cause/UpstreamCause/description_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..7304fe676e644885a361b0f867d9a3c2ae429cba --- /dev/null +++ b/core/src/main/resources/hudson/model/Cause/UpstreamCause/description_es.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Alan Harder +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + + +started_by_project=Lanzado por la ejecución número {1} del proyecto padre: {0} diff --git a/core/src/main/resources/hudson/model/Cause/UpstreamCause/description_fi.properties b/core/src/main/resources/hudson/model/Cause/UpstreamCause/description_fi.properties new file mode 100644 index 0000000000000000000000000000000000000000..8817486edbd371b022b41c0aad0089e30f92930c --- /dev/null +++ b/core/src/main/resources/hudson/model/Cause/UpstreamCause/description_fi.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +started_by_project=K\u00E4ynnist\u00E4j\u00E4 yl\u00E4virran projekti {0} k\u00E4\u00E4nn\u00F6snumero {1} diff --git a/core/src/main/resources/hudson/model/Cause/UpstreamCause/description_fr.properties b/core/src/main/resources/hudson/model/Cause/UpstreamCause/description_fr.properties index a8c7575dc67b67ba21cbb631e9cae3887c490e2b..a9778f6623d8246d0ac565f4f577949885b7e550 100644 --- a/core/src/main/resources/hudson/model/Cause/UpstreamCause/description_fr.properties +++ b/core/src/main/resources/hudson/model/Cause/UpstreamCause/description_fr.properties @@ -1,24 +1,24 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Alan Harder, Eric Lefevre-Ardant -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -started_by_project=Lancé par le projet amont {0} avec le numéro de build {1} - +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Alan Harder, Eric Lefevre-Ardant +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +started_by_project=Lancé par le projet amont {0} avec le numéro de build {1} + diff --git a/core/src/main/resources/hudson/model/Cause/UpstreamCause/description_pt_BR.properties b/core/src/main/resources/hudson/model/Cause/UpstreamCause/description_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..e6fbe28478f580328f07aaec02f85dea271b5f57 --- /dev/null +++ b/core/src/main/resources/hudson/model/Cause/UpstreamCause/description_pt_BR.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +# Started by upstream project {0} build number {1} +started_by_project= diff --git a/core/src/main/resources/hudson/model/Cause/UserCause/description.jelly b/core/src/main/resources/hudson/model/Cause/UserCause/description.jelly index 26fc0632961a7b14c98d1571ea2848fed7550b2d..e59490294e029eae0b5d8cb830bd9dbdcc131676 100644 --- a/core/src/main/resources/hudson/model/Cause/UserCause/description.jelly +++ b/core/src/main/resources/hudson/model/Cause/UserCause/description.jelly @@ -22,5 +22,5 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --> -

    ${%started_by_user(it.userName,rootURL)}

    + ${%started_by_user(it.userName,rootURL)}
    diff --git a/core/src/main/resources/hudson/model/Cause/UserCause/description_da.properties b/core/src/main/resources/hudson/model/Cause/UserCause/description_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..b8fb108b89fc254dc0015bacbe0e32e9f5f48e43 --- /dev/null +++ b/core/src/main/resources/hudson/model/Cause/UserCause/description_da.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +started_by_user=Startet af brugeren {0} diff --git a/core/src/main/resources/hudson/model/Cause/UserCause/description_de.properties b/core/src/main/resources/hudson/model/Cause/UserCause/description_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..2ad818addc3d9aeaf21d2cda4de24035334535ae --- /dev/null +++ b/core/src/main/resources/hudson/model/Cause/UserCause/description_de.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Alan Harder, Simon Wiest +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +started_by_user=Gestartet durch Benutzer {0} + diff --git a/core/src/main/resources/hudson/model/Cause/UserCause/description_es.properties b/core/src/main/resources/hudson/model/Cause/UserCause/description_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..36e1df07b91a6864d70cd82ff33cfa2d8377be3e --- /dev/null +++ b/core/src/main/resources/hudson/model/Cause/UserCause/description_es.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Alan Harder +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +started_by_user=Lanzado por el usuario: {0} + + diff --git a/core/src/main/resources/hudson/model/Cause/UserCause/description_fr.properties b/core/src/main/resources/hudson/model/Cause/UserCause/description_fr.properties index 4125fba42f24423c6f53f1e7e3901ba1d17c5a9f..d2076f06b41ec9da0fdb691cd85f1d77171b67c9 100644 --- a/core/src/main/resources/hudson/model/Cause/UserCause/description_fr.properties +++ b/core/src/main/resources/hudson/model/Cause/UserCause/description_fr.properties @@ -1,24 +1,24 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Alan Harder, Eric Lefevre-Ardant -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -started_by_user=Lancé par l''utilisateur {0} - +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Alan Harder, Eric Lefevre-Ardant +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +started_by_user=Lancé par l''utilisateur {0} + diff --git a/core/src/main/resources/hudson/model/Cause/UserCause/description_it.properties b/core/src/main/resources/hudson/model/Cause/UserCause/description_it.properties new file mode 100644 index 0000000000000000000000000000000000000000..e53125586c4c49f36a916d6655b5441f329928ba --- /dev/null +++ b/core/src/main/resources/hudson/model/Cause/UserCause/description_it.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +started_by_user=Avviato da utente {0} diff --git a/core/src/main/resources/hudson/model/Cause/UserCause/description_ko.properties b/core/src/main/resources/hudson/model/Cause/UserCause/description_ko.properties new file mode 100644 index 0000000000000000000000000000000000000000..7773edee1f2841ff688d2b4b15efb9976d31d55b --- /dev/null +++ b/core/src/main/resources/hudson/model/Cause/UserCause/description_ko.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +started_by_user=\uC0AC\uC6A9\uC790 {0}\uC5D0 \uC758\uD574 \uC2DC\uC791\uB428 diff --git a/core/src/main/resources/hudson/model/Cause/UserCause/description_nl.properties b/core/src/main/resources/hudson/model/Cause/UserCause/description_nl.properties new file mode 100644 index 0000000000000000000000000000000000000000..56be172a2c57df4efccd776be48eee6558a555f4 --- /dev/null +++ b/core/src/main/resources/hudson/model/Cause/UserCause/description_nl.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +started_by_user=Gestart door {0} diff --git a/core/src/main/resources/hudson/model/Cause/UserCause/description_pt_BR.properties b/core/src/main/resources/hudson/model/Cause/UserCause/description_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..92827e6d79172920d284f6c6116ae12974c0fbea --- /dev/null +++ b/core/src/main/resources/hudson/model/Cause/UserCause/description_pt_BR.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +# Started by user {0} +started_by_user= diff --git a/core/src/main/resources/hudson/model/Cause/UserCause/description_ru.properties b/core/src/main/resources/hudson/model/Cause/UserCause/description_ru.properties new file mode 100644 index 0000000000000000000000000000000000000000..e45a2e8ecfe512c4cf2609455985cc935fc9376b --- /dev/null +++ b/core/src/main/resources/hudson/model/Cause/UserCause/description_ru.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +started_by_user=\u0417\u0430\u043F\u0443\u0449\u0435\u043D\u0430 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u0435\u043C {0} diff --git a/core/src/main/resources/hudson/model/Cause/UserCause/description_sl.properties b/core/src/main/resources/hudson/model/Cause/UserCause/description_sl.properties new file mode 100644 index 0000000000000000000000000000000000000000..3904faf524861af1a7b997037dfbcf7ea4d9f80a --- /dev/null +++ b/core/src/main/resources/hudson/model/Cause/UserCause/description_sl.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +started_by_user=Spro\u017Eil uporabnik {0} diff --git a/core/src/main/resources/hudson/model/Cause/UserCause/description_sv_SE.properties b/core/src/main/resources/hudson/model/Cause/UserCause/description_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..48d2daa752e8bd1c524d6577ce6f52bcae23d50d --- /dev/null +++ b/core/src/main/resources/hudson/model/Cause/UserCause/description_sv_SE.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +started_by_user=Startad av anv\u00E4ndare {0} diff --git a/core/src/main/resources/hudson/model/Cause/UserCause/description_zh_CN.properties b/core/src/main/resources/hudson/model/Cause/UserCause/description_zh_CN.properties new file mode 100644 index 0000000000000000000000000000000000000000..8e4afee84e481f5dd16acd42fccf25c965869fb5 --- /dev/null +++ b/core/src/main/resources/hudson/model/Cause/UserCause/description_zh_CN.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +started_by_user=\u542F\u52A8\u7528\u6237{0} diff --git a/core/src/main/resources/hudson/model/Cause/description.jelly b/core/src/main/resources/hudson/model/Cause/description.jelly index 2b9174c5ee5adcd1aabb42ac8ab84a186bcefd9f..3913de2219637012714a695dee0a443d3170e9e0 100644 --- a/core/src/main/resources/hudson/model/Cause/description.jelly +++ b/core/src/main/resources/hudson/model/Cause/description.jelly @@ -22,5 +22,5 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --> -

    ${it.shortDescription}

    + ${it.shortDescription}
    diff --git a/core/src/main/resources/hudson/model/CauseAction/summary.jelly b/core/src/main/resources/hudson/model/CauseAction/summary.jelly index 923a95e5b3148c373ab6b5e838b81a9a6d93bd4e..b919abd56d157237598a324a939a82c4cce16a63 100644 --- a/core/src/main/resources/hudson/model/CauseAction/summary.jelly +++ b/core/src/main/resources/hudson/model/CauseAction/summary.jelly @@ -23,9 +23,14 @@ THE SOFTWARE. --> - - -

    -
    -
    + + +

    + + + ${%Ntimes(entry.value)} + +

    +
    +
    diff --git a/core/src/main/resources/hudson/model/CauseAction/summary.properties b/core/src/main/resources/hudson/model/CauseAction/summary.properties new file mode 100644 index 0000000000000000000000000000000000000000..6fcef6304e9914f077fde27a5f725c8c6f430da8 --- /dev/null +++ b/core/src/main/resources/hudson/model/CauseAction/summary.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Alan Harder +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Ntimes=({0} times) diff --git a/core/src/main/resources/hudson/model/CauseAction/summary_da.properties b/core/src/main/resources/hudson/model/CauseAction/summary_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..c3626158f0ac01a97f955498f75b4baa549cf501 --- /dev/null +++ b/core/src/main/resources/hudson/model/CauseAction/summary_da.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Ntimes=({0} gange) diff --git a/core/src/main/resources/hudson/model/CauseAction/summary_de.properties b/core/src/main/resources/hudson/model/CauseAction/summary_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..c68c9b84b0fa0008ec4911312860b9af82d80d2c --- /dev/null +++ b/core/src/main/resources/hudson/model/CauseAction/summary_de.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Ntimes=({0} mal) diff --git a/core/src/main/resources/hudson/model/CauseAction/summary_es.properties b/core/src/main/resources/hudson/model/CauseAction/summary_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..4db4b43c51e752245f7974546720509ecd58ada8 --- /dev/null +++ b/core/src/main/resources/hudson/model/CauseAction/summary_es.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Alan Harder +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Ntimes=({0} veces) + diff --git a/core/src/main/resources/hudson/model/CauseAction/summary_ja.properties b/core/src/main/resources/hudson/model/CauseAction/summary_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..60d1f45472611126aa10493f3b160603eb0e6179 --- /dev/null +++ b/core/src/main/resources/hudson/model/CauseAction/summary_ja.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Ntimes=({0} \u56DE) diff --git a/core/src/main/resources/hudson/model/CauseAction/summary_pt_BR.properties b/core/src/main/resources/hudson/model/CauseAction/summary_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..4b9c3f55e47230a81f4be6e3e53ba27aa1510909 --- /dev/null +++ b/core/src/main/resources/hudson/model/CauseAction/summary_pt_BR.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +# ({0} times) +Ntimes= diff --git a/core/src/main/resources/hudson/model/ChoiceParameterDefinition/config_da.properties b/core/src/main/resources/hudson/model/ChoiceParameterDefinition/config_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..458942a354d3ac3a21b488633bf1d934f6297857 --- /dev/null +++ b/core/src/main/resources/hudson/model/ChoiceParameterDefinition/config_da.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Choices=Valg +Name=Navn +Description=Beskrivelse diff --git a/core/src/main/resources/hudson/model/ChoiceParameterDefinition/config_de.properties b/core/src/main/resources/hudson/model/ChoiceParameterDefinition/config_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..59d13a15df3de1795bbb42415a0be2ff33a208e0 --- /dev/null +++ b/core/src/main/resources/hudson/model/ChoiceParameterDefinition/config_de.properties @@ -0,0 +1,3 @@ +Name=Name +Choices=Auswahlmöglichkeiten +Description=Beschreibung diff --git a/core/src/main/resources/hudson/model/ChoiceParameterDefinition/config_es.properties b/core/src/main/resources/hudson/model/ChoiceParameterDefinition/config_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..9077a74579aa5d636cc28f41aff20bb5160674e7 --- /dev/null +++ b/core/src/main/resources/hudson/model/ChoiceParameterDefinition/config_es.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Name=Nombre +Choices=Opciones +Description=Descripción diff --git a/core/src/main/resources/hudson/model/ChoiceParameterDefinition/config_fr.properties b/core/src/main/resources/hudson/model/ChoiceParameterDefinition/config_fr.properties index 1b3a32f28d71fdf52e122c470d71db4a2fc9b472..57adb4fe4cd9f60e92cf5fdd9f06a3c9f8e592e3 100644 --- a/core/src/main/resources/hudson/model/ChoiceParameterDefinition/config_fr.properties +++ b/core/src/main/resources/hudson/model/ChoiceParameterDefinition/config_fr.properties @@ -21,4 +21,5 @@ # THE SOFTWARE. Name=Nom -Description= +Choices=Choix +Description=Description diff --git a/core/src/main/resources/hudson/model/ChoiceParameterDefinition/config_pt_BR.properties b/core/src/main/resources/hudson/model/ChoiceParameterDefinition/config_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..04a0b6bd9d33e638c57f6769f7feced8188e9423 --- /dev/null +++ b/core/src/main/resources/hudson/model/ChoiceParameterDefinition/config_pt_BR.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Choices= +Name= +Description= diff --git a/core/src/main/resources/hudson/model/ChoiceParameterDefinition/config_ru.properties b/core/src/main/resources/hudson/model/ChoiceParameterDefinition/config_ru.properties new file mode 100644 index 0000000000000000000000000000000000000000..8310be46be19b59ac2f89b0271618295e082e8b2 --- /dev/null +++ b/core/src/main/resources/hudson/model/ChoiceParameterDefinition/config_ru.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Choices=\u0412\u0430\u0440\u0438\u0430\u043D\u0442\u044B +Description=\u041E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 +Name=\u0418\u043C\u044F diff --git a/core/src/main/resources/hudson/model/ChoiceParameterDefinition/config_zh_TW.properties b/core/src/main/resources/hudson/model/ChoiceParameterDefinition/config_zh_TW.properties new file mode 100644 index 0000000000000000000000000000000000000000..1acb271e70816e0a31e8ba3d72d9272cdf9dc8c1 --- /dev/null +++ b/core/src/main/resources/hudson/model/ChoiceParameterDefinition/config_zh_TW.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Description=\u63CF\u8FF0 diff --git a/core/src/main/resources/hudson/model/Computer/_api.jelly b/core/src/main/resources/hudson/model/Computer/_api.jelly new file mode 100644 index 0000000000000000000000000000000000000000..2d5207cec7e3ee919f4dd7b8f820a885f9b4a1ff --- /dev/null +++ b/core/src/main/resources/hudson/model/Computer/_api.jelly @@ -0,0 +1,30 @@ + + + +

    Load Statistics

    +

    + Load statistics of this computer has its own separate API. +

    +
    diff --git a/core/src/main/resources/hudson/model/Computer/_script_da.properties b/core/src/main/resources/hudson/model/Computer/_script_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..8bc431804971ab5ac410b37b5795ce74b5f77717 --- /dev/null +++ b/core/src/main/resources/hudson/model/Computer/_script_da.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +This\ execution\ happens\ in\ the\ slave\ agent\ JVM.=Denne eksekvering sker i slave agentens JVM. diff --git a/core/src/main/resources/hudson/model/Computer/_script_de.properties b/core/src/main/resources/hudson/model/Computer/_script_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..1d42d76034e4c3f57202a71ab53be9042594d67c --- /dev/null +++ b/core/src/main/resources/hudson/model/Computer/_script_de.properties @@ -0,0 +1,2 @@ +This\ execution\ happens\ in\ the\ slave\ agent\ JVM.=\ + Diese Ausführung findet in der JVM des Slave-Agenten statt. diff --git a/core/src/main/resources/hudson/model/Computer/_script_es.properties b/core/src/main/resources/hudson/model/Computer/_script_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..acc45963cfaed4556f3498f5e43007083bf2da64 --- /dev/null +++ b/core/src/main/resources/hudson/model/Computer/_script_es.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +This\ execution\ happens\ in\ the\ slave\ agent\ JVM.=Esta ejecución se hace en el agente de la máquina virtual del esclavo. diff --git a/core/src/main/resources/hudson/model/Computer/_script_fr.properties b/core/src/main/resources/hudson/model/Computer/_script_fr.properties index dce6635f8b0fbea3a2455f8f0f4dc86e01f17a96..5fea54c99f854171721d710850e35edbd7d4b46a 100644 --- a/core/src/main/resources/hudson/model/Computer/_script_fr.properties +++ b/core/src/main/resources/hudson/model/Computer/_script_fr.properties @@ -20,4 +20,4 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -This\ execution\ happens\ in\ the\ slave\ agent\ JVM.=Cette exécution a lieu sur la JVM de l''agent Hudson sur l''esclave. +This\ execution\ happens\ in\ the\ slave\ agent\ JVM.=Cette exécution a lieu sur la JVM de l''agent Hudson sur l''esclave. diff --git a/core/src/main/resources/hudson/model/Computer/_script_ja.properties b/core/src/main/resources/hudson/model/Computer/_script_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..ce17ad737a3cb7baac3b33f3ce763e06ae7e6c04 --- /dev/null +++ b/core/src/main/resources/hudson/model/Computer/_script_ja.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +This\ execution\ happens\ in\ the\ slave\ agent\ JVM.=\ + \u30B9\u30EC\u30FC\u30D6\u306EJVM\u3067\u5B9F\u884C\u3055\u308C\u307E\u3057\u305F\u3002 diff --git a/core/src/main/resources/hudson/model/Computer/_script_pt_BR.properties b/core/src/main/resources/hudson/model/Computer/_script_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..5effb7ca72db789be2afb336e2cd01ffbf943213 --- /dev/null +++ b/core/src/main/resources/hudson/model/Computer/_script_pt_BR.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +This\ execution\ happens\ in\ the\ slave\ agent\ JVM.= diff --git a/core/src/main/resources/hudson/model/Computer/_script_sv_SE.properties b/core/src/main/resources/hudson/model/Computer/_script_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..e1d01dd5a88f31098d9e468a82953a8d735f5c86 --- /dev/null +++ b/core/src/main/resources/hudson/model/Computer/_script_sv_SE.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +This\ execution\ happens\ in\ the\ slave\ agent\ JVM.=Detta utf\u00F6rs p\u00E5 nodens JVM. diff --git a/core/src/main/resources/hudson/model/Computer/_script_tr.properties b/core/src/main/resources/hudson/model/Computer/_script_tr.properties index c17236806be10de9e0ce8b1efdba593a219d1742..710d98527e40e91cc12ed5b9cef2898ef20fb9bc 100644 --- a/core/src/main/resources/hudson/model/Computer/_script_tr.properties +++ b/core/src/main/resources/hudson/model/Computer/_script_tr.properties @@ -20,4 +20,4 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -This\ execution\ happens\ in\ the\ slave\ agent\ JVM.=Bu \u00e7al\u0131\u015fma slave ajan\u0131n\u0131n JVM''i \u00fczerinde yap\u0131lmaktad\u0131r. +This\ execution\ happens\ in\ the\ slave\ agent\ JVM.=Bu \u00e7al\u0131\u015fma slave ajan\u0131n\u0131n JVM''i \u00fczerinde yap\u0131lmaktad\u0131r. diff --git a/core/src/main/resources/hudson/model/Computer/builds.jelly b/core/src/main/resources/hudson/model/Computer/builds.jelly index 13b941ae7de627f3cdf2c9fc43c4ecb885fa0efa..6778ea41cfdeede46fde70d5b36a14f282499aab 100644 --- a/core/src/main/resources/hudson/model/Computer/builds.jelly +++ b/core/src/main/resources/hudson/model/Computer/builds.jelly @@ -30,7 +30,11 @@ THE SOFTWARE. ${%title(it.displayName)} - + + +
    + + - \ No newline at end of file + diff --git a/core/src/main/resources/hudson/model/Computer/builds_FR.properties b/core/src/main/resources/hudson/model/Computer/builds_FR.properties deleted file mode 100644 index 6c5aca1e956e2975aa53347d6bb0951472d2742f..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/model/Computer/builds_FR.properties +++ /dev/null @@ -1,23 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Eric Lefevre-Ardant -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -title=Historique du build de {0} diff --git a/core/src/main/resources/hudson/model/Computer/builds_da.properties b/core/src/main/resources/hudson/model/Computer/builds_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..e937a58df595560ec257a5c4c8da4f11107a0a89 --- /dev/null +++ b/core/src/main/resources/hudson/model/Computer/builds_da.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +title=Byggehistorik p\u00e5 {0} diff --git a/core/src/main/resources/hudson/model/Computer/builds_de.properties b/core/src/main/resources/hudson/model/Computer/builds_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..0bcf471e05272da13db7469654a48cc7e568185a --- /dev/null +++ b/core/src/main/resources/hudson/model/Computer/builds_de.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +title=Build-Verlauf auf {0} diff --git a/core/src/main/resources/hudson/model/Computer/builds_es.properties b/core/src/main/resources/hudson/model/Computer/builds_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..36a0fcf7167fe91dd20212a2a0d1f0d8db9d8976 --- /dev/null +++ b/core/src/main/resources/hudson/model/Computer/builds_es.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +title=Historia de tareas ejecutadas en {0} + diff --git a/core/src/main/resources/hudson/model/Computer/builds_fr.properties b/core/src/main/resources/hudson/model/Computer/builds_fr.properties new file mode 100644 index 0000000000000000000000000000000000000000..05cb7a3cf26b98e41dfb0a9e1b7dc0c3f8f22721 --- /dev/null +++ b/core/src/main/resources/hudson/model/Computer/builds_fr.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Eric Lefevre-Ardant +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +title=Historique du build de {0} diff --git a/core/src/main/resources/hudson/model/Computer/builds_pt_BR.properties b/core/src/main/resources/hudson/model/Computer/builds_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..4d557867100d186acaf59e9adb8e4cf7c7e27e0b --- /dev/null +++ b/core/src/main/resources/hudson/model/Computer/builds_pt_BR.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +# Build History on {0} +title= diff --git a/core/src/main/resources/hudson/model/Computer/builds_sv_SE.properties b/core/src/main/resources/hudson/model/Computer/builds_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..ee5da91de90e5f3dd4d7abf4ed4c76d04dae6930 --- /dev/null +++ b/core/src/main/resources/hudson/model/Computer/builds_sv_SE.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +title=Bygghistorik p\u00E5 {0} diff --git a/core/src/main/resources/hudson/model/Computer/configure.jelly b/core/src/main/resources/hudson/model/Computer/configure.jelly index 0cdc966bcc83a118911a2e6e97ab14908012b54a..c027d997b19450289b3bc013a7982daae1a13068 100644 --- a/core/src/main/resources/hudson/model/Computer/configure.jelly +++ b/core/src/main/resources/hudson/model/Computer/configure.jelly @@ -27,7 +27,7 @@ THE SOFTWARE. --> - + diff --git a/core/src/main/resources/hudson/model/Computer/configure_da.properties b/core/src/main/resources/hudson/model/Computer/configure_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..0a521e1d23ee5bf46ef717289c5cd5fc5d944bda --- /dev/null +++ b/core/src/main/resources/hudson/model/Computer/configure_da.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +title={0} Konfiguration +Save=Gem +Name=Navn diff --git a/core/src/main/resources/hudson/model/Computer/configure_de.properties b/core/src/main/resources/hudson/model/Computer/configure_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..81c9072b063b1017f0ac2aecc0afea52444b5212 --- /dev/null +++ b/core/src/main/resources/hudson/model/Computer/configure_de.properties @@ -0,0 +1,3 @@ +Name=Name +Save=Übernehmen +title=Konfiguration von {0} diff --git a/core/src/main/resources/hudson/model/Computer/configure_es.properties b/core/src/main/resources/hudson/model/Computer/configure_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..c68e627eb320b476b076fd888bc31c4ee77abd29 --- /dev/null +++ b/core/src/main/resources/hudson/model/Computer/configure_es.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +title={0} Configuración +Save=Guardar +Name=Nombre diff --git a/core/src/main/resources/hudson/model/Computer/configure_fr.properties b/core/src/main/resources/hudson/model/Computer/configure_fr.properties index cb32e3dac2e6642a0d23918e0a87b6da170c3543..050e3f634ccffa3609d1af93b8d2120c5e5247e0 100644 --- a/core/src/main/resources/hudson/model/Computer/configure_fr.properties +++ b/core/src/main/resources/hudson/model/Computer/configure_fr.properties @@ -20,6 +20,6 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Name=Nom -Name\ is\ mandatory=Le nom est obligatoire -Save=Enregistrer +Name=Nom +Name\ is\ mandatory=Le nom est obligatoire +Save=Enregistrer diff --git a/core/src/main/resources/hudson/model/Computer/configure_ja.properties b/core/src/main/resources/hudson/model/Computer/configure_ja.properties index 0a352459a6cace252fc0bbc4de4a5166de87c334..b8994d41a3dc832ebc63c720c074e2cb6a6fe8f8 100644 --- a/core/src/main/resources/hudson/model/Computer/configure_ja.properties +++ b/core/src/main/resources/hudson/model/Computer/configure_ja.properties @@ -1,6 +1,6 @@ # The MIT License # -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -20,5 +20,6 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. +title={0} \u306E\u8A2D\u5B9A Name=\u30CE\u30FC\u30C9\u540D Save=\u4FDD\u5B58 \ No newline at end of file diff --git a/core/src/main/resources/hudson/model/Computer/configure_pt_BR.properties b/core/src/main/resources/hudson/model/Computer/configure_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..a424efdb55a3c68600d37bcf9cfa8cafbb29f881 --- /dev/null +++ b/core/src/main/resources/hudson/model/Computer/configure_pt_BR.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +# {0} Configuration +title= +Save= +Name= diff --git a/core/src/main/resources/hudson/model/Computer/configure_sv_SE.properties b/core/src/main/resources/hudson/model/Computer/configure_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..e78fbe0fa4b9a0a0229c03b6cb97e2df25ee57b0 --- /dev/null +++ b/core/src/main/resources/hudson/model/Computer/configure_sv_SE.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Name=Namn +Save=Spara diff --git a/core/src/main/resources/hudson/model/Computer/delete_da.properties b/core/src/main/resources/hudson/model/Computer/delete_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..41b74dfc8e5428083808525856ee593b4215e4ad --- /dev/null +++ b/core/src/main/resources/hudson/model/Computer/delete_da.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Yes=Ja +Are\ you\ sure\ about\ deleting\ the\ slave?=Er du sikker p\u00e5 at du vil slette slaven? diff --git a/core/src/main/resources/hudson/model/Computer/delete_de.properties b/core/src/main/resources/hudson/model/Computer/delete_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..4e7fdd00369b60daa6bffd9755dca5ee5844326c --- /dev/null +++ b/core/src/main/resources/hudson/model/Computer/delete_de.properties @@ -0,0 +1,2 @@ +Are\ you\ sure\ about\ deleting\ the\ slave?=Möchten Sie den Slave-Knoten wirklich löschen? +Yes=Ja diff --git a/core/src/main/resources/hudson/model/Computer/delete_es.properties b/core/src/main/resources/hudson/model/Computer/delete_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..986f8ac8881a9ff2cb969a44082549ee07299afd --- /dev/null +++ b/core/src/main/resources/hudson/model/Computer/delete_es.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Are\ you\ sure\ about\ deleting\ the\ slave?=¿Estás seguro de querer borrar este esclavo? +Yes=Sí diff --git a/core/src/main/resources/hudson/model/Computer/delete_fr.properties b/core/src/main/resources/hudson/model/Computer/delete_fr.properties index fd3d26b8dfd68d0800c42ff611430355c1b13655..f939cafb6a251d7d7888ff86d0d139ab53806a67 100644 --- a/core/src/main/resources/hudson/model/Computer/delete_fr.properties +++ b/core/src/main/resources/hudson/model/Computer/delete_fr.properties @@ -20,5 +20,5 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Are\ you\ sure\ about\ deleting\ the\ slave?=Etes-vous sûr de vouloir supprimer cet esclave? -Yes=Oui +Are\ you\ sure\ about\ deleting\ the\ slave?=Etes-vous sûr de vouloir supprimer cet esclave? +Yes=Oui diff --git a/core/src/main/resources/hudson/model/Computer/delete_ja.properties b/core/src/main/resources/hudson/model/Computer/delete_ja.properties index 8841381831c2c2b2f787bdd4c9c475f45254ca12..9eb4b9e52f78229e262b4d714c7cfc5109f67711 100644 --- a/core/src/main/resources/hudson/model/Computer/delete_ja.properties +++ b/core/src/main/resources/hudson/model/Computer/delete_ja.properties @@ -1,6 +1,6 @@ # The MIT License # -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -20,4 +20,5 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. +Yes=\u306F\u3044 Are\ you\ sure\ about\ deleting\ the\ slave?=\u30B9\u30EC\u30FC\u30D6\u3092\u524A\u9664\u3057\u3066\u3088\u308D\u3057\u3044\u3067\u3059\u304B? \ No newline at end of file diff --git a/core/src/main/resources/hudson/model/Computer/delete_pt_BR.properties b/core/src/main/resources/hudson/model/Computer/delete_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..c07c002508086fd258bbf85c91c7c13e6c05ce7a --- /dev/null +++ b/core/src/main/resources/hudson/model/Computer/delete_pt_BR.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Yes=Sim +Are\ you\ sure\ about\ deleting\ the\ slave?= diff --git a/core/src/main/resources/hudson/model/Computer/index.jelly b/core/src/main/resources/hudson/model/Computer/index.jelly index 09bb00f5f8ad04649d51232e4e3b58245c71c5af..3f7e1cc4a46ea860d04d3fa366ba1bd830f41d52 100644 --- a/core/src/main/resources/hudson/model/Computer/index.jelly +++ b/core/src/main/resources/hudson/model/Computer/index.jelly @@ -29,14 +29,18 @@ THE SOFTWARE.
    -
    - - - - - - -
    + + +
    + + +
    + +
    + + +
    +
    @@ -48,6 +52,10 @@ THE SOFTWARE. + + + + @@ -60,15 +68,17 @@ THE SOFTWARE.
    ${%Labels:} - - - ${l.name} + + + + ${entry.item.name}
    +

    ${%title.projects_tied_on(it.displayName)}

    @@ -86,4 +96,4 @@ THE SOFTWARE.
    -
    \ No newline at end of file + diff --git a/core/src/main/resources/hudson/model/Computer/index.properties b/core/src/main/resources/hudson/model/Computer/index.properties index 1d4b196ec5728783ee019c036cf22edc7aca6d45..f64f4b2e0f07718bfcc7654f82cf9419df95d290 100644 --- a/core/src/main/resources/hudson/model/Computer/index.properties +++ b/core/src/main/resources/hudson/model/Computer/index.properties @@ -1,6 +1,6 @@ # The MIT License # -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe, Stephen Connolly +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe, Stephen Connolly # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -22,6 +22,6 @@ submit.temporarilyOffline=This node is back online submit.not.temporarilyOffline=Mark this node temporarily offline -title.projects_tied_on=Projects tied on {0} -title.no_manual_launch=This node has an availablity policy that will "{0}". Currently, this mandates that that the node be off-line. +title.projects_tied_on=Projects tied to {0} +title.no_manual_launch=This node has an availability policy that will "{0}". Currently, this mandates that the node be off-line. diff --git a/core/src/main/resources/hudson/model/Computer/index_da.properties b/core/src/main/resources/hudson/model/Computer/index_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..bf5029dcc61399c3e288d9bd6fdad6635cf95b13 --- /dev/null +++ b/core/src/main/resources/hudson/model/Computer/index_da.properties @@ -0,0 +1,28 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +title.no_manual_launch=Denne node har en tilg\u00e6ngelighedspolitik der vil "{0}". For nuv\u00e6rende kr\u00e6ver denne at noden er offline. +Labels\:=Etiketter\: +submit.temporarilyOffline=Denne node er tilbage online +None=Ingen +submit.not.temporarilyOffline=Marker denne node midlertidigt offline +title.projects_tied_on=Projekter knyttet til {0} diff --git a/core/src/main/resources/hudson/model/Computer/index_de.properties b/core/src/main/resources/hudson/model/Computer/index_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..8905e68d2879fbf03558ef089f794c6dae4069f1 --- /dev/null +++ b/core/src/main/resources/hudson/model/Computer/index_de.properties @@ -0,0 +1,7 @@ +submit.temporarilyOffline=Knoten wieder anschalten +submit.not.temporarilyOffline=Knoten temporär abschalten +title.no_manual_launch=Dieser Knoten verwendet die Verfügbarkeitsregel "{0}". \ + Dies bedeutet momentan, daß der Knoten offline ist. +Labels\:=Labels: +title.projects_tied_on=Projekte, die an {0} gebunden sind +None=Keine diff --git a/core/src/main/resources/hudson/model/Computer/index_es.properties b/core/src/main/resources/hudson/model/Computer/index_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..7e429c236a68514fc9714b6f54278c68118b13b5 --- /dev/null +++ b/core/src/main/resources/hudson/model/Computer/index_es.properties @@ -0,0 +1,29 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe, Stephen Connolly +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +submit.temporarilyOffline=Este nodo se ha puesto en línea +submit.not.temporarilyOffline=Marcar este nodo fuera de línea temporalmente +title.projects_tied_on=Proyectos vinculados a {0} +title.no_manual_launch=Este nodo tiene una política de disponibilidad: "{0}". Esto supone que el nodo esté fuera de línea. +None=Ninguna +Labels\:=Etiquetas + diff --git a/core/src/main/resources/hudson/model/Computer/index_fr.properties b/core/src/main/resources/hudson/model/Computer/index_fr.properties index ddd6e814b7c27aeddca3dda1ce600bee4a837646..fc0e4b58dfaa98fd818415cfadd0cef31326bd12 100644 --- a/core/src/main/resources/hudson/model/Computer/index_fr.properties +++ b/core/src/main/resources/hudson/model/Computer/index_fr.properties @@ -20,9 +20,9 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -submit.temporarilyOffline=Ce noeud est de nouveau en ligne -submit.not.temporarilyOffline=Marquer ce noeud comme temporairement hors ligne -Labels\:=Libellés : -title.projects_tied_on=Projets rattachés à {0} -None=Aucun -title.no_manual_launch=Ce noeud a une stratégie de disponiblité de type "{0}". Actuellement, cela oblige le noeud a être déconnecté. +submit.temporarilyOffline=Ce noeud est de nouveau en ligne +submit.not.temporarilyOffline=Marquer ce n\u0153ud comme temporairement hors ligne +Labels\:=Libellés : +title.projects_tied_on=Projets rattachés à {0} +None=Aucun +title.no_manual_launch=Ce noeud a une stratégie de disponiblité de type "{0}". Actuellement, cela oblige le noeud a être déconnecté. diff --git a/core/src/main/resources/hudson/model/Computer/index_ja.properties b/core/src/main/resources/hudson/model/Computer/index_ja.properties index 85dc50eb342a53c5b70ee3ef168ade39c6836cc1..627b95071f9e7974f03934c47450f7ff949ed0db 100644 --- a/core/src/main/resources/hudson/model/Computer/index_ja.properties +++ b/core/src/main/resources/hudson/model/Computer/index_ja.properties @@ -1,6 +1,6 @@ # The MIT License # -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -25,4 +25,5 @@ submit.not.temporarilyOffline=\u3053\u306E\u30CE\u30FC\u30C9\u3092\u4E00\u6642\u None=\u306A\u3057 Labels\:=\u30E9\u30D9\u30EB: title.projects_tied_on={0}\u3067\u306E\u307F\u8D77\u52D5\u3059\u308B\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8 +title.no_manual_launch=\u3053\u306E\u30CE\u30FC\u30C9\u306E\u53EF\u7528\u6027\u306E\u30DD\u30EA\u30B7\u30FC\u306F''{0}''\u3067\u3059\u3002\u73FE\u5728\u3001\u305D\u306E\u30DD\u30EA\u30B7\u30FC\u306B\u57FA\u3065\u3044\u3066\u3001\u3053\u306E\u30CE\u30FC\u30C9\u306F\u30AA\u30D5\u30E9\u30A4\u30F3\u306B\u306A\u3063\u3066\u3044\u307E\u3059\u3002 diff --git a/core/src/main/resources/hudson/model/Computer/index_pt_BR.properties b/core/src/main/resources/hudson/model/Computer/index_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..59a0b6de48c25d2d416fb5985832a5ffdf43ce2b --- /dev/null +++ b/core/src/main/resources/hudson/model/Computer/index_pt_BR.properties @@ -0,0 +1,32 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +# This node has an availability policy that will "{0}". Currently, this mandates that the node be off-line. +title.no_manual_launch= +Labels\:= +# This node is back online +submit.temporarilyOffline= +None= +# Mark this node temporarily offline +submit.not.temporarilyOffline= +# Projects tied to {0} +title.projects_tied_on= diff --git a/core/src/main/resources/hudson/model/Computer/index_ru.properties b/core/src/main/resources/hudson/model/Computer/index_ru.properties new file mode 100644 index 0000000000000000000000000000000000000000..1ce43b4a4efba30e4182138064e6c38079ad2fdf --- /dev/null +++ b/core/src/main/resources/hudson/model/Computer/index_ru.properties @@ -0,0 +1,27 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Labels:=\u041C\u0435\u0442\u043A\u0438: +None=\u041D\u0435\u0442 \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u0438 +submit.not.temporarilyOffline=\u041F\u043E\u043C\u0435\u0442\u0438\u0442\u044C \u044D\u0442\u043E\u0442 \u0443\u0437\u0435\u043B \u043A\u0430\u043A \u043A\u0430\u043A \u0432\u0440\u0435\u043C\u0435\u043D\u043D\u043E \u043D\u0435\u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B\u0439 +submit.temporarilyOffline=\u0412\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0434\u0430\u043D\u043D\u044B\u0439 \u0443\u0437\u0435\u043B +title.projects_tied_on=\u041F\u0440\u043E\u0435\u043A\u0442\u044B \u043D\u0430 {0} diff --git a/core/src/main/resources/hudson/model/Computer/index_sv_SE.properties b/core/src/main/resources/hudson/model/Computer/index_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..66bc0e208f73f019504284e7ab55dc08112310de --- /dev/null +++ b/core/src/main/resources/hudson/model/Computer/index_sv_SE.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Labels:=Etiketter: +None=Inga +submit.not.temporarilyOffline=Markera noden som tillf\u00E4lligt ifr\u00E5nkopplad +title.projects_tied_on=Jobb knutna till {0} diff --git a/core/src/main/resources/hudson/model/Computer/index_zh_CN.properties b/core/src/main/resources/hudson/model/Computer/index_zh_CN.properties new file mode 100644 index 0000000000000000000000000000000000000000..7bed50aa92e666b854442a4b08166479cca9c7ef --- /dev/null +++ b/core/src/main/resources/hudson/model/Computer/index_zh_CN.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +None=\u65E0 +submit.not.temporarilyOffline=\u4E34\u65F6\u65AD\u5F00\u6B64\u8282\u70B9 +title.projects_tied_on=\u5173\u8054\u5230{0}\u7684\u9879\u76EE diff --git a/core/src/main/resources/hudson/model/Computer/markOffline.jelly b/core/src/main/resources/hudson/model/Computer/markOffline.jelly new file mode 100644 index 0000000000000000000000000000000000000000..2d487cbe0203dddd0c7b1ea8a116ca541ed7c150 --- /dev/null +++ b/core/src/main/resources/hudson/model/Computer/markOffline.jelly @@ -0,0 +1,43 @@ + + + + + + + +

    ${%title(it.displayName)}

    +

    + ${%blurb} +

    +
    + +

    + +

    + +
    +
    +
    +
    \ No newline at end of file diff --git a/core/src/main/resources/hudson/model/Computer/markOffline.properties b/core/src/main/resources/hudson/model/Computer/markOffline.properties new file mode 100644 index 0000000000000000000000000000000000000000..348880985ce5e86c8524a02aeeeb58902d9c9e9f --- /dev/null +++ b/core/src/main/resources/hudson/model/Computer/markOffline.properties @@ -0,0 +1,3 @@ +title=Taking {0} Offline +blurb=You can optionally explain why you are taking this node offline, so that others can see why: +submit=Mark this node temporarily offline diff --git a/core/src/main/resources/hudson/model/Computer/markOffline_da.properties b/core/src/main/resources/hudson/model/Computer/markOffline_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..0f26354a0da94d40564abf22dd3b39715dc44f14 --- /dev/null +++ b/core/src/main/resources/hudson/model/Computer/markOffline_da.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +title=Tager {0} Offline +submit=Marker denne node som midlertidigt offline +blurb=Du kan her skrive hvorfor du tager noden offline, s\u00e5 andre let kan se hvorfor: diff --git a/core/src/main/resources/hudson/model/Computer/markOffline_de.properties b/core/src/main/resources/hudson/model/Computer/markOffline_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..1646b79aa8a7c30ce7b8fd7ba8a6776c34c35df8 --- /dev/null +++ b/core/src/main/resources/hudson/model/Computer/markOffline_de.properties @@ -0,0 +1,27 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +title=Knoten {0} temporär abschalten +blurb=\ + Sie können optional kurz erklären, warum Sie den Knoten abschalten. Dieser Text ist \ + sichtbar für andere Benutzer: +submit=Knoten temporär abschalten diff --git a/core/src/main/resources/hudson/model/Computer/markOffline_es.properties b/core/src/main/resources/hudson/model/Computer/markOffline_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..ba5902f47fd0f09d9353f8b0f798943fd3f2ebd8 --- /dev/null +++ b/core/src/main/resources/hudson/model/Computer/markOffline_es.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +title=Poniendo {0} fuera de línea. +blurb=Opcionalmente puedes especificar porqué pones este nodo fuera de línea: +submit=Marcar este nodo para que esté permanentemente fuera de línea + diff --git a/core/src/main/resources/hudson/model/Computer/markOffline_ja.properties b/core/src/main/resources/hudson/model/Computer/markOffline_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..5b7e905653e7134cefc19b35f71acd9ffe2f9402 --- /dev/null +++ b/core/src/main/resources/hudson/model/Computer/markOffline_ja.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +title={0} \u306E\u30AA\u30D5\u30E9\u30A4\u30F3 +blurb=\u4ED6\u306E\u4EBA\u306B\u3082\u5206\u304B\u308B\u3088\u3046\u306B\u3001\u3053\u306E\u30CE\u30FC\u30C9\u3092\u30AA\u30D5\u30E9\u30A4\u30F3\u306B\u3059\u308B\u7406\u7531\u3092\u8AAC\u660E\u3059\u308B\u3053\u3068\u3082\u3067\u304D\u307E\u3059\u3002 +submit=\u3053\u306E\u30CE\u30FC\u30C9\u3092\u4E00\u6642\u7684\u306B\u30AA\u30D5\u30E9\u30A4\u30F3\u306B\u3059\u308B diff --git a/core/src/main/resources/hudson/model/Computer/markOffline_pt_BR.properties b/core/src/main/resources/hudson/model/Computer/markOffline_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..65b200b1659d40c4ccee088747d563de7eb2c937 --- /dev/null +++ b/core/src/main/resources/hudson/model/Computer/markOffline_pt_BR.properties @@ -0,0 +1,29 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +# Taking {0} Offline +title= +# Mark this node temporarily offline +submit= +# You can optionally explain why you are taking this node offline, so that others can see why: +blurb=\ +# Estes usu\u00E1rios podem se logar no Hudson. Este \u00E9 um super conjunto desta lista, \ diff --git a/core/src/main/resources/hudson/model/Computer/markOffline_ru.properties b/core/src/main/resources/hudson/model/Computer/markOffline_ru.properties new file mode 100644 index 0000000000000000000000000000000000000000..8d651eb5e0b8a6b261744d92e58c1c815941251e --- /dev/null +++ b/core/src/main/resources/hudson/model/Computer/markOffline_ru.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +blurb=\u0417\u0434\u0435\u0441\u044C \u0432\u044B \u043C\u043E\u0436\u0435\u0442\u0435 \u043E\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435, \u043F\u043E\u0447\u0435\u043C\u0443 \u0432\u044B \u043E\u0442\u043A\u043B\u044E\u0447\u0430\u0435\u0442\u0435 \u0434\u0430\u043D\u043D\u044B\u0439 \u0443\u0437\u0435\u043B \u0441\u0431\u043E\u0440\u043A\u0438. \u0422\u0430\u043A \u0447\u0442\u043E \u0434\u0440\u0443\u0433\u0438\u0435 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u0438 \u0441\u043C\u043E\u0433\u0443\u0442 \u0443\u0437\u043D\u0430\u0442\u044C, \u043F\u043E\u0447\u0435\u043C\u0443 \u044D\u0442\u043E \u043F\u0440\u043E\u0438\u0437\u043E\u0448\u043B\u043E: +submit=\u041F\u043E\u043C\u0435\u0442\u0438\u0442\u044C \u0434\u0430\u043D\u043D\u044B\u0439 \u0443\u0437\u0435\u043B \u043A\u0430\u043A \u0432\u0440\u0435\u043C\u0435\u043D\u043D\u043E \u043D\u0435\u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B\u0439 (\u0432\u044B\u043A\u043B\u044E\u0447\u0435\u043D\u043D\u044B\u0439) +title=\u041E\u0442\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435 {0} (\u041F\u0435\u0440\u0435\u0432\u043E\u0434 \u0432 \u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0435 Offline) diff --git a/core/src/main/resources/hudson/model/Computer/nodepropertysummaries.jelly b/core/src/main/resources/hudson/model/Computer/nodepropertysummaries.jelly new file mode 100644 index 0000000000000000000000000000000000000000..efbdcc8ff96cb376fdd95ddaa2ca10af1ed2848a --- /dev/null +++ b/core/src/main/resources/hudson/model/Computer/nodepropertysummaries.jelly @@ -0,0 +1,34 @@ + + + + + + + + + + + + diff --git a/core/src/main/resources/hudson/model/Computer/sidepanel_da.properties b/core/src/main/resources/hudson/model/Computer/sidepanel_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..62d0db6dbf8cbfe8f1b7abf3f7ae9bd32c9d6c10 --- /dev/null +++ b/core/src/main/resources/hudson/model/Computer/sidepanel_da.properties @@ -0,0 +1,29 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Configure=Konfigurer +Status=Status +Delete\ Slave=Slet slave +Build\ History=Byggehistorik +Load\ Statistics=Belastningsstatistik +Back\ to\ List=Tilbage til liste +Script\ Console=Skriptkonsol diff --git a/core/src/main/resources/hudson/model/Computer/sidepanel_de.properties b/core/src/main/resources/hudson/model/Computer/sidepanel_de.properties index f67d3522f90ca5ece95d88410be1427f9e260766..2fa34e5fa037682237a1c3cbc78acdd00b70d2bb 100644 --- a/core/src/main/resources/hudson/model/Computer/sidepanel_de.properties +++ b/core/src/main/resources/hudson/model/Computer/sidepanel_de.properties @@ -20,6 +20,10 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Back\ to\ List=Zurück zur Liste -Build\ History=Build-Verlauf -Script\ Console=Script-Konsole +Back\ to\ List=Zurück zur Liste +Build\ History=Build-Verlauf +Script\ Console=Script-Konsole +Status=Status +Delete\ Slave=Slave löschen +Configure=Konfigurieren +Load\ Statistics=Auslastung diff --git a/core/src/main/resources/hudson/model/Computer/sidepanel_es.properties b/core/src/main/resources/hudson/model/Computer/sidepanel_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..d8b9a2d6d9b9a8fbd42721715922361ccfe0878c --- /dev/null +++ b/core/src/main/resources/hudson/model/Computer/sidepanel_es.properties @@ -0,0 +1,29 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Back\ to\ List=Volver +Status=Estado +Delete\ Slave=Borrar esclavo +Configure=Configurar +Build\ History=Historia de ejecuciones +Load\ Statistics=Cargar estadísticas +Script\ Console=Consola interactiva diff --git a/core/src/main/resources/hudson/model/Computer/sidepanel_lt.properties b/core/src/main/resources/hudson/model/Computer/sidepanel_lt.properties new file mode 100644 index 0000000000000000000000000000000000000000..1daeb6960f66d19897bf0eda21ee9f79aa1e6021 --- /dev/null +++ b/core/src/main/resources/hudson/model/Computer/sidepanel_lt.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Configure=Nustatymai +Delete\ Slave=I\u0161trinti ''Slave'' +Load\ Statistics=Kr\u016Bvio statistika +Status=B\u016Bsena diff --git a/core/src/main/resources/hudson/model/Computer/sidepanel_pt_BR.properties b/core/src/main/resources/hudson/model/Computer/sidepanel_pt_BR.properties index 499b65ce8d51227b2f40b442de6cc52a8675a42a..f21690b280a70238d0e979298aa83aa00bb72a18 100644 --- a/core/src/main/resources/hudson/model/Computer/sidepanel_pt_BR.properties +++ b/core/src/main/resources/hudson/model/Computer/sidepanel_pt_BR.properties @@ -22,3 +22,8 @@ Back\ to\ List=Voltar para a Lista Build\ History=Hist\u00F3rico de Constru\u00E7\u00F5es +Configure=Configurar +Status=Estado +Delete\ Slave= +Load\ Statistics=Carregar Estat\u00EDsticas +Script\ Console=Console de Script diff --git a/core/src/main/resources/hudson/model/Computer/sidepanel_ru.properties b/core/src/main/resources/hudson/model/Computer/sidepanel_ru.properties index 209a183746e4dc5251c082da38c6bbe0e219950e..6d0fc2d5cd184dc5ede3255ffa05fe8d585d1c32 100644 --- a/core/src/main/resources/hudson/model/Computer/sidepanel_ru.properties +++ b/core/src/main/resources/hudson/model/Computer/sidepanel_ru.properties @@ -22,4 +22,8 @@ Back\ to\ List=\u0412\u0435\u0440\u043d\u0443\u0442\u044c\u0441\u044f \u043a \u0441\u043f\u0438\u0441\u043a\u0443 Build\ History=\u0418\u0441\u0442\u043e\u0440\u0438\u044f \u0441\u0431\u043e\u0440\u043e\u043a +Configure=\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 +Delete\ Slave=\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u043F\u043E\u0434\u0447\u0438\u043D\u0435\u043D\u043D\u044B\u0439 \u0443\u0437\u0435\u043B +Load\ Statistics=\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043A\u0430 \u0443\u0442\u0438\u043B\u0438\u0437\u0430\u0446\u0438\u0438 Script\ Console=\u041a\u043e\u043d\u0441\u043e\u043b\u044c \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0435\u0432 +Status=\u0421\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0435 diff --git a/core/src/main/resources/hudson/model/Computer/sidepanel_sv_SE.properties b/core/src/main/resources/hudson/model/Computer/sidepanel_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..6d9abb2fd5dbfcb0b21c8fccf717be20d7146b84 --- /dev/null +++ b/core/src/main/resources/hudson/model/Computer/sidepanel_sv_SE.properties @@ -0,0 +1,29 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Back\ to\ List=Tillbaka till nodlista +Build\ History=Jobbhistorik +Configure=Konfigurera +Delete\ Slave=Ta bort nod +Load\ Statistics=Belastningstatistik +Script\ Console=Skriptkonsoll +Status=Status diff --git a/core/src/main/resources/hudson/model/Computer/sidepanel_zh_CN.properties b/core/src/main/resources/hudson/model/Computer/sidepanel_zh_CN.properties new file mode 100644 index 0000000000000000000000000000000000000000..d1d2b9b8a87187efc3ee71acf7db5855336f5292 --- /dev/null +++ b/core/src/main/resources/hudson/model/Computer/sidepanel_zh_CN.properties @@ -0,0 +1,29 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Back\ to\ List=\u8fd4\u56de\u5217\u8868 +Build\ History=\u6784\u5efa\u5386\u53f2 +Configure=\u8bbe\u7f6e +Delete\ Slave=\u5220\u9664\u5974\u96b6 +Load\ Statistics=\u8d1f\u8f7d\u7edf\u8ba1 +Script\ Console=\u811a\u672c\u547d\u4ee4\u884c +Status=\u72b6\u6001 diff --git a/core/src/main/resources/hudson/model/ComputerSet/_new.jelly b/core/src/main/resources/hudson/model/ComputerSet/_new.jelly index 9153bd7b5f4dcee8bc0b100946c7ada70ff0c501..2de2519bfef271c5b5f341e833d970d193fd0d2e 100644 --- a/core/src/main/resources/hudson/model/ComputerSet/_new.jelly +++ b/core/src/main/resources/hudson/model/ComputerSet/_new.jelly @@ -32,8 +32,7 @@ THE SOFTWARE. - + diff --git a/core/src/main/resources/hudson/model/ComputerSet/_new_da.properties b/core/src/main/resources/hudson/model/ComputerSet/_new_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..28c243c5bcf97713e28ba8787d7205fcbb8790fb --- /dev/null +++ b/core/src/main/resources/hudson/model/ComputerSet/_new_da.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Save=Gem +Name\ is\ mandatory=Navnet er obligatorisk +Name=Navn diff --git a/core/src/main/resources/hudson/model/ComputerSet/_new_de.properties b/core/src/main/resources/hudson/model/ComputerSet/_new_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..b487c0e79458d352eab30234f23ecbe9c7a4b06b --- /dev/null +++ b/core/src/main/resources/hudson/model/ComputerSet/_new_de.properties @@ -0,0 +1,3 @@ +Name=Name +Name\ is\ mandatory=Sie müssen einen Namen angeben. +Save=Übernehmen diff --git a/core/src/main/resources/hudson/model/ComputerSet/_new_es.properties b/core/src/main/resources/hudson/model/ComputerSet/_new_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..eb40327a9e384bc7fda0704aeac363cfd80977e8 --- /dev/null +++ b/core/src/main/resources/hudson/model/ComputerSet/_new_es.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Name=Nombre +Name\ is\ mandatory=El nombre es obligatorio +Save=Guardar diff --git a/core/src/main/resources/hudson/model/ComputerSet/_new_fr.properties b/core/src/main/resources/hudson/model/ComputerSet/_new_fr.properties index cb32e3dac2e6642a0d23918e0a87b6da170c3543..050e3f634ccffa3609d1af93b8d2120c5e5247e0 100644 --- a/core/src/main/resources/hudson/model/ComputerSet/_new_fr.properties +++ b/core/src/main/resources/hudson/model/ComputerSet/_new_fr.properties @@ -20,6 +20,6 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Name=Nom -Name\ is\ mandatory=Le nom est obligatoire -Save=Enregistrer +Name=Nom +Name\ is\ mandatory=Le nom est obligatoire +Save=Enregistrer diff --git a/core/src/main/resources/hudson/model/ComputerSet/_new_pt_BR.properties b/core/src/main/resources/hudson/model/ComputerSet/_new_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..3951eee3c816c06bafe9c490f68b8b511a91980f --- /dev/null +++ b/core/src/main/resources/hudson/model/ComputerSet/_new_pt_BR.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Save= +Name\ is\ mandatory=Le nom est obligatoire +Name= diff --git a/core/src/main/resources/hudson/model/ComputerSet/configure_da.properties b/core/src/main/resources/hudson/model/ComputerSet/configure_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..ecc62314162d59405cdd5bbb1a4a4b47a4a057a6 --- /dev/null +++ b/core/src/main/resources/hudson/model/ComputerSet/configure_da.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Preventive\ Node\ Monitoring=Forebyggende Node Monitorering +Node\ Monitoring\ Configuration=Node Monitorerings Konfiguration diff --git a/core/src/main/resources/hudson/model/ComputerSet/configure_de.properties b/core/src/main/resources/hudson/model/ComputerSet/configure_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..4aa3d5250a34874b012791e8a6cef35bbc728852 --- /dev/null +++ b/core/src/main/resources/hudson/model/ComputerSet/configure_de.properties @@ -0,0 +1,2 @@ +Node\ Monitoring\ Configuration=Konfiguration der Knotenüberwachung +Preventive\ Node\ Monitoring=Präventive Überwachung der Knoten diff --git a/core/src/main/resources/hudson/model/ComputerSet/configure_es.properties b/core/src/main/resources/hudson/model/ComputerSet/configure_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..04ad1344f0e35485a2c91536940a27d1de652d82 --- /dev/null +++ b/core/src/main/resources/hudson/model/ComputerSet/configure_es.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Node\ Monitoring\ Configuration=Configuración de la monitorización del nodo +Preventive\ Node\ Monitoring=Monitorización preventiva diff --git a/core/src/main/resources/hudson/model/ComputerSet/configure_fr.properties b/core/src/main/resources/hudson/model/ComputerSet/configure_fr.properties new file mode 100644 index 0000000000000000000000000000000000000000..73cb3706ec9b7ecb7f6a412af7708242d744cd56 --- /dev/null +++ b/core/src/main/resources/hudson/model/ComputerSet/configure_fr.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Preventive\ Node\ Monitoring=Surveillance pr\u00E9ventive des n\u0153uds diff --git a/core/src/main/resources/hudson/model/ComputerSet/configure_ja.properties b/core/src/main/resources/hudson/model/ComputerSet/configure_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..1aec97043b6d35d3f3ce78927b4dafcc5eca2c0f --- /dev/null +++ b/core/src/main/resources/hudson/model/ComputerSet/configure_ja.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Node\ Monitoring\ Configuration=\u30CE\u30FC\u30C9\u76E3\u8996\u306E\u8A2D\u5B9A +Preventive\ Node\ Monitoring=\u30CE\u30FC\u30C9\u76E3\u8996\u9805\u76EE diff --git a/core/src/main/resources/hudson/model/ComputerSet/configure_ko.properties b/core/src/main/resources/hudson/model/ComputerSet/configure_ko.properties new file mode 100644 index 0000000000000000000000000000000000000000..9ef9878d14e5e3ce61f3e0f640d26a0756791fd4 --- /dev/null +++ b/core/src/main/resources/hudson/model/ComputerSet/configure_ko.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Preventive\ Node\ Monitoring=\uC608\uBC29\uC744 \uC704\uD55C \uB178\uB4DC \uBAA8\uB2C8\uD130\uB9C1 diff --git a/core/src/main/resources/hudson/model/ComputerSet/configure_pt_BR.properties b/core/src/main/resources/hudson/model/ComputerSet/configure_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..64466cca5de15e68ec9295fde3f8f9c05266549b --- /dev/null +++ b/core/src/main/resources/hudson/model/ComputerSet/configure_pt_BR.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Preventive\ Node\ Monitoring= +Node\ Monitoring\ Configuration= diff --git a/core/src/main/resources/hudson/model/ComputerSet/configure_ru.properties b/core/src/main/resources/hudson/model/ComputerSet/configure_ru.properties new file mode 100644 index 0000000000000000000000000000000000000000..7f07d1789c31339b1c59aafc4165a038c45f786b --- /dev/null +++ b/core/src/main/resources/hudson/model/ComputerSet/configure_ru.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Preventive\ Node\ Monitoring=\u041F\u0440\u0435\u0432\u0435\u043D\u0442\u0438\u0432\u043D\u044B\u0439 \u043C\u043E\u043D\u0438\u043D\u0442\u043E\u0440\u0438\u043D\u0433 diff --git a/core/src/main/resources/hudson/model/ComputerSet/configure_sv_SE.properties b/core/src/main/resources/hudson/model/ComputerSet/configure_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..9edaac79a41ad2c595edde04677596e0a3f189de --- /dev/null +++ b/core/src/main/resources/hudson/model/ComputerSet/configure_sv_SE.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Preventive\ Node\ Monitoring=Preventiv nod\u00F6vervakning diff --git a/core/src/main/resources/hudson/model/ComputerSet/index.jelly b/core/src/main/resources/hudson/model/ComputerSet/index.jelly index 6a2db4e07f4a0cbdf61816ab41b8c4d5fcb79947..52e7a88097983cd7a0c669646b0b8624b1b580b1 100644 --- a/core/src/main/resources/hudson/model/ComputerSet/index.jelly +++ b/core/src/main/resources/hudson/model/ComputerSet/index.jelly @@ -37,12 +37,14 @@ THE SOFTWARE. + + diff --git a/core/src/main/resources/hudson/model/ComputerSet/index_da.properties b/core/src/main/resources/hudson/model/ComputerSet/index_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..c21b64a7537e48a256c8008bb907a8b6298b06d6 --- /dev/null +++ b/core/src/main/resources/hudson/model/ComputerSet/index_da.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Configure=Konfigurer +Refresh\ status=Genopfrisk status +Name=Navn diff --git a/core/src/main/resources/hudson/model/ComputerSet/index_de.properties b/core/src/main/resources/hudson/model/ComputerSet/index_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..769b75e8185ed227f4838fca25938c5227ba7c0a --- /dev/null +++ b/core/src/main/resources/hudson/model/ComputerSet/index_de.properties @@ -0,0 +1,3 @@ +Name=Name +Configure=Konfigurieren +Refresh\ status=Status aktualisieren diff --git a/core/src/main/resources/hudson/model/ComputerSet/index_el.properties b/core/src/main/resources/hudson/model/ComputerSet/index_el.properties new file mode 100644 index 0000000000000000000000000000000000000000..582869118914e09cdd6930826a413f02fc289d21 --- /dev/null +++ b/core/src/main/resources/hudson/model/ComputerSet/index_el.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Configure=\u03A0\u03B1\u03C1\u03B1\u03BC\u03B5\u03C4\u03C1\u03BF\u03C0\u03BF\u03AF\u03B7\u03C3\u03B7 +Name=\u038C\u03BD\u03BF\u03BC\u03B1 +Refresh\ status=\u0391\u03BD\u03B1\u03BD\u03CE\u03C3\u03B7 \u03BA\u03B1\u03C4\u03AC\u03C3\u03C4\u03B1\u03C3\u03B7\u03C2 diff --git a/core/src/main/resources/hudson/model/ComputerSet/index_es.properties b/core/src/main/resources/hudson/model/ComputerSet/index_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..028a445fb7541706d7a2dd346bd93d883f149b3f --- /dev/null +++ b/core/src/main/resources/hudson/model/ComputerSet/index_es.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Name=Nombre +Configure=Configuración +Refresh\ status=Actualizar estado diff --git a/core/src/main/resources/hudson/model/ComputerSet/index_fr.properties b/core/src/main/resources/hudson/model/ComputerSet/index_fr.properties index b5164793e7b32488deb0e5b7018380c632df9275..a4e4e6520f1f69101309c33ad99107cf8aa05085 100644 --- a/core/src/main/resources/hudson/model/ComputerSet/index_fr.properties +++ b/core/src/main/resources/hudson/model/ComputerSet/index_fr.properties @@ -20,6 +20,6 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Name=Nom -Refresh\ status=Statut du rafraîchissement -Configure=Configurer +Name=Nom +Refresh\ status=Rafra\u00EEchir le statut +Configure=Configurer diff --git a/core/src/main/resources/hudson/model/ComputerSet/index_ja.properties b/core/src/main/resources/hudson/model/ComputerSet/index_ja.properties index 7d13eae6ab8478e35e4b206de38731d1b8c2e112..c3d766a218a33c312d8d13eaf178c60a86a91730 100644 --- a/core/src/main/resources/hudson/model/ComputerSet/index_ja.properties +++ b/core/src/main/resources/hudson/model/ComputerSet/index_ja.properties @@ -1,6 +1,6 @@ # The MIT License # -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -22,3 +22,4 @@ Name=\u540D\u524D Refresh\ status=\u30B9\u30C6\u30FC\u30BF\u30B9\u66F4\u65B0 +Configure=\u8A2D\u5B9A diff --git a/core/src/main/resources/hudson/model/ComputerSet/index_ko.properties b/core/src/main/resources/hudson/model/ComputerSet/index_ko.properties new file mode 100644 index 0000000000000000000000000000000000000000..19a74ad372241d444a151da58a487e036f03edaa --- /dev/null +++ b/core/src/main/resources/hudson/model/ComputerSet/index_ko.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Configure=\uC124\uC815 +Name=\uC774\uB984 +Refresh\ status=\uC0C1\uD0DC \uB2E4\uC2DC \uC77D\uAE30 diff --git a/core/src/main/resources/hudson/model/ComputerSet/index_nl.properties b/core/src/main/resources/hudson/model/ComputerSet/index_nl.properties new file mode 100644 index 0000000000000000000000000000000000000000..6ae714a5b94d547c370d8523f562d2f5cc9f8cf4 --- /dev/null +++ b/core/src/main/resources/hudson/model/ComputerSet/index_nl.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Configure=Configureer +Name=Naam +Refresh\ status=Ververs status diff --git a/core/src/main/resources/hudson/model/ComputerSet/index_pt_BR.properties b/core/src/main/resources/hudson/model/ComputerSet/index_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..e1ca98a7316bc673b9dd29eae8e9da9a6d285134 --- /dev/null +++ b/core/src/main/resources/hudson/model/ComputerSet/index_pt_BR.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Configure=Configurar +Refresh\ status= +Name= diff --git a/core/src/main/resources/hudson/model/ComputerSet/index_ru.properties b/core/src/main/resources/hudson/model/ComputerSet/index_ru.properties new file mode 100644 index 0000000000000000000000000000000000000000..c93e4856c3720a71d0336b836b6bd71fd175cfcf --- /dev/null +++ b/core/src/main/resources/hudson/model/ComputerSet/index_ru.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Configure=\u041D\u0430\u0441\u0442\u043E\u0439\u043A\u0438 +Name=\u0418\u043C\u044F +Refresh\ status=\u041E\u0431\u043D\u043E\u0432\u0438\u0442\u044C \u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0435 diff --git a/core/src/main/resources/hudson/model/ComputerSet/index_sv_SE.properties b/core/src/main/resources/hudson/model/ComputerSet/index_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..c9abee124697b64ad6b3cc101393488e404bb1f5 --- /dev/null +++ b/core/src/main/resources/hudson/model/ComputerSet/index_sv_SE.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Configure=Konfigurera +Name=Namn +Refresh\ status=Uppdatera status diff --git a/core/src/main/resources/hudson/model/ComputerSet/index_zh_CN.properties b/core/src/main/resources/hudson/model/ComputerSet/index_zh_CN.properties new file mode 100644 index 0000000000000000000000000000000000000000..0aec4d444925c656e7caab5cadf715a9bd44c65c --- /dev/null +++ b/core/src/main/resources/hudson/model/ComputerSet/index_zh_CN.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Configure=\u8BBE\u7F6E +Name=\u540D\u79F0 +Refresh\ status=\u5237\u65B0\u72B6\u6001 diff --git a/core/src/main/resources/hudson/model/ComputerSet/index_zh_TW.properties b/core/src/main/resources/hudson/model/ComputerSet/index_zh_TW.properties new file mode 100644 index 0000000000000000000000000000000000000000..23753688997af91b92522eed4f34c9b52c68ef98 --- /dev/null +++ b/core/src/main/resources/hudson/model/ComputerSet/index_zh_TW.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Name=\u540D\u7A31 diff --git a/core/src/main/resources/hudson/model/ComputerSet/new_da.properties b/core/src/main/resources/hudson/model/ComputerSet/new_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..e0ea054c702649743052dfffe118df69e918bade --- /dev/null +++ b/core/src/main/resources/hudson/model/ComputerSet/new_da.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Node\ name=Node navn +Copy\ Existing\ Node=Kopier Eksisterende Node diff --git a/core/src/main/resources/hudson/model/ComputerSet/new_de.properties b/core/src/main/resources/hudson/model/ComputerSet/new_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..3cb16aa6f4cbc0ac72ae5910376211e34beb1102 --- /dev/null +++ b/core/src/main/resources/hudson/model/ComputerSet/new_de.properties @@ -0,0 +1,2 @@ +Node\ name=Name des Knoten +Copy\ Existing\ Node=Kopiere bestehenden Knoten diff --git a/core/src/main/resources/hudson/model/ComputerSet/new_es.properties b/core/src/main/resources/hudson/model/ComputerSet/new_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..86b31e0f14ae7669f7c6ad49550cca031910f96e --- /dev/null +++ b/core/src/main/resources/hudson/model/ComputerSet/new_es.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Node\ name=Nombre del nodo +Copy\ Existing\ Node=Copiar un nodo existente diff --git a/core/src/main/resources/hudson/model/ComputerSet/new_fr.properties b/core/src/main/resources/hudson/model/ComputerSet/new_fr.properties index b2cab15dc84803580ddbc3beb53610d6a7116bbe..6c22dc0d6a83cb645554d0f89643775cbff67ec4 100644 --- a/core/src/main/resources/hudson/model/ComputerSet/new_fr.properties +++ b/core/src/main/resources/hudson/model/ComputerSet/new_fr.properties @@ -20,5 +20,5 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Node\ name=Nom du noeud -Copy\ Existing\ Node=Copier un noeud existant +Node\ name=Nom du noeud +Copy\ Existing\ Node=Copier un noeud existant diff --git a/core/src/main/resources/hudson/model/ComputerSet/new_ko.properties b/core/src/main/resources/hudson/model/ComputerSet/new_ko.properties new file mode 100644 index 0000000000000000000000000000000000000000..fdd3f335201bc7561566b067e314521c0d58adae --- /dev/null +++ b/core/src/main/resources/hudson/model/ComputerSet/new_ko.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Copy\ Existing\ Node=\uB178\uB4DC\uBCF5\uC0AC +Node\ name=\uB178\uB4DC\uBA85 diff --git a/core/src/main/resources/hudson/model/ComputerSet/new_pt_BR.properties b/core/src/main/resources/hudson/model/ComputerSet/new_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..c8c3bb10c883307cd11a1e55bd9383454a1f3698 --- /dev/null +++ b/core/src/main/resources/hudson/model/ComputerSet/new_pt_BR.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Node\ name= +Copy\ Existing\ Node= diff --git a/core/src/main/resources/hudson/model/ComputerSet/new_ru.properties b/core/src/main/resources/hudson/model/ComputerSet/new_ru.properties new file mode 100644 index 0000000000000000000000000000000000000000..ec283e6a01802946e520c30308c3cdc409ca9765 --- /dev/null +++ b/core/src/main/resources/hudson/model/ComputerSet/new_ru.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Copy\ Existing\ Node=\u0421\u043A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044E \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044E\u0449\u0435\u0433\u043E \u0443\u0437\u043B\u0430 +Node\ name=\u041D\u0430\u0437\u0432\u0430\u043D\u0438\u0435 \u0443\u0437\u043B\u0430 diff --git a/core/src/main/resources/hudson/model/ComputerSet/new_sv_SE.properties b/core/src/main/resources/hudson/model/ComputerSet/new_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..7d9c6fe987033052f0c0f8bb232be28fb51367d1 --- /dev/null +++ b/core/src/main/resources/hudson/model/ComputerSet/new_sv_SE.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Copy\ Existing\ Node=Koperia existerande nod +Node\ name=Nodnamn diff --git a/core/src/main/resources/hudson/model/ComputerSet/new_zh_CN.properties b/core/src/main/resources/hudson/model/ComputerSet/new_zh_CN.properties new file mode 100644 index 0000000000000000000000000000000000000000..9db496c9eda70717d537b627c3966cbfd44013a4 --- /dev/null +++ b/core/src/main/resources/hudson/model/ComputerSet/new_zh_CN.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Copy\ Existing\ Node=\u590D\u5236\u73B0\u6709\u8282\u70B9 +Node\ name=\u8282\u70B9\u540D\u79F0 diff --git a/core/src/main/resources/hudson/model/ComputerSet/sidepanel_da.properties b/core/src/main/resources/hudson/model/ComputerSet/sidepanel_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..c232dab5ef58731c1895fcfbe74b7b6aa65eb5c8 --- /dev/null +++ b/core/src/main/resources/hudson/model/ComputerSet/sidepanel_da.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Configure=Konfigurer +Back\ to\ Dashboard=Tilbage til oversigtssiden +New\ Node=Ny Node diff --git a/core/src/main/resources/hudson/model/ComputerSet/sidepanel_de.properties b/core/src/main/resources/hudson/model/ComputerSet/sidepanel_de.properties index e487d6b0876136b56c6415b8f3f514f7c1b077e4..c2cf54f37d9f01339891209d913c33a00307fb7f 100644 --- a/core/src/main/resources/hudson/model/ComputerSet/sidepanel_de.properties +++ b/core/src/main/resources/hudson/model/ComputerSet/sidepanel_de.properties @@ -20,4 +20,6 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Back\ to\ Dashboard=Zurück zur Übersicht +Back\ to\ Dashboard=Zurück zur Übersicht +New\ Node=Neuer Knoten +Configure=Konfigurieren diff --git a/core/src/main/resources/hudson/model/ComputerSet/sidepanel_el.properties b/core/src/main/resources/hudson/model/ComputerSet/sidepanel_el.properties new file mode 100644 index 0000000000000000000000000000000000000000..19e6fb7294f2bf23251cdcb38a68fb7b7494e10b --- /dev/null +++ b/core/src/main/resources/hudson/model/ComputerSet/sidepanel_el.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Back\ to\ Dashboard=\u0395\u03C0\u03B9\u03C3\u03C4\u03C1\u03BF\u03C6\u03AE \u03C3\u03C4\u03BF Dashboard +Configure=\u03A0\u03B1\u03C1\u03B1\u03BC\u03B5\u03C4\u03C1\u03BF\u03C0\u03BF\u03AF\u03B7\u03C3\u03B7 diff --git a/core/src/main/resources/hudson/model/ComputerSet/sidepanel_es.properties b/core/src/main/resources/hudson/model/ComputerSet/sidepanel_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..2e16d5c29d02db3bd64ab3ecb4552e5da8b80037 --- /dev/null +++ b/core/src/main/resources/hudson/model/ComputerSet/sidepanel_es.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Back\ to\ Dashboard=Volver al Panel de control +New\ Node=Nuevo nodo +Configure=Configuración diff --git a/core/src/main/resources/hudson/model/ComputerSet/sidepanel_fr.properties b/core/src/main/resources/hudson/model/ComputerSet/sidepanel_fr.properties index ffb8e22e7dfd74c1ca9ba024125037eeadea3ce4..cef36231bae9a35d789ea161427a02c3fe9be4de 100644 --- a/core/src/main/resources/hudson/model/ComputerSet/sidepanel_fr.properties +++ b/core/src/main/resources/hudson/model/ComputerSet/sidepanel_fr.properties @@ -21,5 +21,6 @@ # THE SOFTWARE. Back\ to\ Dashboard=Retour au tableau de bord -New\ Node=Nouveau noeud +Configure=Configurer +New\ Node=Nouveau n\u0153ud diff --git a/core/src/main/resources/hudson/model/ComputerSet/sidepanel_ko.properties b/core/src/main/resources/hudson/model/ComputerSet/sidepanel_ko.properties new file mode 100644 index 0000000000000000000000000000000000000000..50bd495b3bf946fe9c2a4ea35b6ac54b1edf478f --- /dev/null +++ b/core/src/main/resources/hudson/model/ComputerSet/sidepanel_ko.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Back\ to\ Dashboard=\uB300\uC2DC\uBCF4\uB4DC\uB85C \uB3CC\uC544\uAC00\uAE30 +Configure=\uC124\uC815 +New\ Node=\uC2E0\uADDC \uB178\uB4DC diff --git a/core/src/main/resources/hudson/model/ComputerSet/sidepanel_nl.properties b/core/src/main/resources/hudson/model/ComputerSet/sidepanel_nl.properties index 5fb841a3f58d69d0d6d763a3c1079c783fa8529c..c179db5e53c7987a832ef3e8779254b655dd6517 100644 --- a/core/src/main/resources/hudson/model/ComputerSet/sidepanel_nl.properties +++ b/core/src/main/resources/hudson/model/ComputerSet/sidepanel_nl.properties @@ -21,3 +21,5 @@ # THE SOFTWARE. Back\ to\ Dashboard=Terug naar Dashboard +Configure=Configureer +New\ Node=Nieuwe Node diff --git a/core/src/main/resources/hudson/model/ComputerSet/sidepanel_pt_BR.properties b/core/src/main/resources/hudson/model/ComputerSet/sidepanel_pt_BR.properties index e9766effacc551d4e0aec76585b7588df1c4e057..0e07ca0783a54e16ab25b385d73b11547d278dc7 100644 --- a/core/src/main/resources/hudson/model/ComputerSet/sidepanel_pt_BR.properties +++ b/core/src/main/resources/hudson/model/ComputerSet/sidepanel_pt_BR.properties @@ -21,3 +21,5 @@ # THE SOFTWARE. Back\ to\ Dashboard=Voltar ao Painel Principal +Configure=Configurar +New\ Node= diff --git a/core/src/main/resources/hudson/model/ComputerSet/sidepanel_ru.properties b/core/src/main/resources/hudson/model/ComputerSet/sidepanel_ru.properties index 02fe98ae25a8f39318a8e81e7b9907b177264074..b91bcfe59fa48316366fd55aab19af9ccb375631 100644 --- a/core/src/main/resources/hudson/model/ComputerSet/sidepanel_ru.properties +++ b/core/src/main/resources/hudson/model/ComputerSet/sidepanel_ru.properties @@ -20,4 +20,6 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Back\ to\ Dashboard=\u0412\u0435\u0440\u043d\u0443\u0442\u044c\u0441\u044f \u0432 \u0418\u043d\u0444\u043e\u041f\u0430\u043d\u0435\u043b\u044c +Back\ to\ Dashboard=\u0414\u043E\u043C\u043E\u0439 +Configure=\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 +New\ Node=\u041D\u043E\u0432\u044B\u0439 \u0443\u0437\u0435\u043B diff --git a/core/src/main/resources/hudson/model/ComputerSet/sidepanel_sv_SE.properties b/core/src/main/resources/hudson/model/ComputerSet/sidepanel_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..9bc14a02dcbfb7faf764d8c83c73ce0392dcf97c --- /dev/null +++ b/core/src/main/resources/hudson/model/ComputerSet/sidepanel_sv_SE.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Configure=Konfigurera +New\ Node=Skapa ny nod diff --git a/core/src/main/resources/hudson/model/ComputerSet/sidepanel_zh_CN.properties b/core/src/main/resources/hudson/model/ComputerSet/sidepanel_zh_CN.properties new file mode 100644 index 0000000000000000000000000000000000000000..38fbd5030ed5917c87283b454eb33e446478bfe1 --- /dev/null +++ b/core/src/main/resources/hudson/model/ComputerSet/sidepanel_zh_CN.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Back\ to\ Dashboard=\u8FD4\u56DE +Configure=\u8BBE\u7F6E +New\ Node=\u65B0\u5EFA\u8282\u70B9 diff --git a/core/src/main/resources/hudson/model/DirectoryBrowserSupport/dir.jelly b/core/src/main/resources/hudson/model/DirectoryBrowserSupport/dir.jelly index 14ce107977a0c259497b48475c7856e02721832a..d2ba1f6ec0f8d57db070268a333350bc4e551535 100644 --- a/core/src/main/resources/hudson/model/DirectoryBrowserSupport/dir.jelly +++ b/core/src/main/resources/hudson/model/DirectoryBrowserSupport/dir.jelly @@ -87,7 +87,7 @@ THE SOFTWARE. + - - - - - - - - - - - - - - - - - - - - - + + + + + + + @@ -147,7 +181,8 @@ THE SOFTWARE. + addCaption="${%Add a new cloud}" + deleteCaption="${%Delete cloud}"/> @@ -158,4 +193,4 @@ THE SOFTWARE. - \ No newline at end of file + diff --git a/core/src/main/resources/hudson/model/Hudson/configure_da.properties b/core/src/main/resources/hudson/model/Hudson/configure_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..8975cb42b5fd2deb3f11038b90bbfd6e4da2c5d5 --- /dev/null +++ b/core/src/main/resources/hudson/model/Hudson/configure_da.properties @@ -0,0 +1,47 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Prevent\ Cross\ Site\ Request\ Forgery\ exploits=Forebyg cross site request forgery exploits +Default\ view=Standardvisning +Delete\ cloud=Slet sky +Labels=Etiketter +Enable\ security=Sl\u00e5 sikkerhed til +Random=Vilk\u00e5rlig +Disable=Sl\u00e5 fra +Fixed=Rettet +Save=Gem +\#\ of\ executors=# afviklere +Crumbs=Krummer +Access\ Control=Adgangskontrol +SCM\ checkout\ retry\ count=Antal SCM checkout fors\u00f8g +Home\ directory=Hjemmedirektorie +System\ Message=Systembesked +LOADING=INDL\u00c6SER +Quiet\ period=Stilleperiode +Global\ properties=Globale egenskaber +Security\ Realm=Sikkerheds Realm +Cloud=Sky +TCP\ port\ for\ JNLP\ slave\ agents=TCP port til JNLP slaveagenter +statsBlurb=Hj\u00e6lp med at g\u00f8re Hudson bedre ved at sende anonyme brugsstatistiker og nedbrudsrapporter til Hudson projektet. +Crumb\ Algorithm=Krummealgoritme +Authorization=Authorisation +Add\ a\ new\ cloud=Tilf\u00f8j en ny sky diff --git a/core/src/main/resources/hudson/model/Hudson/configure_de.properties b/core/src/main/resources/hudson/model/Hudson/configure_de.properties index 5222e3ea330b7968f3dcb2fc37cc66414a547cbc..d2ad40e3221e4cdd351af0009db6601481fa0829 100644 --- a/core/src/main/resources/hudson/model/Hudson/configure_de.properties +++ b/core/src/main/resources/hudson/model/Hudson/configure_de.properties @@ -20,6 +20,7 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. +Default\ view=Standardansicht Home\ directory=Hudson Home-Verzeichnis System\ Message=Willkommensmeldung Quiet\ period=Ruheperiode @@ -31,9 +32,16 @@ Disable=Deaktivieren Access\ Control=Zugriffskontrolle Security\ Realm=Benutzerverzeichnis (Realm) Authorization=Rechtevergabe -name=Name -JDKs=JDKs -JDK\ installations=JDK Installationen -List\ of\ JDK\ installations\ on\ this\ system=Installierte Java Development Kits (JDKs) auf diesem System -no.such.JDK=Dieses JDK existiert nicht Save=Übernehmen +\#\ of\ executors=Anzahl Build-Prozessoren +Labels=Labels +SCM\ checkout\ retry\ count=Wartezeit zwischen SCM-Checkout-Versuchen +Prevent\ Cross\ Site\ Request\ Forgery\ exploits="Cross Site Request Forgery"-Angriffe verhindern +Crumbs=Crumbs +Crumb\ Algorithm=Crumb-Algorithmus +statsBlurb=\ + Helfen Sie Hudson zu verbessern, indem Sie anonyme Nutzungsstatistiken und Absturzprotokolle \ + an das Hudson-Projekt senden. +Global\ properties=Globale Eigenschaften +Cloud=Cloud +Add\ a\ new\ cloud=Neue Cloud hinzufügen diff --git a/core/src/main/resources/hudson/model/Hudson/configure_es.properties b/core/src/main/resources/hudson/model/Hudson/configure_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..753405a5a703040c948b8a9259b7d26f72667925 --- /dev/null +++ b/core/src/main/resources/hudson/model/Hudson/configure_es.properties @@ -0,0 +1,49 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +statsBlurb=\ + La información anónima enviada sobre las estadísticas de uso y los informes de fallos, contribuyen a poder mejorar Hudson. +Prevent\ Cross\ Site\ Request\ Forgery\ exploits= +Default\ view=Vista por defecto +Random=Aleatoria +TCP\ port\ for\ JNLP\ slave\ agents=Puerto TCP de JNLP para los agentes en los nodos secundarios +Access\ Control=Control de acceso +Labels=Etiquetas +Crumb\ Algorithm=Algoritmo de seguimiento +Authorization=Autorización +Quiet\ period=Periodo de gracia +Global\ properties=Propiedades globales +SCM\ checkout\ retry\ count=Contador de reintentos de peticiones al repositorio +Disable=Desactivar +Security\ Realm=Seguuridad +\#\ of\ executors=Nro. de ejecutores +Fixed=Arreglado +Enable\ security=Activar seguridad +Home\ directory=Directorio raiz +Cloud=Nube +Crumbs=Camino (Crumbs) +Save=Guardar +Add\ a\ new\ cloud=Añadir una nueva nube +System\ Message=Mensaje del sistema +Prevent\ Cross\ Site\ Request\ Forgery\ exploits=Prevenir ataques "Cross site request forgery" +LOADING=CARGANDO +Delete\ cloud=Borrar la nube diff --git a/core/src/main/resources/hudson/model/Hudson/configure_fi.properties b/core/src/main/resources/hudson/model/Hudson/configure_fi.properties new file mode 100644 index 0000000000000000000000000000000000000000..753232494c41cf3f558176131ef047ad6b799ef0 --- /dev/null +++ b/core/src/main/resources/hudson/model/Hudson/configure_fi.properties @@ -0,0 +1,33 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +#\ of\ executors=Suorittaajien lukum\u00E4\u00E4r\u00E4 +Access\ Control=P\u00E4\u00E4synhallinta +Disable=Ei k\u00E4yt\u00F6ss\u00E4 +Enable\ security=Aktivoi kirjautuminen +Fixed=Kiinte\u00E4 +Home\ directory=Kotihakemisto +Prevent\ Cross\ Site\ Request\ Forgery\ exploits=Est\u00E4 sivujenv\u00E4listen pyynt\u00F6jen v\u00E4\u00E4renn\u00F6s yrityksi\u00E4. +Quiet\ period=Hiljaiselo aika +Random=Satunnainen +System\ Message=J\u00E4rjestelm\u00E4viesti +statsBlurb=Auta tekem\u00E4\u00E4n Hudsonista parempi l\u00E4hett\u00E4m\u00E4ll\u00E4 anonyymi\u00E4 k\u00E4ytt\u00F6 statistiikkaa ja kaatumis raportteja Hudson projektille. diff --git a/core/src/main/resources/hudson/model/Hudson/configure_fr.properties b/core/src/main/resources/hudson/model/Hudson/configure_fr.properties index 1826c3652b01a12defedc51f407eec8c94cae169..596cc8b30bbe142d4a1cf137afe7e0b94c41a965 100644 --- a/core/src/main/resources/hudson/model/Hudson/configure_fr.properties +++ b/core/src/main/resources/hudson/model/Hudson/configure_fr.properties @@ -22,11 +22,13 @@ Home\ directory=Répertoire Home System\ Message=Message du système +Prevent\ Cross\ Site\ Request\ Forgery\ exploits=Se prot\u00E9ger contre les exploits de type Cross Site Request Forgery Quiet\ period=Période d''attente Enable\ security=Activer la sécurité TCP\ port\ for\ JNLP\ slave\ agents=Port TCP pour les agents esclaves JNLP Fixed=Fixe Random=Au hasard +Default\ view=Vue par d\u00E9faut Disable=Désactivé Access\ Control=Contrôle de l''accès Security\ Realm=Royaume pour la sécurité (Realm) @@ -35,6 +37,7 @@ name=Nom JDKs=JDK JDK\ installations=Installations des JDK List\ of\ JDK\ installations\ on\ this\ system=Liste des installations de JDK sur ce système. +SCM\ checkout\ retry\ count=Nombre de tentatives de checkout SCM Save=Enregistrer no.such.JDK=Ce JDK n''existe pas statsBlurb=\ diff --git a/core/src/main/resources/hudson/model/Hudson/configure_hu.properties b/core/src/main/resources/hudson/model/Hudson/configure_hu.properties new file mode 100644 index 0000000000000000000000000000000000000000..ba13d6e309e8172f8818ff5f53e6ad2166f1fb6a --- /dev/null +++ b/core/src/main/resources/hudson/model/Hudson/configure_hu.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +#\ of\ executors=A v\u00E9grehajt\u00F3k sz\u00E1ma +Save=Ment\u00E9s +System\ Message=Rendszer\u00FCzenet diff --git a/core/src/main/resources/hudson/model/Hudson/configure_ja.properties b/core/src/main/resources/hudson/model/Hudson/configure_ja.properties index 12fad4db384a91f87bcc32869075c0393410ddde..81640fa1401c190734a1fc20de75cc81e8278ffd 100644 --- a/core/src/main/resources/hudson/model/Hudson/configure_ja.properties +++ b/core/src/main/resources/hudson/model/Hudson/configure_ja.properties @@ -1,6 +1,6 @@ # The MIT License # -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -20,32 +20,29 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Home\ directory=\u30DB\u30FC\u30E0\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA -System\ Message=\u30B7\u30B9\u30C6\u30E0\u30E1\u30C3\u30BB\u30FC\u30B8 -\#\ of\ executors=\u540C\u6642\u30D3\u30EB\u30C9\u6570 -Quiet\ period=\u5F85\u6A5F\u6642\u9593 -Enable\ security=\u30BB\u30AD\u30E5\u30EA\u30C6\u30A3\u3092\u6709\u52B9\u5316 -TCP\ port\ for\ JNLP\ slave\ agents=JNLP\u30B9\u30EC\u30FC\u30D6\u7528TCP\u30DD\u30FC\u30C8\u756A\u53F7 -Fixed=\u56FA\u5B9A -Random=\u30E9\u30F3\u30C0\u30E0 -Disable=\u306A\u3057 -Access\ Control=\u30A2\u30AF\u30BB\u30B9\u5236\u5FA1 -Security\ Realm=\u30E6\u30FC\u30B6\u30FC\u60C5\u5831 -Authorization=\u6A29\u9650\u7BA1\u7406 -Master/Slave\ Support=\u30DE\u30B9\u30BF\u30FB\u30B9\u30EC\u30FC\u30D6 -Slaves=\u30B9\u30EC\u30FC\u30D6\u7FA4 -slaves.description=\u3053\u306EHudson\u306B\u63A5\u7D9A\u3055\u308C\u305F\u30B9\u30EC\u30FC\u30D6\u7FA4\u3092\u8A2D\u5B9A\u3057\u307E\u3059\u3002\u30B9\u30EC\u30FC\u30D6\u306E\u5229\u7528\u306B\u3088\u308A\u3001\u3088\u308A\u591A\u304F\u306E\u30B8\u30E7\u30D6\u3092\u53D6\u308A\u6271\u3048\u308B\u3088\u3046\u306B\u306A\u308A\u307E\u3059 -name=\u540D\u524D -launch\ command=\u8D77\u52D5\u30B3\u30DE\u30F3\u30C9 -description=\u8AAC\u660E -remote\ FS\ root=\u30EA\u30E2\u30FC\u30C8FS\u30EB\u30FC\u30C8 -usage=\u7528\u9014 -Labels=\u30E9\u30D9\u30EB -JDKs=JDK -JDK\ installations=\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u6E08\u307FJDK -List\ of\ JDK\ installations\ on\ this\ system=Hudson\u3067\u5229\u7528\u3059\u308B\u3001\u3053\u306E\u30B7\u30B9\u30C6\u30E0\u306B\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3055\u308C\u305FJDK\u306E\u4E00\u89A7\u3067\u3059 -no.such.JDK=\u6307\u5B9A\u3055\u308C\u305FJDK\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093 -Save=\u4FDD\u5B58 +Home\ directory=\u30db\u30fc\u30e0\u30c7\u30a3\u30ec\u30af\u30c8\u30ea +System\ Message=\u30b7\u30b9\u30c6\u30e0\u30e1\u30c3\u30bb\u30fc\u30b8 +\#\ of\ executors=\u540c\u6642\u30d3\u30eb\u30c9\u6570 +Quiet\ period=\u5f85\u6a5f\u6642\u9593 +SCM\ checkout\ retry\ count=SCM\u30c1\u30a7\u30c3\u30af\u30a2\u30a6\u30c8 \u30ea\u30c8\u30e9\u30a4\u6570 +Enable\ security=\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u3092\u6709\u52b9\u5316 +TCP\ port\ for\ JNLP\ slave\ agents=JNLP\u30b9\u30ec\u30fc\u30d6\u7528TCP\u30dd\u30fc\u30c8\u756a\u53f7 +Fixed=\u56fa\u5b9a +Random=\u30e9\u30f3\u30c0\u30e0 +Disable=\u306a\u3057 +Access\ Control=\u30a2\u30af\u30bb\u30b9\u5236\u5fa1 +Security\ Realm=\u30e6\u30fc\u30b6\u30fc\u60c5\u5831 +Authorization=\u6a29\u9650\u7ba1\u7406 +Labels=\u30e9\u30d9\u30eb +Save=\u4fdd\u5b58 statsBlurb=\ - \u5229\u7528\u72B6\u6CC1\u3068\u30AF\u30E9\u30C3\u30B7\u30E5\u30EC\u30DD\u30FC\u30C8\u3092Hudson\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306B\u533F\u540D\u3067\u5831\u544A -Global\ properties=\u30B0\u30ED\u30FC\u30D0\u30EB \u30D7\u30ED\u30D1\u30C6\u30A3 + \u5229\u7528\u72b6\u6cc1\u3068\u30af\u30e9\u30c3\u30b7\u30e5\u30ec\u30dd\u30fc\u30c8\u3092Hudson\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306b\u533f\u540d\u3067\u5831\u544a +Global\ properties=\u30b0\u30ed\u30fc\u30d0\u30eb \u30d7\u30ed\u30d1\u30c6\u30a3 +Prevent\ Cross\ Site\ Request\ Forgery\ exploits=CSRF\u5bfe\u7b56 +Default\ view=\u30c7\u30d5\u30a9\u30eb\u30c8\u30d3\u30e5\u30fc +Cloud=\u30af\u30e9\u30a6\u30c9 +Add\ a\ new\ cloud=\u8ffd\u52a0 +Delete\ cloud=\u524a\u9664 +Crumb\ Algorithm=Crumb \u30a2\u30eb\u30b4\u30ea\u30ba\u30e0 +Crumbs=Crumbs +LOADING=\u30ed\u30fc\u30c9\u4e2d... diff --git a/core/src/main/resources/hudson/model/Hudson/configure_nl.properties b/core/src/main/resources/hudson/model/Hudson/configure_nl.properties index 04f2ab7e37dcd3f7c901ae84ead86d4619132c9a..ed3ae1eaef8ccf511497d54793ca7e96be914cfb 100644 --- a/core/src/main/resources/hudson/model/Hudson/configure_nl.properties +++ b/core/src/main/resources/hudson/model/Hudson/configure_nl.properties @@ -20,14 +20,19 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. +Global\ properties=Globale eigenschappen Home\ directory=Hudson hoofdfolder System\ Message=Systeemboodschap \#\ of\ executors=# Uitvoerders +Prevent\ Cross\ Site\ Request\ Forgery\ exploits=Ga Cross-site Request Forgery exploits tegen Quiet\ period=Rustperiode Enable\ security=Activeer beveiliging -TCP\ port\ for\ JNLP\ slave\ agents=TCP poort voor JNLP slaafnodes +TCP\ port\ for\ JNLP\ slave\ agents=TCP-poort voor JNLP-slaafnodes Fixed=Vast Random=Willekeurig +Crumb\ Algorithm=Kruimelalgoritme +Crumbs=Kruimels +Default\ view=Standaard view Disable=Gedesactiveerd Access\ Control=Toegangscontrole Security\ Realm=Beveiligingszone @@ -42,10 +47,12 @@ name=Naam launch\ command=Lanceer commando description=Omschrijving remote\ FS\ root=Hoofdfolder op het bestandssyteem op afstand +statsBlurb=Help Hudson verbeteren door het opsturen van anonieme gebruiksstatistieken en crashrapporten naar het Hudsonproject. usage=Gebruik labels=Merktekens JDKs=JDKs JDK\ installations=Installatie JDKs List\ of\ JDK\ installations\ on\ this\ system=Lijst van de ge\u00EFnstalleerde JDKs op dit systeem no.such.JDK=JDK bestaat niet op dit system +SCM\ checkout\ retry\ count=SCM checkout pogingen Save=Bewaar diff --git a/core/src/main/resources/hudson/model/Hudson/configure_pt_BR.properties b/core/src/main/resources/hudson/model/Hudson/configure_pt_BR.properties index 15f6f63b882b1e2f8ed40dfa9de5fa9121c77ef8..cdcdf44573e3e6676fff553fb2d75afb21cfa214 100644 --- a/core/src/main/resources/hudson/model/Hudson/configure_pt_BR.properties +++ b/core/src/main/resources/hudson/model/Hudson/configure_pt_BR.properties @@ -32,20 +32,19 @@ Disable=Desabilitar Access\ Control=Control de Acesso Security\ Realm=Dom\u00EDnio (Realm) de Seguran\u00E7a Authorization=Autoriza\u00E7\u00E3o -Master/Slave\ Support=Suporte a Master/Slave -Slaves= -slaves.description=\ - Lista de m\u00E1quinas slave registradas para este Hudson master. Tarefas podem ser configuradas para \ - executar nas m\u00E1quinas slave para manipular uma grande quantidade de tarefas. -name=nome -launch\ command=comando de lan\u00E7amento -description=descri\u00E7\u00E3o -remote\ FS\ root=raiz do sistema de arquivos remoto -usage=uso -labels=t\u00EDtulos -JDKs= -JDK\ installations=Instala\u00E7\u00E3o de JDK -List\ of\ JDK\ installations\ on\ this\ system=Lista de Instala\u00E7\u00F5es de JDK neste sistema -no.such.JDK=N\u00E3o existe tal JDK Save=Salvar +Prevent\ Cross\ Site\ Request\ Forgery\ exploits= +Default\ view= +Delete\ cloud= +Labels=Etiquettes +Crumbs= +SCM\ checkout\ retry\ count= +LOADING= +Global\ properties= +Cloud= +# \ +# Help make Hudson better by sending anonymous usage statistics and crash reports to the Hudson project. +statsBlurb= +Crumb\ Algorithm= +Add\ a\ new\ cloud= diff --git a/core/src/main/resources/hudson/model/Hudson/configure_ru.properties b/core/src/main/resources/hudson/model/Hudson/configure_ru.properties index f2d209f9a57163047b3dba3eaf34fb741b08562a..46702cbf42b10a226400821551802e03de36e1b8 100644 --- a/core/src/main/resources/hudson/model/Hudson/configure_ru.properties +++ b/core/src/main/resources/hudson/model/Hudson/configure_ru.properties @@ -20,6 +20,7 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. +Global\ properties=\u0413\u043B\u043E\u0431\u0430\u043B\u044C\u043D\u044B\u0435 \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 Home\ directory=\u0414\u043e\u043c\u0430\u0448\u043d\u044f\u044f \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f System\ Message=\u0421\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b Quiet\ period=\u0417\u0430\u0434\u0435\u0440\u0436\u043a\u0430 \u043f\u0435\u0440\u0435\u0434 \u0441\u0431\u043e\u0440\u043a\u043e\u0439 @@ -27,12 +28,18 @@ Enable\ security=\u0412\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0437\u0430\u TCP\ port\ for\ JNLP\ slave\ agents=TCP \u043f\u043e\u0440\u0442 \u0434\u043b\u044f JNLP \u043f\u043e\u0434\u0447\u0438\u043d\u0435\u043d\u043d\u044b\u0445 \u0430\u0433\u0435\u043d\u0442\u043e\u0432 Fixed=\u0421\u0442\u0430\u0442\u0438\u0447\u043d\u044b\u0439 Random=\u0421\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0439 +Default\ view=\u0412\u0438\u0434 \u043F\u043E-\u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E Disable=\u0417\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d +#\ of\ executors=\u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u0441\u0431\u043E\u0440\u0449\u0438\u043A\u043E\u0432 Access\ Control=\u041a\u043e\u043d\u0442\u0440\u043e\u043b\u044c \u0434\u043e\u0441\u0442\u0443\u043f\u0430 +SCM\ checkout\ retry\ count=\u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u043F\u043E\u043F\u044B\u0442\u043E\u043A \u043E\u0431\u0440\u0430\u0449\u0435\u043D\u0438\u044F \u043A SCM \u0434\u043B\u044F \u0432\u044B\u0433\u0440\u0443\u0437\u043A\u0438 \u043F\u0440\u043E\u0435\u043A\u0442\u043E\u0432 +Save=\u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C Security\ Realm=\u041e\u0431\u043b\u0430\u0441\u0442\u044c \u0437\u0430\u0449\u0438\u0442\u044b (realm) Authorization=\u0410\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u044f description=\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 JDKs=JDK JDK\ installations=\u0418\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0446\u0438\u0438 JDK +Labels=\u041C\u0435\u0442\u043A\u0438 List\ of\ JDK\ installations\ on\ this\ system=\u0421\u043f\u0438\u0441\u043e\u043a JDK \u0438\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 -no.such.JDK=\u0422\u0430\u043a\u043e\u0433\u043e JDK \u043d\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \ No newline at end of file +no.such.JDK=\u0422\u0430\u043a\u043e\u0433\u043e JDK \u043d\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 +statsBlurb=\u0423\u0447\u0430\u0441\u0442\u0432\u043E\u0432\u0430\u0442\u044C \u0432 \u0443\u043B\u0443\u0447\u0448\u0435\u043D\u0438\u0438 Hudson, \u043F\u043E\u0441\u044B\u043B\u0430\u044F \u0430\u043D\u043E\u043D\u0438\u043C\u043D\u044B\u0435 \u0434\u0430\u043D\u043D\u044B\u0435 \u043F\u043E \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u044E \u0438 \u043E\u0442\u0447\u0435\u0442\u044B \u043E \u0441\u0431\u043E\u044F\u0445 Hudson. diff --git a/core/src/main/resources/hudson/model/Hudson/configure_sv_SE.properties b/core/src/main/resources/hudson/model/Hudson/configure_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..cb2dc18f3e5470eaefbb9eee7a0a1cd2e92e49a5 --- /dev/null +++ b/core/src/main/resources/hudson/model/Hudson/configure_sv_SE.properties @@ -0,0 +1,27 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Default\ view=Standardvy +Disable=Inaktivera +Global\ properties=Globala egenskaper +Labels=Etiketter +statsBlurb=Hj\u00E4lp g\u00F6ra Hudson b\u00E4ttre genom att skicka anonyma anv\u00E4ndningsstatistik och kraschrapporter till Hudson projektet. diff --git a/core/src/main/resources/hudson/model/Hudson/configure_zh_CN.properties b/core/src/main/resources/hudson/model/Hudson/configure_zh_CN.properties new file mode 100644 index 0000000000000000000000000000000000000000..717bc4e684c4fb03162a483fa7052493f6719358 --- /dev/null +++ b/core/src/main/resources/hudson/model/Hudson/configure_zh_CN.properties @@ -0,0 +1,45 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +\#\ of\ executors=\u6267\u884c\u8005\u6570\u91cf +Labels=\u6807\u8bb0 +Home\ directory=\u4e3b\u76ee\u5f55 +Quiet\ period=\u751f\u6210\u524d\u7b49\u5f85\u65f6\u95f4 +Enable\ security=\u542f\u7528\u5b89\u5168 +TCP\ port\ for\ JNLP\ slave\ agents=JNLP\u8282\u70b9\u4ee3\u7406\u7684TCP\u7aef\u53e3 +Fixed=\u6307\u5b9a\u7aef\u53e3 +Random=\u968f\u673a\u9009\u53d6 +Disable=\u7981\u7528 +Access\ Control=\u8bbf\u95ee\u63a7\u5236 +Security\ Realm=\u5b89\u5168\u57df +Authorization=\u6388\u6743\u7b56\u7565 +Prevent\ Cross\ Site\ Request\ Forgery\ exploits=\u9632\u6b62\u8de8\u7ad9\u70b9\u8bf7\u6c42\u4f2a\u9020 +SCM\ checkout\ retry\ count=SCM\u7b7e\u51fa\u91cd\u8bd5\u6b21\u6570 +System\ Message=\u7cfb\u7edf\u6d88\u606f + +Global\ properties=\u5168\u5c40\u5c5e\u6027 +Cloud=\u4e91 +Add\ a\ new\ cloud=\u65b0\u589e\u4e00\u4e2a\u4e91 + +JDKs=JDK\u5149\u5b50 +JDK\ installations=JDK\u5b9e\u4f8b +List\ of\ JDK\ installations\ on\ this\ system=\u7cfb\u7edfJDK\u5b9e\u4f8b\u5217\u8868 diff --git a/core/src/main/resources/hudson/model/Hudson/configure_zh_TW.properties b/core/src/main/resources/hudson/model/Hudson/configure_zh_TW.properties new file mode 100644 index 0000000000000000000000000000000000000000..fd377a0ced06f12059feea4a81c109710c46555d --- /dev/null +++ b/core/src/main/resources/hudson/model/Hudson/configure_zh_TW.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Access\ Control=\u5B58\u53D6\u63A7\u5236 +Random=\u96A8\u6A5F +Save=\u5132\u5B58 +System\ Message=\u7CFB\u7D71\u8A0A\u606F diff --git a/core/src/main/resources/hudson/model/Hudson/downgrade.jelly b/core/src/main/resources/hudson/model/Hudson/downgrade.jelly new file mode 100644 index 0000000000000000000000000000000000000000..6a76ae2f60887cfd08175f9528e3fe5f2061bc7f --- /dev/null +++ b/core/src/main/resources/hudson/model/Hudson/downgrade.jelly @@ -0,0 +1,34 @@ + + + +
    + + +
    ${%Restore the previous version of Hudson} + + +
    +
    +
    diff --git a/core/src/main/resources/hudson/model/Hudson/downgrade.properties b/core/src/main/resources/hudson/model/Hudson/downgrade.properties new file mode 100644 index 0000000000000000000000000000000000000000..055767e4be9762855b8478441806f76bbe41e750 --- /dev/null +++ b/core/src/main/resources/hudson/model/Hudson/downgrade.properties @@ -0,0 +1 @@ +buttonText=Downgrade to {0} diff --git a/core/src/main/resources/hudson/model/Hudson/downgrade_da.properties b/core/src/main/resources/hudson/model/Hudson/downgrade_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..73772bee7747801bed16d5b1302b210aa1a19bb6 --- /dev/null +++ b/core/src/main/resources/hudson/model/Hudson/downgrade_da.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Restore\ the\ previous\ version\ of\ Hudson=G\u00e5 tilbage til den foreg\u00e5ende version af Hudson +buttonText=Nedgrader til {0} diff --git a/core/src/main/resources/hudson/model/Hudson/downgrade_ja.properties b/core/src/main/resources/hudson/model/Hudson/downgrade_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..32d8d8ac1a53655770ca0f31ff2366005b267d3c --- /dev/null +++ b/core/src/main/resources/hudson/model/Hudson/downgrade_ja.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Restore\ the\ previous\ version\ of\ Hudson=\u4ee5\u524d\u306eHudson\u306b\u623b\u3059 +buttonText={0}\u306b\u30c0\u30a6\u30f3\u30b0\u30ec\u30fc\u30c9 diff --git a/core/src/main/resources/hudson/model/Hudson/fingerprintCheck.jelly b/core/src/main/resources/hudson/model/Hudson/fingerprintCheck.jelly index e6a2f1c5e862153f62289787b8607429a9f67e81..15a6b8394065f4cc3633bc9681405cfe43606ed1 100644 --- a/core/src/main/resources/hudson/model/Hudson/fingerprintCheck.jelly +++ b/core/src/main/resources/hudson/model/Hudson/fingerprintCheck.jelly @@ -36,7 +36,7 @@ THE SOFTWARE.
    - ${%description}(${%more details}) + ${%description} (${%more details})
    diff --git a/core/src/main/resources/hudson/model/Hudson/fingerprintCheck.properties b/core/src/main/resources/hudson/model/Hudson/fingerprintCheck.properties index 0a67a90dfde22b5e533e6fd5572cf189b1af7544..40c94944cf2b82dda7b2fe2a10551d00ec044972 100644 --- a/core/src/main/resources/hudson/model/Hudson/fingerprintCheck.properties +++ b/core/src/main/resources/hudson/model/Hudson/fingerprintCheck.properties @@ -24,4 +24,4 @@ description=\ Got a jar file but don''t know which version it is?
    \ Find that out by checking the fingerprint against \ the database in Hudson -fingerprint.link=https://hudson.dev.java.net/fingerprint.html +fingerprint.link=http://hudson-ci.org/fingerprint.html diff --git a/core/src/main/resources/hudson/model/Hudson/fingerprintCheck_da.properties b/core/src/main/resources/hudson/model/Hudson/fingerprintCheck_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..ec2ee718ef185ad5744228d194224461dd1ed514 --- /dev/null +++ b/core/src/main/resources/hudson/model/Hudson/fingerprintCheck_da.properties @@ -0,0 +1,30 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Check\ File\ Fingerprint=Check filfingeraftryk +File\ to\ check=Fil der skal checkes +fingerprint.link=http://hudson-ci.org/fingerprint.html +description=\ +Har du f\u00e5et en jar fil, men ved ikke hvilken version den har?
    \ +Find ud af det ved at checke imod filfingeraftryksdatabasen i Hudson +more\ details=flere detaljer +Check=Check diff --git a/core/src/main/resources/hudson/model/Hudson/fingerprintCheck_de.properties b/core/src/main/resources/hudson/model/Hudson/fingerprintCheck_de.properties index 06ffa4e03dd5eb23dae4e90019e4dd1c8629c361..cad2209f479d440eeb25a9d5412c7c0b2ff1a01e 100644 --- a/core/src/main/resources/hudson/model/Hudson/fingerprintCheck_de.properties +++ b/core/src/main/resources/hudson/model/Hudson/fingerprintCheck_de.properties @@ -23,8 +23,8 @@ Check\ File\ Fingerprint=Fingerabdruck überprüfen File\ to\ check=Zu überprüfende Datei Check=Überprüfen -fingerprint.link=https://hudson.dev.java.net/fingerprint.html more\ details=mehr... description=\ Die Version einer JAR-Datei lässt sich über die von \ Hudson gespeicherten Fingerabdrücke herausfinden. +fingerprint.link=http://hudson-ci.org/fingerprint.html \ No newline at end of file diff --git a/core/src/main/resources/hudson/model/Hudson/fingerprintCheck_es.properties b/core/src/main/resources/hudson/model/Hudson/fingerprintCheck_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..0481fd7eaae18d94e9f8c17d03b0d4e8bd7d4d18 --- /dev/null +++ b/core/src/main/resources/hudson/model/Hudson/fingerprintCheck_es.properties @@ -0,0 +1,30 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +description=\ + Si tienes un fichero ''jar'' en tu disco duro del que desconoces su versión
    \ + Puedes identificarlo enviandolo a Hudson para que busque su firma en la base de datos de firmas registradas. +fingerprint.link=http://hudson-ci.org/fingerprint.html +File\ to\ check=Selecciona un fichero para comprobar +Check=Comprobar +Check\ File\ Fingerprint=Comprobar ficheros +more\ details=más detalles diff --git a/core/src/main/resources/hudson/model/Hudson/fingerprintCheck_fr.properties b/core/src/main/resources/hudson/model/Hudson/fingerprintCheck_fr.properties index e5d47e093e3d0e98d8f63316104299da7beac820..6691bc75fb97acf8c34f433463685fec228050db 100644 --- a/core/src/main/resources/hudson/model/Hudson/fingerprintCheck_fr.properties +++ b/core/src/main/resources/hudson/model/Hudson/fingerprintCheck_fr.properties @@ -23,9 +23,5 @@ Check\ File\ Fingerprint=Vérifier l''empreinte numérique File\ to\ check=Fichier à vérifier Check=Vérifier -description=\ - Vous avez un fichier jar mais vous ne connaissez pas sa version?
    \ - Vous pourrez la trouver en comparant l''empreinte numérique avec celles \ - dans la base de données de Hudson -fingerprint.link=https://hudson.dev.java.net/fingerprint.html +description=Vous avez un fichier jar mais vous ne connaissez pas sa version ?
    Vous pourrez la trouver en comparant l''''empreinte num\u00E9rique avec celles dans la base de donn\u00E9es de Hudson more\ details=plus de détails diff --git a/core/src/main/resources/hudson/model/Hudson/fingerprintCheck_hu.properties b/core/src/main/resources/hudson/model/Hudson/fingerprintCheck_hu.properties new file mode 100644 index 0000000000000000000000000000000000000000..968876e9f1d856b3d1d1e185e7b1cfb97c0f3129 --- /dev/null +++ b/core/src/main/resources/hudson/model/Hudson/fingerprintCheck_hu.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Check=Ellen\u0151rz\u00E9s +Check\ File\ Fingerprint=F\u00E1jl Ujjlenyomat\u00E1nak Ellen\u0151rz\u00E9se +File\ to\ check=Ellen\u0151rizni k\u00EDv\u00E1nt f\u00E1jl +more\ details=tov\u00E1bbi r\u00E9szletek diff --git a/core/src/main/resources/hudson/model/Hudson/fingerprintCheck_it.properties b/core/src/main/resources/hudson/model/Hudson/fingerprintCheck_it.properties new file mode 100644 index 0000000000000000000000000000000000000000..a98be54b80805e858b4b0c3b2b149acda5bec608 --- /dev/null +++ b/core/src/main/resources/hudson/model/Hudson/fingerprintCheck_it.properties @@ -0,0 +1,27 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Check=Controlla +Check\ File\ Fingerprint=Controlla impronta file +File\ to\ check=File da controllare +description=Hai un jar ma non ne conosci la versione?
    Scoprilo controllandone l''impronta sul database di Hudson +more\ details=ulteriori dettagli diff --git a/core/src/main/resources/hudson/model/Hudson/fingerprintCheck_ja.properties b/core/src/main/resources/hudson/model/Hudson/fingerprintCheck_ja.properties index 27a707ff189aab97c7847a60baac0482052f5d31..b652f15e0fceac80111e755a2c6c1297c908aba8 100644 --- a/core/src/main/resources/hudson/model/Hudson/fingerprintCheck_ja.properties +++ b/core/src/main/resources/hudson/model/Hudson/fingerprintCheck_ja.properties @@ -1,6 +1,6 @@ # The MIT License # -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -20,11 +20,11 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Check\ File\ Fingerprint=\u30d5\u30a1\u30a4\u30eb\u6307\u7d0b\u30c1\u30a7\u30c3\u30af -File\ to\ check=\u30c1\u30a7\u30c3\u30af\u3059\u308b\u30d5\u30a1\u30a4\u30eb -Check=\u30c1\u30a7\u30c3\u30af +Check\ File\ Fingerprint=\u30D5\u30A1\u30A4\u30EB\u6307\u7D0B\u30C1\u30A7\u30C3\u30AF +File\ to\ check=\u30C1\u30A7\u30C3\u30AF\u3059\u308B\u30D5\u30A1\u30A4\u30EB +Check=\u30C1\u30A7\u30C3\u30AF description=\ - jar\u30d5\u30a1\u30a4\u30eb\u3092\u53d6\u5f97\u3057\u305f\u306e\u306b\u3001\u3069\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u304b\u5206\u304b\u3089\u306a\u3044\u306e\u3067\u3059\u304b?
    \ - Hudson\u306e\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u3067\u30d5\u30a1\u30a4\u30eb\u6307\u7d0b\u3092\u30c1\u30a7\u30c3\u30af\u3059\u308c\u3070\u3001\u5206\u304b\u308a\u307e\u3059\u3002 -more\ details=\u8a73\u7d30 -fingerprint.link=http://hudson.gotdns.com/wiki/display/JA/Fingerprint \ No newline at end of file + jar\u30D5\u30A1\u30A4\u30EB\u3092\u53D6\u5F97\u3057\u305F\u306E\u306B\u3001\u3069\u306E\u30D0\u30FC\u30B8\u30E7\u30F3\u304B\u5206\u304B\u3089\u306A\u3044\u306E\u3067\u3059\u304B?
    \ + Hudson\u306E\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u3067\u30D5\u30A1\u30A4\u30EB\u6307\u7D0B\u3092\u30C1\u30A7\u30C3\u30AF\u3059\u308C\u3070\u3001\u5206\u304B\u308A\u307E\u3059\u3002 +more\ details=\u8A73\u7D30 +fingerprint.link=http://wiki.hudson-ci.org/display/JA/Fingerprint diff --git a/core/src/main/resources/hudson/model/Hudson/fingerprintCheck_nl.properties b/core/src/main/resources/hudson/model/Hudson/fingerprintCheck_nl.properties index 7c2f21cea49ab84cfa48d80613ada08b67eedcd8..95926384cd67c7e566a2711cc36f2149dd63fc13 100644 --- a/core/src/main/resources/hudson/model/Hudson/fingerprintCheck_nl.properties +++ b/core/src/main/resources/hudson/model/Hudson/fingerprintCheck_nl.properties @@ -23,3 +23,6 @@ Check\ File\ Fingerprint=Controleer numerische vingerafdruk File\ to\ check=Te controleren bestand Check=Controleer +description=Heb je een jar-bestand waarvan je de versie niet weet?
    Vind de versie door de vingerafdruk te controleren tegen de databank in Hudson +fingerprint.link=http://hudson-ci.org/fingerprint.html +more\ details=meer details diff --git a/core/src/main/resources/hudson/model/Hudson/fingerprintCheck_pt_BR.properties b/core/src/main/resources/hudson/model/Hudson/fingerprintCheck_pt_BR.properties index e3a4e4b8cab63a667871ed687406f043c8b2a725..07d0a39f5695cba8b141faa4d026ccf98e8d05b5 100644 --- a/core/src/main/resources/hudson/model/Hudson/fingerprintCheck_pt_BR.properties +++ b/core/src/main/resources/hudson/model/Hudson/fingerprintCheck_pt_BR.properties @@ -23,3 +23,11 @@ Check\ File\ Fingerprint=Verificar Fingerprint de Arquivo File\ to\ check=Arquivo para verificar Check=Verificar +# http://hudson-ci.org/fingerprint.html +fingerprint.link= +# \ +# Got a jar file but don''t know which version it is?
    \ +# Find that out by checking the fingerprint against \ +# the database in Hudson +description= +more\ details=mais detalhes diff --git a/core/src/main/resources/hudson/model/Hudson/fingerprintCheck_ru.properties b/core/src/main/resources/hudson/model/Hudson/fingerprintCheck_ru.properties index ead890e472da975456b55afaf70994f70451e56a..cf29145a8be08f777f0f169f615b3500fb5fc988 100644 --- a/core/src/main/resources/hudson/model/Hudson/fingerprintCheck_ru.properties +++ b/core/src/main/resources/hudson/model/Hudson/fingerprintCheck_ru.properties @@ -23,3 +23,6 @@ Check\ File\ Fingerprint=\u041f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u043e\u0442\u043f\u0435\u0447\u0430\u0442\u043e\u043a \u0444\u0430\u0439\u043b\u0430 File\ to\ check=\u0424\u0430\u0439\u043b \u0434\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 Check=\u041f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c +description=\u041D\u0435 \u0437\u043D\u0430\u0435\u0442\u0435 \u0432\u0435\u0440\u0441\u0438\u044E Jar-\u0444\u0430\u0439\u043B\u0430?
    \u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C \u0432\u0430\u0448 jar-\u0444\u0430\u0439\u043B \u0434\u043B\u044F \u0435\u0433\u043E \u0441\u0440\u0430\u0432\u043D\u0435\u043D\u0438\u044F \u0441 \u0431\u0430\u0437\u043E\u0439 \u043E\u0442\u043F\u0435\u0447\u0430\u0442\u043A\u043E\u0432 \u0444\u0430\u0439\u043B\u043E\u0432 Hudson +fingerprint.link=http://hudson-ci.org/fingerprint.html +more\ details=\u0434\u043E\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u044C\u043D\u0430\u044F \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F diff --git a/core/src/main/resources/hudson/model/Hudson/fingerprintCheck_tr.properties b/core/src/main/resources/hudson/model/Hudson/fingerprintCheck_tr.properties index 0112001f07f5023dc4f04063767cde5edcd0c535..ff5473c398954cdfd2095f01a99149b946361d09 100644 --- a/core/src/main/resources/hudson/model/Hudson/fingerprintCheck_tr.properties +++ b/core/src/main/resources/hudson/model/Hudson/fingerprintCheck_tr.properties @@ -26,5 +26,4 @@ Check=Kontrol\ Et description=\ Bir jar dosyan\u0131z var ve hangi versiyon oldu\u011funu bilmiyor musunuz?
    \ Parmakizini Hudson i\u00e7erisindeki veritaban\u0131nda aratarak bulabilirsiniz. -fingerprint.link=https://hudson.dev.java.net/fingerprint.html more\ details=daha fazla detay diff --git a/core/src/main/resources/hudson/model/Hudson/legend.jelly b/core/src/main/resources/hudson/model/Hudson/legend.jelly index e3f18a9d61e43e8a51660318538fb0dc695533a7..aaef13f3cec5f9f41e6abac39f2093831e4d7da4 100644 --- a/core/src/main/resources/hudson/model/Hudson/legend.jelly +++ b/core/src/main/resources/hudson/model/Hudson/legend.jelly @@ -1,7 +1,8 @@ @@ -61,4 +63,4 @@ THE SOFTWARE. - \ No newline at end of file + diff --git a/core/src/main/resources/hudson/model/Hudson/loginError.jelly b/core/src/main/resources/hudson/model/Hudson/loginError.jelly index 5a0a5d4e862eaffccef32ff08472d68c02248ba8..2c84f19d0706627708baae29110af8674d79e0c0 100644 --- a/core/src/main/resources/hudson/model/Hudson/loginError.jelly +++ b/core/src/main/resources/hudson/model/Hudson/loginError.jelly @@ -1,7 +1,7 @@ - - - - -
    - ${%Invalid login information. Please try again.} -
    - ${%Try again} -
    -
    -
    -
    \ No newline at end of file + + + + + + + + + + +
    + ${%Invalid login information. Please try again.} +
    + ${%Try again} +
    +
    +
    + ${%If you are a system administrator and suspect this to be a configuration problem, see the server console output for more details.} +
    +
    +
    +
    +
    + + + +
    + diff --git a/core/src/main/resources/hudson/model/Hudson/loginError_da.properties b/core/src/main/resources/hudson/model/Hudson/loginError_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..65f9f67c6b508c98d027292850df70b365e81a2f --- /dev/null +++ b/core/src/main/resources/hudson/model/Hudson/loginError_da.properties @@ -0,0 +1,27 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Try\ again=Pr\u00f8v igen +Invalid\ login\ information.\ Please\ try\ again.=Ugyldig logindinformation. Pr\u00f8v igen. +Login\ Error=Logind fejl +If\ you\ are\ a\ system\ administrator\ and\ suspect\ this\ to\ be\ a\ configuration\ problem,\ see\ the\ server\ console\ output\ for\ more\ details.=\ +Hvis du er systemadministratoren og mist\u00e6nker at dette er et konfigurationsproblem kan du se serverens konsoloutput for flere detaljer. diff --git a/core/src/main/resources/hudson/model/Hudson/loginError_es.properties b/core/src/main/resources/hudson/model/Hudson/loginError_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..4337d5f90732c627db5b7aa3a31d503ac8dc0c9e --- /dev/null +++ b/core/src/main/resources/hudson/model/Hudson/loginError_es.properties @@ -0,0 +1,27 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Invalid\ login\ information.\ Please\ try\ again.=Error de autenticación. +Try\ again=Intentaló de nuevo +Login\ Error=Error de autencicación +If\ you\ are\ a\ system\ administrator\ and\ suspect\ this\ to\ be\ a\ configuration\ problem,\ see\ the\ server\ console\ output\ for\ more\ details.=\ + Si eres un administrador de sistemas y crees que esto es un problema de configuración, echa un vistazo a la salida de consola para ver mas detalles diff --git a/core/src/main/resources/hudson/model/Hudson/loginError_ja.properties b/core/src/main/resources/hudson/model/Hudson/loginError_ja.properties index 05f2ff59bffc3f73463046fa851d4405c6add84d..93c1460af6912bd62c011d077309f5e18b5c663a 100644 --- a/core/src/main/resources/hudson/model/Hudson/loginError_ja.properties +++ b/core/src/main/resources/hudson/model/Hudson/loginError_ja.properties @@ -1,6 +1,6 @@ # The MIT License # -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -20,5 +20,8 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Invalid\ login\ information.\ Please\ try\ again.=\u30e6\u30fc\u30b6\u30fc\u540d\u307e\u305f\u306f\u30d1\u30b9\u30ef\u30fc\u30c9\u304c\u9055\u3044\u307e\u3059 -Try\ again=\u518d\u30ed\u30b0\u30a4\u30f3 +Invalid\ login\ information.\ Please\ try\ again.=\u30E6\u30FC\u30B6\u30FC\u540D\u307E\u305F\u306F\u30D1\u30B9\u30EF\u30FC\u30C9\u304C\u9055\u3044\u307E\u3059 +Try\ again=\u518D\u30ED\u30B0\u30A4\u30F3 +If\ you\ are\ a\ system\ administrator\ and\ suspect\ this\ to\ be\ a\ configuration\ problem,\ see\ the\ server\ console\ output\ for\ more\ details.=\ + \u3042\u306A\u305F\u304C\u7BA1\u7406\u8005\u3067\u8A2D\u5B9A\u306E\u554F\u984C\u3068\u8003\u3048\u308B\u5834\u5408\u306F\u3001\u30B3\u30F3\u30BD\u30FC\u30EB\u51FA\u529B\u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044\u3002 +Login\ Error=\u30ED\u30B0\u30A4\u30F3\u30A8\u30E9\u30FC diff --git a/core/src/main/resources/hudson/model/Hudson/loginError_ko.properties b/core/src/main/resources/hudson/model/Hudson/loginError_ko.properties new file mode 100644 index 0000000000000000000000000000000000000000..7dd6cb5e0f4053a9c810a1299cbe5d8871dde5f2 --- /dev/null +++ b/core/src/main/resources/hudson/model/Hudson/loginError_ko.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Invalid\ login\ information.\ Please\ try\ again.=\uB85C\uADF8\uC778 \uC815\uBCF4\uAC00 \uD2C0\uB9BD\uB2C8\uB2E4. \uC7AC\uC2DC\uB3C4\uD574 \uC8FC\uC138\uC694 +Try\ again=\uC7AC\uC2DC\uB3C4 diff --git a/core/src/main/resources/hudson/model/Hudson/loginError_pt_BR.properties b/core/src/main/resources/hudson/model/Hudson/loginError_pt_BR.properties index 9fb96f4cd3ff0be8963fc598096da17ac06a61e5..e889f6e9b4b84c8384adc239ea07c428d85829f0 100644 --- a/core/src/main/resources/hudson/model/Hudson/loginError_pt_BR.properties +++ b/core/src/main/resources/hudson/model/Hudson/loginError_pt_BR.properties @@ -22,3 +22,5 @@ Invalid\ login\ information.\ Please\ try\ again.=Informa\u00E7\u00E3o de login inv\u00E1lida. Por favor tente novamente. Try\ again=Tente novamente +Login\ Error= +If\ you\ are\ a\ system\ administrator\ and\ suspect\ this\ to\ be\ a\ configuration\ problem,\ see\ the\ server\ console\ output\ for\ more\ details.= diff --git a/core/src/main/resources/hudson/model/Hudson/login_da.properties b/core/src/main/resources/hudson/model/Hudson/login_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..e49d053a91c797fea560829cfbdf552efee06868 --- /dev/null +++ b/core/src/main/resources/hudson/model/Hudson/login_da.properties @@ -0,0 +1,27 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Password=Adgangskode +login=log ind +User=Bruger +Remember\ me\ on\ this\ computer=Husk mig p\u00e5 denne computer +signUp=Opret en konto hvis du endnu ikke er medlem. diff --git a/core/src/main/resources/hudson/model/Hudson/login_de.properties b/core/src/main/resources/hudson/model/Hudson/login_de.properties index 33c1bb8cf61c03170da49275e9f1caaa8303c68c..f810eff90ed7029c49618903ae16c6f282863fad 100644 --- a/core/src/main/resources/hudson/model/Hudson/login_de.properties +++ b/core/src/main/resources/hudson/model/Hudson/login_de.properties @@ -22,6 +22,6 @@ User=Benutzer Password=Passwort -Remember\ me\ on\ this\ computer=Meine Anmeldedaten auf diesem Rechner speichern. +Remember\ me\ on\ this\ computer=Meine Anmeldedaten auf diesem Rechner speichern login=Anmelden signUp=Neuen Benutzer registrieren. diff --git a/core/src/main/resources/hudson/model/Hudson/login_es.properties b/core/src/main/resources/hudson/model/Hudson/login_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..f5186e62cbd36e6acd3d82d422bd70e9222a9fda --- /dev/null +++ b/core/src/main/resources/hudson/model/Hudson/login_es.properties @@ -0,0 +1,27 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +signUp=Crea una cuenta si todavía no tienes una. +login=Entrar +Password=Contraseña +User=Usuario +Remember\ me\ on\ this\ computer=Recuerdame en este ordenador diff --git a/core/src/main/resources/hudson/model/Hudson/login_ja.properties b/core/src/main/resources/hudson/model/Hudson/login_ja.properties index 7e1535a1e2f9f35c1eb5d7b8e38698c634b8da4d..9e64a67725583a044846b5a87a5365f666010e5c 100644 --- a/core/src/main/resources/hudson/model/Hudson/login_ja.properties +++ b/core/src/main/resources/hudson/model/Hudson/login_ja.properties @@ -1,6 +1,6 @@ # The MIT License # -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -20,8 +20,8 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -User=\u30e6\u30fc\u30b6\u30fc\u540d -Password=\u30d1\u30b9\u30ef\u30fc\u30c9 -login=\u30ed\u30b0\u30a4\u30f3 -Remember\ me\ on\ this\ computer=\u6b21\u56de\u304b\u3089\u5165\u529b\u3092\u7701\u7565 -signUp=\u30e1\u30f3\u30d0\u30fc\u3067\u306a\u3044\u4eba\u306f\u3001\u30a2\u30ab\u30a6\u30f3\u30c8\u3092\u767b\u9332\u3057\u3066\u304f\u3060\u3055\u3044 \ No newline at end of file +User=\u30E6\u30FC\u30B6\u30FC\u540D +Password=\u30D1\u30B9\u30EF\u30FC\u30C9 +login=\u30ED\u30B0\u30A4\u30F3 +Remember\ me\ on\ this\ computer=\u6B21\u56DE\u304B\u3089\u5165\u529B\u3092\u7701\u7565 +signUp=\u30E1\u30F3\u30D0\u30FC\u3067\u306A\u3044\u4EBA\u306F\u3001\u30A2\u30AB\u30A6\u30F3\u30C8\u3092\u767B\u9332\u3057\u3066\u304F\u3060\u3055\u3044 \ No newline at end of file diff --git a/core/src/main/resources/hudson/model/Hudson/login_ko.properties b/core/src/main/resources/hudson/model/Hudson/login_ko.properties new file mode 100644 index 0000000000000000000000000000000000000000..299b293453d65b1d7f459b9fa3cda095adfbb12f --- /dev/null +++ b/core/src/main/resources/hudson/model/Hudson/login_ko.properties @@ -0,0 +1,27 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Password=\uC554    \uD638 +Remember\ me\ on\ this\ computer=\uAE30\uC5B5\uD558\uAE30 +User=\uACC4\uC815 +login=\uB85C\uADF8\uC778 +signUp=\uACC4\uC815 \uC0DD\uC131 diff --git a/core/src/main/resources/hudson/model/Hudson/login_sv_SE.properties b/core/src/main/resources/hudson/model/Hudson/login_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..75c6d79d7b71e113e6fb2eab2902dbe3b9d1b5f3 --- /dev/null +++ b/core/src/main/resources/hudson/model/Hudson/login_sv_SE.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Password=L\u00F6senord +Remember\ me\ on\ this\ computer=Kom ih\u00E5g mig p\u00E5 den h\u00E4r datorn +User=Anv\u00E4ndarnamn +login=logga in diff --git a/core/src/main/resources/hudson/model/Hudson/login_zh_TW.properties b/core/src/main/resources/hudson/model/Hudson/login_zh_TW.properties new file mode 100644 index 0000000000000000000000000000000000000000..e951c1c6fcc9fec39e5048f148b1ac181bce448e --- /dev/null +++ b/core/src/main/resources/hudson/model/Hudson/login_zh_TW.properties @@ -0,0 +1,27 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Password=\u5BC6\u78BC +Remember\ me\ on\ this\ computer=\u8A18\u4F4F\u6211\u6709\u767B\u5165 +User=\u4F7F\u7528\u8005\u5E33\u865F +login=\u767B\u5165 +signUp=\u5EFA\u7ACB\u65B0\u5E33\u865F\u5982\u679C\u4F60\u9084\u6C92\u6709\u81EA\u5DF1\u7684\u5E33\u865F. diff --git a/core/src/main/resources/hudson/model/Hudson/manage.jelly b/core/src/main/resources/hudson/model/Hudson/manage.jelly index 1e646819654a2e79d2ed87c83e72d027f5f6a5a5..b8546a16f69ffb7797125a5ceec5433138d94162 100644 --- a/core/src/main/resources/hudson/model/Hudson/manage.jelly +++ b/core/src/main/resources/hudson/model/Hudson/manage.jelly @@ -63,6 +63,8 @@ THE SOFTWARE. + +
    S ${%Name} ${m.columnCaption}
    - + (${%all files in zip}) @@ -100,4 +100,4 @@ THE SOFTWARE.
    - \ No newline at end of file + diff --git a/core/src/main/resources/hudson/model/DirectoryBrowserSupport/dir_da.properties b/core/src/main/resources/hudson/model/DirectoryBrowserSupport/dir_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..862145c737d2858a6fd0a5c2b3a142e6f070f40a --- /dev/null +++ b/core/src/main/resources/hudson/model/DirectoryBrowserSupport/dir_da.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +view=visning +No\ files\ in\ directory=Ingen filer i direktoriet +all\ files\ in\ zip=alle filer i en zip fil diff --git a/core/src/main/resources/hudson/model/DirectoryBrowserSupport/dir_de.properties b/core/src/main/resources/hudson/model/DirectoryBrowserSupport/dir_de.properties index 5591bf0ca3bcb95bc6a0c22c7d6042f907bc7744..31306f54dddf976df04af3e42b701cc21ce4fbac 100644 --- a/core/src/main/resources/hudson/model/DirectoryBrowserSupport/dir_de.properties +++ b/core/src/main/resources/hudson/model/DirectoryBrowserSupport/dir_de.properties @@ -22,3 +22,4 @@ all\ files\ in\ zip=Alle Dateien als ZIP-Archiv herunterladen No\ files\ in\ directory=Das Verzeichnis enthält keine Dateien. +view=anzeigen diff --git a/core/src/main/resources/hudson/model/DirectoryBrowserSupport/dir_es.properties b/core/src/main/resources/hudson/model/DirectoryBrowserSupport/dir_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..c08fd00829a197cb382cec29031809f780453eaa --- /dev/null +++ b/core/src/main/resources/hudson/model/DirectoryBrowserSupport/dir_es.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +No\ files\ in\ directory=No hay ficheros en el directorio +view=vista +all\ files\ in\ zip=Todos los ficheros del archivo ''zip'' diff --git a/core/src/main/resources/hudson/model/DirectoryBrowserSupport/dir_fi.properties b/core/src/main/resources/hudson/model/DirectoryBrowserSupport/dir_fi.properties new file mode 100644 index 0000000000000000000000000000000000000000..9496250bd3ef72cca0b67d13c7f76abc5a1077ea --- /dev/null +++ b/core/src/main/resources/hudson/model/DirectoryBrowserSupport/dir_fi.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +all\ files\ in\ zip=kaikki tiedostot zip-pakettina +view=n\u00E4kym\u00E4 diff --git a/core/src/main/resources/hudson/model/DirectoryBrowserSupport/dir_ko.properties b/core/src/main/resources/hudson/model/DirectoryBrowserSupport/dir_ko.properties new file mode 100644 index 0000000000000000000000000000000000000000..38e5062802d69a0a4d81ae1edcf259678a932510 --- /dev/null +++ b/core/src/main/resources/hudson/model/DirectoryBrowserSupport/dir_ko.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +No\ files\ in\ directory=\uB514\uB809\uD1A0\uB9AC\uC5D0 \uD30C\uC77C\uC774 \uC5C6\uC2B5\uB2C8\uB2E4 diff --git a/core/src/main/resources/hudson/model/DirectoryBrowserSupport/dir_pt_BR.properties b/core/src/main/resources/hudson/model/DirectoryBrowserSupport/dir_pt_BR.properties index 95732f29b697476ac10d501e88590a800f3054b6..39bec320d4f281184b77b3ee6d11850ebf2d65f2 100644 --- a/core/src/main/resources/hudson/model/DirectoryBrowserSupport/dir_pt_BR.properties +++ b/core/src/main/resources/hudson/model/DirectoryBrowserSupport/dir_pt_BR.properties @@ -21,3 +21,5 @@ # THE SOFTWARE. all\ files\ in\ zip=Todos os arquivos zipados +view=ver +No\ files\ in\ directory= diff --git a/core/src/main/resources/hudson/model/DirectoryBrowserSupport/dir_sv_SE.properties b/core/src/main/resources/hudson/model/DirectoryBrowserSupport/dir_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..c8630fe33491f62deb2d71569dfe8a7e4651eb74 --- /dev/null +++ b/core/src/main/resources/hudson/model/DirectoryBrowserSupport/dir_sv_SE.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +all\ files\ in\ zip=alla filer i en zip fil +view=\u00F6ppna diff --git a/core/src/main/resources/hudson/model/DirectoryBrowserSupport/dir_zh_CN.properties b/core/src/main/resources/hudson/model/DirectoryBrowserSupport/dir_zh_CN.properties new file mode 100644 index 0000000000000000000000000000000000000000..78a2cbe17b804c434abdd2987befd224698fb048 --- /dev/null +++ b/core/src/main/resources/hudson/model/DirectoryBrowserSupport/dir_zh_CN.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +all\ files\ in\ zip=\u6253\u5305\u4E0B\u8F7D\u5168\u90E8\u6587\u4EF6 +view=\u67E5\u770B diff --git a/core/src/main/resources/hudson/model/Executor/causeOfDeath.jelly b/core/src/main/resources/hudson/model/Executor/causeOfDeath.jelly index 8fe511a8b319e70d854855d9f3ed91ba724f1b5c..8d3a2c335f081eccf010965791bc15d7a150c30b 100644 --- a/core/src/main/resources/hudson/model/Executor/causeOfDeath.jelly +++ b/core/src/main/resources/hudson/model/Executor/causeOfDeath.jelly @@ -27,7 +27,7 @@ THE SOFTWARE. - + @@ -35,17 +35,17 @@ THE SOFTWARE.

    - Thread is still alive + ${%Thread is still alive}

    - Thread has died + ${%Thread has died}

    ${h.printThrowable(it.causeOfDeath)}
    -            more info
    +            ${%more info}
               
    diff --git a/core/src/main/resources/hudson/model/Executor/causeOfDeath_da.properties b/core/src/main/resources/hudson/model/Executor/causeOfDeath_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..63ec3f3b60016e07a0b412ebd733d985b927d669 --- /dev/null +++ b/core/src/main/resources/hudson/model/Executor/causeOfDeath_da.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +more\ info=mere info +Thread\ has\ died=Tr\u00e5d er d\u00f8d +Back=Tilbage +Thread\ is\ still\ alive=Tr\u00e5d er stadig i live diff --git a/core/src/main/resources/hudson/model/Executor/causeOfDeath_de.properties b/core/src/main/resources/hudson/model/Executor/causeOfDeath_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..9deb3d5762b1bc80b38cc4e9e0f77b5f2e91d970 --- /dev/null +++ b/core/src/main/resources/hudson/model/Executor/causeOfDeath_de.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe, Simon Wiest +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Back=Zurück +Thread\ is\ still\ alive=Thread ist immer noch aktiv. +Thread\ has\ died=Thread wurde beendet. +more\ info=mehr... diff --git a/core/src/main/resources/hudson/model/Executor/causeOfDeath_es.properties b/core/src/main/resources/hudson/model/Executor/causeOfDeath_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..80b1cd3ba8324b25a6148a0f5186b9e4c2e699f1 --- /dev/null +++ b/core/src/main/resources/hudson/model/Executor/causeOfDeath_es.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Back=Atrás +Thread\ is\ still\ alive=El ''thread'' está todavía activo. +Thread\ has\ died=El ''thread'' está finalizado +more\ info=más información diff --git a/core/src/main/resources/hudson/model/Executor/causeOfDeath_ja.properties b/core/src/main/resources/hudson/model/Executor/causeOfDeath_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..73b23a701e96ae8cfc985daaf8dc0bdd85aaddf1 --- /dev/null +++ b/core/src/main/resources/hudson/model/Executor/causeOfDeath_ja.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Back=\u623B\u308B +Thread\ is\ still\ alive=\u30B9\u30EC\u30C3\u30C9\u306F\u307E\u3060\u52D5\u4F5C\u3057\u3066\u3044\u307E\u3059\u3002 +Thread\ has\ died=\u30B9\u30EC\u30C3\u30C9\u306F\u505C\u6B62\u3057\u3066\u3044\u307E\u3059\u3002 +more\ info=\u8A73\u7D30 diff --git a/core/src/main/resources/hudson/model/Executor/causeOfDeath_pt_BR.properties b/core/src/main/resources/hudson/model/Executor/causeOfDeath_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..52e6578f40eb9341c9cf832af4d68c3b5050e08f --- /dev/null +++ b/core/src/main/resources/hudson/model/Executor/causeOfDeath_pt_BR.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +more\ info= +Thread\ has\ died= +Back= +Thread\ is\ still\ alive= diff --git a/core/src/main/resources/hudson/model/ExternalJob/newJobDetail.properties b/core/src/main/resources/hudson/model/ExternalJob/newJobDetail.properties index 7e9bc16f463456fc3178b4763388b40d8bccb0ec..0fd98634fc3381ce11628925784c1667d531d590 100644 --- a/core/src/main/resources/hudson/model/ExternalJob/newJobDetail.properties +++ b/core/src/main/resources/hudson/model/ExternalJob/newJobDetail.properties @@ -1,6 +1,6 @@ # The MIT License # -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:cactusman +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:cactusman # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -24,4 +24,4 @@ body=\ This type of job allows you to record the execution of a process run outside Hudson, \ even on a remote machine. This is designed so that you can use Hudson \ as a dashboard of your existing automation system. See \ - the documentation for more details. + the documentation for more details. diff --git a/core/src/main/resources/hudson/model/ExternalJob/newJobDetail_da.properties b/core/src/main/resources/hudson/model/ExternalJob/newJobDetail_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..ff4db40bcc9ae9ac84785d4ad2c617aed1534749 --- /dev/null +++ b/core/src/main/resources/hudson/model/ExternalJob/newJobDetail_da.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +body=Denne jobtype benyttes til at overv\u00e5ge udf\u00f8relsen af en process der k\u00f8rer udenfor Hudson, \ +ogs\u00e5 p\u00e5 en anden maskine. Ideen er at du kan bruge Hudson som dashboard til overv\u00e5gning af dit eksisterende automatiseringssystem. Se \ +dokumentationen for flere detaljer diff --git a/core/src/main/resources/hudson/model/ExternalJob/newJobDetail_de.properties b/core/src/main/resources/hudson/model/ExternalJob/newJobDetail_de.properties index 92eccdd98004a43c82d9155b3e619bcdea863111..7571bf776aa0069ea6cd281e0dbf50c076f4d9a6 100644 --- a/core/src/main/resources/hudson/model/ExternalJob/newJobDetail_de.properties +++ b/core/src/main/resources/hudson/model/ExternalJob/newJobDetail_de.properties @@ -24,5 +24,5 @@ body=\ Dieses Profil erlaubt die Überwachung von Prozessen, die außerhalb von Hudson ausgeführt werden \ - eventuell sogar auf einem anderen Rechner! Dadurch können Sie Hudson ganz allgemein zur zentralen Protokollierung \ von automatisiert ausgeführten Prozessen einsetzen. \ - Mehr... + Mehr... diff --git a/core/src/main/resources/hudson/model/ExternalJob/newJobDetail_es.properties b/core/src/main/resources/hudson/model/ExternalJob/newJobDetail_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..cb206ba85b0fee0758f859bd9ac576814b63c8fc --- /dev/null +++ b/core/src/main/resources/hudson/model/ExternalJob/newJobDetail_es.properties @@ -0,0 +1,27 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:cactusman +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +body=\ + Este tipo de tareas te permite registrar la ejecución de un proceso externo a Hudson, incluso en una máquina remota. \ + Está diseñado para usar Hudson como un panel de control de tu sistema de automatización. \ + Para más información consulta esta página. + diff --git a/core/src/main/resources/hudson/model/ExternalJob/newJobDetail_fr.properties b/core/src/main/resources/hudson/model/ExternalJob/newJobDetail_fr.properties index 2924de3e40dad9652a6cacf27472eef62d41e3de..197fc83ad692060e8a327ce6f7ca690d1923b78e 100644 --- a/core/src/main/resources/hudson/model/ExternalJob/newJobDetail_fr.properties +++ b/core/src/main/resources/hudson/model/ExternalJob/newJobDetail_fr.properties @@ -24,5 +24,5 @@ body=\ Ce type de job permet de suivre l''exécution d''un process lancé hors de Hudson, \ même sur une machine distante. Cette option permet l''utilisation de Hudson \ comme tableau de bord de votre environnement d''automatisation. Voir \ - la documentation pour plus de détails. + la documentation pour plus de détails. diff --git a/core/src/main/resources/hudson/model/ExternalJob/newJobDetail_it.properties b/core/src/main/resources/hudson/model/ExternalJob/newJobDetail_it.properties new file mode 100644 index 0000000000000000000000000000000000000000..f4744868941d0e1bdfc012f3976c323f80e352a5 --- /dev/null +++ b/core/src/main/resources/hudson/model/ExternalJob/newJobDetail_it.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +body=Questo tipo di job permette di registrare l''esecuzione di un processo fuori da Hudson, anche su una macchina remota. \u00C9 progettato in modo che si possa usare Hudson come dashboard per un sistema automatizzato esistente. Vedi la documentazione per ulteriori dettagli. diff --git a/core/src/main/resources/hudson/model/ExternalJob/newJobDetail_ja.properties b/core/src/main/resources/hudson/model/ExternalJob/newJobDetail_ja.properties index b4e2d958f0d5634d6ffeb2392991bc4587f9358b..dccaa402f4db9ffa3d832f4b1da70ea199d93fe8 100644 --- a/core/src/main/resources/hudson/model/ExternalJob/newJobDetail_ja.properties +++ b/core/src/main/resources/hudson/model/ExternalJob/newJobDetail_ja.properties @@ -23,4 +23,4 @@ body=\ Hudson\u306E\u5916\uFF08\u542B\u3080\u5225\u306E\u30DE\u30B7\u30F3\u4E0A\uFF09\u3067\u5B9F\u884C\u3055\u308C\u308B\u30D7\u30ED\u30BB\u30B9\u306E\u5B9F\u884C\u3092Hudson\u306B\u8A18\u9332\u3057\u307E\u3059\u3002\ \u3053\u308C\u306B\u3088\u308A\u3001\u65E2\u5B58\u306E\u81EA\u52D5\u5316\u30B7\u30B9\u30C6\u30E0\u306E\u52D5\u4F5C\u3092Hudson\u3092\u4F7F\u3063\u3066\u76E3\u8996\u3067\u304D\u307E\u3059\u3002\ - \u8A73\u3057\u304F\u306F\u3053\u306E\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u3092\u3054\u89A7\u304F\u3060\u3055\u3044\u3002 \ No newline at end of file + \u8A73\u3057\u304F\u306F\u3053\u306E\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u3092\u3054\u89A7\u304F\u3060\u3055\u3044\u3002 diff --git a/core/src/main/resources/hudson/model/ExternalJob/newJobDetail_ko.properties b/core/src/main/resources/hudson/model/ExternalJob/newJobDetail_ko.properties new file mode 100644 index 0000000000000000000000000000000000000000..f2c24279833b8dc1fee1bd5d6e7ed243f83c8542 --- /dev/null +++ b/core/src/main/resources/hudson/model/ExternalJob/newJobDetail_ko.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +body=\uC774 \uC720\uD615\uC758 \uC791\uC5C5\uC740 \uC6D0\uACA9 \uC7A5\uBE44\uCC98\uB7FC Hudson \uC678\uBD80\uC5D0\uC11C \uB3D9\uC791\uD558\uB294 \uD504\uB85C\uC138\uC2A4\uC758 \uC2E4\uD589\uC744 \uAE30\uB85D\uD558\uB294 \uAC83\uC744 \uD5C8\uC6A9\uD569\uB2C8\uB2E4. \uADF8\uB807\uAC8C \uC124\uACC4\uB418\uC5B4\uC11C, \uAE30\uC874\uC758 \uC790\uB3D9 \uC2DC\uC2A4\uD15C\uC758 \uB300\uC2DC\uBCF4\uB4DC\uB85C\uC11C Hudson\uC744 \uC0AC\uC6A9\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4. \uC790\uC138\uD55C \uC124\uBA85\uC740 \uC5EC\uAE30(\uC601\uBB38)\uB97C \uBCF4\uC138\uC694. diff --git a/core/src/main/resources/hudson/model/ExternalJob/newJobDetail_nb_NO.properties b/core/src/main/resources/hudson/model/ExternalJob/newJobDetail_nb_NO.properties new file mode 100644 index 0000000000000000000000000000000000000000..267cdbcbdf3b40ae48b740790818e48dfd767262 --- /dev/null +++ b/core/src/main/resources/hudson/model/ExternalJob/newJobDetail_nb_NO.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +body=Denne typen jobb tillater deg \u00E5 sette opp eksekvering av en prosessen som kj\u00F8res utenfor Hudson.Denne prosessen kan ogs\u00E5 kj\u00F8res p\u00E5 en annen maskin.Denne jobben er laget for at du skal kunne bruke Hudson som dashbord for eksekvering av automatiske jobber. Se denne dokumentasjonen for flere detaljer. diff --git a/core/src/main/resources/hudson/model/ExternalJob/newJobDetail_nl.properties b/core/src/main/resources/hudson/model/ExternalJob/newJobDetail_nl.properties index ebea9c22c21eb2f0f18a53509974f98069363718..487133d054dbfb61a8a8c274428a651b8c676fec 100644 --- a/core/src/main/resources/hudson/model/ExternalJob/newJobDetail_nl.properties +++ b/core/src/main/resources/hudson/model/ExternalJob/newJobDetail_nl.properties @@ -24,4 +24,4 @@ body=\ Deze soort job laat u toe om de uitvoering van een proces buiten Hudson te volgen. \ Dit kan zelfs een proces op afstand zijn. Het werd zo ontworpen dat je Hudson kunt \ gebruiken als dashboard voor je bestaande automatisatiesysteem. Zie \ - de documentatie voor meer details. + de documentatie voor meer details. diff --git a/core/src/main/resources/hudson/model/ExternalJob/newJobDetail_pt_BR.properties b/core/src/main/resources/hudson/model/ExternalJob/newJobDetail_pt_BR.properties index 4c2c9ff9a49eb15198462358545f92eec51d3a36..db52b4aca4be37655b7b9c8f2a96b2f9912017fc 100644 --- a/core/src/main/resources/hudson/model/ExternalJob/newJobDetail_pt_BR.properties +++ b/core/src/main/resources/hudson/model/ExternalJob/newJobDetail_pt_BR.properties @@ -24,4 +24,4 @@ body=\ Este tipo de trabalho permite que voc\u00EA grave a execu\u00E7\u00E3o de um processo em execu\u00E7\u00E3o fora do Hudson\ (talvez at\u00E9 em uma m\u00E1quina remota.) Isto foi projetado tal que voc\u00EA possa usar Hudson\ como um painel principal de seus sistemas de automa\u00E7\u00E3o existentes. Veja\ - a documenta\u00E7\u00E3o para mais detalhes. + a documenta\u00E7\u00E3o para mais detalhes. diff --git a/core/src/main/resources/hudson/model/ExternalJob/newJobDetail_ru.properties b/core/src/main/resources/hudson/model/ExternalJob/newJobDetail_ru.properties index 73a20139d6b506f3df905893d6aef5d299ddaf67..616bdff5bb48954cb6edcc322e1b189b3cb3baf2 100644 --- a/core/src/main/resources/hudson/model/ExternalJob/newJobDetail_ru.properties +++ b/core/src/main/resources/hudson/model/ExternalJob/newJobDetail_ru.properties @@ -25,5 +25,5 @@ body=\ \u0432\u043d\u0435 Hudson (\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0434\u0430\u0436\u0435 \u043d\u0430 \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u044b\u0445 \u0441\u0435\u0440\u0432\u0435\u0440\u0430\u0445). \u041e\u043d \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043d \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0447\u0442\u043e \ \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c Hudson \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u043e\u0439 \u043f\u0430\u043d\u0435\u043b\u0438 (dashboard) \u0434\u043b\u044f \u0432\u0430\u0448\u0435\u0439 \ \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438. \u0412\u0437\u0433\u043b\u044f\u043d\u0438\u0442\u0435 \u0432 \ - \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e \ + \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e \ \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438. diff --git a/core/src/main/resources/hudson/model/ExternalJob/newJobDetail_sv_SE.properties b/core/src/main/resources/hudson/model/ExternalJob/newJobDetail_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..173ccc5d344430617e86c04330374347528a4925 --- /dev/null +++ b/core/src/main/resources/hudson/model/ExternalJob/newJobDetail_sv_SE.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +body=Den h\u00E4r jobbtypen g\u00F6r det m\u00F6jligt att \u00F6vervaka ett program som k\u00F6rs utanf\u00F6r Hudson, \u00E4ven p\u00E5 en fj\u00E4rransluten dator. Detta \u00E4r utformat s\u00E5 att du kan anv\u00E4nda Hudson som en instrumentbr\u00E4da av dina befintliga automationssystem. Se dokumentationen f\u00F6r mer information . diff --git a/core/src/main/resources/hudson/model/ExternalJob/newJobDetail_tr.properties b/core/src/main/resources/hudson/model/ExternalJob/newJobDetail_tr.properties index 1eebf1ed95e009abff784a25b5a3032d8e3ca26e..17bab18b7fc9954f295ec6f94eb42c780c0fbae2 100644 --- a/core/src/main/resources/hudson/model/ExternalJob/newJobDetail_tr.properties +++ b/core/src/main/resources/hudson/model/ExternalJob/newJobDetail_tr.properties @@ -24,4 +24,4 @@ body=\ Bu i\u015f t\u00fcr\u00fc, Hudson''\u0131n d\u0131\u015f\u0131nda kontrol edilen bir i\u015flemin kaydedilmesini sa\u011flar\ (Uzak makinede olsa bile.) Bu i\u015f t\u00fcr\u00fcn\u00fcn tasarlanma sebebi Hudson''\u0131, varolan otomasyon sisteminizde \ kontrol merkezi olarak kullanman\u0131z\u0131 sa\u011flamakt\u0131r. \ - Detayl\u0131 bilgi i\u00e7in t\u0131klay\u0131n + Detayl\u0131 bilgi i\u00e7in t\u0131klay\u0131n diff --git a/core/src/main/resources/hudson/model/ExternalJob/newJobDetail_zh_CN.properties b/core/src/main/resources/hudson/model/ExternalJob/newJobDetail_zh_CN.properties new file mode 100644 index 0000000000000000000000000000000000000000..5694fcf30e4d1cf7ae4ff54c72dc371630f43a0b --- /dev/null +++ b/core/src/main/resources/hudson/model/ExternalJob/newJobDetail_zh_CN.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:cactusman +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +body=\ + \u8fd9\u4e2a\u7c7b\u578b\u7684\u4efb\u52a1\u5141\u8bb8\u4f60\u8bb0\u5f55\u6267\u884c\u5728\u5916\u90e8Hudson\u7684\u4efb\u52a1, \ + \u4efb\u52a1\u751a\u81f3\u8fd0\u884c\u5728\u8fdc\u7a0b\u673a\u5668\u4e0a.\u8fd9\u53ef\u4ee5\u8ba9Hudson\u4f5c\u4e3a\u4f60\u6240\u6709\u81ea\u52a8\u6784\u5efa\u7cfb\u7edf\u7684\u63a7\u5236\u9762\u677f.\u53c2\u9605 \ + \u8fd9\u4e2a\u6587\u6863\u67e5\u770b\u8be6\u7ec6\u5185\u5bb9. diff --git a/core/src/main/resources/hudson/model/ExternalJob/sidepanel_da.properties b/core/src/main/resources/hudson/model/ExternalJob/sidepanel_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..e9d565a1812ffd09e5be385025445fac02db0f84 --- /dev/null +++ b/core/src/main/resources/hudson/model/ExternalJob/sidepanel_da.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Configure=Konfigurer +Back\ to\ Dashboard=Tilbage til oversigtssiden +Status=Status +Delete\ Job=Slet Job diff --git a/core/src/main/resources/hudson/model/ExternalJob/sidepanel_de.properties b/core/src/main/resources/hudson/model/ExternalJob/sidepanel_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..a3ece73b2e863ecaaf21e84d4a9e4f2d5abbee39 --- /dev/null +++ b/core/src/main/resources/hudson/model/ExternalJob/sidepanel_de.properties @@ -0,0 +1,4 @@ +Back\ to\ Dashboard=Zurück zur Übersicht +Status=Status +Delete\ Job=Job löschen +Configure=Konfigurieren diff --git a/core/src/main/resources/hudson/model/ExternalJob/sidepanel_es.properties b/core/src/main/resources/hudson/model/ExternalJob/sidepanel_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..0041f14d959d38c5ec5fc799cddda35ade0a20b9 --- /dev/null +++ b/core/src/main/resources/hudson/model/ExternalJob/sidepanel_es.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Back\ to\ Dashboard=Volver al Panel de control +Status=Estado +Delete\ Job=Borrar una tarea +Configure=Configurar diff --git a/core/src/main/resources/hudson/model/ExternalJob/sidepanel_fr.properties b/core/src/main/resources/hudson/model/ExternalJob/sidepanel_fr.properties index 34d1133ac306136432259f45b04f479c35b6dfa6..3e83af6cea927fabc1439b24d8a6c1b0ba33bd0d 100644 --- a/core/src/main/resources/hudson/model/ExternalJob/sidepanel_fr.properties +++ b/core/src/main/resources/hudson/model/ExternalJob/sidepanel_fr.properties @@ -20,7 +20,7 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Back\ to\ Dashboard=Retour au tableau de bord -Status=Statut -Delete\ Job=Supprimer le job -Configure=Configurer +Back\ to\ Dashboard=Retour au tableau de bord +Status=Statut +Delete\ Job=Supprimer le job +Configure=Configurer diff --git a/core/src/main/resources/hudson/model/ExternalJob/sidepanel_pt_BR.properties b/core/src/main/resources/hudson/model/ExternalJob/sidepanel_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..af44a5ee4b7712d81549105fbbfba7c789e2824c --- /dev/null +++ b/core/src/main/resources/hudson/model/ExternalJob/sidepanel_pt_BR.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Configure=Configurar +Back\ to\ Dashboard= +Status=Estado +Delete\ Job= diff --git a/core/src/main/resources/hudson/model/ExternalJob/sidepanel_zh_TW.properties b/core/src/main/resources/hudson/model/ExternalJob/sidepanel_zh_TW.properties new file mode 100644 index 0000000000000000000000000000000000000000..a2503b6cf459439f0443129151a7346ceedfa483 --- /dev/null +++ b/core/src/main/resources/hudson/model/ExternalJob/sidepanel_zh_TW.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Configure=\u914D\u7F6E +Delete\ Job=\u522A\u9664\u5DE5\u4F5C +Status=\u72C0\u614B diff --git a/core/src/main/resources/hudson/model/ExternalRun/sidepanel.jelly b/core/src/main/resources/hudson/model/ExternalRun/sidepanel.jelly index d03fcaaf4039c1ccfbaa25dfc3c39dfe93b5037a..2747d2d7a2949690f976d4729527278825d8eed6 100644 --- a/core/src/main/resources/hudson/model/ExternalRun/sidepanel.jelly +++ b/core/src/main/resources/hudson/model/ExternalRun/sidepanel.jelly @@ -1,7 +1,7 @@ - + \ No newline at end of file diff --git a/core/src/main/resources/hudson/model/FileParameterDefinition/config_da.properties b/core/src/main/resources/hudson/model/FileParameterDefinition/config_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..8b103a0ce831ab563c7d44eabd136b05f1967a66 --- /dev/null +++ b/core/src/main/resources/hudson/model/FileParameterDefinition/config_da.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +File\ location=Fil placeringer +Description=Beskrivelse diff --git a/core/src/main/resources/hudson/model/FileParameterDefinition/config_de.properties b/core/src/main/resources/hudson/model/FileParameterDefinition/config_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..8ee09d991c71203e569d4b297d0ff60e2d1fb77c --- /dev/null +++ b/core/src/main/resources/hudson/model/FileParameterDefinition/config_de.properties @@ -0,0 +1,2 @@ +File\ location=Dateipfad +Description=Beschreibung diff --git a/core/src/main/resources/hudson/model/FileParameterDefinition/config_es.properties b/core/src/main/resources/hudson/model/FileParameterDefinition/config_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..5fab33c927b3261a85e020864025fb276eddaf1c --- /dev/null +++ b/core/src/main/resources/hudson/model/FileParameterDefinition/config_es.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +File\ location=Localización +Description=Descripción diff --git a/core/src/main/resources/hudson/model/FileParameterDefinition/config_fr.properties b/core/src/main/resources/hudson/model/FileParameterDefinition/config_fr.properties index 295ad8934c43386dc82eb6b9a870a7b70541d367..2234923d9b99c5057166baf7c723f6e642b515ee 100644 --- a/core/src/main/resources/hudson/model/FileParameterDefinition/config_fr.properties +++ b/core/src/main/resources/hudson/model/FileParameterDefinition/config_fr.properties @@ -20,5 +20,5 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -File\ location=Emplacement du fichier +File\ location=Emplacement du fichier Description= diff --git a/core/src/main/resources/hudson/model/FileParameterDefinition/config_pt_BR.properties b/core/src/main/resources/hudson/model/FileParameterDefinition/config_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..2b57df0b23934249c2d936563567500737b739bb --- /dev/null +++ b/core/src/main/resources/hudson/model/FileParameterDefinition/config_pt_BR.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +File\ location= +Description= diff --git a/core/src/main/resources/hudson/model/FileParameterDefinition/config_ru.properties b/core/src/main/resources/hudson/model/FileParameterDefinition/config_ru.properties new file mode 100644 index 0000000000000000000000000000000000000000..5895dd1c96310ce1b3799537761832bcdfdde61a --- /dev/null +++ b/core/src/main/resources/hudson/model/FileParameterDefinition/config_ru.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +File\ location=\u041C\u0435\u0441\u0442\u043E\u0440\u0430\u0441\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u0444\u0430\u0439\u043B\u0430 diff --git a/core/src/main/resources/hudson/model/FileParameterValue/value.jelly b/core/src/main/resources/hudson/model/FileParameterValue/value.jelly index 383e461ff2304c9d4297dc8fa8074140816a77fa..e1c285c7a4bc88e1c9e031e2a097f47d61a7476d 100644 --- a/core/src/main/resources/hudson/model/FileParameterValue/value.jelly +++ b/core/src/main/resources/hudson/model/FileParameterValue/value.jelly @@ -25,7 +25,12 @@ THE SOFTWARE. - - TODO - + + + + + + ${it.originalFileName} + + \ No newline at end of file diff --git a/core/src/main/resources/hudson/model/Fingerprint/index_da.properties b/core/src/main/resources/hudson/model/Fingerprint/index_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..b878193addee3aa0cbce9f43e6089e7e29dc6225 --- /dev/null +++ b/core/src/main/resources/hudson/model/Fingerprint/index_da.properties @@ -0,0 +1,28 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +This\ file\ has\ not\ been\ used\ anywhere\ else.=Denne fil er ikke blevet brugt noget andet sted. +Back\ to\ Dashboard=Tilbage til oversigtssiden +introduced=Introduceret for {0} siden +outside\ Hudson=udenfor Hudson +Usage=Brug +This\ file\ has\ been\ used\ in\ the\ following\ places=Denne fil er benyttet f\u00f8lgende steder diff --git a/core/src/main/resources/hudson/model/Fingerprint/index_de.properties b/core/src/main/resources/hudson/model/Fingerprint/index_de.properties index 2b928b3b862a7c750507ad555c707b390595d62d..638366455a9a7535ebca18a229fdbcf202f55249 100644 --- a/core/src/main/resources/hudson/model/Fingerprint/index_de.properties +++ b/core/src/main/resources/hudson/model/Fingerprint/index_de.properties @@ -24,3 +24,5 @@ introduced=Eingef outside\ Hudson=außerhalb Hudsons This\ file\ has\ not\ been\ used\ anywhere\ else.=Diese Datei wurde an keiner weiteren Stelle verwendet. This\ file\ has\ been\ used\ in\ the\ following\ places=Diese Datei wurde an folgenden Stellen verwendet +Back\ to\ Dashboard=Zurück zur Übersicht +Usage=Verwendung diff --git a/core/src/main/resources/hudson/model/Fingerprint/index_es.properties b/core/src/main/resources/hudson/model/Fingerprint/index_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..a9ec1e603f1776a21964ca5008ff332725a45cfb --- /dev/null +++ b/core/src/main/resources/hudson/model/Fingerprint/index_es.properties @@ -0,0 +1,29 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +introduced=Introducida hace {0} +This\ file\ has\ been\ used\ in\ the\ following\ places=Este fichero se ha utilizado en los siguientes sitios +outside\ Hudson=fuera de Hudson +This\ file\ has\ not\ been\ used\ anywhere\ else.=Este fichero no se ha utlizado en ningún otro sitio +Back\ to\ Dashboard=Volver al Panel de control +Usage=Uso + diff --git a/core/src/main/resources/hudson/model/Fingerprint/index_fi.properties b/core/src/main/resources/hudson/model/Fingerprint/index_fi.properties new file mode 100644 index 0000000000000000000000000000000000000000..d7168fadc113f906fa5e43565751d44b9e9e07c2 --- /dev/null +++ b/core/src/main/resources/hudson/model/Fingerprint/index_fi.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Back\ to\ Dashboard=Takaisin kojetauluun +This\ file\ has\ been\ used\ in\ the\ following\ places=T\u00E4t\u00E4 tiedostoa on k\u00E4ytetty seuraavasti +Usage=K\u00E4ytetty +introduced=Luotu {0} sitten diff --git a/core/src/main/resources/hudson/model/Fingerprint/index_pt_BR.properties b/core/src/main/resources/hudson/model/Fingerprint/index_pt_BR.properties index 050438c1bcb06c1094dd1000f5c09d192c175ffe..c5c97e42ee0bcbf9d2fe280c4219a904e8d5bf6b 100644 --- a/core/src/main/resources/hudson/model/Fingerprint/index_pt_BR.properties +++ b/core/src/main/resources/hudson/model/Fingerprint/index_pt_BR.properties @@ -24,3 +24,5 @@ introduced=Introduzido {0} atr\u00E1s outside\ Hudson=fora do Hudson This\ file\ has\ not\ been\ used\ anywhere\ else.=Este arquivo n\u00E3o foi usado em nehum lugar. This\ file\ has\ been\ used\ in\ the\ following\ places=Este arquivo foi usado nos seguintes lugares +Back\ to\ Dashboard= +Usage=Utilisation diff --git a/core/src/main/resources/hudson/model/FreeStyleProject/configure-advanced.jelly b/core/src/main/resources/hudson/model/FreeStyleProject/configure-advanced.jelly index f8b65e157b6a7613d9894c767e31e63f447442e7..f8b06aadc274abff1b772add0bd3af7cecceeca5 100644 --- a/core/src/main/resources/hudson/model/FreeStyleProject/configure-advanced.jelly +++ b/core/src/main/resources/hudson/model/FreeStyleProject/configure-advanced.jelly @@ -26,10 +26,5 @@ THE SOFTWARE. Additional entries in the advanced section. --> - - - - - + \ No newline at end of file diff --git a/core/src/main/resources/hudson/model/FreeStyleProject/configure-advanced_da.properties b/core/src/main/resources/hudson/model/FreeStyleProject/configure-advanced_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..236f1f95f233ec19964afbbfce3efa717cec4f01 --- /dev/null +++ b/core/src/main/resources/hudson/model/FreeStyleProject/configure-advanced_da.properties @@ -0,0 +1,22 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + diff --git a/core/src/main/resources/hudson/model/FreeStyleProject/configure-advanced_de.properties b/core/src/main/resources/hudson/model/FreeStyleProject/configure-advanced_de.properties deleted file mode 100644 index 617103a8542ef0c1bd79db0f944549da673cbb2c..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/model/FreeStyleProject/configure-advanced_de.properties +++ /dev/null @@ -1,24 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Use\ custom\ workspace=Verzeichnis des Arbeitsbereichs anpassen -Directory=Verzeichnis diff --git a/core/src/main/resources/hudson/model/FreeStyleProject/configure-advanced_fr.properties b/core/src/main/resources/hudson/model/FreeStyleProject/configure-advanced_fr.properties deleted file mode 100644 index ae9d86330f3f1e3a1e0f762ec8e2092365b15e85..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/model/FreeStyleProject/configure-advanced_fr.properties +++ /dev/null @@ -1,24 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Eric Lefevre-Ardant -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Use\ custom\ workspace=Utiliser un répertoire de travail spécifique -Directory=Répertoire diff --git a/core/src/main/resources/hudson/model/FreeStyleProject/configure-advanced_ja.properties b/core/src/main/resources/hudson/model/FreeStyleProject/configure-advanced_ja.properties deleted file mode 100644 index 797f09fe21a3d9ba034604019db283794aa99a6a..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/model/FreeStyleProject/configure-advanced_ja.properties +++ /dev/null @@ -1,24 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Use\ custom\ workspace=\u30ab\u30b9\u30bf\u30e0\u30ef\u30fc\u30af\u30b9\u30da\u30fc\u30b9\u306e\u4f7f\u7528 -Directory=\u30c7\u30a3\u30ec\u30af\u30c8\u30ea \ No newline at end of file diff --git a/core/src/main/resources/hudson/model/FreeStyleProject/configure-advanced_pt_BR.properties b/core/src/main/resources/hudson/model/FreeStyleProject/configure-advanced_pt_BR.properties deleted file mode 100644 index c51aa9171e77fc0655615e12eba3910aeffa040a..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/model/FreeStyleProject/configure-advanced_pt_BR.properties +++ /dev/null @@ -1,24 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Reginaldo L. Russinholi -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Use\ custom\ workspace=Usar workspace customizado -Directory=Diret\u00F3rio diff --git a/core/src/main/resources/hudson/model/FreeStyleProject/configure-advanced_tr.properties b/core/src/main/resources/hudson/model/FreeStyleProject/configure-advanced_tr.properties deleted file mode 100644 index 07c9d3ffe516e19422bd09c24044a8b17bf34165..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/model/FreeStyleProject/configure-advanced_tr.properties +++ /dev/null @@ -1,24 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Oguz Dag -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Use\ custom\ workspace=\u00d6zel \u00e7al\u0131\u015fma alan\u0131n\u0131 kullan -Directory=Dizin diff --git a/core/src/main/resources/hudson/model/FreeStyleProject/newJobDetail_da.properties b/core/src/main/resources/hudson/model/FreeStyleProject/newJobDetail_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..bd909e5460d6575e90d72144b8e07a884425f068 --- /dev/null +++ b/core/src/main/resources/hudson/model/FreeStyleProject/newJobDetail_da.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +body=Dette er den centrale feature i Hudson. Hudson vil bygge dit projekt \ +ved at kombinere enhver kombination af kildekodestyring (SCM) med ethvert \ +byggesystem, dette kan bruges til meget andet end at bygge software. diff --git a/core/src/main/resources/hudson/model/FreeStyleProject/newJobDetail_es.properties b/core/src/main/resources/hudson/model/FreeStyleProject/newJobDetail_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..7e59f311bca0e37fd71b06e7dabfdb22d01ad660 --- /dev/null +++ b/core/src/main/resources/hudson/model/FreeStyleProject/newJobDetail_es.properties @@ -0,0 +1,27 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:cactusman +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +body=\ + Esta es la característica principal de Hudson, la de ejecutar el proyecto combinando cualquier tipo \ + de repositorio de software (SCM) con cualquier modo de construccion o ejecución (make, ant, mvn, rake, script ...). \ + Por tanto se podrá tanto compilar y empaquetar software, como ejecutar cualquier proceso que requiera monitorización. + diff --git a/core/src/main/resources/hudson/model/FreeStyleProject/newJobDetail_it.properties b/core/src/main/resources/hudson/model/FreeStyleProject/newJobDetail_it.properties new file mode 100644 index 0000000000000000000000000000000000000000..54d43b018bc7e7c14a79db2fe163f9b059e9120b --- /dev/null +++ b/core/src/main/resources/hudson/model/FreeStyleProject/newJobDetail_it.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +body=Questa \u00E8 la funzione principale di Hudson. Hudson effettuer\u00E0 una build del progetto, combinando qualsiasi SCM con qualsiasi sistema di build e si pu\u00F2 usare anche per qualcosa di altro che non sia una build software. diff --git a/core/src/main/resources/hudson/model/FreeStyleProject/newJobDetail_ko.properties b/core/src/main/resources/hudson/model/FreeStyleProject/newJobDetail_ko.properties new file mode 100644 index 0000000000000000000000000000000000000000..458d3fa736a330fab747d101c8eec1859cd5e406 --- /dev/null +++ b/core/src/main/resources/hudson/model/FreeStyleProject/newJobDetail_ko.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +body=\uC774\uAC83\uC740 Hudson\uC758 \uC8FC\uC694 \uAE30\uB2A5\uC785\uB2C8\uB2E4. Hudson\uC740 \uC5B4\uB290 \uBE4C\uB4DC \uC2DC\uC2A4\uD15C\uACFC \uC5B4\uB5A4 SCM(\uD615\uC0C1\uAD00\uB9AC)\uC73C\uB85C \uBB36\uC778 \uB2F9\uC2E0\uC758 \uD504\uB85C\uC81D\uD2B8\uB97C \uBE4C\uB4DC\uD560 \uAC83\uC774\uACE0, \uC18C\uD504\uD2B8\uC6E8\uC5B4 \uBE4C\uB4DC\uBCF4\uB2E4 \uB2E4\uB978 \uC5B4\uB5A4 \uAC83\uC5D0 \uC790\uC8FC \uC0AC\uC6A9\uB420 \uC218 \uC788\uC2B5\uB2C8\uB2E4. diff --git a/core/src/main/resources/hudson/model/FreeStyleProject/newJobDetail_nb_NO.properties b/core/src/main/resources/hudson/model/FreeStyleProject/newJobDetail_nb_NO.properties new file mode 100644 index 0000000000000000000000000000000000000000..adcc991125546d6ee0cd971324170fa211e9d7df --- /dev/null +++ b/core/src/main/resources/hudson/model/FreeStyleProject/newJobDetail_nb_NO.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +body=Dette er en sentral egenskap ved Hudson. Hudson bygger dine prosjekter, kombinerer SCM (Source Control Management - Kildekodekontrollsystem ) med forskjellige byggsystemer og denne kan ogs\u00E5 brukes til mer enn bare \u00E5 bygge applikasjoner. diff --git a/core/src/main/resources/hudson/model/FreeStyleProject/newJobDetail_sv_SE.properties b/core/src/main/resources/hudson/model/FreeStyleProject/newJobDetail_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..511078d0aa88244ad1d35b728426fc0a0c28ec73 --- /dev/null +++ b/core/src/main/resources/hudson/model/FreeStyleProject/newJobDetail_sv_SE.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +body=Detta \u00E4r en central del i Hudson. Hudson kommer att bygga ditt projekt, med valfri versionshanterare med vilket byggsystem som helst, och detta kan \u00E4ven anv\u00E4ndas f\u00F6r n\u00E5got annat \u00E4n mjukvarubyggen. diff --git a/core/src/main/resources/hudson/model/FreeStyleProject/newJobDetail_zh_CN.properties b/core/src/main/resources/hudson/model/FreeStyleProject/newJobDetail_zh_CN.properties new file mode 100644 index 0000000000000000000000000000000000000000..890a93d9b39395508b40d895e271d29a77038de7 --- /dev/null +++ b/core/src/main/resources/hudson/model/FreeStyleProject/newJobDetail_zh_CN.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:cactusman +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +body=\ + \u8fd9\u662fHudson\u7684\u4e3b\u8981\u529f\u80fd.Hudson\u5c06\u4f1a\u7ed3\u5408\u4efb\u4f55SCM\u548c\u4f7f\u7528\u4efb\u4f55\u6784\u5efa\u7cfb\u7edf\u6765\u6784\u5efa\u4f60\u7684\u9879\u76ee, \ + \u751a\u81f3\u53ef\u4ee5\u4f7f\u7528\u8f6f\u4ef6\u6784\u5efa\u4ee5\u5916\u7684\u7cfb\u7edf. diff --git a/core/src/main/resources/hudson/model/Hudson/_api.jelly b/core/src/main/resources/hudson/model/Hudson/_api.jelly index 3ad4474b5cb8897e1b2d92a302241c3d8e9a3db9..ab4d435986ea273e9ce098fff2125f7a434d2970 100644 --- a/core/src/main/resources/hudson/model/Hudson/_api.jelly +++ b/core/src/main/resources/hudson/model/Hudson/_api.jelly @@ -34,7 +34,7 @@ THE SOFTWARE.

    Copy Job

    To copy a job, send a POST request to this URL with - three query parameters name=NEWJOBNAME&mode=copyJob&from=FROMJOBNAME + three query parameters name=NEWJOBNAME&mode=copy&from=FROMJOBNAME

    Build Queue

    @@ -42,12 +42,18 @@ THE SOFTWARE. Build queue has its own separate API.

    +

    Load Statistics

    +

    + Overall load statistics of Hudson has its own separate API. +

    +

    Restarting Hudson

    Hudson will enter into the "quiet down" mode by sending a request to this URL. You can cancel this mode by sending a request to this URL. On environments where Hudson can restart itself (such as when Hudson is installed as a Windows service), POSTing to - this URL will start the restart sequence. All these URLs need the admin privilege - to the system. + this URL will start the restart sequence, or + this URL to restart once no jobs are running. + All these URLs need the admin privilege to the system.

    - \ No newline at end of file + diff --git a/core/src/main/resources/hudson/model/Hudson/_cli_da.properties b/core/src/main/resources/hudson/model/Hudson/_cli_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..760f4162e46b6ddc79e00a9183e72cd4cc32107a --- /dev/null +++ b/core/src/main/resources/hudson/model/Hudson/_cli_da.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Hudson\ CLI=Hudson CLI +blurb=Du kan tilg\u00e5 diverse features i Hudson igennem et kommandolinie v\u00e6rkt\u00f8j. Se \ diff --git a/core/src/main/resources/hudson/model/Hudson/_cli_de.properties b/core/src/main/resources/hudson/model/Hudson/_cli_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..796a7387124d413c199f5b6368ca629a60563811 --- /dev/null +++ b/core/src/main/resources/hudson/model/Hudson/_cli_de.properties @@ -0,0 +1,6 @@ +Hudson\ CLI=Hudson CLI +blurb=\ + Sie können ausgewählte Funktionen von Hudson über ein Kommandozeilenwerkzeug (engl.: Command Line Interface, CLI) nutzen. \ + Näheres dazu finden Sie im Wiki. \ + Um Hudson CLI einzusetzen, laden Sie hudson-cli.jar \ + lokal herunter und starten es wie folgt: diff --git a/core/src/main/resources/hudson/model/Hudson/_cli_es.properties b/core/src/main/resources/hudson/model/Hudson/_cli_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..54e2f3217742fc64c32c714f9549de7512ed329b --- /dev/null +++ b/core/src/main/resources/hudson/model/Hudson/_cli_es.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +blurb=Puedes acceder a varias funcionalidades de Hudson utilizando la linea de comandos. \ + Echa un vistazo a esta página para mas detalles. \ + Para comenzar, descarga a href="{0}/jnlpJars/hudson-cli.jar">hudson-cli.jar, y ejecuta lo siguiente: +Hudson\ CLI=Interfaz de comandos (CLI) de Hudson diff --git a/core/src/main/resources/hudson/model/Hudson/_cli_fr.properties b/core/src/main/resources/hudson/model/Hudson/_cli_fr.properties new file mode 100644 index 0000000000000000000000000000000000000000..a07e82571f31b04c71d4ed26a056e6ddd7ee4aab --- /dev/null +++ b/core/src/main/resources/hudson/model/Hudson/_cli_fr.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Hudson\ CLI=Ligne de commande (CLI) Hudson diff --git a/core/src/main/resources/hudson/model/Hudson/_cli_ja.properties b/core/src/main/resources/hudson/model/Hudson/_cli_ja.properties index a8ecaace0d15b1cf84a5ce974484a5d04b4cca9d..87e500db93cb55ead15ae38c2e60bf9c59778e74 100644 --- a/core/src/main/resources/hudson/model/Hudson/_cli_ja.properties +++ b/core/src/main/resources/hudson/model/Hudson/_cli_ja.properties @@ -1,4 +1,27 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + blurb=\u30B3\u30DE\u30F3\u30C9\u30E9\u30A4\u30F3\u306E\u30C4\u30FC\u30EB\u304B\u3089Hudson\u306E\u69D8\u3005\u306A\u6A5F\u80FD\u3092\u5229\u7528\u3067\u304D\u307E\u3059\u3002\ \u8A73\u7D30\u306FWiki\u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044\u3002\ \u307E\u305A\u306F\u3001hudson-cli.jar\u3092\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u3057\u3066\u6B21\u306E\u3088\u3046\u306B\u8D77\u52D5\u3057\u3066\u304F\u3060\u3055\u3044\u3002 +Hudson\ CLI=Hudson CLI \ No newline at end of file diff --git a/core/src/main/resources/hudson/model/Hudson/_cli_pt_BR.properties b/core/src/main/resources/hudson/model/Hudson/_cli_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..f1a9abd82fb038289771cc848687dc38276edff1 --- /dev/null +++ b/core/src/main/resources/hudson/model/Hudson/_cli_pt_BR.properties @@ -0,0 +1,28 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Hudson\ CLI= +# You can access various features in Hudson through a command-line tool. See \ +# the Wiki for more details of this feature.\ +# To get started, download hudson-cli.jar, and run it as follows: +blurb=\ +# Estes usu\u00E1rios podem se logar no Hudson. Este \u00E9 um super conjunto desta lista, \ diff --git a/core/src/main/resources/hudson/model/Hudson/_cli_zh_CN.properties b/core/src/main/resources/hudson/model/Hudson/_cli_zh_CN.properties new file mode 100644 index 0000000000000000000000000000000000000000..1d1e058c05323c8e4388d719f24ebdc636ada053 --- /dev/null +++ b/core/src/main/resources/hudson/model/Hudson/_cli_zh_CN.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Hudson\ CLI=Hudson \u547d\u4ee4\u884c diff --git a/core/src/main/resources/hudson/model/Hudson/_cli_zh_TW.properties b/core/src/main/resources/hudson/model/Hudson/_cli_zh_TW.properties new file mode 100644 index 0000000000000000000000000000000000000000..82d7e7a4e4fd4bcd72263e8ec8250e878d4ab7e6 --- /dev/null +++ b/core/src/main/resources/hudson/model/Hudson/_cli_zh_TW.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Hudson\ CLI=Hudson \u547D\u4EE4\u5217 diff --git a/core/src/main/resources/hudson/model/Hudson/_restart_da.properties b/core/src/main/resources/hudson/model/Hudson/_restart_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..70e0ccce78a1db9b9465960858dbdda1c567c1ec --- /dev/null +++ b/core/src/main/resources/hudson/model/Hudson/_restart_da.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Yes=Ja +Are\ you\ sure\ about\ restarting\ Hudson?=Er du sikker p\u00e5 at du vil genstarte Hudson? diff --git a/core/src/main/resources/hudson/model/Hudson/_restart_de.properties b/core/src/main/resources/hudson/model/Hudson/_restart_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..b2e4559dce541fc15d779378935ef139078e2391 --- /dev/null +++ b/core/src/main/resources/hudson/model/Hudson/_restart_de.properties @@ -0,0 +1,2 @@ +Are\ you\ sure\ about\ restarting\ Hudson?=Möchten Sie Hudson wirklich neu starten? +Yes=Ja diff --git a/core/src/main/resources/hudson/model/Hudson/_restart_es.properties b/core/src/main/resources/hudson/model/Hudson/_restart_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..49857de356a489bf3f7332fa1431d9cad56d79b5 --- /dev/null +++ b/core/src/main/resources/hudson/model/Hudson/_restart_es.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Are\ you\ sure\ about\ restarting\ Hudson?=¿Estás seguro de querer reiniciar Hudson? +Yes=Sí diff --git a/core/src/main/resources/hudson/model/Hudson/_restart_ja.properties b/core/src/main/resources/hudson/model/Hudson/_restart_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..46ed0f1bff97a6890857228cd3510ea00e349d7d --- /dev/null +++ b/core/src/main/resources/hudson/model/Hudson/_restart_ja.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Are\ you\ sure\ about\ restarting\ Hudson?=Hudson\u3092\u518D\u8D77\u52D5\u3057\u3066\u3088\u308D\u3057\u3044\u3067\u3059\u304B? +Yes=\u306F\u3044 diff --git a/core/src/main/resources/hudson/model/Hudson/_restart_pt_BR.properties b/core/src/main/resources/hudson/model/Hudson/_restart_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..24522aa9049944043cdaeba79173a255536d305d --- /dev/null +++ b/core/src/main/resources/hudson/model/Hudson/_restart_pt_BR.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Yes=Sim +Are\ you\ sure\ about\ restarting\ Hudson?= diff --git a/core/src/main/resources/hudson/model/Hudson/_safeRestart.jelly b/core/src/main/resources/hudson/model/Hudson/_safeRestart.jelly new file mode 100644 index 0000000000000000000000000000000000000000..78cab3b46a1af934dc5df45c61eb6dfc21d5a17b --- /dev/null +++ b/core/src/main/resources/hudson/model/Hudson/_safeRestart.jelly @@ -0,0 +1,36 @@ + + + + + + + +
    + ${%Are you sure about restarting Hudson? Hudson will restart once all running jobs are finished.} + + +
    +
    +
    \ No newline at end of file diff --git a/core/src/main/resources/hudson/model/Hudson/_safeRestart_da.properties b/core/src/main/resources/hudson/model/Hudson/_safeRestart_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..e65af5199dbdf02aa91820642067ff2103ad381d --- /dev/null +++ b/core/src/main/resources/hudson/model/Hudson/_safeRestart_da.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Yes=Ja +Are\ you\ sure\ about\ restarting\ Hudson?\ Hudson\ will\ restart\ once\ all\ running\ jobs\ are\ finished.=\ +Er du sikker p\u00e5 at du vil genstarte Hudson? Hudson vil genstarte n\u00e5r alle k\u00f8rende jobs er f\u00e6rdige. diff --git a/core/src/main/resources/hudson/model/Hudson/_safeRestart_de.properties b/core/src/main/resources/hudson/model/Hudson/_safeRestart_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..fe5bc31332583f272149fe9b2d0819dcc3dfff57 --- /dev/null +++ b/core/src/main/resources/hudson/model/Hudson/_safeRestart_de.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Seiji Sogabe, Simon Wiest +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Are\ you\ sure\ about\ restarting\ Hudson?\ Hudson\ will\ restart\ once\ all\ running\ jobs\ are\ finished.=\ + Möchten Sie Hudson wirklich neu starten? Hudson wird neu starten, \ + sobald alle laufenden Jobs abgeschlossen wurden. +Yes=Ja \ No newline at end of file diff --git a/core/src/main/resources/hudson/model/Hudson/_safeRestart_es.properties b/core/src/main/resources/hudson/model/Hudson/_safeRestart_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..120a144e41ec9f85228aac0f9f7ae09d4c30c864 --- /dev/null +++ b/core/src/main/resources/hudson/model/Hudson/_safeRestart_es.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Are\ you\ sure\ about\ restarting\ Hudson?\ Hudson\ will\ restart\ once\ all\ running\ jobs\ are\ finished.=¿Estás seguro de querer reiniciar Hudson después de que acaben todos los procesos en ejecución? +Yes=Sí diff --git a/core/src/main/resources/hudson/model/Hudson/_safeRestart_ja.properties b/core/src/main/resources/hudson/model/Hudson/_safeRestart_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..e4abe6d4d6a66920c106a92ba6f0c072f2438ad2 --- /dev/null +++ b/core/src/main/resources/hudson/model/Hudson/_safeRestart_ja.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Are\ you\ sure\ about\ restarting\ Hudson?\ Hudson\ will\ restart\ once\ all\ running\ jobs\ are\ finished.=\ + Hudson\u3092\u518D\u8D77\u52D5\u3057\u3066\u3082\u3088\u308D\u3057\u3044\u3067\u3059\u304B? \u5B9F\u884C\u4E2D\u306E\u30B8\u30E7\u30D6\u304C\u7D42\u4E86\u3057\u305F\u3089\u518D\u8D77\u52D5\u3057\u307E\u3059\u3002 +Yes=\u306F\u3044 diff --git a/core/src/main/resources/hudson/model/Hudson/_safeRestart_pt_BR.properties b/core/src/main/resources/hudson/model/Hudson/_safeRestart_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..ba30c960249a81ce51fa913d4ba698a959c7d82a --- /dev/null +++ b/core/src/main/resources/hudson/model/Hudson/_safeRestart_pt_BR.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Yes=Sim +Are\ you\ sure\ about\ restarting\ Hudson?\ Hudson\ will\ restart\ once\ all\ running\ jobs\ are\ finished.= diff --git a/core/src/main/resources/hudson/model/Hudson/accessDenied.jelly b/core/src/main/resources/hudson/model/Hudson/accessDenied.jelly index 149866f614fe2fbb919d98e1f7331e41eb8d1454..c25863fcee97a18cd2e03ce0a651ce47db36d280 100644 --- a/core/src/main/resources/hudson/model/Hudson/accessDenied.jelly +++ b/core/src/main/resources/hudson/model/Hudson/accessDenied.jelly @@ -25,10 +25,10 @@ THE SOFTWARE. - + -

    Access Denied

    +

    ${%Access Denied}

    @@ -38,15 +38,15 @@ THE SOFTWARE.
    - + - +
    User:${%User}:
    Password${%Password}:
    - + diff --git a/core/src/main/resources/hudson/model/Hudson/accessDenied_da.properties b/core/src/main/resources/hudson/model/Hudson/accessDenied_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..ccdc9895a3a81b9e0dbacefd45c9d892ad25e565 --- /dev/null +++ b/core/src/main/resources/hudson/model/Hudson/accessDenied_da.properties @@ -0,0 +1,27 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Password=Adgangskode +login=logind +User=Bruger +Hudson\ Login=Hudson logind +Access\ Denied=Adgang n\u00e6gtet diff --git a/core/src/main/resources/hudson/model/Hudson/accessDenied_de.properties b/core/src/main/resources/hudson/model/Hudson/accessDenied_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..4e1ff3eff2b14ea4dfbaa5eca648b038ff1f3c55 --- /dev/null +++ b/core/src/main/resources/hudson/model/Hudson/accessDenied_de.properties @@ -0,0 +1,27 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe, Simon Wiest +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Hudson\ Login=Hudson Anmeldung +Access\ Denied=Zugriff verweigert +User=Benutzer +Password=Kennwort +login=Anmelden diff --git a/core/src/main/resources/hudson/model/Hudson/accessDenied_es.properties b/core/src/main/resources/hudson/model/Hudson/accessDenied_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..aa9c70b652be412df2859514e229af5b20d09e75 --- /dev/null +++ b/core/src/main/resources/hudson/model/Hudson/accessDenied_es.properties @@ -0,0 +1,27 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Hudson\ Login=Entrada a Hudson +Access\ Denied=Acceso denegado +User=Usuario +Password=Contraseña +login=entrar diff --git a/core/src/main/resources/hudson/model/Hudson/accessDenied_ja.properties b/core/src/main/resources/hudson/model/Hudson/accessDenied_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..399d72e0dcdc8ae9c36e9bc587d5b6657ca6b9cb --- /dev/null +++ b/core/src/main/resources/hudson/model/Hudson/accessDenied_ja.properties @@ -0,0 +1,27 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Hudson\ Login=Hudson\u30ED\u30B0\u30A4\u30F3 +Access\ Denied=\u30A2\u30AF\u30BB\u30B9\u3067\u304D\u307E\u305B\u3093 +User=\u30E6\u30FC\u30B6\u30FC +Password=\u30D1\u30B9\u30EF\u30FC\u30C9 +login=\u30ED\u30B0\u30A4\u30F3 diff --git a/core/src/main/resources/hudson/model/Hudson/accessDenied_pt_BR.properties b/core/src/main/resources/hudson/model/Hudson/accessDenied_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..5650fda4769da98667178abf3855a4c9884c8c67 --- /dev/null +++ b/core/src/main/resources/hudson/model/Hudson/accessDenied_pt_BR.properties @@ -0,0 +1,27 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Password=Senha +login= +User=Usu\u00E1rio +Hudson\ Login= +Access\ Denied= diff --git a/core/src/main/resources/hudson/model/Hudson/configure.jelly b/core/src/main/resources/hudson/model/Hudson/configure.jelly index 7220bbe364faf39f373a272a44f5ab2f24669c89..ea0004739a32d8ffdb66719ed083f561ee7bea43 100644 --- a/core/src/main/resources/hudson/model/Hudson/configure.jelly +++ b/core/src/main/resources/hudson/model/Hudson/configure.jelly @@ -1,7 +1,7 @@ + - + +
    ${%LOADING}
    @@ -49,18 +51,61 @@ THE SOFTWARE. - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + checked="${it.slaveAgentPort gt 0}" onclick="$('sat.port').disabled=false"/> : @@ -88,6 +133,19 @@ THE SOFTWARE. + + + + + +
    +
    +
    +
    + @@ -97,49 +155,25 @@ THE SOFTWARE. descriptors="${h.getNodePropertyDescriptors(it.class)}" instances="${it.globalNodeProperties}" /> - - - - - - - - - -
    + -
    ${%Configure global settings and paths.} @@ -71,7 +73,7 @@ THE SOFTWARE. ${%Discard all the loaded data in memory and reload everything from file system.} ${%Useful when you modified config files directly on disk.} - + ${%Add, remove, disable or enable plugins that can extend the functionality of Hudson.} (${%updates available}) diff --git a/core/src/main/resources/hudson/model/Hudson/manage_da.properties b/core/src/main/resources/hudson/model/Hudson/manage_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..9d271196153071dcec6a769010442ded270a6324 --- /dev/null +++ b/core/src/main/resources/hudson/model/Hudson/manage_da.properties @@ -0,0 +1,50 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +System\ Information=Systeminformation +HudsonCliText=Tilg\u00e5/bestyr Hudson fra din shell, eller fra dit skript. +Configure\ global\ settings\ and\ paths.=Konfigurer globale indstillinger og stier. +Stops\ executing\ new\ builds,\ so\ that\ the\ system\ can\ be\ eventually\ shut\ down\ safely.=\ +Holder op med at afvikle nye byg, s\u00e5 systemet kan lukke sikkert ned. +Reload\ Configuration\ from\ Disk=Genindl\u00e6s konfiguration fra harddisk +updates\ available=opdateringer tilg\u00e6ngelige +SystemLogText=Systemloggen opsamler output fra java.util.logging relateret til Hudson. +Add,\ remove,\ control\ and\ monitor\ the\ various\ nodes\ that\ Hudson\ runs\ jobs\ on.=\ +Tilf\u00f8je, slette, h\u00e5ndtere og overv\u00e5ge de forskellige noder som Hudson k\u00f8rer jobs p\u00e5. +Hudson\ CLI=Hudson CLI +Manage\ Plugins=Pluginh\u00e5ndtering +LoadStatisticsText=Check dit ressourceforbrug og se om du har brug for flere maskiner til dine byg. +Manage\ Hudson=Bestyr Hudson +Configure\ System=Konfigurer Systemet +Manage\ Nodes=Bestyr Noder +Load\ Statistics=Belastningsstatistik +Displays\ various\ environmental\ information\ to\ assist\ trouble-shooting.=Viser diverse milj\u00f8informationer for at lette fejlfinding. +Script\ Console=Skriptkonsol +Add,\ remove,\ disable\ or\ enable\ plugins\ that\ can\ extend\ the\ functionality\ of\ Hudson.=\ +Tilf\u00f8j, fjern og h\u00e5ndter diverse plugins der udvider Hudsons funktionalitet. +Cancel\ Shutdown=Aflys nedlukning +System\ Log=Systemlog +Executes\ arbitrary\ script\ for\ administration/trouble-shooting/diagnostics.=Afvikler selvvalgt skript til administration/fejlfinding/diagnostik. +Discard\ all\ the\ loaded\ data\ in\ memory\ and\ reload\ everything\ from\ file\ system.=\ +Fjern alle loadede data i RAM og genindl\u00e6s alt fra harddisken. +Prepare\ for\ Shutdown=G\u00f8r klar til nedlukning +Useful\ when\ you\ modified\ config\ files\ directly\ on\ disk.=Nyttigt hvis du har modificeret konfigurationsfiler direkte p\u00e5 disken. diff --git a/core/src/main/resources/hudson/model/Hudson/manage_de.properties b/core/src/main/resources/hudson/model/Hudson/manage_de.properties index fd411eefa5b801ad15b2dff15a8304bbd61446dd..dbd21ca295f2fe3d74d0915a13c140e1c800d331 100644 --- a/core/src/main/resources/hudson/model/Hudson/manage_de.properties +++ b/core/src/main/resources/hudson/model/Hudson/manage_de.properties @@ -22,7 +22,7 @@ Manage\ Hudson=Hudson verwalten Reload\ Configuration\ from\ Disk=Konfiguration von Festplatte neu laden -Discard\ all\ the\ loaded\ data\ in\ memory\ and\ reload\ everything\ from\ file\ system.=Verwirft alle Daten im Speicher und lädt die Konfigurationdateien erneut aus dem Dateisystem. +Discard\ all\ the\ loaded\ data\ in\ memory\ and\ reload\ everything\ from\ file\ system.=Verwirft alle Daten im Speicher und lädt die Konfigurationsdateien erneut aus dem Dateisystem. Useful\ when\ you\ modified\ config\ files\ directly\ on\ disk.=Dies ist nützlich, wenn Sie Konfigurationsdateien direkt editiert haben. Manage\ Plugins=Plugins verwalten System\ Information=Systeminformationen @@ -31,18 +31,16 @@ System\ Log=Systemlog SystemLogText=Zeigt protokollierte Ereignisse im Hudson Systemlog an. Script\ Console=Skript-Konsole Executes\ arbitrary\ script\ for\ administration/trouble-shooting/diagnostics.=Führt ein beliebiges Skript aus zur Administration/Fehlersuche/Diagnose. -Manage\ Slaves=Verwalte Slaves -Check\ the\ health\ of\ slaves\ and\ controls\ them.=Überprüft den Status der Slaves und steuert diese. Cancel\ Shutdown=Herunterfahren abbrechen Prepare\ for\ Shutdown=Herunterfahren vorbereiten Stops\ executing\ new\ builds,\ so\ that\ the\ system\ can\ be\ eventually\ shut\ down\ safely.=Verhindert die Ausführung neuer Builds, so daß Hudson sicher heruntergefahren werden kann. Configure\ System=System konfigurieren Configure\ global\ settings\ and\ paths.=Globale Einstellungen und Pfade konfigurieren. -Configure\ Executors=Ausführende Knoten konfigurieren -Configure\ resources\ available\ for\ executing\ jobs.=Ressourcen zur Ausführung von Jobs konfigurieren. Add,\ remove,\ disable\ or\ enable\ plugins\ that\ can\ extend\ the\ functionality\ of\ Hudson.=Plugins installieren, deinstallieren, aktivieren oder deaktivieren, welche die Funktionalität von Hudson erweitern. updates\ available=Aktualisierungen verfügbar Load\ Statistics=Nutzungsstatistiken LoadStatisticsText=Ressourcenauslastung überwachen und überprüfen, ob weitere Build-Knoten sinnvoll wären. Manage\ Nodes=Knoten verwalten Add,\ remove,\ control\ and\ monitor\ the\ various\ nodes\ that\ Hudson\ runs\ jobs\ on.=Knoten hinzufügen, entfernen, steuern und überwachen, auf denen Hudson Jobs verteilt ausführen kann. +Hudson\ CLI=Hudson CLI +HudsonCliText=Hudson aus der Kommandozeile oder skriptgesteuert nutzen und verwalten. diff --git a/core/src/main/resources/hudson/model/Hudson/manage_el.properties b/core/src/main/resources/hudson/model/Hudson/manage_el.properties new file mode 100644 index 0000000000000000000000000000000000000000..a506c99d1063c4428467e38484cb8b3565ed6115 --- /dev/null +++ b/core/src/main/resources/hudson/model/Hudson/manage_el.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Configure\ System=\u03A1\u03C5\u03B8\u03BC\u03AF\u03C3\u03B5\u03B9\u03C2 \u03C3\u03C5\u03C3\u03C4\u03AE\u03BC\u03B1\u03C4\u03BF\u03C2 +Manage\ Hudson=\u0394\u03B9\u03B1\u03C7\u03B5\u03AF\u03C1\u03B9\u03C3\u03B7 Hudson +Prepare\ for\ Shutdown=\u03A0\u03C1\u03BF\u03B5\u03C4\u03BF\u03B9\u03BC\u03B1\u03C3\u03AF\u03B1 \u03B3\u03B9\u03B1 diff --git a/core/src/main/resources/hudson/model/Hudson/manage_es.properties b/core/src/main/resources/hudson/model/Hudson/manage_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..7e8d98f520c6a35f31421f092ceadf56a9a3d706 --- /dev/null +++ b/core/src/main/resources/hudson/model/Hudson/manage_es.properties @@ -0,0 +1,48 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Add,\ remove,\ control\ and\ monitor\ the\ various\ nodes\ that\ Hudson\ runs\ jobs\ on.=Añadir, borrar, gestionar y monitorizar los nodos sobre los que Hudson ejecuta tareas. +Add,\ remove,\ disable\ or\ enable\ plugins\ that\ can\ extend\ the\ functionality\ of\ Hudson.=Añadir, borrar, desactivar y activar plugins que extienden la funcionalidad de Hudson. +Cancel\ Shutdown=Cancelar apagado +Configure\ global\ settings\ and\ paths.=Configurar variables globales y rutas. +Configure\ System=Configurar el Sistema +Discard\ all\ the\ loaded\ data\ in\ memory\ and\ reload\ everything\ from\ file\ system.=Descartar todos los datos cargados en memoria y actualizar todo nuevamente desde los ficheros del sistema. +Displays\ various\ environmental\ information\ to\ assist\ trouble-shooting.=Muestra información del entorno que puedan ayudar a la solución de problemas. +Executes\ arbitrary\ script\ for\ administration/trouble-shooting/diagnostics.=Ejecutar script para la administración, diagnóstico y solución de problemas. +Hudson\ CLI=Interfaz de linea de comandos (CLI) de Hudson +HudsonCliText=Accede y administra Hudson desde la consola, o desde scripts +Load\ Statistics=Estadísticas de carga +LoadStatisticsText=Comprueba la utilización de recursos y si se necesita más máquinas para las ejecuciones. +Load\ Statistics=Estadisticas de Carga +LoadStatisticsText=Comprobar la utilizaci\u00F3n de los recursos y comprobar si es necesario añadir nuevos nodos para la ejecución de tareas. +Manage\ Hudson=Administrar Hudson +Manage\ Nodes=Administrar Nodos +Manage\ Plugins=Administrar Plugins +Prepare\ for\ Shutdown=Preparar Hudson para apagar el contenedor +Reload\ Configuration\ from\ Disk=Actualizar configuración desde el disco duro. +Script\ Console=Consola de scripts +Stops\ executing\ new\ builds,\ so\ that\ the\ system\ can\ be\ eventually\ shut\ down\ safely.=Detener la ejecución de nuevas tareas para que el sistema pueda apagarse de manera segura. +System\ Information=Información del sistema +System\ Log=Registro del Sistema +SystemLogText=El log del sistema captura la salidad de la clase java.util.logging en todo lo relacionado con Hudson. +updates\ available=Existen actualizaciones disponibles +Useful\ when\ you\ modified\ config\ files\ directly\ on\ disk.=Útil cuando se modifican ficheros de configuración directamente en el disco duro. diff --git a/core/src/main/resources/hudson/model/Hudson/manage_fi.properties b/core/src/main/resources/hudson/model/Hudson/manage_fi.properties new file mode 100644 index 0000000000000000000000000000000000000000..aa618176204ada530d93085dc9272083e32716b3 --- /dev/null +++ b/core/src/main/resources/hudson/model/Hudson/manage_fi.properties @@ -0,0 +1,43 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Add,\ remove,\ control\ and\ monitor\ the\ various\ nodes\ that\ Hudson\ runs\ jobs\ on.=Lis\u00E4\u00E4, poista, hallitse ja monitoroi Hudons k\u00E4\u00E4nn\u00F6s solmuja. +Add,\ remove,\ disable\ or\ enable\ plugins\ that\ can\ extend\ the\ functionality\ of\ Hudson.=Lis\u00E4\u00E4, poista, aktivoi tai deaktivoi liit\u00E4nn\u00E4isi\u00E4 joilla voit lis\u00E4t\u00E4 Hudsonin toiminnallisuutta. +Configure\ System=J\u00E4rjestelm\u00E4 Asetukset +Discard\ all\ the\ loaded\ data\ in\ memory\ and\ reload\ everything\ from\ file\ system.=Lue levylt\u00E4 uudet asetukset. +Displays\ various\ environmental\ information\ to\ assist\ trouble-shooting.=N\u00E4ytt\u00E4\u00E4 erin\u00E4isi\u00E4 j\u00E4rjestelm\u00E4tietoja jotka auttavat vianetsinn\u00E4ss\u00E4. +Executes\ arbitrary\ script\ for\ administration/trouble-shooting/diagnostics.=Suorittaa erin\u00E4isi\u00E4 skripteij\u00E4 hallintaan, vianetsin\u00E4\u00E4n ja diagnostiikkaan. +Hudson\ CLI=Hudson CLI +HudsonCliText=Hallitse Hudsonia komnetorivilt\u00E4 tai skriptill\u00E4. +Load\ Statistics=Kuormitus Statistiikkaa +LoadStatisticsText=Tarkkaile resurssien k\u00E4ytt\u00F6\u00E4 ja seuraa onko tarvetta lis\u00E4 tietokoneille k\u00E4\u00E4nn\u00F6sty\u00F6t\u00E4 varten. +Manage\ Hudson=Hallitse Hudsonia +Manage\ Nodes=Hallitse Hudson Solmuja +Manage\ Plugins=Hallitse liit\u00E4nn\u00E4isi\u00E4 +Prepare\ for\ Shutdown=Valmistaudu alasajoon +Reload\ Configuration\ from\ Disk=Lataa asetukset levylt\u00E4 +Script\ Console=Skripti konsoli +Stops\ executing\ new\ builds,\ so\ that\ the\ system\ can\ be\ eventually\ shut\ down\ safely.=Pys\u00E4ytt\u00E4\u00E4 uusien k\u00E4\u00E4nn\u00F6ksien k\u00E4ynnist\u00E4misen niin ett\u00E4 j\u00E4rjestelm\u00E4 voidaan ajaa turvallisesti alas. +System\ Information=J\u00E4rjestelm\u00E4tiedot +System\ Log=J\u00E4rjestelm\u00E4loki +SystemLogText=J\u00E4rjestelm\u00E4lokia tuostettuna java.util.logging Hudson ulostuloon. +Useful\ when\ you\ modified\ config\ files\ directly\ on\ disk.=K\u00E4yt\u00E4nn\u00F6llinen muokattaessa konfiguraatioita suoraan levyll\u00E4. diff --git a/core/src/main/resources/hudson/model/Hudson/manage_fr.properties b/core/src/main/resources/hudson/model/Hudson/manage_fr.properties index 72ab75c739c0bf11fa99bcb6aac69eea82fcd9bd..cdd6cd799a8d0d4ea378bf444a1082efd85a1681 100644 --- a/core/src/main/resources/hudson/model/Hudson/manage_fr.properties +++ b/core/src/main/resources/hudson/model/Hudson/manage_fr.properties @@ -34,12 +34,14 @@ Script\ Console=Console de script Executes\ arbitrary\ script\ for\ administration/trouble-shooting/diagnostics.=Exécute des scripts arbitraires pour l''administration, la résolution de problèmes ou pour un diagnostique. Cancel\ Shutdown=Annuler la fermeture Prepare\ for\ Shutdown=Préparer à la fermeture -Stops\ executing\ new\ builds,\ so\ that\ the\ system\ can\ be\ eventually\ shut\ down\ safely.=Cesser d''exécuter de nouveaux builds, afin que le système puisse se fermer. +Stops\ executing\ new\ builds,\ so\ that\ the\ system\ can\ be\ eventually\ shut\ down\ safely.=Cesser d''ex\u00E9cuter de nouveaux builds, afin que le syst\u00E8me puisse se fermer. Configure\ System=Configurer le système -Configure\ global\ settings\ and\ paths.=Configurer les paramêtres généraux et les chemins de fichiers. +Configure\ global\ settings\ and\ paths.=Configurer les param\u00E8tres g\u00E9n\u00E9raux et les chemins de fichiers. Add,\ remove,\ disable\ or\ enable\ plugins\ that\ can\ extend\ the\ functionality\ of\ Hudson.=Ajouter, supprimer, activer ou désactiver des plugins qui peuvent étendre les fonctionnalités de Hudson. updates\ available=mises à jour disponibles +Hudson\ CLI=Ligne de commande (CLI) Hudson +HudsonCliText=Acc\u00E9der ou g\u00E9rer Hudson depuis votre shell ou depuis votre script. Load\ Statistics=Statistiques d''utilisation LoadStatisticsText=Vérifiez l''utilisation des ressources et décidez si vous avez besoin d''ordinateurs supplémentaires pour vos builds. -Manage\ Nodes=Gérer les noeuds -Add,\ remove,\ control\ and\ monitor\ the\ various\ nodes\ that\ Hudson\ runs\ jobs\ on.=Ajouter, supprimer, contrôler et monitorer les divers noeuds que Hudson utilise pour exécuter les jobs. +Manage\ Nodes=G\u00E9rer les n\u0153uds +Add,\ remove,\ control\ and\ monitor\ the\ various\ nodes\ that\ Hudson\ runs\ jobs\ on.=Ajouter, supprimer, contr\u00F4ler et monitorer les divers n\u0153uds que Hudson utilise pour ex\u00E9cuter les jobs. diff --git a/core/src/main/resources/hudson/model/Hudson/manage_it.properties b/core/src/main/resources/hudson/model/Hudson/manage_it.properties new file mode 100644 index 0000000000000000000000000000000000000000..920b873a808bbfd62ce5335eaa828f0572d1eef6 --- /dev/null +++ b/core/src/main/resources/hudson/model/Hudson/manage_it.properties @@ -0,0 +1,43 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Add,\ remove,\ control\ and\ monitor\ the\ various\ nodes\ that\ Hudson\ runs\ jobs\ on.=Aggiungi, elimina, controlla e monitorizza i vari nodi sui quali Hudson esegue i job. +Add,\ remove,\ disable\ or\ enable\ plugins\ that\ can\ extend\ the\ functionality\ of\ Hudson.=Aggiungi, elimina, disattiva o attiva plugin che possono estendere le funzionalit\u00E0 di Hudson. +Configure\ System=Configura sistema +Configure\ global\ settings\ and\ paths.=Configura impostazioni globali e percorsi. +Discard\ all\ the\ loaded\ data\ in\ memory\ and\ reload\ everything\ from\ file\ system.=Ignora tutti i dati caricati in memoria e ricarica tutto dal file system. +Displays\ various\ environmental\ information\ to\ assist\ trouble-shooting.=Mostra varie informazioni di ambiente per assistenza al trouble-shooting. +Executes\ arbitrary\ script\ for\ administration/trouble-shooting/diagnostics.=Esegue script arbitrari per amministrazione/trouble-shooting/diagnostica. +HudsonCliText=Accedi e gestisci Hudson dalla shell o dai tuoi script. +Load\ Statistics=Statistiche di carico +LoadStatisticsText=Controlla l''utilizzo delle risorse per vedere se sono necessari altri computer per le build. +Manage\ Hudson=Gestisci Hudson +Manage\ Nodes=Gestisci nodi +Manage\ Plugins=Gestisci plugin +Prepare\ for\ Shutdown=Prepara per shutdown +Reload\ Configuration\ from\ Disk=Ricarica configurazione da disco +Script\ Console=Console di script +Stops\ executing\ new\ builds,\ so\ that\ the\ system\ can\ be\ eventually\ shut\ down\ safely.=Blocca l''esecuzione di nuove build, in modo che si possa eventualmente effettare lo shutdown del sistema in modo sicuro. +System\ Information=Informazioni di sistema +System\ Log=Log di sistema +SystemLogText=Il log di sistema cattura l''output da quello di java.util.logging relativo ad Hudson. +Useful\ when\ you\ modified\ config\ files\ directly\ on\ disk.=Utile quando hai modificato i file di configurazione direttamente su disco. diff --git a/core/src/main/resources/hudson/model/Hudson/manage_ja.properties b/core/src/main/resources/hudson/model/Hudson/manage_ja.properties index 81b554828bc1d53be1523b601c4cdf86c208bae4..da7f528cb1665f1eb0f2c08b0edc3677aef87dc7 100644 --- a/core/src/main/resources/hudson/model/Hudson/manage_ja.properties +++ b/core/src/main/resources/hudson/model/Hudson/manage_ja.properties @@ -1,6 +1,6 @@ # The MIT License # -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe, id:cactusman +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe, id:cactusman # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -24,9 +24,6 @@ Manage\ Hudson=Hudson\u306E\u7BA1\u7406 Configure\ System=\u30B7\u30B9\u30C6\u30E0\u306E\u8A2D\u5B9A Configure\ global\ settings\ and\ paths.=\ \u30B7\u30B9\u30C6\u30E0\u5168\u4F53\u306E\u632F\u308B\u821E\u3044\u3084\u30D1\u30B9\u3092\u8A2D\u5B9A\u3057\u307E\u3059\u3002 -Configure\ Executors=\u30A8\u30B0\u30BC\u30AD\u30E5\u30FC\u30BF\u30FC\u306E\u8A2D\u5B9A -Configure\ resources\ available\ for\ executing\ jobs.=\ - \u30B8\u30E7\u30D6\u306E\u5B9F\u884C\u306B\u4F7F\u7528\u53EF\u80FD\u306A\u30EA\u30BD\u30FC\u30B9\u3092\u8A2D\u5B9A\u3057\u307E\u3059\u3002 Reload\ Configuration\ from\ Disk=\u8A2D\u5B9A\u306E\u518D\u8AAD\u307F\u8FBC\u307F Discard\ all\ the\ loaded\ data\ in\ memory\ and\ reload\ everything\ from\ file\ system.=\ \u30E1\u30E2\u30EA\u5185\u306B\u30ED\u30FC\u30C9\u3055\u308C\u305F\u5168\u3066\u306E\u30C7\u30FC\u30BF\u3092\u7834\u68C4\u3057\u3001\u30D5\u30A1\u30A4\u30EB\u30B7\u30B9\u30C6\u30E0\u304B\u3089\u518D\u30ED\u30FC\u30C9\u3057\u307E\u3059\u3002 @@ -45,7 +42,7 @@ SystemLogText=\ Load\ Statistics=\u8CA0\u8377\u7D71\u8A08 LoadStatisticsText=\u30EA\u30BD\u30FC\u30B9\u306E\u5229\u7528\u72B6\u6CC1\u3092\u30C1\u30A7\u30C3\u30AF\u3057\u3066\u3001\u3082\u3063\u3068\u30B3\u30F3\u30D4\u30E5\u30FC\u30BF\u30FC\u3092\u8FFD\u52A0\u3057\u3066\u30D3\u30EB\u30C9\u3059\u308B\u5FC5\u8981\u304C\u3042\u308B\u304B\u628A\u63E1\u3057\u307E\u3059\u3002 Script\ Console=\u30B9\u30AF\u30EA\u30D7\u30C8\u30B3\u30F3\u30BD\u30FC\u30EB -Executes\ arbitrary\ script\ for\ administration\/trouble-shooting\/diagnostics.=\ +Executes\ arbitrary\ script\ for\ administration/trouble-shooting/diagnostics.=\ \u7BA1\u7406/\u30C8\u30E9\u30D6\u30EB\u30B7\u30E5\u30FC\u30C6\u30A3\u30F3\u30B0/\u8A3A\u65AD\u306E\u305F\u3081\u306B\u4EFB\u610F\u306E\u30B9\u30AF\u30EA\u30D7\u30C8\u3092\u5B9F\u884C\u3057\u307E\u3059\u3002 Manage\ Nodes=\u30CE\u30FC\u30C9\u306E\u7BA1\u7406 Add,\ remove,\ control\ and\ monitor\ the\ various\ nodes\ that\ Hudson\ runs\ jobs\ on.=\ @@ -55,3 +52,4 @@ Prepare\ for\ Shutdown=\u30B7\u30E3\u30C3\u30C8\u30C0\u30A6\u30F3\u306E\u6E96\u5 Stops\ executing\ new\ builds,\ so\ that\ the\ system\ can\ be\ eventually\ shut\ down\ safely.=\ \u5B89\u5168\u306B\u30B7\u30B9\u30C6\u30E0\u3092\u6B62\u3081\u308B\u305F\u3081\u306B\u3001\u65B0\u3057\u3044\u30D3\u30EB\u30C9\u306E\u5B9F\u884C\u3092\u4E2D\u65AD\u3057\u307E\u3059\u3002 HudsonCliText=\u30B7\u30A7\u30EB\u3084\u30B9\u30AF\u30EA\u30D7\u30C8\u304B\u3089Hudson\u306B\u30A2\u30AF\u30BB\u30B9/\u7BA1\u7406\u3057\u307E\u3059\u3002 +Hudson\ CLI=Hudson CLI diff --git a/core/src/main/resources/hudson/model/Hudson/manage_ko.properties b/core/src/main/resources/hudson/model/Hudson/manage_ko.properties new file mode 100644 index 0000000000000000000000000000000000000000..bbca2ca91df14e01f786cfcce1e8ab7cbf496864 --- /dev/null +++ b/core/src/main/resources/hudson/model/Hudson/manage_ko.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Prepare\ for\ Shutdown=\uB044\uAE30\uC804 \uC900\uBE44 diff --git a/core/src/main/resources/hudson/model/Hudson/manage_nb_NO.properties b/core/src/main/resources/hudson/model/Hudson/manage_nb_NO.properties new file mode 100644 index 0000000000000000000000000000000000000000..e1be9250cb00fec9b342431dc22c07ec6884ce03 --- /dev/null +++ b/core/src/main/resources/hudson/model/Hudson/manage_nb_NO.properties @@ -0,0 +1,43 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Add,\ remove,\ control\ and\ monitor\ the\ various\ nodes\ that\ Hudson\ runs\ jobs\ on.=Legg til, fjern, kontroller og overv\u00E5k forskjellige noder som Hudson kj\u00F8rer jobber p\u00E5 +Add,\ remove,\ disable\ or\ enable\ plugins\ that\ can\ extend\ the\ functionality\ of\ Hudson.=Legg til, fjern, deaktivere eller aktivere programtillegg som kan utvide funksjonaliteten til Hudson. +Configure\ System=Konfigurere systemet +Configure\ global\ settings\ and\ paths.=Konfigurere globale verdier og stier +Hudson\ CLI= +Hudson CLI (Command Line Interface - Kommandolinjegrensesnitt) +Hudson CLI (Command Line Interface - Kommandolinjegrensesnitt) +HudsonCliText=Aksesser/behandle Hudson from shell eller fra skript. +Load\ Statistics=Laststatistikk +LoadStatisticsText=Sjekk din ressursutnyttelse og se om du trenger flere datamaskiner for din bygger. +Manage\ Hudson=Behandle Hudson +Manage\ Nodes=Behandle noder +Manage\ Plugins=Behandle programtillegg +Prepare\ for\ Shutdown=Forbered avslutting av system. +Reload\ Configuration\ from\ Disk=Last opp konfigurasjon fra disk p\u00E5 nytt +Script\ Console=Skriptkonsoll +Stops\ executing\ new\ builds,\ so\ that\ the\ system\ can\ be\ eventually\ shut\ down\ safely.=Stopper eksekvering av nye bygg, slik at systemet kan avsluttes p\u00E5 en sikker m\u00E5te. +System\ Information=Systeminformasjon +System\ Log=Systemlogg +SystemLogText=Systemloggen fanger output fra java.util.loggingoutput relatert til Hudson. +Useful\ when\ you\ modified\ config\ files\ directly\ on\ disk.=Nyttig n\u00E5r du har endret konfigurasjonsfiler direkte p\u00E5 disk. diff --git a/core/src/main/resources/hudson/model/Hudson/manage_nl.properties b/core/src/main/resources/hudson/model/Hudson/manage_nl.properties index 07b45f4726acd9a0aa9a22fc94437ad78b92bb1f..bb813bfa2f4dcc51f2360e8e074c360c248981a0 100644 --- a/core/src/main/resources/hudson/model/Hudson/manage_nl.properties +++ b/core/src/main/resources/hudson/model/Hudson/manage_nl.properties @@ -20,11 +20,18 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. +Hudson\ CLI=Hundson CLI +HudsonCliText=Toegang tot/beheer van Hudson vanuit je shell, of je script. +Load\ Statistics=Verbruiksstatistieken +LoadStatisticsText=Controleer het gebruik van je systeembronnen en zie of meer computers nodig zijn voor je bouwpogingen. Manage\ Hudson=Beheer Hudson System\ Configuration=Systeemconfiguratie Reload\ Configuration\ from\ Disk=Herlaad de configuratie van schijf +Configure\ System=Configureer Systeem +Configure\ global\ settings\ and\ paths.=Configureer globale instellingen en paden Discard\ all\ the\ loaded\ data\ in\ memory\ and\ reload\ everything\ from\ file\ system.=Herlaad alle gegevens van het bestandssysteem, zonder de huidige gegevens in het geheugen te weerhouden. Useful\ when\ you\ modified\ config\ files\ directly\ on\ disk.=Dit is nuttig wanneer je configuratiebestand rechtstreeks en niet via Hudson gewijzigd hebt. +Manage\ Nodes=Beheer Nodes Manage\ Plugins=Beheer plugins System\ Information=Systeeminformatie Displays\ various\ environmental\ information\ to\ assist\ trouble-shooting.=Toon omgevingsinformatie die je kan helpen bij probleemoplossing. @@ -35,6 +42,8 @@ Script\ Console=Scriptconsole Executes\ arbitrary\ script\ for\ administration/trouble-shooting/diagnostics.=Voer een arbitrair script uit voor admistratieve/correctieve/diagnostische redenen. Manage\ Slaves=Beheer slaafnodes Check\ the\ health\ of\ slaves\ and\ controls\ them.=Controle gezondheid en beheer van slaafnodes. +Add,\ remove,\ control\ and\ monitor\ the\ various\ nodes\ that\ Hudson\ runs\ jobs\ on.=Toevoegen, verwijderen, beheren en monitor van de verschillende Hudson Nodes. +Add,\ remove,\ disable\ or\ enable\ plugins\ that\ can\ extend\ the\ functionality\ of\ Hudson.=Voeg, verwijder, deactiveer of activeer plugins die de functionaliteit van Hudson kunnen uitbreiden. Cancel\ Shutdown=Annuleer afsluiten Prepare\ for\ Shutdown=Voorbereiden tot afsluiten Stops\ executing\ new\ builds,\ so\ that\ the\ system\ can\ be\ eventually\ shut\ down\ safely.=Stop met de uitvoering van nieuwe bouwpogingen, opdat het systeem uiteindelijk veilig kan afsluiten. diff --git a/core/src/main/resources/hudson/model/Hudson/manage_pt_BR.properties b/core/src/main/resources/hudson/model/Hudson/manage_pt_BR.properties index 355f69c637b4aa3d64b100273436dec14d51a1a9..d40cba6fc53551ead6154cb2f92f15658b17dfa1 100644 --- a/core/src/main/resources/hudson/model/Hudson/manage_pt_BR.properties +++ b/core/src/main/resources/hudson/model/Hudson/manage_pt_BR.properties @@ -20,9 +20,13 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. +HudsonCliText=Acesse/mantenha o Hudson pelo shell, ou pelo seu script. +Load\ Statistics=Carregar Estat\u00EDsticas +LoadStatisticsText=Verifica sua utiliza\u00E7\u00E3o de recursos e se voc\u00EA precisa de mais computadores para suas conrtu\u00E7\u00F5es Manage\ Hudson=Gerenciar Hudson -System\ Configuration=Configura\u00E7\u00E3o do Sistema Reload\ Configuration\ from\ Disk=Recarregar Configura\u00E7\u00E3o do Disco +Configure\ System=Configurar sistema +Configure\ global\ settings\ and\ paths.=Configurar op\u00E7\u00F5es globais e caminhos Discard\ all\ the\ loaded\ data\ in\ memory\ and\ reload\ everything\ from\ file\ system.=Descartar todos os dados carregados na mem\u00F3ria e recarregar tudo do sistema de arquivos. Useful\ when\ you\ modified\ config\ files\ directly\ on\ disk.=\u00DAtil quando voc\u00EA modificou arquivos de configura\u00E7\u00E3o diretamente no disco. Manage\ Plugins=Gerenciar Plugins @@ -33,8 +37,11 @@ SystemLogText=\ O log do sistema captura a sa\u00EDda de java.util.logging sa\u00EDda relacionada ao Hudson. Script\ Console=Console de Script Executes\ arbitrary\ script\ for\ administration/trouble-shooting/diagnostics.=Executa script arbitr\u00E1rio para administra\u00E7\u00E3o/trouble-shooting/diagn\u00F3sticos. -Manage\ Slaves=Gerenciar Slaves -Check\ the\ health\ of\ slaves\ and\ controls\ them.=Verificar a sa\u00FAde de slaves e control\u00E1-los. +Add,\ remove,\ disable\ or\ enable\ plugins\ that\ can\ extend\ the\ functionality\ of\ Hudson.=Adiciona, remove, desabilita e habilita plugins que podem incrementar as funcionalidades do Hudson Cancel\ Shutdown=Cancelar Desligamento Prepare\ for\ Shutdown=Preparar para Desligar Stops\ executing\ new\ builds,\ so\ that\ the\ system\ can\ be\ eventually\ shut\ down\ safely.=Para de executar novas constru\u00E7\u00F5es, para que o sistema possa ser eventualmente desligado com seguran\u00E7a. +updates\ available= +Add,\ remove,\ control\ and\ monitor\ the\ various\ nodes\ that\ Hudson\ runs\ jobs\ on.= +Hudson\ CLI= +Manage\ Nodes= diff --git a/core/src/main/resources/hudson/model/Hudson/manage_ru.properties b/core/src/main/resources/hudson/model/Hudson/manage_ru.properties index 1a4d6026c60fdee31dda924215e2f8cb8ba82d5a..f10fdd3f469611849688d8a4e53d86b38333dba6 100644 --- a/core/src/main/resources/hudson/model/Hudson/manage_ru.properties +++ b/core/src/main/resources/hudson/model/Hudson/manage_ru.properties @@ -20,17 +20,21 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -SystemLogText=\ -\u0421\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0439 \u0436\u0443\u0440\u043d\u0430\u043b \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442 \u0432\u044b\u0445\u043e\u0434 java.util.logging \u043e\u0442\u043d\u043e\u0441\u044f\u0449\u0438\u0439\u0441\u044f \u043a Hudson. +SystemLogText=\u0421\u0438\u0441\u0442\u0435\u043C\u043D\u044B\u0439 \u0436\u0443\u0440\u043D\u0430\u043B \u0441\u0447\u0438\u0442\u044B\u0432\u0430\u0435\u0442 \u0432\u044B\u0445\u043E\u0434 java.util.logging, \u043E\u0442\u043D\u043E\u0441\u044F\u0449\u0438\u0439\u0441\u044F \u043A Hudson. +Hudson\ CLI=\u041A\u043E\u043C\u0430\u043D\u0434\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430 Hudson +HudsonCliText=\u041F\u043E\u0437\u0432\u043E\u043B\u044F\u0435\u0442 \u0443\u043F\u0440\u0430\u0432\u043B\u044F\u0442\u044C Hudson \u0438\u0437 \u0441\u043A\u0440\u0438\u043F\u0442\u043E\u0432 \u0438\u043B\u0438 \u043E\u0431\u043E\u043B\u043E\u0447\u043A\u0438 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u043E\u043D\u043D\u043E\u0439 \u0441\u0438\u0441\u0442\u0435\u043C\u044B. +Load\ Statistics=\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043A\u0430 \u0443\u0442\u0438\u043B\u0438\u0437\u0430\u0446\u0438\u0438 +LoadStatisticsText=\u041F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u0435\u0442 \u0443\u0442\u0438\u043B\u0438\u0437\u0430\u0446\u0438\u044E \u0430\u043F\u043F\u0430\u0440\u0430\u0442\u043D\u044B\u0445 \u0440\u0435\u0441\u0443\u0440\u0441\u043E\u0432 \u0438 \u043F\u043E\u0437\u0432\u043E\u043B\u044F\u0435\u0442 \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0438\u0442\u044C \u043D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u043E\u0441\u0442\u044C \u0434\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u0438\u044F \u0434\u043E\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u0445 \u0441\u0440\u0435\u0434 \u0434\u043B\u044F \u0441\u0431\u043E\u0440\u043A\u0438. Manage\ Hudson=\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 Hudson Reload\ Configuration\ from\ Disk=\u041f\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u0442\u044c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0438\u0437 \u0444\u0430\u0439\u043b\u0430 Discard\ all\ the\ loaded\ data\ in\ memory\ and\ reload\ everything\ from\ file\ system.=\u041e\u0442\u043c\u0435\u043d\u0438\u0442\u044c \u0432\u0441\u0435 \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u043f\u0430\u043c\u044f\u0442\u0438 \u0438 \u043f\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u0442\u044c \u0432\u0441\u0435 \u0438\u0437 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b. -Useful\ when\ you\ modified\ config\ files\ directly\ on\ disk.=\u041f\u043e\u043b\u0435\u0437\u043d\u043e \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0435\u0441\u043b\u0438 \u0432\u044b \u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043b\u0438 \u0444\u0430\u0439\u043b\u044b \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a \u0432\u0440\u0443\u0447\u043d\u0443\u044e. +Useful\ when\ you\ modified\ config\ files\ directly\ on\ disk.=\u041F\u043E\u043B\u0435\u0437\u043D\u043E \u0432 \u0441\u043B\u0443\u0447\u0430\u0435, \u0435\u0441\u043B\u0438 \u0432\u044B \u043C\u043E\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u043E\u0432\u0430\u043B\u0438 \u0444\u0430\u0439\u043B\u044B \u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043A \u0432\u0440\u0443\u0447\u043D\u0443\u044E. +Manage\ Nodes=\u0423\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u044F \u0421\u0440\u0435\u0434\u0430\u043C\u0438 \u0441\u0431\u043E\u0440\u043A\u0438 Manage\ Plugins=\u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u043b\u0430\u0433\u0438\u043d\u0430\u043c\u0438 System\ Information=\u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u0441\u0438\u0441\u0442\u0435\u043c\u0435 Displays\ various\ environmental\ information\ to\ assist\ trouble-shooting.=\u041f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0432\u0441\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u0441\u0440\u0435\u0434\u0435 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043f\u043e\u043c\u043e\u0449\u0438 \u0432 \u0440\u0435\u0448\u0435\u043d\u0438\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c. System\ Log=\u0421\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0439 \u0436\u0443\u0440\u043d\u0430\u043b -Script\ Console=\u041a\u043e\u043d\u0441\u043e\u043b\u044c +Script\ Console=\u041A\u043E\u043D\u0441\u043E\u043B\u044C \u0441\u0446\u0435\u043D\u0430\u0440\u0438\u0435\u0432 Executes\ arbitrary\ script\ for\ administration/trouble-shooting/diagnostics.=\u041c\u043e\u0436\u043d\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u0441\u043a\u0440\u0438\u043f\u0442\u044b \u0434\u043b\u044f \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0445 \u0438 \u0434\u0438\u0430\u0433\u043d\u043e\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0437\u0430\u0434\u0430\u0447 \u0438 \u0443\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c. Manage\ Slaves=\u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u043e\u0434\u0447\u0438\u043d\u0435\u043d\u043d\u044b\u043c\u0438 Check\ the\ health\ of\ slaves\ and\ controls\ them.=\u041f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043f\u043e\u0434\u0447\u0438\u043d\u0435\u043d\u043d\u044b\u0445 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432 \u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0438\u043c\u0438. @@ -41,5 +45,5 @@ Configure\ System=\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u Configure\ global\ settings\ and\ paths.=\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u044b\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0438 \u043f\u0443\u0442\u0438. Configure\ Executors=\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u0431\u043e\u0440\u0449\u0438\u043a\u043e\u0432 Configure\ resources\ available\ for\ executing\ jobs.=\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0440\u0435\u0441\u0443\u0440\u0441\u044b, \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0435 \u0434\u043b\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u0434\u0430\u0447. -Add,\ remove,\ disable\ or\ enable\ plugins\ that\ can\ extend\ the\ functionality\ of\ Hudson.=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c, \ -\u0443\u0434\u0430\u043b\u0438\u0442\u044c, \u0432\u044b\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0438\u043b\u0438 \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043f\u043b\u0430\u0433\u0438\u043d\u044b, \u0440\u0430\u0441\u0448\u0438\u0440\u044f\u044e\u0449\u0438\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0435 \u0438\u043b\u0438 \u043f\u0440\u0435\u0437\u0435\u043d\u0442\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 Hudson. +Add,\ remove,\ control\ and\ monitor\ the\ various\ nodes\ that\ Hudson\ runs\ jobs\ on.=\u041F\u043E\u0432\u0437\u0432\u043E\u043B\u044F\u0435\u0442 \u0434\u043E\u0431\u0430\u0432\u043B\u044F\u0442\u044C, \u0443\u0434\u0430\u043B\u044F\u0442\u044C, \u043A\u043E\u043D\u0442\u0440\u043E\u043B\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0438 \u0430\u043D\u0430\u043B\u0438\u0437\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0435 \u0441\u0440\u0435\u0434 \u0441\u0431\u043E\u0440\u043A\u0438 Hudson. +Add,\ remove,\ disable\ or\ enable\ plugins\ that\ can\ extend\ the\ functionality\ of\ Hudson.=\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C, \u0443\u0434\u0430\u043B\u0438\u0442\u044C, \u0432\u044B\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0438\u043B\u0438 \u0432\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u043F\u043B\u0430\u0433\u0438\u043D\u044B, \u0440\u0430\u0441\u0448\u0438\u0440\u044F\u044E\u0449\u0438\u0435 \u0444\u0443\u043D\u043A\u0446\u0438\u043E\u043D\u043E\u043D\u0430\u043B\u044C\u043D\u044B\u0435 \u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E\u0441\u0442\u0438 Hudson. diff --git a/core/src/main/resources/hudson/model/Hudson/manage_sv_SE.properties b/core/src/main/resources/hudson/model/Hudson/manage_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..4c81c30c2ede2048a35e79e72b89cbe64f9c06d9 --- /dev/null +++ b/core/src/main/resources/hudson/model/Hudson/manage_sv_SE.properties @@ -0,0 +1,43 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Add,\ remove,\ control\ and\ monitor\ the\ various\ nodes\ that\ Hudson\ runs\ jobs\ on.=L\u00E4gga till, ta bort, kontrollera och \u00F6vervaka de olika noderna som Hudson k\u00F6r jobb p\u00E5. +Add,\ remove,\ disable\ or\ enable\ plugins\ that\ can\ extend\ the\ functionality\ of\ Hudson.=Installera, ta bort, aktivera eller avaktivera insticksmoduler f\u00F6r fler funktioner. +Configure\ System=Konfigurera systemet +Configure\ global\ settings\ and\ paths.=Konfigurera globala inst\u00E4llningar och s\u00F6kv\u00E4gar. +Discard\ all\ the\ loaded\ data\ in\ memory\ and\ reload\ everything\ from\ file\ system.=Kasta bort all data i minnet och ladda allt fr\u00E5n filsystemet. +Displays\ various\ environmental\ information\ to\ assist\ trouble-shooting.=Visar diverse milj\u00F6information f\u00F6r att underl\u00E4tta fels\u00F6kning. +Executes\ arbitrary\ script\ for\ administration/trouble-shooting/diagnostics.=K\u00F6r godtyckliga skript f\u00F6r administration/fels\u00F6kning/diagnostik. +HudsonCliText=Kom \u00E5t/hantera Hudson ifr\u00E5n ditt skal, eller fr\u00E5n ditt skript. +Load\ Statistics=Belastningstatistik +LoadStatisticsText=Kontrollera resursutnyttjandet och se om du beh\u00F6ver fler datorer till dina byggen. +Manage\ Hudson=Hantera Hudson +Manage\ Nodes=Hantera noder +Manage\ Plugins=Hantera insticksmoduler +Prepare\ for\ Shutdown=F\u00F6rbered f\u00F6r nedst\u00E4ngning +Reload\ Configuration\ from\ Disk=L\u00E4s om konfigurationen ifr\u00E5n disk. +Script\ Console=Skriptkonsoll +Stops\ executing\ new\ builds,\ so\ that\ the\ system\ can\ be\ eventually\ shut\ down\ safely.=Sluta starta ny byggen, s\u00E5 att systemet sedan kan st\u00E4ngas s\u00E4kert. +System\ Information=Systeminformation +System\ Log=Systemlogg +SystemLogText=Systemloggen f\u00E5ngar utskrift fr\u00E5n java.util.logging relaterat till Hudson. +Useful\ when\ you\ modified\ config\ files\ directly\ on\ disk.=Anv\u00E4ndbart n\u00E4r du har \u00E4ndrat konfigurationsfiler direkt p\u00E5 disken. diff --git a/core/src/main/resources/hudson/model/Hudson/manage_uk.properties b/core/src/main/resources/hudson/model/Hudson/manage_uk.properties new file mode 100644 index 0000000000000000000000000000000000000000..acc43718d584b8061f0d8da2f289e7636f6c205c --- /dev/null +++ b/core/src/main/resources/hudson/model/Hudson/manage_uk.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Load\ Statistics=\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043A\u0430 \u043D\u0430\u0432\u0430\u043D\u0442\u0430\u0436\u0435\u043D\u043D\u044F +Manage\ Nodes=\u041A\u0435\u0440\u0443\u0432\u0430\u0442\u0438 \u0432\u0443\u0437\u043B\u0430\u043C\u0438 diff --git a/core/src/main/resources/hudson/model/Hudson/manage_zh_CN.properties b/core/src/main/resources/hudson/model/Hudson/manage_zh_CN.properties new file mode 100644 index 0000000000000000000000000000000000000000..3d0bf62eed3563f1f9ff62a67984ed0feda1c071 --- /dev/null +++ b/core/src/main/resources/hudson/model/Hudson/manage_zh_CN.properties @@ -0,0 +1,44 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Add,\ remove,\ control\ and\ monitor\ the\ various\ nodes\ that\ Hudson\ runs\ jobs\ on.=\u6dfb\u52a0\u3001\u5220\u9664\u3001\u63a7\u5236\u548c\u76d1\u89c6\u7cfb\u7edf\u8fd0\u884c\u4efb\u52a1\u7684\u8282\u70b9\u3002 +Add,\ remove,\ disable\ or\ enable\ plugins\ that\ can\ extend\ the\ functionality\ of\ Hudson.=\u6dfb\u52a0\u3001\u5220\u9664\u3001\u7981\u7528\u6216\u542f\u7528Hudson\u529f\u80fd\u6269\u5c55\u63d2\u4ef6\u3002 +Configure\ System=\u7cfb\u7edf\u8bbe\u7f6e +Configure\ global\ settings\ and\ paths.=\u5168\u5c40\u8bbe\u7f6e&\u8def\u5f84 +Discard\ all\ the\ loaded\ data\ in\ memory\ and\ reload\ everything\ from\ file\ system.=\u653e\u5f03\u5f53\u524d\u5185\u5b58\u4e2d\u6240\u6709\u7684\u8bbe\u7f6e\u4fe1\u606f\u5e76\u4ece\u914d\u7f6e\u6587\u4ef6\u4e2d\u91cd\u65b0\u8bfb\u53d6 +Displays\ various\ environmental\ information\ to\ assist\ trouble-shooting.=\u663e\u793a\u7cfb\u7edf\u73af\u5883\u4fe1\u606f\u4ee5\u5e2e\u52a9\u89e3\u51b3\u95ee\u9898\u3002 +Executes\ arbitrary\ script\ for\ administration/trouble-shooting/diagnostics.=\u6267\u884c\u7528\u4e8e\u7ba1\u7406\u6216\u6545\u969c\u63a2\u6d4b\u6216\u8bca\u65ad\u7684\u4efb\u610f\u811a\u672c\u547d\u4ee4\u3002 +Hudson\ CLI=Hudson CLI +HudsonCliText=\u4ece\u60a8\u547d\u4ee4\u884c\u6216\u811a\u672c\u8bbf\u95ee\u6216\u7ba1\u7406\u60a8\u7684Hudson\u3002 +Load\ Statistics=\u8d1f\u8f7d\u7edf\u8ba1 +LoadStatisticsText=\u68c0\u67e5\u60a8\u7684\u8d44\u6e90\u5229\u7528\u60c5\u51b5\uff0c\u770b\u770b\u662f\u5426\u9700\u8981\u66f4\u591a\u7684\u8ba1\u7b97\u673a\u6765\u5e2e\u52a9\u60a8\u6784\u5efa\u3002 +Manage\ Hudson=\u7cfb\u7edf\u7ba1\u7406 +Manage\ Nodes=\u7ba1\u7406\u8282\u70b9 +Manage\ Plugins=\u7ba1\u7406\u63d2\u4ef6 +Prepare\ for\ Shutdown=\u51c6\u5907\u5173\u673a +Reload\ Configuration\ from\ Disk=\u8bfb\u53d6\u8bbe\u7f6e +Script\ Console=\u811a\u672c\u547d\u4ee4\u884c +Stops\ executing\ new\ builds,\ so\ that\ the\ system\ can\ be\ eventually\ shut\ down\ safely.=\u505c\u6b62\u6267\u884c\u65b0\u7684\u6784\u5efa\u4efb\u52a1\u4ee5\u5b89\u5168\u5173\u95ed\u8ba1\u7b97\u673a\u3002 +System\ Information=\u7cfb\u7edf\u4fe1\u606f +System\ Log=\u7cfb\u7edf\u65e5\u5fd7 +SystemLogText=\u7cfb\u7edf\u65e5\u5fd7\u4ecejava.util.logging\u6355\u83b7Hudson\u76f8\u5173\u7684\u65e5\u5fd7\u4fe1\u606f\u3002 +Useful\ when\ you\ modified\ config\ files\ directly\ on\ disk.=\u4ec5\u7528\u4e8e\u5f53\u60a8\u624b\u52a8\u4fee\u6539\u914d\u7f6e\u6587\u4ef6\u65f6\u91cd\u65b0\u8bfb\u53d6\u8bbe\u7f6e\u3002 diff --git a/core/src/main/resources/hudson/model/Hudson/manage_zh_TW.properties b/core/src/main/resources/hudson/model/Hudson/manage_zh_TW.properties new file mode 100644 index 0000000000000000000000000000000000000000..cb655183f1b4092afd05a7c49388eee7ff18a005 --- /dev/null +++ b/core/src/main/resources/hudson/model/Hudson/manage_zh_TW.properties @@ -0,0 +1,32 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Configure\ System=\u914D\u7F6E\u7CFB\u7D71 +Configure\ global\ settings\ and\ paths.=\u914D\u7F6E\u5168\u57DF\u7684\u8A2D\u5B9A\u53CA\u8DEF\u5F91 +Hudson\ CLI=Hudson \u547D\u4EE4\u5217 +Load\ Statistics=\u8CA0\u8F09\u7D71\u8A08 +Manage\ Hudson=\u7BA1\u7406 Hudson +Manage\ Nodes=\u7BA1\u7406\u7BC0\u9EDE +Manage\ Plugins=\u7BA1\u7406\u63D2\u4EF6 +Reload\ Configuration\ from\ Disk=\u5F9E\u78C1\u789F\u91CD\u65B0\u8F09\u5165\u914D\u7F6E\u6A94 +System\ Information=\u7CFB\u7D71\u8CC7\u8A0A +System\ Log=\u7CFB\u7D71\u8A18\u9304 diff --git a/core/src/main/resources/hudson/model/Hudson/newView.jelly b/core/src/main/resources/hudson/model/Hudson/newView.jelly index 9cdfe548f909cea250375ee74d44dbbdea2c960c..b0a83276e12e04617e895282dfea7d3f7a475716 100644 --- a/core/src/main/resources/hudson/model/Hudson/newView.jelly +++ b/core/src/main/resources/hudson/model/Hudson/newView.jelly @@ -1,7 +1,7 @@ - + -

    Thread Dump

    +

    ${%Thread Dump}

    - + + +

    ${t.threadName}

    -
    ${h.dumpThreadInfo(t)}
    +
    ${h.dumpThreadInfo(t,map)}
    @@ -51,4 +53,4 @@ THE SOFTWARE.
    -
    \ No newline at end of file + diff --git a/core/src/main/resources/hudson/model/Hudson/threadDump_da.properties b/core/src/main/resources/hudson/model/Hudson/threadDump_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..8fe9a8ae57006630b2282e7a2b699ea2ce2c2258 --- /dev/null +++ b/core/src/main/resources/hudson/model/Hudson/threadDump_da.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Thread\ Dump=Tr\u00e5ddump +Thread\ dump=Tr\u00e5ddump diff --git a/core/src/main/resources/hudson/model/Hudson/threadDump_de.properties b/core/src/main/resources/hudson/model/Hudson/threadDump_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..afd13093fec29425056428242d060549428e0506 --- /dev/null +++ b/core/src/main/resources/hudson/model/Hudson/threadDump_de.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Thread\ dump=Thread Dump +Thread\ Dump=Thread Dump diff --git a/core/src/main/resources/hudson/model/Hudson/threadDump_es.properties b/core/src/main/resources/hudson/model/Hudson/threadDump_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..1b0a18b6f8178ef6bd47c7f204f24432ca448096 --- /dev/null +++ b/core/src/main/resources/hudson/model/Hudson/threadDump_es.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Thread\ dump=Volcado de "Threads" +Thread\ Dump=Volcado de "Threads" diff --git a/core/src/main/resources/hudson/model/Hudson/threadDump_ja.properties b/core/src/main/resources/hudson/model/Hudson/threadDump_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..639526f5bdb9ec867a49aebb424dbdfe4a100c74 --- /dev/null +++ b/core/src/main/resources/hudson/model/Hudson/threadDump_ja.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Thread\ dump=\u30B9\u30EC\u30C3\u30C9\u30C0\u30F3\u30D7 +Thread\ Dump=\u30B9\u30EC\u30C3\u30C9\u30C0\u30F3\u30D7 diff --git a/core/src/main/resources/hudson/model/Hudson/threadDump_pt_BR.properties b/core/src/main/resources/hudson/model/Hudson/threadDump_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..f27aad26ba68368e6a2a788c42520a34eb063a67 --- /dev/null +++ b/core/src/main/resources/hudson/model/Hudson/threadDump_pt_BR.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Thread\ Dump=Limpar Threads +Thread\ dump= diff --git a/core/src/main/resources/hudson/model/Hudson/whoAmI.jelly b/core/src/main/resources/hudson/model/Hudson/whoAmI.jelly index 7e54fa03c084254df1f59418c41c32c1e34b28b3..4e2f7f55efa0ff544b4b4b160a0db18fa604706f 100644 --- a/core/src/main/resources/hudson/model/Hudson/whoAmI.jelly +++ b/core/src/main/resources/hudson/model/Hudson/whoAmI.jelly @@ -1,7 +1,7 @@ - + + +

    Who Am I?

    @@ -68,4 +70,4 @@ THE SOFTWARE.
    - \ No newline at end of file + diff --git a/core/src/main/resources/hudson/model/JDK/config.jelly b/core/src/main/resources/hudson/model/JDK/config.jelly index 119939ae186691c9c8c86d59db12175bffb7fdaf..8d7c5cadf6d30ba2c45a6cf6a687b0ba3d2e0641 100644 --- a/core/src/main/resources/hudson/model/JDK/config.jelly +++ b/core/src/main/resources/hudson/model/JDK/config.jelly @@ -1,7 +1,7 @@ - - - - - - - - - -
    - -
    -
    -
    -
    \ No newline at end of file + + + + + + + diff --git a/core/src/main/resources/hudson/model/JDK/config_da.properties b/core/src/main/resources/hudson/model/JDK/config_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..03a148422b18e1455627f2af8e0b878e6833ba15 --- /dev/null +++ b/core/src/main/resources/hudson/model/JDK/config_da.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Name=Navn diff --git a/core/src/main/resources/hudson/model/JDK/config_de.properties b/core/src/main/resources/hudson/model/JDK/config_de.properties index 0a3e0c11fb428a4f6f77b0e4b0128905a3d523ab..0e96f25f7f3bb7c2ea803c186f1b8f53470c666d 100644 --- a/core/src/main/resources/hudson/model/JDK/config_de.properties +++ b/core/src/main/resources/hudson/model/JDK/config_de.properties @@ -1,23 +1,23 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -name=Name +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Name=Name diff --git a/core/src/main/resources/hudson/model/JDK/config_es.properties b/core/src/main/resources/hudson/model/JDK/config_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..4ad9e470e326b080373db8b67a7c695ec1784501 --- /dev/null +++ b/core/src/main/resources/hudson/model/JDK/config_es.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Name=Nombre diff --git a/core/src/main/resources/hudson/model/JDK/config_fr.properties b/core/src/main/resources/hudson/model/JDK/config_fr.properties index 2178370fbbf0518714472c3b717e59ec2de1d4ef..4a7c39e04cfac49087bcbc0f99746a2e24f01c99 100644 --- a/core/src/main/resources/hudson/model/JDK/config_fr.properties +++ b/core/src/main/resources/hudson/model/JDK/config_fr.properties @@ -1,6 +1,6 @@ # The MIT License # -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Eric Lefevre-Ardant +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Eric Lefevre-Ardant # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -20,4 +20,4 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -name=Nom +Name=Nom diff --git a/core/src/main/resources/hudson/model/JDK/config_ja.properties b/core/src/main/resources/hudson/model/JDK/config_ja.properties index 0c94b38d7e058dc4177c3edec3244910bd08f7f1..8ed9828074d78f26c32b1fbc0ced4cd8d2c9934e 100644 --- a/core/src/main/resources/hudson/model/JDK/config_ja.properties +++ b/core/src/main/resources/hudson/model/JDK/config_ja.properties @@ -1,6 +1,6 @@ # The MIT License # -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -20,4 +20,4 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -name=\u540D\u524D +Name=\u540D\u524D diff --git a/core/src/main/resources/hudson/model/JDK/config_nl.properties b/core/src/main/resources/hudson/model/JDK/config_nl.properties index 1b4bba5221cf94be9ff57e0ca78301031ffaa70b..3d53efc84c4dae9d060c9dc063d734ee46dfb6e6 100644 --- a/core/src/main/resources/hudson/model/JDK/config_nl.properties +++ b/core/src/main/resources/hudson/model/JDK/config_nl.properties @@ -1,6 +1,6 @@ # The MIT License # -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:sorokh +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:sorokh # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -20,4 +20,4 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -name=Naam +Name=Naam diff --git a/core/src/main/resources/hudson/model/JDK/config_pt_BR.properties b/core/src/main/resources/hudson/model/JDK/config_pt_BR.properties index 502f2afb646217a1e9e9d7256b4f3095a9946975..e93e562f907a2290fd1086394896602d0ef3dd8f 100644 --- a/core/src/main/resources/hudson/model/JDK/config_pt_BR.properties +++ b/core/src/main/resources/hudson/model/JDK/config_pt_BR.properties @@ -1,6 +1,6 @@ # The MIT License # -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Reginaldo L. Russinholi +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Reginaldo L. Russinholi # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -20,4 +20,4 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -name=nome +Name=Nome diff --git a/core/src/main/resources/hudson/model/JDK/config_ru.properties b/core/src/main/resources/hudson/model/JDK/config_ru.properties new file mode 100644 index 0000000000000000000000000000000000000000..2be8aec78f8a263627f05fab7e8912c627ba8a29 --- /dev/null +++ b/core/src/main/resources/hudson/model/JDK/config_ru.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Name=\u0438\u043C\u044F +name=\u0438\u043C\u044F diff --git a/core/src/main/resources/hudson/model/JDK/config_tr.properties b/core/src/main/resources/hudson/model/JDK/config_tr.properties index 607cb98b95d85b19c38deff1e6e260e6e9106e0b..0869f1c099e5e72a3d1a2c878fc085428cbd541f 100644 --- a/core/src/main/resources/hudson/model/JDK/config_tr.properties +++ b/core/src/main/resources/hudson/model/JDK/config_tr.properties @@ -1,6 +1,6 @@ # The MIT License # -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Oguz Dag +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Oguz Dag # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -20,4 +20,4 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -name=isim +Name=isim diff --git a/core/src/main/resources/hudson/model/JDK/config_zh_CN.properties b/core/src/main/resources/hudson/model/JDK/config_zh_CN.properties new file mode 100644 index 0000000000000000000000000000000000000000..4396111bece6a438e0ca2baee04e7204064a906c --- /dev/null +++ b/core/src/main/resources/hudson/model/JDK/config_zh_CN.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Name=\u522b\u540d diff --git a/core/src/main/resources/hudson/model/Job/_api.jelly b/core/src/main/resources/hudson/model/Job/_api.jelly index 614db3c4c14603e7ee26d63f3187d3f0893a56bd..d5761f70c3af60d39d081405f0592f20ebfe145e 100644 --- a/core/src/main/resources/hudson/model/Job/_api.jelly +++ b/core/src/main/resources/hudson/model/Job/_api.jelly @@ -27,7 +27,9 @@ THE SOFTWARE.

    To programmatically obtain config.xml, hit this URL. You can also POST an updated config.xml to the same URL to programmatically - update the configuration of a job. + update the configuration of a job. Similarly, this URL + can be used to get and set just the job description. POST form data with a + "description" parameter to set the description.

    Perform a build

    @@ -36,15 +38,18 @@ THE SOFTWARE. If the build has parameters, post to this URL and provide the parameters as form data.

    - To programmatically schedule SCM polling, post to this URL. + To programmatically schedule SCM polling, post to this URL.

    - If security is enabled, a build authorization token must be provided as a parameter called token. The value of the token - can be specified on the job configuration page in the 'Trigger builds remotely' section. + If security is enabled, the recommended method is to provide the username/password of an + account with build permission in the request. Tools such as curl and wget + have parameters to specify these credentials. Another alternative (but deprecated) is to + configure the 'Trigger builds remotely' section in the job configuration. Then building + or polling can be triggered by including a parameter called token in the request.

    Delete a job

    To programmatically delete this job, do HTTP POST to this URL.

    - \ No newline at end of file + diff --git a/core/src/main/resources/hudson/model/Job/buildTimeTrend.jelly b/core/src/main/resources/hudson/model/Job/buildTimeTrend.jelly index d339aef9594366db38ee45807d6cce790985cc32..f631a3faca8c48dcf284cd16774fcbe64bce9943 100644 --- a/core/src/main/resources/hudson/model/Job/buildTimeTrend.jelly +++ b/core/src/main/resources/hudson/model/Job/buildTimeTrend.jelly @@ -1,7 +1,8 @@ + +

    ${%Build Time Trend}

    - [Build time graph] + [Build time graph]
    @@ -50,7 +56,9 @@ THE SOFTWARE. ${r.iconColor.description} + ${r.displayName} + ${r.durationString} @@ -71,4 +79,4 @@ THE SOFTWARE.
    - \ No newline at end of file + diff --git a/core/src/main/resources/hudson/model/Job/buildTimeTrend_da.properties b/core/src/main/resources/hudson/model/Job/buildTimeTrend_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..6f693622769a5d69d7c58ea34d0187cc15d7e161 --- /dev/null +++ b/core/src/main/resources/hudson/model/Job/buildTimeTrend_da.properties @@ -0,0 +1,29 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +title={0} Byggetidstrend +Duration=Varighed +Build\ Time\ Trend=Byggetidstrend +Build=Byg +Slave=Slave +More\ than\ 1\ builds\ are\ needed\ for\ the\ trend\ report.=Mere end et byg er n\u00f8dvendigt for at danne en trendrapport. +Timeline=Tidslinie diff --git a/core/src/main/resources/hudson/model/Job/buildTimeTrend_es.properties b/core/src/main/resources/hudson/model/Job/buildTimeTrend_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..52ed3ef570ad7f0778caca8f4e72234c2b973b58 --- /dev/null +++ b/core/src/main/resources/hudson/model/Job/buildTimeTrend_es.properties @@ -0,0 +1,29 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +title={0} Tendencia del tiempo de proceso +Build=Ejecución +Slave=Esclavo +Duration=Duración +More\ than\ 1\ builds\ are\ needed\ for\ the\ trend\ report.=Más de 1 ejecución son necesarias para generar el gráfico +Build\ Time\ Trend=Tendencia del tiempo de ejecución +Timeline=Línea de tiempo diff --git a/core/src/main/resources/hudson/model/Job/buildTimeTrend_ja.properties b/core/src/main/resources/hudson/model/Job/buildTimeTrend_ja.properties index 65e20fab9c1706caf50f45d8a93531a1afe25eb5..37d51aefd31648648958db50c8e4206c5d3cb471 100644 --- a/core/src/main/resources/hudson/model/Job/buildTimeTrend_ja.properties +++ b/core/src/main/resources/hudson/model/Job/buildTimeTrend_ja.properties @@ -1,6 +1,6 @@ # The MIT License # -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -20,8 +20,10 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -title={0}\u306e\u30d3\u30eb\u30c9\u6642\u9593\u306e\u50be\u5411 -Build=\u30d3\u30eb\u30c9 +title={0}\u306E\u30D3\u30EB\u30C9\u6642\u9593\u306E\u50BE\u5411 +Timeline=\u30BF\u30A4\u30E0\u30E9\u30A4\u30F3 +Build=\u30D3\u30EB\u30C9 +Build\ Time\ Trend=\u30D3\u30EB\u30C9\u6642\u9593\u306E\u63A8\u79FB Duration=\u6240\u8981\u6642\u9593 -Slave=\u30b9\u30ec\u30fc\u30d6 -More\ than\ 1\ builds\ are\ needed\ for\ the\ trend\ report.=\u30b0\u30e9\u30d5\u3092\u63cf\u753b\u3059\u308b\u305f\u3081\u306b\u306f\u6700\u4f4e\uff12\u3064\u306e\u30d3\u30eb\u30c9\u304c\u5fc5\u8981\u3067\u3059\u3002 +Slave=\u30B9\u30EC\u30FC\u30D6 +More\ than\ 1\ builds\ are\ needed\ for\ the\ trend\ report.=\u30B0\u30E9\u30D5\u3092\u63CF\u753B\u3059\u308B\u305F\u3081\u306B\u306F\u6700\u4F4E\uFF12\u3064\u306E\u30D3\u30EB\u30C9\u304C\u5FC5\u8981\u3067\u3059\u3002 diff --git a/core/src/main/resources/hudson/model/Job/buildTimeTrend_ko.properties b/core/src/main/resources/hudson/model/Job/buildTimeTrend_ko.properties new file mode 100644 index 0000000000000000000000000000000000000000..197ca1ed97ddf8c57e2795b1f92bc00103f8ef07 --- /dev/null +++ b/core/src/main/resources/hudson/model/Job/buildTimeTrend_ko.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Build=\uBE4C\uB4DC +Duration=\uC9C0\uC18D\uC2DC\uAC04 +More\ than\ 1\ builds\ are\ needed\ for\ the\ trend\ report.=\uACBD\uD5A5 \uBCF4\uACE0\uC11C\uB294 1\uAC1C \uC774\uC0C1\uC758 \uBE4C\uB4DC\uAC00 \uD544\uC694\uD569\uB2C8\uB2E4. diff --git a/core/src/main/resources/hudson/model/Job/buildTimeTrend_pt_BR.properties b/core/src/main/resources/hudson/model/Job/buildTimeTrend_pt_BR.properties index 5085acdfc94f3f5c3025b6a1d62666cee34602a1..85d652d851f172cdf1286c002a2bc7403cc3ecd8 100644 --- a/core/src/main/resources/hudson/model/Job/buildTimeTrend_pt_BR.properties +++ b/core/src/main/resources/hudson/model/Job/buildTimeTrend_pt_BR.properties @@ -25,3 +25,5 @@ Build=Constru\u00E7\u00E3o Duration=Dura\u00E7\u00E3o Slave= More\ than\ 1\ builds\ are\ needed\ for\ the\ trend\ report.=Mais do que uma constru\u00E7\u00E3o \u00E9 necess\u00E1ria para o relat\u00F3rio de tend\u00EAncia. +Build\ Time\ Trend= +Timeline= diff --git a/core/src/main/resources/hudson/model/Job/buildTimeTrend_sv_SE.properties b/core/src/main/resources/hudson/model/Job/buildTimeTrend_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..bd1999adebbd9666da062f6d2cfca50716b8967e --- /dev/null +++ b/core/src/main/resources/hudson/model/Job/buildTimeTrend_sv_SE.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Build=Bygge +Duration=Tid +Slave=Nod diff --git a/core/src/main/resources/hudson/model/Job/buildTimeTrend_zh_CN.properties b/core/src/main/resources/hudson/model/Job/buildTimeTrend_zh_CN.properties new file mode 100644 index 0000000000000000000000000000000000000000..5152e4622490aca23b3f607859c1159c4bb34f7e --- /dev/null +++ b/core/src/main/resources/hudson/model/Job/buildTimeTrend_zh_CN.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Build=\u6784\u5efa +Duration=\u6301\u7eed\u65f6\u95f4 diff --git a/core/src/main/resources/hudson/model/Job/configure.jelly b/core/src/main/resources/hudson/model/Job/configure.jelly index 1fe55cf0b1eba039c4ac5657ea00b75b7b5f4ec8..30bbc21778d136b6b6d06f0321900cc9b673c4a1 100644 --- a/core/src/main/resources/hudson/model/Job/configure.jelly +++ b/core/src/main/resources/hudson/model/Job/configure.jelly @@ -1,7 +1,7 @@ - + +
    ${%LOADING}
    + + + @@ -51,22 +55,26 @@ THE SOFTWARE. - - + + + - - - + + + + - - - - + + + + + +
    -
    \ No newline at end of file + diff --git a/core/src/main/resources/hudson/model/Job/configure_da.properties b/core/src/main/resources/hudson/model/Job/configure_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..7a8456f776b9858992eb4b7761dd7e9bc97fd376 --- /dev/null +++ b/core/src/main/resources/hudson/model/Job/configure_da.properties @@ -0,0 +1,27 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +name={0} navn +Discard\ Old\ Builds=Fjern Gamle Byg +Save=Gem +LOADING=INDL\u00c6SER +Description=Beskrivelse diff --git a/core/src/main/resources/hudson/model/Job/configure_es.properties b/core/src/main/resources/hudson/model/Job/configure_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..b32553bf0872a35f1812534b96f309f4f72d3b2f --- /dev/null +++ b/core/src/main/resources/hudson/model/Job/configure_es.properties @@ -0,0 +1,27 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:cactusman +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +name={0} nombre +Discard\ Old\ Builds=Desechar ejecuciones antiguas +Save=Guardar +Description=Descripción +LOADING=CARGANDO diff --git a/core/src/main/resources/hudson/model/Job/configure_fr.properties b/core/src/main/resources/hudson/model/Job/configure_fr.properties index 1cf07224c53e9ab3ac11c5ffa23b5f1ab7143c6c..964fa78a286cc8eae67bb80f7753b19d1a5bef85 100644 --- a/core/src/main/resources/hudson/model/Job/configure_fr.properties +++ b/core/src/main/resources/hudson/model/Job/configure_fr.properties @@ -21,6 +21,6 @@ # THE SOFTWARE. name=Nom du {0} -Description= +Description=Description Discard\ Old\ Builds=Supprimer les anciens builds Save=Sauver diff --git a/core/src/main/resources/hudson/model/Job/configure_it.properties b/core/src/main/resources/hudson/model/Job/configure_it.properties new file mode 100644 index 0000000000000000000000000000000000000000..f94273572d5cfe406fa1109058b81f50dbe613b8 --- /dev/null +++ b/core/src/main/resources/hudson/model/Job/configure_it.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Description=Descrizione +Discard\ Old\ Builds=Elimina build precedenti +name={0} nome diff --git a/core/src/main/resources/hudson/model/Job/configure_ja.properties b/core/src/main/resources/hudson/model/Job/configure_ja.properties index a854aa8bafb0f254b799ab389c8f7253b8ae3a39..15fd6526e8a37917421459afbcfe3754a1125fa2 100644 --- a/core/src/main/resources/hudson/model/Job/configure_ja.properties +++ b/core/src/main/resources/hudson/model/Job/configure_ja.properties @@ -20,7 +20,8 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -name={0}\u540d -Description=\u8aac\u660e -Discard\ Old\ Builds=\u53e4\u3044\u30d3\u30eb\u30c9\u306e\u7834\u68c4 -Save=\u4fdd\u5b58 \ No newline at end of file +name={0}\u540D +Description=\u8AAC\u660E +Discard\ Old\ Builds=\u53E4\u3044\u30D3\u30EB\u30C9\u306E\u7834\u68C4 +Save=\u4FDD\u5B58 +LOADING=\u30ED\u30FC\u30C9\u4E2D... \ No newline at end of file diff --git a/core/src/main/resources/hudson/model/Job/configure_pt_BR.properties b/core/src/main/resources/hudson/model/Job/configure_pt_BR.properties index c8c6e56d6f117b889e8825f92659c35d0640db3c..a90b5e590416b24f3396492f7f01c5efd445d18b 100644 --- a/core/src/main/resources/hudson/model/Job/configure_pt_BR.properties +++ b/core/src/main/resources/hudson/model/Job/configure_pt_BR.properties @@ -24,3 +24,4 @@ name={0} nome Description=Descri\u00E7\u00E3o Discard\ Old\ Builds=Descartar Constru\u00E7\u00F5es Antigas Save=Salvar +LOADING= diff --git a/core/src/main/resources/hudson/model/Job/configure_zh_TW.properties b/core/src/main/resources/hudson/model/Job/configure_zh_TW.properties new file mode 100644 index 0000000000000000000000000000000000000000..d832dfb2b1d11bf5496d20852effee1d42b9c2e3 --- /dev/null +++ b/core/src/main/resources/hudson/model/Job/configure_zh_TW.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Save=\u5132\u5B58 diff --git a/core/src/main/resources/hudson/model/Job/index_da.properties b/core/src/main/resources/hudson/model/Job/index_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..8941ebc70809449a95d88afb2e44540dc24378d3 --- /dev/null +++ b/core/src/main/resources/hudson/model/Job/index_da.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Enable=Sl\u00e5 til +This\ project\ is\ currently\ disabled=Dette projekt er for nuv\u00e6rende sl\u00e5et fra diff --git a/core/src/main/resources/hudson/model/Job/index_de.properties b/core/src/main/resources/hudson/model/Job/index_de.properties index e04f61efa14c8622d68f3d8b6adb62067ed7305e..b1c41a0b1fdb7832ab09e0c99bae581220f55d33 100644 --- a/core/src/main/resources/hudson/model/Job/index_de.properties +++ b/core/src/main/resources/hudson/model/Job/index_de.properties @@ -20,9 +20,5 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Permalinks=Permalinks -Last\ build=Letzter Build -Last\ stable\ build=Letzter stabiler Build -Last\ successful\ build=Letzter erfolgreicher Build -Last\ failed\ build=Letzter fehlgeschlagener Build -This\ project\ is\ currently\ disabled=Dieses Projekt ist zur Zeit deaktiviert. +Enable=Aktivieren +This\ project\ is\ currently\ disabled=Dieses Projekt ist momentan deaktiviert. diff --git a/core/src/main/resources/hudson/model/Job/index_es.properties b/core/src/main/resources/hudson/model/Job/index_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..11872a2108c3e479b0cf479606823f134b647da2 --- /dev/null +++ b/core/src/main/resources/hudson/model/Job/index_es.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +This\ project\ is\ currently\ disabled=Este projecto está desactivado actualmente +Enable=Activar diff --git a/core/src/main/resources/hudson/model/Job/index_pt_BR.properties b/core/src/main/resources/hudson/model/Job/index_pt_BR.properties index d6e635437533e22634d2fb4455ca37e5d94b81c1..e518ddf964f5c64a44165fd6d9d3972c5406350b 100644 --- a/core/src/main/resources/hudson/model/Job/index_pt_BR.properties +++ b/core/src/main/resources/hudson/model/Job/index_pt_BR.properties @@ -20,8 +20,5 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Permalinks=Links permanentes -Last\ build=\u00DAltima constru\u00E7\u00E3o -Last\ stable\ build=\u00DAltima constru\u00E7\u00E3o est\u00E1vel -Last\ successful\ build=\u00DAltima constru\u00E7\u00E3o bem sucedida -Last\ failed\ build=\u00DAltima constru\u00E7\u00E3o que falhou +Enable= +This\ project\ is\ currently\ disabled= diff --git a/core/src/main/resources/hudson/model/Job/permalinks_da.properties b/core/src/main/resources/hudson/model/Job/permalinks_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..e4979bf5e121bd40d9416660a41440c8bde30865 --- /dev/null +++ b/core/src/main/resources/hudson/model/Job/permalinks_da.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Permalinks=Permalinks diff --git a/core/src/main/resources/hudson/model/Job/permalinks_es.properties b/core/src/main/resources/hudson/model/Job/permalinks_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..52098edf72bc2f2ed42136355b1424a7632d8ae8 --- /dev/null +++ b/core/src/main/resources/hudson/model/Job/permalinks_es.properties @@ -0,0 +1,24 @@ +### +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Permalinks=Permalinks diff --git a/core/src/main/resources/hudson/model/Job/permalinks_fi.properties b/core/src/main/resources/hudson/model/Job/permalinks_fi.properties new file mode 100644 index 0000000000000000000000000000000000000000..f32fb448a6ba568ffbf13e08eaf097041e687052 --- /dev/null +++ b/core/src/main/resources/hudson/model/Job/permalinks_fi.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Permalinks=Pysyv\u00E4t linkit diff --git a/core/src/main/resources/hudson/model/Job/permalinks_it.properties b/core/src/main/resources/hudson/model/Job/permalinks_it.properties new file mode 100644 index 0000000000000000000000000000000000000000..7cbc0f2fac230ca0dfadef838afa77b1789142d4 --- /dev/null +++ b/core/src/main/resources/hudson/model/Job/permalinks_it.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Permalinks=Permalink diff --git a/core/src/main/resources/hudson/model/Job/permalinks_nb_NO.properties b/core/src/main/resources/hudson/model/Job/permalinks_nb_NO.properties new file mode 100644 index 0000000000000000000000000000000000000000..75d24d7573b837ff8efcdf389a5c903d74995daf --- /dev/null +++ b/core/src/main/resources/hudson/model/Job/permalinks_nb_NO.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Permalinks=Permanente lenker diff --git a/core/src/main/resources/hudson/model/Job/permalinks_sl.properties b/core/src/main/resources/hudson/model/Job/permalinks_sl.properties new file mode 100644 index 0000000000000000000000000000000000000000..e3985fde5a8c1b23ca1dc04eacda1c1591d72ab0 --- /dev/null +++ b/core/src/main/resources/hudson/model/Job/permalinks_sl.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Permalinks=Ve\u010Dne povezave diff --git a/core/src/main/resources/hudson/model/Job/permalinks_sv_SE.properties b/core/src/main/resources/hudson/model/Job/permalinks_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..6a1376da88e2057206ac632cce7f52e4cc3ea46b --- /dev/null +++ b/core/src/main/resources/hudson/model/Job/permalinks_sv_SE.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Permalinks=Permal\u00E4nkar diff --git a/core/src/main/resources/hudson/model/Job/permalinks_zh_CN.properties b/core/src/main/resources/hudson/model/Job/permalinks_zh_CN.properties new file mode 100644 index 0000000000000000000000000000000000000000..70f08c4c2590f594fb64c55b6ec3abaab57415b0 --- /dev/null +++ b/core/src/main/resources/hudson/model/Job/permalinks_zh_CN.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Permalinks=\u6C38\u4E45\u8FDE\u63A5 diff --git a/core/src/main/resources/hudson/model/Job/permalinks_zh_TW.properties b/core/src/main/resources/hudson/model/Job/permalinks_zh_TW.properties new file mode 100644 index 0000000000000000000000000000000000000000..b66e0df49e43ac7177b80e716d9383469f5a4f8b --- /dev/null +++ b/core/src/main/resources/hudson/model/Job/permalinks_zh_TW.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Permalinks=\u6C38\u4E45\u9023\u7D50 diff --git a/core/src/main/resources/hudson/model/Job/rename.jelly b/core/src/main/resources/hudson/model/Job/rename.jelly index b9ee9ff503b0323168dfce3096497293d9acd222..55129508edd43efaabefcc8c476d3999c305b0c9 100644 --- a/core/src/main/resources/hudson/model/Job/rename.jelly +++ b/core/src/main/resources/hudson/model/Job/rename.jelly @@ -25,15 +25,32 @@ THE SOFTWARE. - - + + -
    - ${%description(it.name, newName)} - - - - + + + ${%noRenameWhileBuilding} + +
    ${%configWasSaved} +
    +
    + + ${%newNameInUse(newName)} + +
    ${%configWasSaved} +
    +
    + +
    + ${%description(it.name, newName)} + + + + +
    +
    -
    \ No newline at end of file + diff --git a/core/src/main/resources/hudson/model/Job/rename.properties b/core/src/main/resources/hudson/model/Job/rename.properties index 024cf25cd47f56fdab90292c5f3abee18b0c7576..2f53f923153748e6a0160f5a2900398d309cb7d6 100644 --- a/core/src/main/resources/hudson/model/Job/rename.properties +++ b/core/src/main/resources/hudson/model/Job/rename.properties @@ -20,6 +20,9 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. +noRenameWhileBuilding=Unable to rename a job while it is building. +newNameInUse=The name {0} is already in use. +configWasSaved=All other configuration options were saved. description=Are you sure about renaming {0} to {1}? Yes=Yes -No=No \ No newline at end of file +No=No diff --git a/core/src/main/resources/hudson/model/Job/rename_da.properties b/core/src/main/resources/hudson/model/Job/rename_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..c9e21f910d737b9dbc3e871fb52557bdf18be399 --- /dev/null +++ b/core/src/main/resources/hudson/model/Job/rename_da.properties @@ -0,0 +1,28 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +noRenameWhileBuilding=Kan ikke omd\u00f8be et job imens det bygger +Yes=Ja +No=Nej +configWasSaved=Alle andre konfigurationsindstillinger blev gemt. +description=Er du sikker p\u00e5 at du vil omd\u00f8be {0} til {1}? +newNameInUse=Navnet {0} er allerede i brug diff --git a/core/src/main/resources/hudson/model/Job/rename_de.properties b/core/src/main/resources/hudson/model/Job/rename_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..2eeb4dd60bfff6c64b91a3e760324dc58e3e2141 --- /dev/null +++ b/core/src/main/resources/hudson/model/Job/rename_de.properties @@ -0,0 +1,28 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe, Simon Wiest +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +description=Möchten Sie wirklich {0} in {1} umbenennen? +Yes=Ja +No=Nein +noRenameWhileBuilding=Ein Job kann nicht umbenannt werden, während er gebaut wird. +configWasSaved=Alle anderen Konfigurationseinstellungen wurden übernommen. +newNameInUse=Der Name {0} wird bereits verwendet. \ No newline at end of file diff --git a/core/src/main/resources/hudson/model/Job/rename_es.properties b/core/src/main/resources/hudson/model/Job/rename_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..58c3c21f77d256e4d50b3a335da2375acdb47eb2 --- /dev/null +++ b/core/src/main/resources/hudson/model/Job/rename_es.properties @@ -0,0 +1,28 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +noRenameWhileBuilding=No es posible renombrar un proyecto mientras se está ejecutando. +configWasSaved=Las demás opciones de configuración sí se han guardado. +description=¿Estás seguro de querer renombrar {0} a {1}? +Yes=Sí +No=No +newNameInUse=El nombre {0} ya existe. diff --git a/core/src/main/resources/hudson/model/Job/rename_fr.properties b/core/src/main/resources/hudson/model/Job/rename_fr.properties index 8a5a2dad9e1ebfc5fc7587eb792ffd5ca9c7f18c..29757ddd9b876aec0761fa26eb06abe1bcd3684c 100644 --- a/core/src/main/resources/hudson/model/Job/rename_fr.properties +++ b/core/src/main/resources/hudson/model/Job/rename_fr.properties @@ -20,6 +20,6 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -description=Voulez-vous vraiment renommer {0} en {1}? -Yes=Oui -No=Non +description=Voulez-vous vraiment renommer {0} en {1}? +Yes=Oui +No=Non diff --git a/core/src/main/resources/hudson/model/Job/rename_ja.properties b/core/src/main/resources/hudson/model/Job/rename_ja.properties index b90bd4df7999c2f6fd3c04ca8aabaac44195ef70..644e7537255a7d1b03290f3b8e5d8fd7b74249cc 100644 --- a/core/src/main/resources/hudson/model/Job/rename_ja.properties +++ b/core/src/main/resources/hudson/model/Job/rename_ja.properties @@ -20,6 +20,9 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. +noRenameWhileBuilding=\u30D3\u30EB\u30C9\u4E2D\u306B\u30B8\u30E7\u30D6\u540D\u3092\u5909\u66F4\u3067\u304D\u307E\u305B\u3093\u3002 +newNameInUse=\u30B8\u30E7\u30D6\u540D {0} \u306F\u3059\u3067\u306B\u4F7F\u7528\u3055\u308C\u3066\u3044\u307E\u3059\u3002 +configWasSaved=\u4ED6\u306E\u30AA\u30D7\u30B7\u30E7\u30F3\u306F\u3059\u3079\u3066\u4FDD\u5B58\u3055\u308C\u307E\u3057\u305F\u3002 description={0}\u304B\u3089{1}\u306B\u5909\u66F4\u3057\u3066\u3088\u308D\u3057\u3044\u3067\u3059\u304B? Yes=\u306F\u3044 No=\u3044\u3044\u3048 \ No newline at end of file diff --git a/core/src/main/resources/hudson/model/Job/rename_pt_BR.properties b/core/src/main/resources/hudson/model/Job/rename_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..7072c54e7b7022272dddeaeea86e45b274c78680 --- /dev/null +++ b/core/src/main/resources/hudson/model/Job/rename_pt_BR.properties @@ -0,0 +1,34 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +# Unable to rename a job while it is building. +noRenameWhileBuilding= +# Yes +Yes=Sim +# No +No= +# All other configuration options were saved. +configWasSaved= +# Are you sure about renaming {0} to {1}? +description= +# The name {0} is already in use. +newNameInUse= diff --git a/core/src/main/resources/hudson/model/Job/rename_sv_SE.properties b/core/src/main/resources/hudson/model/Job/rename_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..fbadf7bcfee4880610cf4ef668d469718f38da3f --- /dev/null +++ b/core/src/main/resources/hudson/model/Job/rename_sv_SE.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +No=Nej +Yes=Ja +description=\u00C4r du s\u00E4ker att du vill \u00E4ndra namn ifr\u00E5n {0} till {1}? diff --git a/core/src/main/resources/hudson/model/Label/index_da.properties b/core/src/main/resources/hudson/model/Label/index_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..de787a618c58dd30a8cab9fa84304166583499ef --- /dev/null +++ b/core/src/main/resources/hudson/model/Label/index_da.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Nodes\:=Noder\: +None=Ingen +Projects=Projekter diff --git a/core/src/main/resources/hudson/model/Label/index_de.properties b/core/src/main/resources/hudson/model/Label/index_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..dc65b01cc5ff4c84e03cf8a6662600d1febd1f9a --- /dev/null +++ b/core/src/main/resources/hudson/model/Label/index_de.properties @@ -0,0 +1,3 @@ +Nodes\:=Knoten: +Projects=Projekte +None=Keine diff --git a/core/src/main/resources/hudson/model/Label/index_es.properties b/core/src/main/resources/hudson/model/Label/index_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..1791cb31ddceadca82c52720c22518ff5e3e20e2 --- /dev/null +++ b/core/src/main/resources/hudson/model/Label/index_es.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Nodes\:=Nodos +Projects=Proyectos +None=Ninguno + diff --git a/core/src/main/resources/hudson/model/Label/index_fr.properties b/core/src/main/resources/hudson/model/Label/index_fr.properties index f3630cb9b1a55cdd85edf5dedda74c5cfa2fabbe..fdd83eeaa9b8e99da31233c7027f2f5ae60dbb0f 100644 --- a/core/src/main/resources/hudson/model/Label/index_fr.properties +++ b/core/src/main/resources/hudson/model/Label/index_fr.properties @@ -20,6 +20,6 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Nodes\:=Noeuds: -Projects=Projets -None=Aucun +Nodes\:=Noeuds: +Projects=Projets +None=Aucun diff --git a/core/src/main/resources/hudson/model/Label/index_pt_BR.properties b/core/src/main/resources/hudson/model/Label/index_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..f034289c9a91c039e832026ff4e59e13d15ec304 --- /dev/null +++ b/core/src/main/resources/hudson/model/Label/index_pt_BR.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Nodes\:= +None= +Projects= diff --git a/core/src/main/resources/hudson/model/Label/sidepanel.jelly b/core/src/main/resources/hudson/model/Label/sidepanel.jelly index ba56a7182f112264da4f9b7f8d29e731591c2945..5574ee6ae60476df7f72d9e8cdb6d982479880b3 100644 --- a/core/src/main/resources/hudson/model/Label/sidepanel.jelly +++ b/core/src/main/resources/hudson/model/Label/sidepanel.jelly @@ -32,6 +32,7 @@ THE SOFTWARE. + \ No newline at end of file diff --git a/core/src/main/resources/hudson/model/Label/sidepanel_da.properties b/core/src/main/resources/hudson/model/Label/sidepanel_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..2fe3485ea4eeefb41cf6e669b866c12e54b060cd --- /dev/null +++ b/core/src/main/resources/hudson/model/Label/sidepanel_da.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Back\ to\ Dashboard=Tilbage til oversigtssiden +Overview=Oversigt +Load\ Statistics=Belastningsstatistik diff --git a/core/src/main/resources/hudson/model/Label/sidepanel_de.properties b/core/src/main/resources/hudson/model/Label/sidepanel_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..9c550fed314126854ea2ed29d90ee710fd8ffe1b --- /dev/null +++ b/core/src/main/resources/hudson/model/Label/sidepanel_de.properties @@ -0,0 +1,3 @@ +Back\ to\ Dashboard=Zurück zur Übersicht +Overview=Überblick +Load\ Statistics=Auslastung diff --git a/core/src/main/resources/hudson/model/Label/sidepanel_es.properties b/core/src/main/resources/hudson/model/Label/sidepanel_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..e8677ee2b7c490d14516fe338ff46366b79ec60c --- /dev/null +++ b/core/src/main/resources/hudson/model/Label/sidepanel_es.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Back\ to\ Dashboard=Volver al Panel de control +Overview=Visión general +Load\ Statistics=Cargar estadísticas diff --git a/core/src/main/resources/hudson/model/Label/sidepanel_fr.properties b/core/src/main/resources/hudson/model/Label/sidepanel_fr.properties index faeee17bd5dbe296a1b1fe5712f1fe6ab316f871..63145e9e4bf16e68f0f84f81f1addfcf0eb012d2 100644 --- a/core/src/main/resources/hudson/model/Label/sidepanel_fr.properties +++ b/core/src/main/resources/hudson/model/Label/sidepanel_fr.properties @@ -20,6 +20,6 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Back\ to\ Dashboard=Retour au tableau de bord -Overview=Vue générale -Load\ Statistics=Statistiques de l''utilisation du système +Back\ to\ Dashboard=Retour au tableau de bord +Overview=Vue générale +Load\ Statistics=Statistiques de l''utilisation du système diff --git a/core/src/main/resources/hudson/model/Label/sidepanel_ja.properties b/core/src/main/resources/hudson/model/Label/sidepanel_ja.properties index 9ed749119e7ea1ff6c3edd72eb5675dcd94958a8..0132b0e426f59b95dd850b271de51d067d8649a8 100644 --- a/core/src/main/resources/hudson/model/Label/sidepanel_ja.properties +++ b/core/src/main/resources/hudson/model/Label/sidepanel_ja.properties @@ -1,6 +1,6 @@ # The MIT License # -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -20,4 +20,6 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Back\ to\ Dashboard=\u30C0\u30C3\u30B7\u30E5\u30DC\u30FC\u30C9\u3078\u623B\u308B \ No newline at end of file +Back\ to\ Dashboard=\u30C0\u30C3\u30B7\u30E5\u30DC\u30FC\u30C9\u3078\u623B\u308B +Overview=\u6982\u8981 +Load\ Statistics=\u8CA0\u8377\u7D71\u8A08 diff --git a/core/src/main/resources/hudson/model/Label/sidepanel_pt_BR.properties b/core/src/main/resources/hudson/model/Label/sidepanel_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..3dbe6ae8720433b70d66766af946b3f67fbde83c --- /dev/null +++ b/core/src/main/resources/hudson/model/Label/sidepanel_pt_BR.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Back\ to\ Dashboard= +Overview={0}Vis\u00E3o Geral +Load\ Statistics=Carregar Estat\u00EDsticas diff --git a/core/src/main/resources/hudson/model/Label/sidepanel_ru.properties b/core/src/main/resources/hudson/model/Label/sidepanel_ru.properties new file mode 100644 index 0000000000000000000000000000000000000000..0602bbe83575f318aa5d177cdb615ccdf6132bde --- /dev/null +++ b/core/src/main/resources/hudson/model/Label/sidepanel_ru.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Back\ to\ Dashboard=\u0414\u043E\u043C\u043E\u0439 +Load\ Statistics=\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043A\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043A\u0438 +Overview=\u041E\u0431\u0437\u043E\u0440 diff --git a/core/src/main/resources/hudson/model/ListView/configure-entries.jelly b/core/src/main/resources/hudson/model/ListView/configure-entries.jelly index 5149cf47b4bcd414dd012fcf3ec2436f4bcd6a80..37a3a7a2b5fba4c3b22ecbbf570da2927894b36c 100644 --- a/core/src/main/resources/hudson/model/ListView/configure-entries.jelly +++ b/core/src/main/resources/hudson/model/ListView/configure-entries.jelly @@ -1,7 +1,7 @@ - + + + + + + + + - ${job.name} -
    + ${job.name}
    @@ -41,6 +51,18 @@ THE SOFTWARE. + + + + + + + +
    + diff --git a/core/src/main/resources/hudson/model/ListView/configure-entries_da.properties b/core/src/main/resources/hudson/model/ListView/configure-entries_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..cc314b5b1c61b80a471a187254781a97302333b2 --- /dev/null +++ b/core/src/main/resources/hudson/model/ListView/configure-entries_da.properties @@ -0,0 +1,33 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +All\ selected\ jobs=Alle valgte jobs +Jobs=Jobs +Status\ Filter=Statusfilter +Use\ a\ regular\ expression\ to\ include\ jobs\ into\ the\ view=Benyt et regul\u00e6rt udtryk til at inkludere jobs i visningen +Regular\ expression=Regul\u00e6rt udtryk +Columns=S\u00f8jler +Add\ column=Tilf\u00f8j s\u00f8jle +Job\ Filters=Jobfiltre +Add\ Job\ Filter=Tilf\u00f8j jobfilter +Disabled\ jobs\ only=Kun jobs der er sl\u00e5et fra +Enabled\ jobs\ only=Kun jobs der er sl\u00e5et til diff --git a/core/src/main/resources/hudson/model/ListView/configure-entries_de.properties b/core/src/main/resources/hudson/model/ListView/configure-entries_de.properties index d81b4f9d07825cbeb8b124a356479e3d07d8ce5b..8fbd79cc4d414feaf7ea22b379ed8c956e03f3df 100644 --- a/core/src/main/resources/hudson/model/ListView/configure-entries_de.properties +++ b/core/src/main/resources/hudson/model/ListView/configure-entries_de.properties @@ -23,3 +23,5 @@ Jobs=Jobs Use\ a\ regular\ expression\ to\ include\ jobs\ into\ the\ view=Regulären Ausdruck verwenden, um Jobs für diese Ansicht auszuwählen. Regular\ expression=Regulärer Ausdruck +Columns=Spalten +Add\ column=Spalte hinzufügen diff --git a/core/src/main/resources/hudson/model/ListView/configure-entries_es.properties b/core/src/main/resources/hudson/model/ListView/configure-entries_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..928921defff627ba010453ebe5032cdf0f13b916 --- /dev/null +++ b/core/src/main/resources/hudson/model/ListView/configure-entries_es.properties @@ -0,0 +1,34 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Jobs=Proyectos +Use\ a\ regular\ expression\ to\ include\ jobs\ into\ the\ view=\ + Utilizar una expresión regular para incluir proyectos dentro de la vista +Regular\ expression=Expresión regular +Columns=Columnas +Add\ column=Añadir columna +All\ selected\ jobs=Todos los trabajos seleccionados +Status\ Filter=Estado del filtro +Job\ Filters=Filtros +Add\ Job\ Filter=Añadir un filtro +Disabled\ jobs\ only=Desacivar sólo estos trabajos +Enabled\ jobs\ only=Activar sólo estos trabajos diff --git a/core/src/main/resources/hudson/model/ListView/configure-entries_fr.properties b/core/src/main/resources/hudson/model/ListView/configure-entries_fr.properties index 675b70d2f5257d47a7a04e0d1896230a774ea979..6c8d6df3ac9347cda63d0f711d041a89b8e416c8 100644 --- a/core/src/main/resources/hudson/model/ListView/configure-entries_fr.properties +++ b/core/src/main/resources/hudson/model/ListView/configure-entries_fr.properties @@ -20,6 +20,8 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. +Add\ column=Ajouter une colonne +Columns=Colonnes Jobs= -Use\ a\ regular\ expression\ to\ include\ jobs\ into\ the\ view=Utilisez une expression r?guli?re pour inclure les jobs dans la vue -Regular\ expression=Expression r?guli?re +Use\ a\ regular\ expression\ to\ include\ jobs\ into\ the\ view=Utilisez une expression r\u00E9guli\u00E8re pour inclure les jobs dans la vue +Regular\ expression=Expression r\u00E9guli\u00E8re diff --git a/core/src/main/resources/hudson/model/ListView/configure-entries_ja.properties b/core/src/main/resources/hudson/model/ListView/configure-entries_ja.properties index 88b4c907406a7fa45315607f35fff229dcbe9219..7b9b712a9bce390e765307b6961cae1420fc5eb4 100644 --- a/core/src/main/resources/hudson/model/ListView/configure-entries_ja.properties +++ b/core/src/main/resources/hudson/model/ListView/configure-entries_ja.properties @@ -1,6 +1,6 @@ # The MIT License # -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -20,8 +20,15 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Jobs=\u30B8\u30E7\u30D6 -Use\ a\ regular\ expression\ to\ include\ jobs\ into\ the\ view=\u6B63\u898F\u8868\u73FE\u3067\u30B8\u30E7\u30D6\u3092\u6307\u5B9A -Regular\ expression=\u6B63\u898F\u8868\u73FE -Columns=\u30AB\u30E9\u30E0 -Add\ column=\u30AB\u30E9\u30E0\u8FFD\u52A0 +Jobs=\u30b8\u30e7\u30d6 +Use\ a\ regular\ expression\ to\ include\ jobs\ into\ the\ view=\u6b63\u898f\u8868\u73fe\u3067\u30b8\u30e7\u30d6\u3092\u6307\u5b9a +Regular\ expression=\u6b63\u898f\u8868\u73fe +Columns=\u30ab\u30e9\u30e0 +Add\ column=\u30ab\u30e9\u30e0\u8ffd\u52a0 +Job\ Filters=\u30b8\u30e7\u30d6\u30d5\u30a3\u30eb\u30bf\u30fc +Add\ Job\ Filter=\u30b8\u30e7\u30d6\u30d5\u30a3\u30eb\u30bf\u30fc\u306e\u8ffd\u52a0 +Status\ Filter=\u30b9\u30c6\u30fc\u30bf\u30b9\u30d5\u30a3\u30eb\u30bf\u30fc +All\ selected\ jobs=\u9078\u629e\u6e08\u307f\u30b8\u30e7\u30d6\u3092\u3059\u3079\u3066 +Enabled\ jobs\ only=\u6709\u52b9\u306a\u30b8\u30e7\u30d6\u306e\u307f +Disabled\ jobs\ only=\u7121\u52b9\u306a\u30b8\u30e7\u30d6\u306e\u307f + diff --git a/core/src/main/resources/hudson/model/ListView/configure-entries_nl.properties b/core/src/main/resources/hudson/model/ListView/configure-entries_nl.properties index cba5bb7e7bd8ab2d50cb697a7249bed6bdf57936..406cc3bcf7d7dc0337ed736e919ccc3d98e668f5 100644 --- a/core/src/main/resources/hudson/model/ListView/configure-entries_nl.properties +++ b/core/src/main/resources/hudson/model/ListView/configure-entries_nl.properties @@ -20,6 +20,8 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. +Add\ column=Voeg kolom toe +Columns=Kolommen Jobs=Jobs Use\ a\ regular\ expression\ to\ include\ jobs\ into\ the\ view=Gebruik een reguliere uitdrukking om jobs te selecteren voor het overzichtsscherm Regular\ expression=Reguliere uitdrukking diff --git a/core/src/main/resources/hudson/model/ListView/configure-entries_pt_BR.properties b/core/src/main/resources/hudson/model/ListView/configure-entries_pt_BR.properties index fdab636e2b7bb8ba63211d4396ec7d9cc5e78839..c131d61ae1a2b95eab2f94f0deb83c4ba036a569 100644 --- a/core/src/main/resources/hudson/model/ListView/configure-entries_pt_BR.properties +++ b/core/src/main/resources/hudson/model/ListView/configure-entries_pt_BR.properties @@ -21,3 +21,13 @@ # THE SOFTWARE. Jobs=Tarefas +All\ selected\ jobs= +Status\ Filter= +Use\ a\ regular\ expression\ to\ include\ jobs\ into\ the\ view= +Regular\ expression= +Columns= +Add\ column= +Job\ Filters= +Add\ Job\ Filter= +Disabled\ jobs\ only= +Enabled\ jobs\ only= diff --git a/core/src/main/resources/hudson/model/ListView/configure-entries_sv_SE.properties b/core/src/main/resources/hudson/model/ListView/configure-entries_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..52cbfdc7369f0504ac5e0c2d00c4365ab00d5641 --- /dev/null +++ b/core/src/main/resources/hudson/model/ListView/configure-entries_sv_SE.properties @@ -0,0 +1,27 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Add\ column=L\u00E4gg till kolumn +Columns=Kolumner +Jobs=Jobb +Regular\ expression=Regulj\u00E4rt uttryck +Use\ a\ regular\ expression\ to\ include\ jobs\ into\ the\ view=Anv\u00E4nd ett regulj\u00E4rt uttryck f\u00F6r att inkludera job i vyn diff --git a/core/src/main/resources/hudson/model/ListView/newViewDetail_da.properties b/core/src/main/resources/hudson/model/ListView/newViewDetail_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..98535a2a6cdbd5f7dea640cab44f523a315b2b19 --- /dev/null +++ b/core/src/main/resources/hudson/model/ListView/newViewDetail_da.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +blurb=Viser jobs i et simpelt listeformat. Du kan v\u00e6lge hvilke jobs skal vises i hvilken visning. diff --git a/core/src/main/resources/hudson/model/ListView/newViewDetail_de.properties b/core/src/main/resources/hudson/model/ListView/newViewDetail_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..ecf2d52cfd5a35fc254e76e1ae431fc1fd933bc8 --- /dev/null +++ b/core/src/main/resources/hudson/model/ListView/newViewDetail_de.properties @@ -0,0 +1,3 @@ +blurb=\ + Zeigt Jobs in einem einfachen Listenformat an. Sie können definieren, \ + welche Jobs in welcher Ansicht anzeigt werden. diff --git a/core/src/main/resources/hudson/model/ListView/newViewDetail_es.properties b/core/src/main/resources/hudson/model/ListView/newViewDetail_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..0f6e2cb44c0b2f12e3179d1a00ac259f974bf85d --- /dev/null +++ b/core/src/main/resources/hudson/model/ListView/newViewDetail_es.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +blurb=\ + Mostrar projectos como una lista simple. Puedes elegir qué proyectos mostrar en cada vista. + diff --git a/core/src/main/resources/hudson/model/ListView/newViewDetail_fr.properties b/core/src/main/resources/hudson/model/ListView/newViewDetail_fr.properties index 97c5d0f568c2a03df91c59cd3c510a5cc9c32c3e..086460f0ebed4d02727cd5ccd77f4d2afb6418fc 100644 --- a/core/src/main/resources/hudson/model/ListView/newViewDetail_fr.properties +++ b/core/src/main/resources/hudson/model/ListView/newViewDetail_fr.properties @@ -21,4 +21,4 @@ # THE SOFTWARE. blurb=\ - Montre les jobs dans une simple liste. Vous pouvez choisir les jobs à afficher dans chaque vue. + Montre les jobs dans une simple liste. Vous pouvez choisir les jobs à afficher dans chaque vue. diff --git a/core/src/main/resources/hudson/model/ListView/newViewDetail_ko.properties b/core/src/main/resources/hudson/model/ListView/newViewDetail_ko.properties new file mode 100644 index 0000000000000000000000000000000000000000..3b34885b39e44b9ef4ee132a04692eb517d056c5 --- /dev/null +++ b/core/src/main/resources/hudson/model/ListView/newViewDetail_ko.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +blurb=\uB2E8\uC21C \uBAA9\uB85D \uD615\uC2DD\uC73C\uB85C \uC791\uC5C5\uC744 \uBCF4\uC5EC\uC90C. \uC870\uD68C\uC5D0 \uD45C\uC2DC\uB420 \uC791\uC5C5\uC744 \uC120\uD0DD\uD560 \uC218 \uC788\uC74C. diff --git a/core/src/main/resources/hudson/model/ListView/newViewDetail_pt_BR.properties b/core/src/main/resources/hudson/model/ListView/newViewDetail_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..0185b6292e16ec98fbc5ebda7ec7beb19b31527b --- /dev/null +++ b/core/src/main/resources/hudson/model/ListView/newViewDetail_pt_BR.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +# \ +# Shows jobs in a simple list format. You can choose which jobs are to be displayed in which view. +blurb=\ +# Estes usu\u00E1rios podem se logar no Hudson. Este \u00E9 um super conjunto desta lista, \ diff --git a/core/src/main/resources/hudson/model/ListView/newViewDetail_ru.properties b/core/src/main/resources/hudson/model/ListView/newViewDetail_ru.properties new file mode 100644 index 0000000000000000000000000000000000000000..142017313d2c6e78ea85751b8c2dec0cd81ef35c --- /dev/null +++ b/core/src/main/resources/hudson/model/ListView/newViewDetail_ru.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +blurb=\u041F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u0435\u0442 \u0437\u0430\u0434\u0430\u0447\u0438 \u0432 \u0432\u0438\u0434\u0435 \u043E\u0431\u044B\u0447\u043D\u043E\u0433\u043E \u0441\u043F\u0438\u0441\u043A\u0430. \u0412\u044B \u043C\u043E\u0436\u0435\u0442\u0435 \u0432\u044B\u0431\u0440\u0430\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0438 \u0434\u043B\u044F \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F \u0432 \u0437\u0430\u0434\u0430\u043D\u043D\u043E\u043C \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0438. diff --git a/core/src/main/resources/hudson/model/ListView/newViewDetail_sv_SE.properties b/core/src/main/resources/hudson/model/ListView/newViewDetail_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..710cfa03dd7f620feef737856eac2f0ff35cc671 --- /dev/null +++ b/core/src/main/resources/hudson/model/ListView/newViewDetail_sv_SE.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +blurb=Visar jobb i en enkel list. Du kan v\u00E4lja vilka jobb som ska visas diff --git a/core/src/main/resources/hudson/model/LoadStatistics/main.jelly b/core/src/main/resources/hudson/model/LoadStatistics/main.jelly index 9c05b51f83b8d8160b55d90d1fedec890cc89ae0..77602e8361d3d7c7588128bf37472ec290e5af51 100644 --- a/core/src/main/resources/hudson/model/LoadStatistics/main.jelly +++ b/core/src/main/resources/hudson/model/LoadStatistics/main.jelly @@ -58,7 +58,7 @@ THE SOFTWARE.
    - + [${%Load statistics graph}]
    ${%blurb}
    diff --git a/core/src/main/resources/hudson/model/LoadStatistics/main_da.properties b/core/src/main/resources/hudson/model/LoadStatistics/main_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..73e40ba78d3799dd67afe4e71d371fe871a4f85b --- /dev/null +++ b/core/src/main/resources/hudson/model/LoadStatistics/main_da.properties @@ -0,0 +1,56 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +title=Indl\u00e6s statistikker: {0} +Short=Kort +Load\ statistics\ graph=Indl\u00e6s statistikgraf +Medium=Mellem +Timespan=Tidsperiode +Long=Lang +blurb=\ +Belastningsstatistikkerne overv\u00e5ger tre hovedmetrikker omkring ressourceudnyttelse: \ +
    \ +
    Det totale antal afviklere
    \ +
    \ +For en computer er dette antallet af afviklere den computer har. \ +For en etiket er dette summen af alle afviklere, p\u00e5 alle computere, med denne etiket. \ +For hele Hudson er dette summen af alle afviklere p\u00e5 alle maskiner i denne Hudson installation. \ +Udover igennem konfigurations\u00e6ndringer kan denne v\u00e6rdi \u00e6ndre sig n\u00e5r slaver g\u00e5r offline. \ +
    \ +
    Antal afviklere i brug
    \ +
    \ +Denne linje viser antallet af afviklere (som delm\u00e6ngde af de ovenfor optalte) \ +der udf\u00f8rer byg. Forholdet imellem dette antal og summen af afviklere giver dig et indtryk af \ +ressourceudnyttelsen. Hvis alle dine afviklere er optagede i l\u00e6ngere perioder b\u00f8r \ +du overveje at tilf\u00f8je flere computere til din Hudson klynge. \ +
    \ +
    K\u00f8 l\u00e6ngde
    \ +
    \ +Dette er antallet af jobs i byggek\u00f8en der venter p\u00e5 en tilg\u00e6ngelig afvikler (p\u00e5 denne computer, \ +denne etiket, eller denne Hudson, respektivt.) \ +Dette inkluderer ikke antallet af jobs der er i stilleperioden, det inkluderer heller ikke \ +jobs der er i k\u00f8 fordi tidligere k\u00f8rsler af samme jobs stadig er i gang. \ +Hvis denne linje g\u00e5r over 0 betyder det at Hudson kan k\u00f8re flere byg hvis du tilf\u00f8jer flere computere. \ +
    \ +
    \ +Grafen er en eksponentiel moving average af de periodisk opsamlede data. \ +De 3 tidsperioder bliver opdateret hvert 10.sekund, hvert 1 minut og hver 1 time respektivt. diff --git a/core/src/main/resources/hudson/model/LoadStatistics/main_de.properties b/core/src/main/resources/hudson/model/LoadStatistics/main_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..6a4f3b6b67c9b3908f4387ec492ef1ca3d59a624 --- /dev/null +++ b/core/src/main/resources/hudson/model/LoadStatistics/main_de.properties @@ -0,0 +1,54 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +Load\ statistics\ graph=Auslastungsdiagramm +title=Auslastung von {0} +Timespan=Zeitraum +Short=Kurz +Medium=Mittel +Long=Lang +blurb=\ + Die Auslastung mit Hilfe von drei Metriken überwacht: \ +
    \ +
    Gesamtanzahl der Build-Prozessoren
    \ +
    Bei einem Rechner entspricht dies der Anzahl der Build-Prozessoren auf diesem Rechner. \ + Bei einem Label entspricht dies der Summe aller Build-Prozessoren, welche diesem Label \ + zugewiesen sind. Für Hudson insgesamt ist es die Summe über alle Rechner dieser \ + Hudson-Installation. Dieser Wert kann sich verändern, wenn Slaves offline gehen.
    \ + \ +
    Anzahl der beschäftigten Build-Prozessoren
    \ +
    Diese Kurve verfolgt (aus der oben angegebenen Gesamtanzahl) die Anzahl derjenigen \ + Build-Prozessoren, die Builds ausführen. Das Verhältnis dieser Zahl zur Gesamtzahl ist die \ + Ressourcenauslastung. Wenn alle Build-Prozessoren über längere Zeit beschäftigt sind, \ + sollten Sie in Betracht ziehen, weitere Rechner Ihrem Hudson-Cluster hinzuzufügen.
    \ + \ +
    Länge der Warteschlange
    \ +
    Dies ist die Anzahl an Jobs, die in der Warteschlange auf einen freien Build-Prozessor \ + warten (jeweils auf diesem Rechner, in diesem Label, in der Hudson-Instanz insgesamt). Jobs, \ + die sich in der Ruheperiode befinden, werden nicht mitgezählt, ebenso wie Jobs, die sich in \ + der Warteschlange befinden, weil bereits ein früher gestarteter Build dieses Jobs noch läuft. \ + Ein Wert über 0 bedeutet hier, dass Hudson mehr Jobs bauen könnte, wenn Sie zusätzliche Rechner \ + Ihrem Hudson-Cluster hinzufügen würden.
    \ + \ + \ + Das Diagramm stellt einen exponentiellen, gleitenden Durchschnitt regelmäßig erhobener \ + Daten dar (jeweils alle 10 Sekunden, jede Minute und jede Stunde). + diff --git a/core/src/main/resources/hudson/model/LoadStatistics/main_es.properties b/core/src/main/resources/hudson/model/LoadStatistics/main_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..30c5b0663fe0b8cdf6fd9dd1481711197ba2709f --- /dev/null +++ b/core/src/main/resources/hudson/model/LoadStatistics/main_es.properties @@ -0,0 +1,57 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +title=Estadísticas de carga: {0} +blurb=\ + Las estadísticas de carga hacen un seguimiento de la métrica de utilización de recursos:\ +
    \ +
    Número total de ejecutores
    \ +
    \ + Para un ordenador: es el numero de ejecutores para cada máquina. \ + Para una etiqueta: es la suma de todos los ejecutores que comparten la etiqueta. \ + Para todo Hudson: es la suma de todos los ejecutores de la instalación de Hudson. \ + Este número cambia no sólo por cambios en la configuración, sino además cuando hay nodos que se ponen fuera de línea. \ +
    \ +
    Número de ejecutores ocupados
    \ +
    \ + Esta línea representa el número de ejecutores, entro los contabilizados arriba, que están procesando trabajos. \ + El ratio de estos entre el total representa el rango de utilización de recursos. \ + Si todos los ejecutores estan ocupados durante mucho tiempo, considera la opción de añadir más nodos. \ +
    \ +
    Tamaño de la cola
    \ +
    \ + Este es el numero de tareas que estan en la cola esperando por un ejecutor libre \ + bien sea en este nodo, en esta etiqueta o en este Hudson. \ + El número no incluye trabajos que estan en el periodo de gracia ni aquellos que estan en la \ + cola porque hay ejecuciones del mismo proyecto activas. \ + Si esta línea supera el cero, significa que este Hudson podría ejecutar mas trabajos añadiendo \ + más nodos.\ +
    \ +
    \ + El gráfico es exponencial calculando medias de los datos recogidos periódicamente. \ + Se hacen tomas de datos de 3 tipos: cada 10 segundos, cada minuto y cada hora, para los valores de intervalo pequeño, mediano y grande respectivamente. + +Short=Pequeño +Long=Grande +Timespan=Visualizar datos para valores de intervalo: +Medium=Mediano +Load\ statistics\ graph=Cargar gráfico de estadísticas diff --git a/core/src/main/resources/hudson/model/LoadStatistics/main_fr.properties b/core/src/main/resources/hudson/model/LoadStatistics/main_fr.properties index 5105372331330b465d93c915cc7931e4ed95537e..ab833f1dda0a021f5bb218b5f02f5d266270bb95 100644 --- a/core/src/main/resources/hudson/model/LoadStatistics/main_fr.properties +++ b/core/src/main/resources/hudson/model/LoadStatistics/main_fr.properties @@ -21,36 +21,36 @@ # THE SOFTWARE. title=Statistiques de l''utilisation du système: {0} -Timespan=Durée -Short=Courte -Medium=Moyenne -Long=Longue +Timespan=Durée +Short=Courte +Medium=Moyenne +Long=Longue blurb=\ Les statistiques d''utilisation du système permettre de garder trace de trois métriques de mesure de la charge: \
    \
    Nombre total d''exécuteurs
    \
    \ - Pour un ordinateur, il s''agit du nombre d''exécuteurs de cet ordinateur. \ - Pour un libellé, cela correspond à la somme des exécuteurs sur tous les ordinateurs possédant ce libellé. \ - Pour Hudson, il s''agit de la somme de tous les exécuteurs disponibles sur tous les ordinateurs rattachés à cette installation de Hudson. \ + Pour un ordinateur, il s''agit du nombre d''exécuteurs de cet ordinateur. \ + Pour un libellé, cela correspond à la somme des exécuteurs sur tous les ordinateurs possédant ce libellé. \ + Pour Hudson, il s''agit de la somme de tous les exécuteurs disponibles sur tous les ordinateurs rattachés à cette installation de Hudson. \ En dehors des changements de configuration, cette valeur peut également changer quand les esclaves se déconnectent. \
    \
    Nombre d''exécuteurs occupés
    \
    \ - Cette ligne donne le nombre d''exécuteurs (parmi ceux comptés ci-dessus) \ - qui s''occupent des builds. Le ratio de ce nombre avec le nombre total d''exécuteurs \ - donne l''utilisation des ressources. Si tous vos exécuteurs sont occupés pendant une \ + Cette ligne donne le nombre d''exécuteurs (parmi ceux comptés ci-dessus) \ + qui s''occupent des builds. Le ratio de ce nombre avec le nombre total d''exécuteurs \ + donne l''utilisation des ressources. Si tous vos exécuteurs sont occupés pendant une \ période prolongée, pensez à ajouter plusieurs d''ordinateurs à votre cluster Hudson.\
    \
    Longueur de la file d''attente
    \
    \ - C''est le nombre de jobs qui sont dans la file des builds, en attente d''un exécuteur \ - disponible (respectivement pour cet ordinateur, pour ce libellé ou pour Hudson en général). \ - Cela n''inclue pas les jobs qui sont dans la 'période silencieuse' (quiet period ou période \ - de délai), ni les jobs qui sont dans la file à cause de builds précédents toujours en cours. \ + C''est le nombre de jobs qui sont dans la file des builds, en attente d''un exécuteur \ + disponible (respectivement pour cet ordinateur, pour ce libellé ou pour Hudson en général). \ + Cela n''inclue pas les jobs qui sont dans la 'période silencieuse' (quiet period ou période \ + de délai), ni les jobs qui sont dans la file à cause de builds précédents toujours en cours. \ Si cette ligne dépasse 0, cela signifie que Hudson pourra lancer plus de builds en ajoutant des ordinateurs. \
    \
    \ - Ce graphe est une moyenne glissante exponentielle de données collectées périodiquement. \ - Les périodes de mise à jour sont respectivement toutes les 10 secondes, toutes les minutes \ - et toutes les heures. + Ce graphe est une moyenne glissante exponentielle de données collectées périodiquement. \ + Les périodes de mise à jour sont respectivement toutes les 10 secondes, toutes les minutes \ + et toutes les heures. diff --git a/core/src/main/resources/hudson/model/LoadStatistics/main_ja.properties b/core/src/main/resources/hudson/model/LoadStatistics/main_ja.properties index d54b1cc0c4930bef49d48661b88f89b9b18b245b..c2a31c4049c1ad3715820f39d992fa16c309428f 100644 --- a/core/src/main/resources/hudson/model/LoadStatistics/main_ja.properties +++ b/core/src/main/resources/hudson/model/LoadStatistics/main_ja.properties @@ -49,4 +49,5 @@ blurb=\ \
    \ \u30B0\u30E9\u30D5\u306F\u3001\u5B9A\u671F\u7684\u306B\u53CE\u96C6\u3057\u305F\u6307\u6570\u5E73\u6ED1\u79FB\u52D5\u5E73\u5747\u306B\u3088\u308B\u3082\u306E\u3067\u3059\u3002\ - 3\u3064\u306E\u671F\u9593(\u77ED\u3001\u4E2D\u3001\u9577)\u306F\u3001\u305D\u308C\u305E\u308C10\u79D2\u30011\u5206\u304A\u3088\u30731\u6642\u9593\u3054\u3068\u306B\u66F4\u65B0\u3055\u308C\u307E\u3059\u3002 \ No newline at end of file + 3\u3064\u306E\u671F\u9593(\u77ED\u3001\u4E2D\u3001\u9577)\u306F\u3001\u305D\u308C\u305E\u308C10\u79D2\u30011\u5206\u304A\u3088\u30731\u6642\u9593\u3054\u3068\u306B\u66F4\u65B0\u3055\u308C\u307E\u3059\u3002 +Load\ statistics\ graph=\u8CA0\u8377\u7D71\u8A08\u30B0\u30E9\u30D5 diff --git a/core/src/main/resources/hudson/model/LoadStatistics/main_ko.properties b/core/src/main/resources/hudson/model/LoadStatistics/main_ko.properties new file mode 100644 index 0000000000000000000000000000000000000000..f52b6a00f39faedaf71bc5c05a1cf5e33fb73285 --- /dev/null +++ b/core/src/main/resources/hudson/model/LoadStatistics/main_ko.properties @@ -0,0 +1,27 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Long=\uAE38\uAC8C +Medium=\uC911\uAC04 +Short=\uC9E7\uAC8C +Timespan=\uC2DC\uAC04\uAC04\uACA9 +title=\uD1B5\uACC4 \uBD88\uB7EC\uC624\uAE30: {0} diff --git a/core/src/main/resources/hudson/model/LoadStatistics/main_nl.properties b/core/src/main/resources/hudson/model/LoadStatistics/main_nl.properties new file mode 100644 index 0000000000000000000000000000000000000000..44d5955a8c94d2b6355215a34288e4303b3d1535 --- /dev/null +++ b/core/src/main/resources/hudson/model/LoadStatistics/main_nl.properties @@ -0,0 +1,28 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Load\ statistics\ graph=Grafiek load statistieken +Long=Lang +Medium=Medium +Short=Kort +Timespan=Tijdsspanne +title=Load statistieken: {0} diff --git a/core/src/main/resources/hudson/model/LoadStatistics/main_pt_BR.properties b/core/src/main/resources/hudson/model/LoadStatistics/main_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..89338e5f865bb0acaf924bba1db410a6c909c0b8 --- /dev/null +++ b/core/src/main/resources/hudson/model/LoadStatistics/main_pt_BR.properties @@ -0,0 +1,60 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +# Load statistics: {0} +title= +Short= +Load\ statistics\ graph= +Medium= +Timespan= +# \ +# Load statistics keep track of three key metrics of resource utilization: \ +#
    \ +#
    Total number of executors
    \ +#
    \ +# For a computer, this is the number of executors that the computer has. \ +# For a label, this is the sum of all executors across all computers in this label. \ +# For the entire Hudson, this is the sum of all executors across all computers in this Hudson installation. \ +# Other than configuration changes, this value can also change when slaves go offline. \ +#
    \ +#
    Number of busy executors
    \ +#
    \ +# This line tracks the number of executors (among the executors counted above) \ +# that are carrying out builds. The ratio of this to the total number of executors \ +# gives you the resource utilization. If all your executors are busy for \ +# a prolonged period of time, consider adding more computers to your Hudson cluster.\ +#
    \ +#
    Queue length
    \ +#
    \ +# This is the number of jobs that are in the build queue, waiting for an \ +# available executor (of this computer, of this label, or in this Hudson, respectively.) \ +# This doesn't include jobs that are in the quiet period, nor does it include \ +# jobs that are in the queue because earlier builds are still in progress. \ +# If this line ever goes above 0, that means your Hudson will run more builds by \ +# adding more computers.\ +#
    \ +#
    \ +# The graph is exponential moving average of periodically collected data values. \ +# 3 timespans are updated every 10 seconds, 1 minute, and 1 hour respectively. +blurb=\ +# Estes usu\u00E1rios podem se logar no Hudson. Este \u00E9 um super conjunto desta lista, \ +Long= diff --git a/core/src/main/resources/hudson/model/LoadStatistics/main_ru.properties b/core/src/main/resources/hudson/model/LoadStatistics/main_ru.properties new file mode 100644 index 0000000000000000000000000000000000000000..9c97db405884b3acbf28ccdb4f1c0739d76865ee --- /dev/null +++ b/core/src/main/resources/hudson/model/LoadStatistics/main_ru.properties @@ -0,0 +1,30 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Load\ statistics\ graph=\u0413\u0440\u0430\u0444 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043A\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043A\u0438 +Long=\u0414\u043B\u0438\u043D\u043D\u044B\u0439 +Medium=\u0421\u0440\u0435\u0434\u043D\u0438\u0439 +Short=\u041A\u0440\u0430\u0442\u043A\u0438\u0439 +Timespan=\u041F\u0440\u043E\u043C\u0435\u0436\u0443\u0442\u043E\u043A +blurb=\u0412 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043A\u0443 \u0443\u0442\u0438\u043B\u0438\u0437\u0430\u0446\u0438\u0438 \u0437\u0430\u043F\u0438\u0441\u044B\u0432\u0430\u0435\u0442\u0441\u044F \u0438\u0441\u0442\u043E\u0440\u0438\u044F \u0434\u0438\u043D\u0430\u043C\u0438\u043A\u0438 \u0442\u0440\u0435\u0445 \u043A\u043B\u044E\u0447\u0435\u0432\u044B\u0445 \u043C\u0435\u0442\u0440\u0438\u043A \u0440\u0435\u0441\u0443\u0440\u0441\u043D\u043E\u0439 \u0443\u0442\u0438\u043B\u0438\u0437\u0430\u0446\u0438\u0438:
    \u0418\u0442\u043E\u0433\u043E\u0432\u043E\u0435 \u043A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u0441\u0431\u043E\u0440\u0449\u0438\u043A\u043E\u0432
    \u0414\u043B\u044F \u043A\u043E\u043D\u043A\u0440\u0435\u0442\u043D\u043E\u0433\u043E \u043A\u043E\u043C\u043F\u044C\u044E\u0442\u0435\u0440\u0430 \u044D\u0442\u043E \u0447\u0438\u0441\u043B\u043E \u0441\u0431\u043E\u0440\u0449\u0438\u043A\u043E\u0432, \u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u0437\u0430\u043F\u0443\u0441\u043A\u0430\u044E\u0442\u0441\u044F \u043D\u0430 \u0434\u0430\u043D\u043D\u043E\u043C \u043A\u043E\u043C\u043F\u044C\u044E\u0442\u0435\u0440\u0435. \u0414\u043B\u044F \u043C\u0435\u0442\u043A\u0438 (\u0433\u0440\u0443\u043F\u043F\u044B), \u044D\u0442\u043E \u0441\u0443\u043C\u043C\u0430\u0440\u043D\u043E\u0435 \u0447\u0438\u0441\u043B\u043E \u0441\u0431\u043E\u0440\u0449\u0438\u043A\u043E\u0432 \u043D\u0430 \u043A\u043E\u043C\u043F\u044C\u044E\u0442\u0435\u0440\u0430\u0445 \u0432 \u044D\u0442\u043E\u0439 \u0433\u0440\u0443\u043F\u043F\u0435. \u0414\u043B\u044F \u0441\u0430\u043C\u043E\u0433\u043E Hudson, \u044D\u0442\u043E \u0441\u0443\u043C\u043C\u0430\u0440\u043D\u043E\u0435 \u0447\u0438\u0441\u043B\u043E \u0441\u0431\u043E\u0440\u0449\u0438\u043A\u043E\u0432, \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u044E\u0449\u0438\u0445\u0441\u044F \u0432 \u0434\u0430\u043D\u043D\u043E\u0439 \u0438\u043D\u0441\u0442\u0430\u043B\u044F\u0446\u0438\u0438 Hudson. \u0414\u0430\u043D\u043D\u044B\u0435 \u0447\u0438\u0441\u043B\u0430 \u043C\u043E\u0433\u0443\u0442 \u043C\u0435\u043D\u044F\u0442\u044C\u0441\u044F \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043C\u043E\u0441\u0442\u0438 \u043E\u0442 \u0442\u043E\u0433\u043E, \u0430\u043A\u0442\u0438\u0432\u043D\u044B \u0438\u043B\u0438 \u043D\u0435\u0442 \u0443\u0437\u043B\u044B \u0441\u0431\u043E\u0440\u043A\u0438.
    \u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u0437\u0430\u043D\u044F\u0442\u044B\u0445 \u0441\u0431\u043E\u0440\u0449\u0438\u043A\u043E\u0432
    This line tracks the number of executors (among the executors counted above) that are carrying out builds. The ratio of this to the total number of executors gives you the resource utilization. If all your executors are busy for a prolonged period of time, consider adding more computers to your Hudson cluster.
    Queue length
    This is the number of jobs that are in the build queue, waiting for an available executor (of this computer, of this label, or in this Hudson, respectively.) This doesn''t include jobs that are in the quiet period, nor does it include jobs that are in the queue because earlier builds are still in progress. If this line ever goes above 0, that means your Hudson will run more builds by adding more computers.
    The graph is exponential moving average of periodically collected data values. 3 timespans are updated every 10 seconds, 1 minute, and 1 hour respectively. + +title=\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043A\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043A\u0438: {0} diff --git a/core/src/main/resources/hudson/model/LoadStatistics/main_sv_SE.properties b/core/src/main/resources/hudson/model/LoadStatistics/main_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..71344ddb1d2f11ac87fe735d61acd3129f29b8fa --- /dev/null +++ b/core/src/main/resources/hudson/model/LoadStatistics/main_sv_SE.properties @@ -0,0 +1,27 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Long=L\u00E5ngt +Medium=Mellan +Short=Litet +Timespan=Tidsrymd +title=Belastningstatistik: {0} diff --git a/core/src/main/resources/hudson/model/LoadStatistics/main_zh_CN.properties b/core/src/main/resources/hudson/model/LoadStatistics/main_zh_CN.properties new file mode 100644 index 0000000000000000000000000000000000000000..27510526d38e693952f04ef12712c0c9134c2db2 --- /dev/null +++ b/core/src/main/resources/hudson/model/LoadStatistics/main_zh_CN.properties @@ -0,0 +1,27 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Long=\u957F +Medium=\u4E2D +Short=\u77ED +Timespan=\u65F6\u95F4\u95F4\u9694 +title=\u8D1F\u8F7D\u7EDF\u8BA1:{0} diff --git a/core/src/main/resources/hudson/model/Messages.properties b/core/src/main/resources/hudson/model/Messages.properties index 61016e92df842205200809d12a962e6b678834db..3879d4231b10e8beec72ce71d843447e619ec375 100644 --- a/core/src/main/resources/hudson/model/Messages.properties +++ b/core/src/main/resources/hudson/model/Messages.properties @@ -1,6 +1,7 @@ # The MIT License # -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Eric Lefevre-Ardant, Erik Ramfelt, Seiji Sogabe, id:cactusman +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, +# Eric Lefevre-Ardant, Erik Ramfelt, Seiji Sogabe, id:cactusman, Romain Seguy # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -21,14 +22,19 @@ # THE SOFTWARE. AbstractBuild.BuildingRemotely=Building remotely on {0} +AbstractBuild.BuildingOnMaster=Building on master AbstractBuild.KeptBecause=kept because of {0} +AbstractItem.NoSuchJobExists=No such job ''{0}'' exists. Perhaps you meant ''{1}''? AbstractProject.NewBuildForWorkspace=Scheduling a new build to get a workspace. +AbstractProject.AwaitingBuildForWorkspace=Awaiting build to get a workspace. AbstractProject.Pronoun=Project AbstractProject.Aborted=Aborted AbstractProject.BuildInProgress=Build #{0} is already in progress{1} +AbstractProject.UpstreamBuildInProgress=Upstream project {0} is already building. AbstractProject.Disabled=Build disabled AbstractProject.ETA=\ (ETA:{0}) +AbstractProject.NoBuilds=No existing build. Scheduling a new one. AbstractProject.NoSCM=No SCM AbstractProject.NoWorkspace=No workspace is available, so can''t check for updates. AbstractProject.PollingABorted=SCM polling aborted @@ -40,6 +46,10 @@ AbstractProject.WorkspacePermission.Description=\ This permission grants the ability to retrieve the contents of a workspace \ Hudson checked out for performing builds. If you don''t want an user to access \ the source code, you can do so by revoking this permission. +AbstractProject.ExtendedReadPermission.Description=\ + This permission grants read-only access to project configurations. Please be \ + aware that sensitive information in your builds, such as passwords, will be \ + exposed to a wider audience by granting this permission. Api.MultipleMatch=XPath "{0}" matched {1} nodes. \ Create XPath that only matches one, or use the "wrapper" query parameter to wrap them all under a root element. @@ -53,14 +63,26 @@ BallColor.Pending=Pending BallColor.Success=Success BallColor.Unstable=Unstable +CLI.clear-queue.shortDescription=Clears the build queue +CLI.delete-job.shortDescription=Deletes a job +CLI.disable-job.shortDescription=Disables a job +CLI.enable-job.shortDescription=Enables a job +CLI.delete-node.shortDescription=Deletes a node +CLI.disconnect-node.shortDescription=Disconnects from a node +CLI.connect-node.shortDescription=Reconnect to a node +CLI.online-node.shortDescription=Resume using a node for performing builds, to cancel out the earlier "offline-node" command. +CLI.offline-node.shortDescription=Stop using a node for performing builds temporarily, until the next "online-node" command. + Computer.Caption=Slave {0} Computer.Permissions.Title=Slave Computer.ConfigurePermission.Description=This permission allows users to configure slaves. Computer.DeletePermission.Description=This permission allows users to delete existing slaves. +Computer.BadChannel=Slave node offline or not a remote channel (such as master node). ComputerSet.NoSuchSlave=No such slave: {0} ComputerSet.SlaveAlreadyExists=Slave called ''{0}'' already exists ComputerSet.SpecifySlaveToCopy=Specify which slave to copy +ComputerSet.DisplayName=nodes Executor.NotAvailable=N/A ExternalJob.DisplayName=Monitor an external job @@ -68,6 +90,8 @@ ExternalJob.Pronoun=Job FreeStyleProject.DisplayName=Build a free-style software project +HealthReport.EmptyString= + Hudson.BadPortNumber=Bad port number {0} Hudson.Computer.Caption=Master Hudson.Computer.DisplayName=master @@ -77,6 +101,7 @@ Hudson.JobAlreadyExists=A job already exists with the name ''{0}'' Hudson.NoJavaInPath=java is not in your PATH. Maybe you need to configure JDKs? Hudson.NoName=No name is specified Hudson.NoSuchDirectory=No such directory: {0} +Hudson.NodeBeingRemoved=Node is being removed Hudson.NotADirectory={0} is not a directory Hudson.NotAPlugin={0} is not a Hudson plugin Hudson.NotJDKDir={0} doesn''t look like a JDK directory @@ -87,12 +112,13 @@ Hudson.ViewAlreadyExists=A view already exists with the name "{0}" Hudson.ViewName=All Hudson.NotANumber=Not a number Hudson.NotAPositiveNumber=Not a positive number +Hudson.NotANonNegativeNumber=Number may not be negative Hudson.NotANegativeNumber=Not a negative number Hudson.NotUsesUTF8ToDecodeURL=\ Your container doesn''t use UTF-8 to decode URLs. If you use non-ASCII characters as a job name etc, \ this will cause problems. \ - See Containers and \ - Tomcat i18n for more details. + See Containers and \ + Tomcat i18n for more details. Hudson.AdministerPermission.Description=\ This permission grants the ability to make system-wide configuration changes, \ as well as perform highly sensitive operations that amounts to full local system access \ @@ -102,6 +128,7 @@ Hudson.ReadPermission.Description=\ This permission is useful when you don''t want unauthenticated users to see \ Hudson pages — revoke this permission from the anonymous user, then \ add "authenticated" pseudo-user and grant the read access. +Hudson.NodeDescription=the master Hudson node Item.Permissions.Title=Job @@ -112,7 +139,12 @@ Job.NoRecentBuildFailed=No recent builds failed. Job.Pronoun=Project Job.minutes=mins +Label.GroupOf=group of {0} +Label.InvalidLabel=invalid label +Label.ProvisionedFrom=Provisioned from {0} MultiStageTimeSeries.EMPTY_STRING= +Node.BecauseNodeIsReserved={0} is reserved for jobs tied to it +Node.LabelMissing={0} doesn''t have label {1} Queue.AllNodesOffline=All nodes of label ''{0}'' are offline Queue.BlockedBy=Blocked by {0} Queue.HudsonIsAboutToShutDown=Hudson is about to shut down @@ -120,9 +152,10 @@ Queue.InProgress=A build is already in progress Queue.InQuietPeriod=In the quiet period. Expires in {0} Queue.NodeOffline={0} is offline Queue.Unknown=??? - Queue.WaitingForNextAvailableExecutor=Waiting for next available executor Queue.WaitingForNextAvailableExecutorOn=Waiting for next available executor on {0} +Queue.init=Restoring the build queue + Run.BuildAborted=Build was aborted Run.MarkedExplicitly=explicitly marked to keep the record Run.Permissions.Title=Run @@ -132,11 +165,32 @@ Run.DeletePermission.Description=\ Run.UpdatePermission.Description=\ This permission allows users to update description and other properties of a build, \ for example to leave notes about the cause of a build failure. +Run.ArtifactsPermission.Description=\ + This permission grants the ability to retrieve the artifacts produced by \ + builds. If you don''t want an user to access the artifacts, you can do so by \ + revoking this permission. +Run.InProgressDuration={0} and counting + +Run.Summary.Stable=stable +Run.Summary.Unstable=unstable +Run.Summary.Aborted=aborted +Run.Summary.BackToNormal=back to normal +Run.Summary.BrokenForALongTime=broken for a long time +Run.Summary.BrokenSinceThisBuild=broken since this build +Run.Summary.BrokenSince=broken since build {0} +Run.Summary.TestFailures={0} {0,choice,0#test failures|1#test failure|1Failed to resolve host name {0}. \ @@ -159,9 +214,32 @@ UpdateCenter.Status.UnknownHostException=\ UpdateCenter.Status.ConnectionFailed=\ Failed to connect to {0}. \ Perhaps you need to configure HTTP proxy? +UpdateCenter.init=Initialing update center +UpdateCenter.PluginCategory.builder=Build Tools +UpdateCenter.PluginCategory.buildwrapper=Build Wrappers +UpdateCenter.PluginCategory.cli=Command Line Interface +UpdateCenter.PluginCategory.cluster=Cluster Management and Distributed Build +UpdateCenter.PluginCategory.external=External Site/Tool Integrations +UpdateCenter.PluginCategory.maven=Maven +UpdateCenter.PluginCategory.misc=Miscellaneous +UpdateCenter.PluginCategory.notifier=Build Notifiers +UpdateCenter.PluginCategory.page-decorator=Page Decorators +UpdateCenter.PluginCategory.post-build=Other Post-Build Actions +UpdateCenter.PluginCategory.report=Build Reports +UpdateCenter.PluginCategory.scm=Source Code Management +UpdateCenter.PluginCategory.scm-related=Source Code Management related +UpdateCenter.PluginCategory.slaves=Slave Launchers and Controllers +UpdateCenter.PluginCategory.trigger=Build Triggers +UpdateCenter.PluginCategory.ui=User Interface +UpdateCenter.PluginCategory.upload=Artifact Uploaders +UpdateCenter.PluginCategory.user=Authentication and User Management +UpdateCenter.PluginCategory.must-be-labeled=Uncategorized +UpdateCenter.PluginCategory.unrecognized=Misc ({0}) Permalink.LastBuild=Last build Permalink.LastStableBuild=Last stable build +Permalink.LastUnstableBuild=Last unstable build +Permalink.LastUnsuccessfulBuild=Last unsuccessful build Permalink.LastSuccessfulBuild=Last successful build Permalink.LastFailedBuild=Last failed build @@ -172,6 +250,7 @@ FileParameterDefinition.DisplayName=File Parameter BooleanParameterDefinition.DisplayName=Boolean Value ChoiceParameterDefinition.DisplayName=Choice RunParameterDefinition.DisplayName=Run Parameter +PasswordParameterDefinition.DisplayName=Password Parameter Node.Mode.NORMAL=Utilize this slave as much as possible Node.Mode.EXCLUSIVE=Leave this machine for tied jobs only @@ -189,3 +268,18 @@ Cause.UpstreamCause.ShortDescription=Started by upstream project "{0}" build num Cause.UserCause.ShortDescription=Started by user {0} Cause.RemoteCause.ShortDescription=Started by remote host {0} Cause.RemoteCause.ShortDescriptionWithNote=Started by remote host {0} with note: {1} + +ProxyView.NoSuchViewExists=Global view {0} does not exist +ProxyView.DisplayName=Include a global view + +MyViewsProperty.DisplayName=My Views +MyViewsProperty.GlobalAction.DisplayName=My Views +MyViewsProperty.ViewExistsCheck.NotExist=A view with name {0} does not exist +MyViewsProperty.ViewExistsCheck.AlreadyExists=A view with name {0} already exists + +CLI.restart.shortDescription=Restart Hudson +CLI.safe-restart.shortDescription=Safely restart Hudson +CLI.keep-build.shortDescription=Mark the build to keep the build forever. +CLI.quiet-down.shortDescription=Quiet down Hudson, in preparation for a restart. Don''t start any builds. +CLI.cancel-quiet-down.shortDescription=Cancel the effect of the "quiet-down" command. +CLI.reload-configuration.shortDescription=Discard all the loaded data in memory and reload everything from file system. Useful when you modified config files directly on disk. diff --git a/core/src/main/resources/hudson/model/Messages_da.properties b/core/src/main/resources/hudson/model/Messages_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..ca501271b60080b498064515f0477f2d7a47f5e9 --- /dev/null +++ b/core/src/main/resources/hudson/model/Messages_da.properties @@ -0,0 +1,248 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +AbstractBuild.BuildingRemotely=Fjernbygger p\u00e5 {0} +AbstractProject.ScmAborted=Kildekodestyring (SCM) check ud afbrudt +Queue.WaitingForNextAvailableExecutor=Venter p\u00e5 n\u00e6ste ledige afvikler +Run.Summary.TestsStartedToFail={0} test begyndte at fejle +AbstractProject.ExtendedReadPermission.Description=\ +Denne tilladelse giver skrivebeskyttet adgang til projektkonfigurationerne. V\u00e6r opm\u00e6rksom p\u00e5 \ +at f\u00f8lsomme informationer i dine byg, s\u00e5som adgangskoder, vil v\u00e6re synlige \ +for et bredere publikum s\u00e5fremt denne tilladelse tildeles. +Run.Summary.BrokenSinceThisBuild=fejlet siden dette byg +Cause.UserCause.ShortDescription=Startet af brugeren {0} +Hudson.Computer.DisplayName=master +LoadStatistics.Legends.TotalExecutors=Samtlige afviklere +MyViewsProperty.GlobalAction.DisplayName=Mine Visninger +Run.UpdatePermission.Description=\ +Denne tilladelse g\u00f8r det muligt for brugeren at opdatere beskrivelsen og andre egenskaber af et byg, \ +for eksempel for at skrive en besked om hvorfor et byg fejler. +StringParameterDefinition.DisplayName=Strengparameter +Node.Mode.NORMAL=Benyt denne slave s\u00e5 meget som overhovedet muligt +Computer.Caption=Slave {0} +ProxyView.NoSuchViewExists=Global visning {0} findes ikke +UpdateCenter.PluginCategory.external=Eksternt site/ v\u00e6rkt\u00f8jsintegration +BallColor.Pending=I k\u00f8 +View.MissingMode=Ingen visningstype specificeret +AbstractProject.Pronoun=Projekt +Hudson.Computer.Caption=Master +Hudson.NotAPositiveNumber=Ikke en positiv v\u00e6rdi +UpdateCenter.PluginCategory.unrecognized=Div ({0}) +Node.Mode.EXCLUSIVE=Lad kun denne maskine k\u00f8re knyttede(tied) jobs +Run.Summary.Stable=stabil +Hudson.BadPortNumber=Ubrugeligt portnummer {0} +Run.UnableToDelete=Kan ikke slette {0}: {1} +UpdateCenter.Status.Success=Succes +ParameterAction.DisplayName=Parametre +UpdateCenter.init=Initialiserer opdateringscenteret +ComputerSet.DisplayName=noder +CLI.connect-node.shortDescription=Gentilslut en node +Run.DeletePermission.Description=Denne tilladelse g\u00f8r det muligt for brugerne at slette specifikke byg i byggehistorikken. +Run.Summary.BrokenForALongTime=fejlet l\u00e6nge +CLI.safe-restart.shortDescription=Sikker genstart af Hudson +CLI.quiet-down.shortDescription=Forbereder nedlukning, starter ingen nye byg. +FreeStyleProject.DisplayName=Byg et free-style projekt +ProxyView.DisplayName=Inkluder en global visning +ComputerSet.SpecifySlaveToCopy=Angiv hvilken slave der skal kopieres +Run.Permissions.Title=K\u00f8r +Hudson.DisplayName=Hudson +Hudson.NotANonNegativeNumber=V\u00e6rdien m\u00e5 ikke v\u00e6re negativ +Slave.Launching={0} Starter slave agent +BallColor.InProgress=I gang +AbstractProject.NoBuilds=Ingen eksisterende byg. Skedulerer et nyt. +ExternalJob.Pronoun=Job +Run.BuildAborted=Byg afbrudt +BallColor.Aborted=Afbrudt +Slave.InvalidConfig.NoRemoteDir=Ugyldig slavekonfiguration for {0}. Intet fjerndirektorie angivet. +ListView.DisplayName=Listevisning +UpdateCenter.PluginCategory.page-decorator=Sidedekorat\u00f8rer +Cause.LegacyCodeCause.ShortDescription=Legacy kode startede dette job. Ingen startbegrundelse tilg\u00e6ngelig. +UpdateCenter.PluginCategory.ui=Brugerflade +UpdateCenter.PluginCategory.post-build=Andre postbyg handlinger +Cause.UpstreamCause.ShortDescription=Startet af upstreamprojektet "{0}" byg nummer {1} +UpdateCenter.PluginCategory.cli=Kommandolinieinterface +UpdateCenter.PluginCategory.builder=Byggev\u00e6rkt\u00f8jer +Slave.UnixSlave=Dette er en Unix slave +FileParameterDefinition.DisplayName=Filparametre +Run.Summary.TestsStillFailing={0} test fejler stadig +CLI.delete-job.shortDescription=Sletter et job +Run.Summary.Unstable=Ustabil +CLI.reload-configuration.shortDescription=Genindl\u00e6s alle data fra filsystemet. \ +Nyttigt hvis du har modificeret konfigurationsfiler direkte, udenom Hudson. +ComputerSet.NoSuchSlave=Ingen slave ved navn: {0} +ComputerSet.SlaveAlreadyExists=En slave ved navn ''{0}'' eksisterer allerede +Executor.NotAvailable=N/A +Slave.Terminated={0} slave agenten blev tilintetgjort +Item.Permissions.Title=Job +AbstractProject.NoWorkspace=Intet arbejdsomr\u00e5de tilg\u00e6ngeligt, kan ikke checke for opdateringer. +CLI.disable-job.shortDescription=Sl\u00e5r et job fra +UpdateCenter.PluginCategory.trigger=Byggestartere +Slave.Remote.Director.Mandatory=Fjerndirektorie er obligatorisk +BallColor.Disabled=Sl\u00e5et fra +Run.InProgressDuration={0} og t\u00e6ller +UpdateCenter.Status.UnknownHostException=Ukendt v\u00e6rt undtagelse +Hudson.NotUsesUTF8ToDecodeURL=\ +Din container bruger ikke UTF-8 til at afkode URLer. Hvis du bruger ikke-ASCII tegn i jobnavne etc, \ +vil dette skabe problemer. +UpdateCenter.Status.CheckingInternet=Checker internet forbindelse +View.DeletePermission.Description=\ +Denne rettighed tillader brugerne at slette eksisterende visninger. +UpdateCenter.Status.CheckingJavaNet=Checker hudson-ci.org forbindelse +UpdateCenter.PluginCategory.user=Authentificering og brugerh\u00e5ndtering +MyView.DisplayName=Min visning +Hudson.USER_CONTENT_README=Filer i dette direktorie vil blive serveret under http://server/hudson/userContent/ +UpdateCenter.PluginCategory.scm-related=Kildekodestyring (SCM) relateret +CLI.cancel-quiet-down.shortDescription=Sl\u00e5 effekten af "quite-down" kommandoen fra. +CLI.clear-queue.shortDescription=Ryd byggek\u00f8en +Slave.InvalidConfig.Executors=Ugyldig slavekonfiguration for {0}. Ugyldigt # afviklere. +Api.NoXPathMatch=XPath {0} matcher ikke +Run.MarkedExplicitly=Eksplicit markeret til at blive gemt +Hudson.Permissions.Title=Overordnet +AbstractProject.UpstreamBuildInProgress=Upstreamprojektet {0} bygger allerede. +Permalink.LastBuild=Seneste Byg +MyViewsProperty.ViewExistsCheck.NotExist=En visning ved navn {0} findes ikke +Run.Summary.TestFailures={0} test fejler +AbstractItem.NoSuchJobExists=Intet job ved navn ''{0}'' eksisterer. M\u00e5ske mener du ''{1}''? +Slave.InvalidConfig.NoName=Ugyldig slavekonfiguration. Navnet er tomt. +Run.Summary.BackToNormal=tilbage p\u00e5 sporet +BooleanParameterDefinition.DisplayName=Boolesk V\u00e6rdi +Permalink.LastSuccessfulBuild=Seneste succesfulde byg +Hudson.NotAPlugin={0} er ikke et Hudson plugin +UpdateCenter.PluginCategory.buildwrapper=Byggeomslag +Hudson.ReadPermission.Description=\ +L\u00e6serettigheden er n\u00f8dvendig for at se n\u00e6sten alle sider i Hudson. \ +Denne rettighed kan bruges n\u00e5r du ikke vil have uauthentificerede brugere til at \ +se Hudson sider — tilbagekald denne rettighed fra den anonyme bruger, tilf\u00f8j \ +derefter en "authentificeret" pseudo-bruger og giv denne l\u00e6serettigheder. +Hudson.NodeBeingRemoved=Node bliver fjernet +Hudson.ViewAlreadyExists=En visning ved navn "{0}" findes allerede +Hudson.NoName=Intet navn specificeret +UpdateCenter.PluginCategory.notifier=Bygge Notifikatorer +Label.ProvisionedFrom=Provisioneret fra {0} +ExternalJob.DisplayName=Overv\u00e5g et eksternt job +Run.Summary.Aborted=afbrudt +UpdateCenter.PluginCategory.report=Bygge Rapporter +Computer.ConfigurePermission.Description=Denne rettighed tillader brugere at konfigurere slaver. +View.Permissions.Title=Visninger +Permalink.LastFailedBuild=Seneste fejlede byg +UpdateCenter.PluginCategory.scm=Kildekodestyring (SCM) +View.ConfigurePermission.Description=Denne rettighed tillader brugere at \u00e6ndre konfigurationen af visninger. +AbstractProject.NewBuildForWorkspace=Skedulerer et nyt byg for at f\u00e5 et arbejdsomr\u00e5de +Node.LabelMissing={0} har ikke etiket {1} +CLI.delete-node.shortDescription=Sletter en node +Queue.BlockedBy=Blokeret af {0} +Node.BecauseNodeIsReserved={0} er reserveret til jobs bundet(tied) til den +Job.minutes=min +Cause.RemoteCause.ShortDescriptionWithNote=Startet af fjernv\u00e6rt {0} med note: {1} +PasswordParameterDefinition.DisplayName=Adgangskodeparameter +Run.Summary.MoreTestsFailing={0} flere test fejlet (total {1}) +UpdateCenter.PluginCategory.cluster=Klyngestyring og distribuerede byg +AbstractBuild.KeptBecause=beholdt pga. {0} +Hudson.NotADirectory={0} er ikke et direktorie +Cause.RemoteCause.ShortDescription=Startet af fjernv\u00e6rt {0} +Slave.WindowsSlave=Dette er en Windows slave +Run.ArtifactsPermission.Description=\ +Denne rettighed g\u00f8r det muligt at hente byggeartifakter. \ +Hvis du ikke vil have at en bruger skal kunne tilg\u00e5 byggeartifakter kan \ +du fratage vedkommende denne rettighed. +Computer.BadChannel=Slave node offline eller ikke en fjernkanal (f.eks. en masternode). +AbstractProject.Aborted=Afbrudt +Queue.init=Genopretter byggek\u00f8en +Hudson.NodeDescription=master Hudson noden +AbstractProject.BuildInProgress=Byg #{0} er allerede i gang {1} +Job.NoRecentBuildFailed=Ingen byg har fejlet for nyligt. +Permalink.LastUnsuccessfulBuild=Seneste fejlede byg +RunParameterDefinition.DisplayName=K\u00f8rselsparameter +Hudson.JobAlreadyExists=Et job eksisterer allerede med navnet ''{0}'' +CLI.offline-node.shortDescription=Hold midlertidigt op med at bygge p\u00e5 en node, indtil n\u00e6ste "online-node" kommando. +MyViewsProperty.DisplayName=Mine visninger +UpdateCenter.PluginCategory.must-be-labeled=Ukatagoriserede +AbstractProject.Disabled=Byg sl\u00e5et fra +MyViewsProperty.ViewExistsCheck.AlreadyExists=En visning ved navn {0} eksisterer allerede +Hudson.AdministerPermission.Description=\ +Denne rettighed g\u00f8r det muligt at lave konfigurations\u00e6ndringer p\u00e5 tv\u00e6rs af hele systemet, \ +s\u00e5vel som at k\u00f8re yderst f\u00f8lsomme operationer der effektivt svarer til fuld lokal system adgang \ +(indenfor rettighedsrammerne af det underliggende operativsystem.) +Hudson.NotJDKDir={0} ligner ikke et JDK direktorie +AbstractProject.WorkspaceOffline=Arbejdsomr\u00e5det er offline. +Queue.HudsonIsAboutToShutDown=Hudson skal til at lukke ned +Run.Summary.LessTestsFailing={0} f\u00e6rre test fejler (total {1}) +UpdateCenter.PluginCategory.slaves=Slavestartere og kontroll\u00f8rer +Api.MultipleMatch=XPath "{0}" matcher {1} noder. \ +Lav en XPath der kun matcher en, eller brug en "omslags" foresp\u00f8rgselsparameter til at samle dem alle under et rodelement. +Slave.UnableToLaunch=Kan ikke starte en slave agent for {0}{1} +Queue.Unknown=??? +BallColor.Unstable=Ustabil +Job.AllRecentBuildFailed=Alle de seneste byg er fejlet. +AbstractProject.PollingABorted=Kildekodestyring (SCM) polling afbrudt +Run.Summary.BrokenSince=fejlet siden byg {0} +AbstractProject.WorkspacePermission.Description=\ +Denne tilladelse giver mulighed for at hente indholdet af et arbejdsomr\u00e5de som \ +Hudson har checket ud for at k\u00f8re byg. Hvis du ikke vil give brugeren adgang til kildekoden \ +kan du fratage vedkommende denne tilladelse. +Hudson.NotANumber=Ikke et tal +Hudson.UnsafeChar=''{0}'' er et usikkert tegn +Hudson.ControlCodeNotAllowed=Ingen kontroltegn tilladt: {0} +View.CreatePermission.Description=Denne rettighed giver brugerne ret til at lave nye visninger. +BallColor.Failed=Fejlet +LoadStatistics.Legends.QueueLength=K\u00f8 l\u00e6ngde +Hudson.ViewName=Alle +Job.BuildStability=Bygge stabilitet: {0} +Job.Pronoun=Projekt +CLI.disconnect-node.shortDescription=Afbryder forbindelsen til en node +CLI.restart.shortDescription=Genstart Hudson +Permalink.LastStableBuild=Sidste stabile byg +Hudson.NoJavaInPath=Java er ikke i din sti. M\u00e5ske mangler du at konfigurere JDK? +Queue.NodeOffline={0} er offline +Label.InvalidLabel=Ugyldig etiket +AbstractBuild.BuildingOnMaster=Bygger p\u00e5 master +CLI.keep-build.shortDescription=Marker bygget for at gemme det for evig tid +AbstractProject.NoSCM=Ingen kildekodestyring (SCM) +ChoiceParameterDefinition.DisplayName=V\u00e6lg +Queue.WaitingForNextAvailableExecutorOn=Venter p\u00e5 n\u00e6ste ledige afvikler p\u00e5 {0} +Hudson.NotANegativeNumber=Ikke en negativ v\u00e6rdi +UpdateCenter.PluginCategory.misc=Diverse +Queue.InProgress=Et byg er allerede i gang +Computer.DeletePermission.Description=Denne rettighed tillader brugere at slette eksisterende slaver. +UpdateCenter.Status.ConnectionFailed= +UpdateCenter.PluginCategory.maven=Maven +CLI.online-node.shortDescription=Genoptag brugen af en byggenode, for at annullere en tidligere udstedt "offline-node" kommando. +Computer.Permissions.Title=Slave +BallColor.Success=Succes +UpdateCenter.PluginCategory.upload=Artifaktsendere +Permalink.LastUnstableBuild=Seneste ustabile byg +CLI.enable-job.shortDescription=Sl\u00e5r et job til +Run.Summary.Unknown=? +ParametersDefinitionProperty.DisplayName=Parametre +AbstractProject.BuildPermission.Description=\ +Denne rettighed giver mulighed for at starte et nyt byg. +Job.NOfMFailed={0} af de seneste {1} byg fejlede. +Slave.Network.Mounted.File.System.Warning=Er du sikker p\u00e5 at du vil bruge et netv\u00e6rksdrev som FS rod? \ +Note: direktoriet beh\u00f8ver ikke v\u00e6re synlig for master noden. +Label.GroupOf=Gruppe af {0} +Queue.InQuietPeriod=I en stilleperiode. udl\u00f8ber om {0} +Queue.AllNodesOffline=Alle noder med etiket ''{0}'' er offline +AbstractProject.ETA=(ETA:{0}) +Hudson.NoSuchDirectory=Intet direktorie ved navn: {0} +LoadStatistics.Legends.BusyExecutors=Optagede afviklere +HealthReport.EmptyString= +MultiStageTimeSeries.EMPTY_STRING= diff --git a/core/src/main/resources/hudson/model/Messages_de.properties b/core/src/main/resources/hudson/model/Messages_de.properties index 5ce8ea69bdc64e38f326e6d64038cf2a253dcc69..a6a415fb97105b698f39e47326da268506ea29c4 100644 --- a/core/src/main/resources/hudson/model/Messages_de.properties +++ b/core/src/main/resources/hudson/model/Messages_de.properties @@ -1,17 +1,17 @@ # The MIT License -# +# # Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest -# +# # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal # in the Software without restriction, including without limitation the rights # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell # copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: -# +# # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. -# +# # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -21,22 +21,36 @@ # THE SOFTWARE. AbstractBuild.BuildingRemotely=Baue auf Slave {0} -AbstractBuild.KeptBecause=zurückbehalten wegen {0} +AbstractBuild.BuildingOnMaster=Baue auf Master +AbstractBuild.KeptBecause=zur\u00fcckbehalten wegen {0} +AbstractItem.NoSuchJobExists=Job ''{0}'' existiert nicht. Meinten Sie vielleicht ''{1}''? AbstractProject.NewBuildForWorkspace=Plane einen neuen Build, um einen Arbeitsbereich anzulegen. AbstractProject.Pronoun=Projekt AbstractProject.Aborted=Abgebrochen AbstractProject.BuildInProgress=Build #{0} ist bereits in Arbeit{1} +AbstractProject.UpstreamBuildInProgress=Vorgelagertes Projekt {0} ist bereits in Arbeit. AbstractProject.Disabled=Build deaktiviert AbstractProject.ETA=\ (ETA:{0}) AbstractProject.NoSCM=Kein SCM -AbstractProject.NoWorkspace=Kein Arbeitsbereich verfügbar, daher kann nicht auf Aktualisierungen überprüft werden. +AbstractProject.NoBuilds=Es existiert kein Build. Starte neuen Build. +AbstractProject.NoWorkspace=Kein Arbeitsbereich verf\u00fcgbar, daher kann nicht auf Aktualisierungen \u00fcberpr\u00fcft werden. AbstractProject.PollingABorted=SCM Abfrage abgebrochen AbstractProject.ScmAborted=SCM Check-Out abgebrochen AbstractProject.WorkspaceOffline=Arbeitsbereich ist offline. +AbstractProject.BuildPermission.Description=\ + Dieses Recht erlaubt, neue Builds zu starten. +AbstractProject.WorkspacePermission.Description=\ + Dieses Recht erlaubt, auf den Arbeitsbereich zuzugreifen, \ + in den Hudson aus dem SCM auscheckt. Wenn Sie Benutzern \ + den Zugriff auf Quelltexte verwehren m\u00f6chten, entziehen Sie dieses Recht. +AbstractProject.ExtendedReadPermission.Description=\ + Dieses Recht erlaubt Nur-Lese-Zugriff auf Projektkonfigurationen. Bedenken Sie, \ + dass dadurch sensible Informationen aus Ihren Builds, z.B. Passw\u00f6rter, f\u00fcr einen \ + erweiterten Personenkreis einsehbar werden. -Api.MultipleMatch=XPath "{0}" stimmt mit {1} Knoten überein. \ - Erstellen Sie einen XPath-Ausdruck, der mit genau einem Knoten übereinstimmt, oder verwenden Sie den "Wrapper" Abfrageparameter, um alle Knoten unterhalb eines gemeinsamen Elternknotens zusammenzufassen. +Api.MultipleMatch=XPath "{0}" stimmt mit {1} Knoten \u00fcberein. \ + Erstellen Sie einen XPath-Ausdruck, der mit genau einem Knoten \u00fcbereinstimmt, oder verwenden Sie den "Wrapper" Abfrageparameter, um alle Knoten unterhalb eines gemeinsamen Elternknotens zusammenzufassen. Api.NoXPathMatch=XPath {0} lieferte keinen Treffer BallColor.Aborted=Abgebrochen @@ -47,15 +61,42 @@ BallColor.Pending=Bevorstehend BallColor.Success=Erfolgreich BallColor.Unstable=Instabil +CLI.restart.shortDescription=Hudson neu starten. +CLI.keep-build.shortDescription=Build f\u00fcr immer aufbewahren. +CLI.quiet-down.shortDescription=Hudsons Aktivit\u00e4t reduzieren, z.B. zur Vorbereitung eines Neustarts. Es werden keine neuen Builds mehr gestartet. +CLI.cancel-quiet-down.shortDescription=Wirkung des Befehls "quiet-down" wieder aufheben. +CLI.reload-configuration.shortDescription=Alle Daten im Speicher verwerfen und Konfiguration neu von Festplatte laden. Dies ist n\u00fctzlich, wenn Sie \u00c4nderungen direkt im Dateisystem vorgenommen haben. +CLI.clear-queue.shortDescription=Build-Warteschlange l\u00f6schen. +CLI.delete-job.shortDescription=Job l\u00f6schen. +CLI.disable-job.shortDescription=Job deaktivieren. +CLI.enable-job.shortDescription=Job aktivieren. +CLI.connect-node.shortDescription=Erneut mit Knoten verbinden. +CLI.disconnect-node.shortDescription=Knoten trennen. +CLI.delete-node.shortDescription=Knoten l\u00f6schen. +CLI.offline-node.shortDescription=Knoten wird bis zum n\u00e4chsten "online-node"-Kommando f\u00fcr keine neuen Builds verwendet. +CLI.online-node.shortDescription=Knoten wird wieder f\u00fcr neue Builds verwendet. Hebt ein vorausgegangenes "offline-node"-Kommando auf. +CLI.safe-restart.shortDescription=Startet Hudson neu. +MyViewsProperty.GlobalAction.DisplayName=Meine Ansichten +Queue.init=Build-Warteschlange neu initialisieren + Computer.Caption=Slave {0} +Computer.Permissions.Title=Slave +Computer.ConfigurePermission.Description=Dieses Recht erlaubt, Slaves zu konfigurieren. +Computer.DeletePermission.Description=Dieses Recht erlaubt, bestehende Slaves zu l\u00f6schen. + +ComputerSet.NoSuchSlave=Slave ''{0}'' existiert nicht. +ComputerSet.SlaveAlreadyExists=Ein Slave mit Namen ''{0}'' existiert bereits. +ComputerSet.SpecifySlaveToCopy=Geben Sie an, welcher Slave kopiert werden soll -Executor.NotAvailable=nicht verfügbar +Executor.NotAvailable=nicht verf\u00fcgbar -ExternalJob.DisplayName=Externen Job überwachen +ExternalJob.DisplayName=Externen Job \u00fcberwachen ExternalJob.Pronoun=Job FreeStyleProject.DisplayName="Free Style"-Softwareprojekt bauen +HealthReport.EmptyString= + Hudson.BadPortNumber=Falsche Portnummmer {0} Hudson.Computer.Caption=Master Hudson.Computer.DisplayName=master @@ -65,51 +106,172 @@ Hudson.JobAlreadyExists=Es existiert bereits ein Job ''{0}'' Hudson.NoJavaInPath=java ist nicht in Ihrem PATH-Suchpfad. Eventuell sollten Sie JDKs konfigurieren. Hudson.NoName=Kein Name angegeben Hudson.NoSuchDirectory=Verzeichnis {0} nicht gefunden +Hudson.NodeBeingRemoved=Knoten wird entfernt Hudson.NotADirectory={0} ist kein Verzeichnis Hudson.NotAPlugin={0} ist kein Hudson-Plugin Hudson.NotJDKDir={0} sieht nicht wie ein JDK-Verzeichnis aus Hudson.Permissions.Title=Allgemein +Hudson.USER_CONTENT_README=Dateien in diesem Verzeichnis sind erreichbar \u00fcber http://server/hudson/userContent/ Hudson.UnsafeChar=''{0}'' ist kein ''sicheres'' Zeichen +Hudson.ViewAlreadyExists=Es existiert bereits eine Ansicht mit dem Namen "{0}". Hudson.ViewName=Alle Hudson.NotANumber=Keine Zahl Hudson.NotAPositiveNumber=Keine positive Zahl. +Hudson.NotANonNegativeNumber=Zahl darf nicht negativ sein. Hudson.NotANegativeNumber=Keine negative Zahl. Hudson.NotUsesUTF8ToDecodeURL=\ Ihr Container verwendet kein UTF-8, um URLs zu dekodieren. Falls Sie Nicht-ASCII-Zeichen \ in Jobnamen usw. verwenden, kann dies Probleme mit sich bringen. Beachten Sie bitte die Hinweise zu \ - Containern bzw. \ - Tomcat i18N). - + Containern bzw. \ + Tomcat i18N). + Hudson.AdministerPermission.Description=\ + Dieses Recht erlaubt systemweite Konfigurations\u00e4nderungen, sowie sensitive Operationen \ + die vollst\u00e4ndigen Zugriff auf das lokale Dateisystem bieten (in den Grenzen des \ + darunterliegenden Betriebssystems). +Hudson.ReadPermission.Description=\ + Dieses Recht ist notwendig, um so gut wie alle Hudson-Seiten aufzurufen. \ + Dieses Recht ist dann n\u00fctzlich, wenn Sie anonymen Benutzern den Zugriff \ + auf Hudson-Seiten verweigern m\u00f6chten — entziehen Sie dazu dem Benutzer \ + anonymous dieses Recht, f\u00fcgen Sie dann einen Pseudo-Benutzer authenticated hinzu \ + und erteilen Sie diesem dieses Recht f\u00fcr Lese-Zugriff. +Hudson.NodeDescription=Hudson Master-Knoten + Item.Permissions.Title=Job Job.AllRecentBuildFailed=In letzter Zeit schlugen alle Builds fehl. -Job.BuildStability=Build-Stabilität: {0} +Job.BuildStability=Build-Stabilit\u00e4t: {0} Job.NOfMFailed={0} der letzten {1} Builds schlug fehl. Job.NoRecentBuildFailed=In letzter Zeit schlug kein Build fehl. Job.Pronoun=Projekt Job.minutes=Minuten +Label.GroupOf={0} Gruppe +Label.InvalidLabel=Ung\u00fcltiges Label +Label.ProvisionedFrom=Bereitgestellt durch {0} + +MyViewsProperty.ViewExistsCheck.NotExist=Ansicht ''{0}'' existiert nicht. +MyViewsProperty.ViewExistsCheck.AlreadyExists=Eine Ansicht ''{0}'' existiert bereits. + +MultiStageTimeSeries.EMPTY_STRING= + +ProxyView.NoSuchViewExists=Globale Ansicht ''{0}'' existiert nicht. +ProxyView.DisplayName=Globale Ansicht einbinden + +Queue.AllNodesOffline=Alle Knoten des Labels ''{0}'' sind offline Queue.BlockedBy=Blockiert von {0} +Queue.HudsonIsAboutToShutDown=Hudson wird heruntergefahren Queue.InProgress=Ein Build ist bereits in Arbeit Queue.InQuietPeriod=In Ruhe-Periode. Endet in {0} +Queue.NodeOffline={0} ist offline Queue.Unknown=??? +Queue.WaitingForNextAvailableExecutor=Warte auf den n\u00e4chsten freien Build-Prozessor +Queue.WaitingForNextAvailableExecutorOn=Warte auf den n\u00e4chsten freien Build-Prozessor auf {0} Run.BuildAborted=Build wurde abgebrochen -Run.MarkedExplicitly=Explizit gekennzeichnet, um Aufzeichnungen zurückzubehalten -Run.Permissions.Title=Starten -Run.UnableToDelete=Kann {0} nicht löschen: {1} +Run.MarkedExplicitly=Explizit gekennzeichnet, um Aufzeichnungen zur\u00fcckzubehalten +Run.Permissions.Title=Lauf/Build +Run.UnableToDelete=Kann {0} nicht l\u00f6schen: {1} +Run.DeletePermission.Description=\ + Dieses Recht erlaubt, gezielt Builds aus dem Build-Verlauf zu l\u00f6schen. +Run.UpdatePermission.Description=\ + Dieses Recht erlaubt, die Beschreibung und andere Eigenschaften eines Builds \ + zu aktualisieren, z.B. um Gr\u00fcnde f\u00fcr das Scheitern eines Builds zu notieren. + +Run.Summary.Stable=Stabil +Run.Summary.Unstable=Instabil +Run.Summary.Aborted=Abgebrochen +Run.Summary.BackToNormal=Wieder normal +Run.Summary.BrokenForALongTime=Seit langem defekt. +Run.Summary.BrokenSinceThisBuild=Defekt seit diesem Build. +Run.Summary.BrokenSince=Defekt seit Build {0} +Run.Summary.TestFailures={0} {0,choice,0#fehlgeschlagene Tests|1#fehlgeschlagener Test|1Hostname {0} konnte nicht aufgel\u00f6st werden. \ + Eventuell sollten Sie einen HTTP-Proxy konfigurieren? +UpdateCenter.Status.ConnectionFailed=\ + Es konnte keine Verbindung zu {0} aufgebaut werden. \ + Eventuell sollten Sie einen HTTP-Proxy konfigurieren? +UpdateCenter.init=Initialisiere das Update Center +UpdateCenter.PluginCategory.builder=Build-Werkzeuge +UpdateCenter.PluginCategory.buildwrapper=Build-Wrappers +UpdateCenter.PluginCategory.cli=Kommandozeile (Command Line Interface) +UpdateCenter.PluginCategory.cluster=Cluster-Management und verteiltes Bauen +UpdateCenter.PluginCategory.external=Integration externer Sites und Werkzeuge +UpdateCenter.PluginCategory.maven=Maven bzw. Plugins mit besonderer Maven-Unterst\u00fctzung +UpdateCenter.PluginCategory.misc=Verschiedenes +UpdateCenter.PluginCategory.notifier=Benachrichtigungen +UpdateCenter.PluginCategory.page-decorator=Seiten-Dekoratoren +UpdateCenter.PluginCategory.post-build=Post-Build-Aktionen +UpdateCenter.PluginCategory.report=Build-Berichte +UpdateCenter.PluginCategory.scm=Versionsverwaltung +UpdateCenter.PluginCategory.scm-related=Versionsverwaltung (weiteres Umfeld) +UpdateCenter.PluginCategory.slaves=Slave-Knoten Management +UpdateCenter.PluginCategory.trigger=Build-Ausl\u00f6ser +UpdateCenter.PluginCategory.ui=Benutzeroberfl\u00e4che +UpdateCenter.PluginCategory.upload=Distribution von Artefakten +UpdateCenter.PluginCategory.user=Benutzerverwaltung und Authentifizierung +UpdateCenter.PluginCategory.must-be-labeled=unkategorisiert +UpdateCenter.PluginCategory.unrecognized=Diverses ({0}) + Permalink.LastBuild=Letzter Build Permalink.LastStableBuild=Letzter stabiler Build Permalink.LastSuccessfulBuild=Letzter erfolgreicher Build Permalink.LastFailedBuild=Letzter fehlgeschlagener Build + +ParameterAction.DisplayName=Parameter +ParametersDefinitionProperty.DisplayName=Parameter +StringParameterDefinition.DisplayName=Text-Parameter +FileParameterDefinition.DisplayName=Datei-Parameter +BooleanParameterDefinition.DisplayName=Bool'scher Wert +ChoiceParameterDefinition.DisplayName=Auswahl +RunParameterDefinition.DisplayName=Run-Parameter +PasswordParameterDefinition.DisplayName=Kennwort-Parameter + +Node.Mode.NORMAL=Diesen Rechner so viel wie m\u00f6glich verwenden +Node.Mode.EXCLUSIVE=Diesen Rechner exklusiv f\u00fcr gebundene Jobs reservieren + +ListView.DisplayName=Listenansicht + +MyView.DisplayName=Meine Ansicht + +LoadStatistics.Legends.TotalExecutors=Gesamtanzahl Build-Prozessoren +LoadStatistics.Legends.BusyExecutors=Besch\u00e4ftigte Build-Prozessoren +LoadStatistics.Legends.QueueLength=L\u00e4nge der Warteschlange + +Cause.LegacyCodeCause.ShortDescription=Job wurde von Legacy-Code gestartet. Keine Information \u00fcber Ausl\u00f6ser verf\u00fcgbar. +Cause.UpstreamCause.ShortDescription=Gestartet durch vorgelagertes Projekt "{0}", Build {1} +Cause.UserCause.ShortDescription=Gestartet durch Benutzer {0} +Cause.RemoteCause.ShortDescription=Gestartet durch entfernten Rechner {0} +Cause.RemoteCause.ShortDescriptionWithNote=Gestartet durch entfernten Rechner {0} mit Hinweis: {1} + diff --git a/core/src/main/resources/hudson/model/Messages_es.properties b/core/src/main/resources/hudson/model/Messages_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..cc21873128bcdb6e9c8dbd34c098bebfedc54e95 --- /dev/null +++ b/core/src/main/resources/hudson/model/Messages_es.properties @@ -0,0 +1,283 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Eric Lefevre-Ardant, Erik Ramfelt, Seiji Sogabe, id:cactusman +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +AbstractBuild.BuildingRemotely=Ejecutando remotamente en {0} +AbstractBuild.BuildingOnMaster=Ejecutando en el nodo principal +AbstractBuild.KeptBecause=Conservar porque {0} + +AbstractItem.NoSuchJobExists=La tarea ''{0}'' no existe. \u00bfQuiz\u00e1s quieras decir ''{1}''? +AbstractProject.NewBuildForWorkspace=Lanzando una nueva ejecuci\u00f3n para crear el espacio de trabajo. +AbstractProject.Pronoun=Proyecto +AbstractProject.Aborted=Cancelado +AbstractProject.BuildInProgress=La ejecuci\u00f3n #{0} ya est\u00e1 en progreso {1} +AbstractProject.UpstreamBuildInProgress=El proyecto padre {0} ya se est\u00e1 ejecutando. +AbstractProject.Disabled=Ejecuci\u00f3n desactivada +AbstractProject.ETA= (ETA:{0}) +AbstractProject.NoSCM=Sin SCM +AbstractProject.NoWorkspace=No hay espacio de trabajo, por tanto no se puede comprobar las actualizaciones. +AbstractProject.PollingABorted=Peticiones SCM abortadas +AbstractProject.ScmAborted=Actualizacion SCM abortada +AbstractProject.WorkspaceOffline=El espacio de trabajo est\u00e1 fuera de l\u00ednea. +AbstractProject.BuildPermission.Description=\ + Este permiso permite al usuario lanzar una ejecuci\u00f3n. +AbstractProject.WorkspacePermission.Description=\ + Este permiso permite visualizar el contenido de un espacio de trabajo que Hudson cre\u00f3 para ejecutar tareas. \ + Si no quieres que un usuario acceda al c\u00f3digo fuente, desactival\u00f3. +AbstractProject.ExtendedReadPermission.Description=\ + Este permiso garantiza acceso de s\u00f3lo lectura a la configuraci\u00f3n de proyectos. \ + S\u00e9 consciente que hay informaci\u00f3n delicada en las tareas como puedan ser las contrase\u00f1as que pueden quedar expuestas a todo el mundo. + +Api.MultipleMatch=XPath "{0}" encontr\u00f3 coincidencias en {1} nodos. \ + Crea una expresi\u00f3n XPath que s\u00f3lo encuentre uno, o utiliza el par\u00e1metro "wraper" para que todos los nodos se agrupen bajo un elemento. +Api.NoXPathMatch=XPath {0} no encontr\u00f3 nada + +BallColor.Aborted=Abortado +BallColor.Disabled=Desactivao +BallColor.Failed=Fallido +BallColor.InProgress=In proceso +BallColor.Pending=Pendiente +BallColor.Success=Correcto +BallColor.Unstable=Inestable + +CLI.clear-queue.shortDescription=Limpiar la cola de trabajos +CLI.delete-job.shortDescription=Borrar una tarea +CLI.disable-job.shortDescription=Desactivar una tarea +CLI.enable-job.shortDescription=Activar una tarea +CLI.delete-node.shortDescription=Borrar un nodo +CLI.disconnect-node.shortDescription=Desconectarse de un nodo +CLI.connect-node.shortDescription=Reconectarse con un nodo +CLI.online-node.shortDescription=Continuar usando un nodo y candelar el comando "offline-node" mas reciente. +CLI.offline-node.shortDescription=Dejar de utilizar un nodo temporalmente hasta que se ejecute el comando "online-node". + +Computer.Caption=Remoto {0} +Computer.Permissions.Title=Nodo +Computer.ConfigurePermission.Description=Este permiso permite configurar nodos +Computer.DeletePermission.Description=Este permiso permite borrar nodos + +ComputerSet.NoSuchSlave=Es nodo {0} no existe +ComputerSet.SlaveAlreadyExists=Es nodo ''{0}'' ya existe +ComputerSet.SpecifySlaveToCopy=Especificar qu\u00e9 nodo copiar +Executor.NotAvailable=N/D + +ExternalJob.DisplayName=Monitorizar una tarea externa +ExternalJob.Pronoun=Tarea + +FreeStyleProject.DisplayName=Crear un proyecto de estilo libre + + +Hudson.BadPortNumber=N\u00famero erroneo de puerto {0} +Hudson.Computer.Caption=Principal +Hudson.Computer.DisplayName=principal +Hudson.ControlCodeNotAllowed=El c\u00f3digo de control {0} no est\u00e1 permitido +Hudson.DisplayName=Hudson +Hudson.JobAlreadyExists=Una tarea con el nombre ''{0}'' ya existe +Hudson.NoJavaInPath=No se encuentra el comando java en el ''PATH''. Quiz\u00e1s necesite configurar JDKs? +Hudson.NoName=No se ha especificado un nombre +Hudson.NoSuchDirectory=No existe el directorio {0} +Hudson.NodeBeingRemoved=Se est\u00e1 borrando el nodo +Hudson.NotADirectory={0} no es un directorio +Hudson.NotAPlugin={0} no es un plugin de Hudson +Hudson.NotJDKDir={0} no es un directorio JDK +Hudson.Permissions.Title=Global +Hudson.USER_CONTENT_README=Los ficheros de este directorio est\u00e1n accesible en http://server/hudson/userContent/ +Hudson.UnsafeChar=''{0}'' es un car\u00e1cter inseguro +Hudson.ViewAlreadyExists=Una vista con el nombre "{0}" ya existe +Hudson.ViewName=Todo +Hudson.NotANumber=No es un n\u00famero +Hudson.NotAPositiveNumber=No es un n\u00famero positivo +Hudson.NotANonNegativeNumber=El n\u00famero podr\u00eda no ser negativo +Hudson.NotANegativeNumber=No es un n\u00famero negativo +Hudson.NotUsesUTF8ToDecodeURL=\ + El contenedor de servlets no usa UTF-8 para decodificar URLs. Esto causar\u00e1 problemas si se usan nombres \ + con caracteres no ASCII. Echa un vistazo a \ + Containers y a \ + Tomcat i18n para mas detalles. +Hudson.AdministerPermission.Description=\ + Este permiso garantiza la posibilidad de hacer cambios de configuraci\u00f3n en el sistema, \ + as\u00ed como el realizar operaciones sobre el sistema de archivos local. \ + (Siempre que lo permita el sistema operativo) +Hudson.ReadPermission.Description=\ + El permiso de lectura es necesario para visualizar casi todas las p\u00e1ginas de Hudson.\ + Este permiso es \u00fatil cuando se quiere que usuarios no autenticados puedan ver las p\u00e1ginas. \ + Elimina este permiso del usuario "anonymous", luego a\u00f1ade "authenticated pseudo-user" con el \ + permiso de lectura. +Hudson.NodeDescription=El nodo principal de Hudson + +Item.Permissions.Title=Tarea + +Job.AllRecentBuildFailed=Todas la ejecuciones recientes han fallado +Job.BuildStability=Estabilidad: {0} +Job.NOfMFailed={0} de las {1} \u00faltimas ejecuciones fallaron. +Job.NoRecentBuildFailed=No hay ejecuciones recientes con fallos. +Job.Pronoun=Proyecto +Job.minutes=Min + +Label.GroupOf=grupo de {0} +Label.InvalidLabel=etiqueta inv\u00e1lida +Label.ProvisionedFrom=Suministrado desde {0} +Queue.AllNodesOffline=Todos los nodos con la etiqueta ''{0}'' est\u00e1n fuera de l\u00ednea +Queue.BlockedBy=Bloqueados por {0} +Queue.HudsonIsAboutToShutDown=Hudson va a ser apagado +Queue.InProgress=Una ejecuci\u00f3n ya est\u00e1 en progreso +Queue.InQuietPeriod=En el periodo de gracia. Termina en {0} +Queue.NodeOffline={0} fuera de l\u00ednea +Queue.Unknown=? +Queue.WaitingForNextAvailableExecutor=Esperando por un ejecutor +Queue.WaitingForNextAvailableExecutorOn=Esperando por un ejecutor en {0} +Queue.init=Restaurando la cola de tareas + +Run.BuildAborted=La ejecuci\u00f3n fu\u00e9 cancelada +Run.MarkedExplicitly=marcado para mantener el registro +Run.Permissions.Title=Ejecutar +Run.UnableToDelete=Imposible borrar {0}: {1} +Run.DeletePermission.Description=\ + Este permiso permite borrar manualmente ejecuciones de la historia de trabajos. +Run.UpdatePermission.Description=\ + Este permiso permite actualizar la descripci\u00f3n y otras propiedeades de un trabajo, \ + por ejemplo poner notas acerca de la causa de un fallo. + +Run.Summary.Stable=estable +Run.Summary.Unstable=instable +Run.Summary.Aborted=cancelado +Run.Summary.BackToNormal=volvi\u00f3 a normal +Run.Summary.BrokenForALongTime=fallido durante un largo periodo +Run.Summary.BrokenSinceThisBuild=fallido desde esta ejecuci\u00f3n +Run.Summary.BrokenSince=fallido desde la ejecuci\u00f3n {0} +Run.Summary.TestFailures={0} {0,choice,0#test fallidos|1#test fallido|1Nombre de servidor imposible de resolver {0}. \ + Quiz\u00e1s tengas que configurar to proxy +UpdateCenter.Status.ConnectionFailed=\ + Imposible de conectar con {0}. \ + Quiz\u00e1s tengas que configurar to proxy +UpdateCenter.init=Inicializando centro de actualizaciones +UpdateCenter.PluginCategory.builder=Plugins relacionados con la forma de ejecutar trabajos +UpdateCenter.PluginCategory.buildwrapper=Plugins que a\u00f1aden tareas relacionadas con la ejecuci\u00f3n +UpdateCenter.PluginCategory.cli=Plugins para la interfaz de l\u00ednea de comandos +UpdateCenter.PluginCategory.cluster=Plugins para la administraci\u00f3n de clusters y trabajos distribuidos +UpdateCenter.PluginCategory.external=Plugins de integraci\u00f3n con sitios y herramientas externas +UpdateCenter.PluginCategory.maven=Plugins para Maven +UpdateCenter.PluginCategory.misc=Varios +UpdateCenter.PluginCategory.notifier=Plugins de notificaci\u00f3n +UpdateCenter.PluginCategory.page-decorator=Plugins para decorar p\u00e1ginas +UpdateCenter.PluginCategory.post-build=Plugins que a\u00f1aden acciones de post-ejecuti\u00f3n +UpdateCenter.PluginCategory.report=Plugins para generar informes +UpdateCenter.PluginCategory.scm=Plugins de repositorios de software +UpdateCenter.PluginCategory.scm-related=Plugins relacionados con la gesti\u00f3n repositorios +UpdateCenter.PluginCategory.slaves=Plugins para el control de nodos + + +UpdateCenter.PluginCategory.trigger=Plugins lanzadores de tareas +UpdateCenter.PluginCategory.ui=Plugins de interfaz de usuario +UpdateCenter.PluginCategory.upload=Plugins para subir o desplegar los paquetes generados +UpdateCenter.PluginCategory.user=Plugins para la gesti\u00f3n de usuarios y autenticaci\u00f3n +UpdateCenter.PluginCategory.must-be-labeled=Sin categor\u00eda +UpdateCenter.PluginCategory.unrecognized=Miscel\u00e1neo ({0}) + +Permalink.LastBuild=\u00daltima ejecuci\u00f3n +Permalink.LastStableBuild=\u00daltima ejecuci\u00f3n estable +Permalink.LastSuccessfulBuild=\u00daltima ejecuci\u00f3n correcta +Permalink.LastFailedBuild=\u00daltima ejecuci\u00f3n fallida + +ParameterAction.DisplayName=Par\u00e1metros +ParametersDefinitionProperty.DisplayName=Par\u00e1metros +StringParameterDefinition.DisplayName=Par\u00e1metro de cadena +FileParameterDefinition.DisplayName=Par\u00e1metro de fichero +BooleanParameterDefinition.DisplayName=Valor booleano +ChoiceParameterDefinition.DisplayName=Elecci\u00f3n +RunParameterDefinition.DisplayName=Par\u00e1metro de ejecuci\u00f3n +PasswordParameterDefinition.DisplayName=Par\u00e1metro de contrase\u00f1a + +Node.Mode.NORMAL=Utilizar este nodo tanto como sea posible +Node.Mode.EXCLUSIVE=Dejar esta nodo para ejecutar s\u00f3lamente tareas vinculadas a \u00e9l + +ListView.DisplayName=Lista de vistas + +MyView.DisplayName=Mi vista + +LoadStatistics.Legends.TotalExecutors=Ejecutores totales +LoadStatistics.Legends.BusyExecutors=Ejecutores ocupados +LoadStatistics.Legends.QueueLength=Tama\u00f1o de la cola + +Cause.LegacyCodeCause.ShortDescription=Un c\u00f3digo antiguo (legacy) lanz\u00f3 este proceso. No hay informaci\u00f3n de la causa. +Cause.UpstreamCause.ShortDescription=Lanzada por el proyecto padre "{0}" ejecuci\u00f3n n\u00famero {1} +Cause.UserCause.ShortDescription=Lanzada por el usuario {0} +Cause.RemoteCause.ShortDescription=Lanzada por la m\u00e1quina remota {0} +Cause.RemoteCause.ShortDescriptionWithNote=Lanzada por la m\u00e1quina remota {0} con la nota: {1} + +ProxyView.NoSuchViewExists=La vista global {0} no existe +ProxyView.DisplayName=Incluir una vista global + +MyViewsProperty.GlobalAction.DisplayName=Mis vistas +MyViewsProperty.ViewExistsCheck.NotExist=La vista con el nombre {0} no existe +MyViewsProperty.ViewExistsCheck.AlreadyExists=Una vista con el nombre {0} ya existe + +CLI.restart.shortDescription=Reiniciar Hudson +CLI.safe-restart.shortDescription=Reiniciar Hudson de manera segura +CLI.keep-build.shortDescription=Marcar la ejecuci\u00f3n para ser guardada para siempre. +CLI.quiet-down.shortDescription=Poner Hudson en modo quieto y estar preparado para un reinicio. No comenzar ninguna ejecuci\u00f3n. +CLI.cancel-quiet-down.shortDescription=Cancelar el efecto del comando "quiet-down". +CLI.reload-configuration.shortDescription=Descartar todos los datos presentes en memoria y recargar todo desde el disco duro. \u00datil cuando se han hecho modificaciones a mano en el disco duro. + +View.MissingMode=No se ha especificado el tipo para la vista +AbstractProject.NoBuilds=No existen ejecuciones. Lanzando una nueva. +Slave.Remote.Director.Mandatory=El directorio remoto es obligatorio +Slave.Network.Mounted.File.System.Warning=\u00bfEst\u00e1s seguro de querer utilizar un directorio de red para el "Filesystem" ra\u00edz?.\ + Ten en cuenta que este directorio no necesita estar visible desde el nodo de Hudson principal. +HealthReport.EmptyString= +MultiStageTimeSeries.EMPTY_STRING= +ComputerSet.DisplayName=nodos +Run.InProgressDuration={0} y contando +Node.LabelMissing={0} no tiene etiqueta {1} +Node.BecauseNodeIsReserved={0} est\u00e1 reservado para trabajos asignados a este nodo. +Permalink.LastUnsuccessfulBuild=\u00daltima ejecuci\u00f3n fallida +Permalink.LastUnstableBuild=\u00daltima ejecuci\u00f3n inestable +# Slave node offline or not a remote channel (such as master node). +Computer.BadChannel=El nodo est\u00e1 apagado o no existe el canal remoto (como puede ocurrir en un nodo principal) +# My Views +MyViewsProperty.DisplayName=Mis vistas diff --git a/core/src/main/resources/hudson/model/Messages_fr.properties b/core/src/main/resources/hudson/model/Messages_fr.properties index 07450c385344a2c81eb63a4194cad6eb229d98c7..ba42c139a025e097b533dac8e4fe69fbbff90d40 100644 --- a/core/src/main/resources/hudson/model/Messages_fr.properties +++ b/core/src/main/resources/hudson/model/Messages_fr.properties @@ -20,36 +20,36 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -AbstractBuild.BuildingRemotely=Construction à distance sur {0} -AbstractBuild.KeptBecause=conservé à cause de {0} +AbstractBuild.BuildingRemotely=Construction \u00e0 distance sur {0} +AbstractBuild.KeptBecause=conserv\u00e9 \u00e0 cause de {0} -AbstractProject.NewBuildForWorkspace=Demande d''un nouveau build afin d''avoir un répertoire de travail +AbstractProject.NewBuildForWorkspace=Demande d''un nouveau build afin d''avoir un r\u00e9pertoire de travail AbstractProject.Pronoun=Projet -AbstractProject.Aborted=Annulé -AbstractProject.BuildInProgress=Le build #{0} est déjà en cours {1} -AbstractProject.Disabled=Build désactivé -AbstractProject.ETA=\ (fin prévue à: {0}) +AbstractProject.Aborted=Annul\u00e9 +AbstractProject.BuildInProgress=Le build #{0} est d\u00e9j\u00e0 en cours {1} +AbstractProject.Disabled=Build d\u00e9sactiv\u00e9 +AbstractProject.ETA=\ (fin pr\u00e9vue \u00e0: {0}) AbstractProject.NoSCM=Pas d''outil de gestion de version -AbstractProject.NoWorkspace=Pas répertoire de travail disponible, donc impossible de récupérer les mises à jour. -AbstractProject.PollingABorted=Scrutation de l''outil de gestion de version annulée -AbstractProject.ScmAborted=Récupération des mises à jour à partir de l''outil de gestion de version annulée -AbstractProject.WorkspaceOffline=Le répertoire de travail est déconnecté. +AbstractProject.NoWorkspace=Pas r\u00e9pertoire de travail disponible, donc impossible de r\u00e9cup\u00e9rer les mises \u00e0 jour. +AbstractProject.PollingABorted=Scrutation de l''outil de gestion de version annul\u00e9e +AbstractProject.ScmAborted=R\u00e9cup\u00e9ration des mises \u00e0 jour \u00e0 partir de l''outil de gestion de version annul\u00e9e +AbstractProject.WorkspaceOffline=Le r\u00e9pertoire de travail est d\u00e9connect\u00e9. AbstractProject.BuildPermission.Description=\ - Ce droit permet de démarrer un nouveau build. + Ce droit permet de d\u00e9marrer un nouveau build. AbstractProject.WorkspacePermission.Description=\ - Ce droit permet d''obtenir le contenu d''un répertoire de travail récupéré par Hudson pour réaliser des builds. \ - Si vous ne voulez pas qu''un utilisateur ait accès au code source, vous pouvez retirer ce droit. + Ce droit permet d''obtenir le contenu d''un r\u00e9pertoire de travail r\u00e9cup\u00e9r\u00e9 par Hudson pour r\u00e9aliser des builds. \ + Si vous ne voulez pas qu''un utilisateur ait acc\u00e8s au code source, vous pouvez retirer ce droit. -Api.MultipleMatch=Le XPath "{0}" correspond à {1} noeud(s). \ - Merci de fournir un XPath qui ne correspond qu'à un seul noeud, ou utilisez le paramètre de requète "wrapper" pour les encapsuler tous dans un élément racine. +Api.MultipleMatch=Le XPath "{0}" correspond \u00e0 {1} noeud(s). \ + Merci de fournir un XPath qui ne correspond qu'\u00e0 un seul noeud, ou utilisez le param\u00e8tre de requ\u00e8te "wrapper" pour les encapsuler tous dans un \u00e9l\u00e9ment racine. Api.NoXPathMatch=Pas de correspondance avec le XPath {0} -BallColor.Aborted=Annulé -BallColor.Disabled=Désactivé -BallColor.Failed=En échec +BallColor.Aborted=Annul\u00e9 +BallColor.Disabled=D\u00e9sactiv\u00e9 +BallColor.Failed=En \u00e9chec BallColor.InProgress=En cours BallColor.Pending=En attente -BallColor.Success=Succès +BallColor.Success=Succ\u00e8s BallColor.Unstable=Instable Computer.Caption=Esclave {0} @@ -58,127 +58,127 @@ Computer.ConfigurePermission.Description=Ce droit permet aux utilisateurs de con Computer.DeletePermission.Description=Ce droit permet aux utilisateurs de supprimer les esclaves. ComputerSet.NoSuchSlave=Cet esclave n''existe pas : {0} -ComputerSet.SlaveAlreadyExists=L''esclave appelé ''{0}'' existe déjà -ComputerSet.SpecifySlaveToCopy=Spécifiez l''esclave à copier +ComputerSet.SlaveAlreadyExists=L''esclave appel\u00e9 ''{0}'' existe d\u00e9j\u00e0 +ComputerSet.SpecifySlaveToCopy=Sp\u00e9cifiez l''esclave \u00e0 copier Executor.NotAvailable=N/A -ExternalJob.DisplayName=Contrôler un job externe +ExternalJob.DisplayName=Contr\u00f4ler un job externe ExternalJob.Pronoun=Job FreeStyleProject.DisplayName=Construire un projet free-style -Hudson.BadPortNumber=Numéro de port incorrect {0} -Hudson.Computer.Caption=Maître -Hudson.Computer.DisplayName=maître -Hudson.ControlCodeNotAllowed=Code de contrôle non autorisé +Hudson.BadPortNumber=Num\u00e9ro de port incorrect {0} +Hudson.Computer.Caption=Ma\u00eetre +Hudson.Computer.DisplayName=ma\u00eetre +Hudson.ControlCodeNotAllowed=Code de contr\u00f4le non autoris\u00e9 Hudson.DisplayName=Hudson -Hudson.JobAlreadyExists=Un job existe déjà avec le nom ''{0}'' -Hudson.NoJavaInPath=java n''est pas dans votre PATH. Peut-être avez-vous besoin de configurer les JDKs? -Hudson.NoName=Aucune nom n''est spécifié -Hudson.NoSuchDirectory=Le répertoire n''existe pas: {0} -Hudson.NotADirectory={0} n''est pas un répertoire +Hudson.JobAlreadyExists=Un job existe d\u00e9j\u00e0 avec le nom ''{0}'' +Hudson.NoJavaInPath=java n''est pas dans votre PATH. Peut-\u00eatre avez-vous besoin de configurer les JDKs? +Hudson.NoName=Aucune nom n''est sp\u00e9cifi\u00e9 +Hudson.NoSuchDirectory=Le r\u00e9pertoire n''existe pas: {0} +Hudson.NotADirectory={0} n''est pas un r\u00e9pertoire Hudson.NotAPlugin={0} n''est pas un plugin Hudson -Hudson.NotJDKDir={0} ne semble pas être un répertoire contenant un JDK +Hudson.NotJDKDir={0} ne semble pas \u00eatre un r\u00e9pertoire contenant un JDK Hudson.Permissions.Title=Global -Hudson.UnsafeChar=''{0}'' est un caractère dangereux -Hudson.ViewAlreadyExists=Une vue existe déjà avec le nom "{0}" +Hudson.UnsafeChar=''{0}'' est un caract\u00e8re dangereux +Hudson.ViewAlreadyExists=Une vue existe d\u00e9j\u00e0 avec le nom "{0}" Hudson.ViewName=Tous Hudson.NotANumber=Ceci n''est pas un nombre Hudson.NotAPositiveNumber=Ceci n''est pas un nombre positif -Hudson.NotANegativeNumber=Ceci n''est pas un nombre négatif +Hudson.NotANegativeNumber=Ceci n''est pas un nombre n\u00e9gatif Hudson.NotUsesUTF8ToDecodeURL=\ - Votre conteneur n''utilise pas UTF-8 pour décoder les URLs. Si vous utilisez des caractères non-ASCII \ - dans le nom d''un job ou autre, cela causera des problèmes. \ - Consultez les pages sur les conteneurs et \ - sur Tomcat i18n pour plus de détails. + Votre conteneur n''utilise pas UTF-8 pour d\u00e9coder les URLs. Si vous utilisez des caract\u00e8res non-ASCII \ + dans le nom d''un job ou autre, cela causera des probl\u00e8mes. \ + Consultez les pages sur les conteneurs et \ + sur Tomcat i18n pour plus de d\u00e9tails. Hudson.AdministerPermission.Description=\ - Ce droit permet de faire des changements de configuration au niveau de tout le système, \ - et de réaliser des opérations très délicates qui nécessitent un accès complet à tout le système \ - (dans les limites autorisées par l''OS sous-jacent). + Ce droit permet de faire des changements de configuration au niveau de tout le syst\u00e8me, \ + et de r\u00e9aliser des op\u00e9rations tr\u00e8s d\u00e9licates qui n\u00e9cessitent un acc\u00e8s complet \u00e0 tout le syst\u00e8me \ + (dans les limites autoris\u00e9es par l''OS sous-jacent). Hudson.ReadPermission.Description=\ - Le droit en lecture est nécessaire pour voir la plupart des pages de Hudson. \ - Ce droit est utile quand vous ne voulez pas que les utilisateurs non authentifiés puissent voir les pages Hudson \ - — retirez ce droit à l''utilisateur anonymous, puis \ + Le droit en lecture est n\u00e9cessaire pour voir la plupart des pages de Hudson. \ + Ce droit est utile quand vous ne voulez pas que les utilisateurs non authentifi\u00e9s puissent voir les pages Hudson \ + — retirez ce droit \u00e0 l''utilisateur anonymous, puis \ ajoutez le pseudo-utilisateur "authenticated" et accordez-lui le droit en lecture. Item.Permissions.Title=Job -Job.AllRecentBuildFailed=Tous les builds récents ont échoué. -Job.BuildStability=Stabilité du build: {0} -Job.NOfMFailed={0} des {1} derniers builds ont échoué. -Job.NoRecentBuildFailed=Aucun build récent n''a échoué. +Job.AllRecentBuildFailed=Tous les builds r\u00e9cents ont \u00e9chou\u00e9. +Job.BuildStability=Stabilit\u00e9 du build: {0} +Job.NOfMFailed={0} des {1} derniers builds ont \u00e9chou\u00e9. +Job.NoRecentBuildFailed=Aucun build r\u00e9cent n''a \u00e9chou\u00e9. Job.Pronoun=job Job.minutes=mn -Queue.AllNodesOffline=Tous les esclaves avec le libellé ''{0}'' sont hors ligne -Queue.BlockedBy=Bloqué par {0} +Queue.AllNodesOffline=Tous les esclaves avec le libell\u00e9 ''{0}'' sont hors ligne +Queue.BlockedBy=Bloqu\u00e9 par {0} Queue.HudsonIsAboutToShutDown=Hudson est sur le point de se fermer -Queue.InProgress=Un build est déjà en cours -Queue.InQuietPeriod=En période d''attente. Expire dans {0} +Queue.InProgress=Un build est d\u00e9j\u00e0 en cours +Queue.InQuietPeriod=En p\u00e9riode d''attente. Expire dans {0} Queue.NodeOffline={0} est hors ligne Queue.Unknown=??? -Queue.WaitingForNextAvailableExecutor=En attente du prochain exécuteur disponible -Queue.WaitingForNextAvailableExecutorOn=En attente du prochain exécuteur disponible sur {0} -Run.BuildAborted=Le build a été annulé -Run.MarkedExplicitly=marqué explicitement pour conservé l''enregistrement +Queue.WaitingForNextAvailableExecutor=En attente du prochain ex\u00e9cuteur disponible +Queue.WaitingForNextAvailableExecutorOn=En attente du prochain ex\u00e9cuteur disponible sur {0} +Run.BuildAborted=Le build a \u00e9t\u00e9 annul\u00e9 +Run.MarkedExplicitly=marqu\u00e9 explicitement pour conserv\u00e9 l''enregistrement Run.Permissions.Title=Lancer Run.UnableToDelete=Impossible de supprimer {0}: {1} Run.DeletePermission.Description=\ - Cette option permet aux utilisateurs de supprimer manuellement des builds spécifiques dans l''historique de build. + Cette option permet aux utilisateurs de supprimer manuellement des builds sp\u00e9cifiques dans l''historique de build. Run.UpdatePermission.Description=\ - Cette option permet aux utilisateurs de mettre à jour la description et d''autres propriétés d''un build, \ - par exemple pour laisser des notes sur la cause d''échec d''un build. + Cette option permet aux utilisateurs de mettre \u00e0 jour la description et d''autres propri\u00e9t\u00e9s d''un build, \ + par exemple pour laisser des notes sur la cause d''\u00e9chec d''un build. -Slave.InvalidConfig.Executors=Configuration esclave invalide pour {0}. Nombre d''exécuteurs invalide. +Slave.InvalidConfig.Executors=Configuration esclave invalide pour {0}. Nombre d''ex\u00e9cuteurs invalide. Slave.InvalidConfig.NoName=Configuration esclave invalide. Le nom est vide. -Slave.InvalidConfig.NoRemoteDir=Configuration esclave invalide pour {0}. Pas de répertoire distant fourni +Slave.InvalidConfig.NoRemoteDir=Configuration esclave invalide pour {0}. Pas de r\u00e9pertoire distant fourni Slave.Launching={0} Lancement de l''agent esclave -Slave.Terminated={0} l'agent esclave a été terminé +Slave.Terminated={0} l'agent esclave a \u00e9t\u00e9 termin\u00e9 Slave.UnableToLaunch=Impossible de lancer l''agent esclave pour {0} {1} Slave.UnixSlave=Ceci est un esclave Unix Slave.WindowsSlave=Ceci est un esclave Windows View.Permissions.Title=Voir View.CreatePermission.Description=\ - Ce droit permet aux utilisateurs de créer des nouvelles vues. + Ce droit permet aux utilisateurs de cr\u00e9er des nouvelles vues. View.DeletePermission.Description=\ Ce droit permet aux utilisateurs de supprimer des vues existantes. View.ConfigurePermission.Description=\ Ce droit permet aux utilisateurs de changer la configuration des vues. -UpdateCenter.Status.CheckingInternet=Vérification de la connexion à internet -UpdateCenter.Status.CheckingJavaNet=Vérification de la connexion à java.net -UpdateCenter.Status.Success=Succès +UpdateCenter.Status.CheckingInternet=V\u00e9rification de la connexion \u00e0 internet +UpdateCenter.Status.CheckingJavaNet=V\u00e9rification de la connexion \u00e0 hudson-ci.org +UpdateCenter.Status.Success=Succ\u00e8s UpdateCenter.Status.UnknownHostException=\ - Impossible de résoudre le nom de host {0}. \ - Peut-être devez-vous configurer un proxy HTTP? + Impossible de r\u00e9soudre le nom de host {0}. \ + Peut-\u00eatre devez-vous configurer un proxy HTTP? UpdateCenter.Status.ConnectionFailed=\ - Echec lors de la connexion à {0}. \ - Peut-être devez-vous configurer le proxy HTTP. + Echec lors de la connexion \u00e0 {0}. \ + Peut-\u00eatre devez-vous configurer le proxy HTTP. Permalink.LastBuild=Dernier build Permalink.LastStableBuild=Dernier build stable -Permalink.LastSuccessfulBuild=Dernier build avec succès -Permalink.LastFailedBuild=Dernier build en échec +Permalink.LastSuccessfulBuild=Dernier build avec succ\u00e8s +Permalink.LastFailedBuild=Dernier build en \u00e9chec -ParameterAction.DisplayName=Paramètres -ParametersDefinitionProperty.DisplayName=Paramètres -StringParameterDefinition.DisplayName=Paramètre String -FileParameterDefinition.DisplayName=Paramètre fichier +ParameterAction.DisplayName=Param\u00e8tres +ParametersDefinitionProperty.DisplayName=Param\u00e8tres +StringParameterDefinition.DisplayName=Param\u00e8tre String +FileParameterDefinition.DisplayName=Param\u00e8tre fichier Node.Mode.NORMAL=Utiliser cet esclave autant que possible -Node.Mode.EXCLUSIVE=Réserver cette machine pour les jobs qui lui sont attachés seulement +Node.Mode.EXCLUSIVE=R\u00e9server cette machine pour les jobs qui lui sont attach\u00e9s seulement ListView.DisplayName=Vue liste MyView.DisplayName=Ma vue -LoadStatistics.Legends.TotalExecutors=Nb total d''exécuteurs -LoadStatistics.Legends.BusyExecutors=Nb d''exécuteurs occupés +LoadStatistics.Legends.TotalExecutors=Nb total d''ex\u00e9cuteurs +LoadStatistics.Legends.BusyExecutors=Nb d''ex\u00e9cuteurs occup\u00e9s LoadStatistics.Legends.QueueLength=Longueur de la file d''attente -Cause.LegacyCodeCause.ShortDescription=Ce job a été lancé par du code legacy. Pas d''information sur les causes -Cause.UpstreamCause.ShortDescription=Démarré par le projet amont "{0}" de numéro de build {1} -Cause.UserCause.ShortDescription=Démarré par l''utilisateur {0} -Cause.RemoteCause.ShortDescription=Démarré à distance par {0} +Cause.LegacyCodeCause.ShortDescription=Ce job a \u00e9t\u00e9 lanc\u00e9 par du code legacy. Pas d''information sur les causes +Cause.UpstreamCause.ShortDescription=D\u00e9marr\u00e9 par le projet amont "{0}" de num\u00e9ro de build {1} +Cause.UserCause.ShortDescription=D\u00e9marr\u00e9 par l''utilisateur {0} +Cause.RemoteCause.ShortDescription=D\u00e9marr\u00e9 \u00e0 distance par {0} diff --git a/core/src/main/resources/hudson/model/Messages_ja.properties b/core/src/main/resources/hudson/model/Messages_ja.properties index 35e90b82b8fc7c4af2c3553a129d40730e396363..bc5fed369a8bacfba25f7fbd2db3e48823563475 100644 --- a/core/src/main/resources/hudson/model/Messages_ja.properties +++ b/core/src/main/resources/hudson/model/Messages_ja.properties @@ -1,6 +1,6 @@ # The MIT License # -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe, id:cactusman +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe, id:cactusman # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -20,165 +20,250 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -AbstractBuild.BuildingRemotely={0} \u3067\u30D3\u30EB\u30C9\u3057\u307E\u3059\u3002 +AbstractBuild.BuildingRemotely={0} \u3067\u30d3\u30eb\u30c9\u3057\u307e\u3059\u3002 +AbstractBuild.BuildingOnMaster=\u30de\u30b9\u30bf\u30fc\u3067\u30d3\u30eb\u30c9\u3057\u307e\u3059\u3002 AbstractBuild.KeptBecause=kept because of {0} -AbstractProject.NewBuildForWorkspace=\u65B0\u898F\u306E\u30D3\u30EB\u30C9\u3092\u5B9F\u884C\u3057\u3066\u3001\u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9\u3092\u4F5C\u6210\u3057\u3066\u304F\u3060\u3055\u3044\u3002 -AbstractProject.Pronoun=\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8 -AbstractProject.Aborted=\u4E2D\u6B62 -AbstractProject.BuildInProgress=\u30D3\u30EB\u30C9 #{0} \u306F\u65E2\u306B\u5B9F\u884C\u4E2D\u3067\u3059\u3002{1} -AbstractProject.Disabled=\u30D3\u30EB\u30C9\u306F\u7121\u52B9\u306B\u306A\u3063\u3066\u3044\u307E\u3059\u3002 -AbstractProject.ETA=\ (\u4E88\u5B9A\u6642\u9593:{0}) -AbstractProject.NoSCM=SCM\u304C\u8A2D\u5B9A\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002 -AbstractProject.NoWorkspace=\u5229\u7528\u53EF\u80FD\u306A\u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9\u304C\u306A\u3044\u306E\u3067\u3001\u66F4\u65B0\u3092\u30C1\u30A7\u30C3\u30AF\u3067\u304D\u307E\u305B\u3093\u3002 -AbstractProject.PollingABorted=SCM\u306E\u30DD\u30FC\u30EA\u30F3\u30B0\u3092\u4E2D\u6B62\u3057\u307E\u3059\u3002 -AbstractProject.ScmAborted=SCM\u306E\u30C1\u30A7\u30C3\u30AF\u30A2\u30A6\u30C8\u3092\u4E2D\u6B62\u3057\u307E\u3059\u3002 -AbstractProject.WorkspaceOffline=\u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9\u306F\u30AA\u30D5\u30E9\u30A4\u30F3\u3067\u3059\u3002 +AbstractItem.NoSuchJobExists=\u30b8\u30e7\u30d6''{0}''\u306f\u5b58\u5728\u3057\u307e\u305b\u3093\u3002''{1}''\u3067\u3059\u304b? +AbstractProject.NewBuildForWorkspace=\u65b0\u898f\u306e\u30d3\u30eb\u30c9\u3092\u5b9f\u884c\u3057\u3066\u3001\u30ef\u30fc\u30af\u30b9\u30da\u30fc\u30b9\u3092\u4f5c\u6210\u3057\u3066\u304f\u3060\u3055\u3044\u3002 +AbstractProject.Pronoun=\u30d7\u30ed\u30b8\u30a7\u30af\u30c8 +AbstractProject.Aborted=\u4e2d\u6b62 +AbstractProject.BuildInProgress=\u30d3\u30eb\u30c9 #{0} \u306f\u65e2\u306b\u5b9f\u884c\u4e2d\u3067\u3059\u3002{1} +AbstractProject.UpstreamBuildInProgress=\u4e0a\u6d41\u30d7\u30ed\u30b8\u30a7\u30af\u30c8 {0} \u306f\u3059\u3067\u306b\u30d3\u30eb\u30c9\u4e2d\u3067\u3059\u3002 +AbstractProject.Disabled=\u30d3\u30eb\u30c9\u306f\u7121\u52b9\u306b\u306a\u3063\u3066\u3044\u307e\u3059\u3002 +AbstractProject.ETA=\ (\u4e88\u5b9a\u6642\u9593:{0}) +AbstractProject.NoBuilds=\u30d3\u30eb\u30c9\u306f\u3042\u308a\u307e\u305b\u3093\u3002\u65b0\u3057\u3044\u30d3\u30eb\u30c9\u3092\u30b9\u30b1\u30b8\u30e5\u30fc\u30eb\u3057\u307e\u3059\u3002 +AbstractProject.NoSCM=SCM\u304c\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002 +AbstractProject.NoWorkspace=\u5229\u7528\u53ef\u80fd\u306a\u30ef\u30fc\u30af\u30b9\u30da\u30fc\u30b9\u304c\u306a\u3044\u306e\u3067\u3001\u66f4\u65b0\u3092\u30c1\u30a7\u30c3\u30af\u3067\u304d\u307e\u305b\u3093\u3002 +AbstractProject.PollingABorted=SCM\u306e\u30dd\u30fc\u30ea\u30f3\u30b0\u3092\u4e2d\u6b62\u3057\u307e\u3059\u3002 +AbstractProject.ScmAborted=SCM\u306e\u30c1\u30a7\u30c3\u30af\u30a2\u30a6\u30c8\u3092\u4e2d\u6b62\u3057\u307e\u3059\u3002 +AbstractProject.WorkspaceOffline=\u30ef\u30fc\u30af\u30b9\u30da\u30fc\u30b9\u306f\u30aa\u30d5\u30e9\u30a4\u30f3\u3067\u3059\u3002 AbstractProject.BuildPermission.Description=\ - \u3053\u306E\u30D1\u30FC\u30DF\u30C3\u30B7\u30E7\u30F3\u306F\u3001\u65B0\u898F\u30D3\u30EB\u30C9\u306E\u958B\u59CB\u3092\u8A31\u53EF\u3057\u307E\u3059\u3002 + \u3053\u306e\u30d1\u30fc\u30df\u30c3\u30b7\u30e7\u30f3\u306f\u3001\u65b0\u898f\u30d3\u30eb\u30c9\u306e\u958b\u59cb\u3092\u8a31\u53ef\u3057\u307e\u3059\u3002 AbstractProject.WorkspacePermission.Description=\ - \u3053\u306E\u30D1\u30FC\u30DF\u30C3\u30B7\u30E7\u30F3\u306F\u3001Hudson\u304C\u30D3\u30EB\u30C9\u5B9F\u884C\u7528\u306B\u30C1\u30A7\u30C3\u30AF\u30A2\u30A6\u30C8\u3057\u305F\u3001\u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9\u306E\u30B3\u30F3\u30C6\u30F3\u30C4\u306E\u53D6\u5F97\u3092\u8A31\u53EF\u3057\u307E\u3059\u3002\ - \u30E6\u30FC\u30B6\u30FC\u306B\u30BD\u30FC\u30B9\u30B3\u30FC\u30C9\u3092\u89E6\u3089\u305B\u305F\u304F\u306A\u3044\u306E\u3067\u3042\u308C\u3070\u3001\u3053\u306E\u30D1\u30FC\u30DF\u30C3\u30B7\u30E7\u30F3\u3092\u4E0E\u3048\u306A\u3044\u3067\u304F\u3060\u3055\u3044\u3002 + \u3053\u306e\u30d1\u30fc\u30df\u30c3\u30b7\u30e7\u30f3\u306f\u3001Hudson\u304c\u30d3\u30eb\u30c9\u5b9f\u884c\u7528\u306b\u30c1\u30a7\u30c3\u30af\u30a2\u30a6\u30c8\u3057\u305f\u3001\u30ef\u30fc\u30af\u30b9\u30da\u30fc\u30b9\u306e\u30b3\u30f3\u30c6\u30f3\u30c4\u306e\u53d6\u5f97\u3092\u8a31\u53ef\u3057\u307e\u3059\u3002\ + \u30e6\u30fc\u30b6\u30fc\u306b\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u3092\u89e6\u3089\u305b\u305f\u304f\u306a\u3044\u306e\u3067\u3042\u308c\u3070\u3001\u3053\u306e\u30d1\u30fc\u30df\u30c3\u30b7\u30e7\u30f3\u3092\u4e0e\u3048\u306a\u3044\u3067\u304f\u3060\u3055\u3044\u3002 +AbstractProject.ExtendedReadPermission.Description=\ + \u3053\u306e\u30d1\u30fc\u30df\u30c3\u30b7\u30e7\u30f3\u306f\u3001\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u8a2d\u5b9a\u753b\u9762\u306e\u53c2\u7167\u306e\u307f\u8a31\u53ef\u3057\u307e\u3059\u3002\ + \u3053\u306e\u30d1\u30fc\u30df\u30c3\u30b7\u30e7\u30f3\u3092\u4e0e\u3048\u308b\u3068\u3001\u30d1\u30b9\u30ef\u30fc\u30c9\u306e\u3088\u3046\u306a\u30d3\u30eb\u30c9\u306e\u614e\u91cd\u306b\u6271\u3046\u5fc5\u8981\u304c\u3042\u308b\u60c5\u5831\u304c\u516c\u958b\u3055\u308c\u3066\u3057\u307e\u3046\u3053\u3068\u306b\u6ce8\u610f\u3057\u3066\u304f\u3060\u3055\u3044\u3002 -Api.MultipleMatch=XPath "{0}" \u306F {1} \u500B\u306E\u30CE\u30FC\u30C9\u3068\u4E00\u81F4\u3057\u307E\u3057\u305F\u3002 \ - 1\u3064\u306E\u30CE\u30FC\u30C9\u306B\u306E\u307F\u4E00\u81F4\u3059\u308BXPath\u3092\u4F5C\u6210\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u3082\u3057\u304F\u306F\u3001\u30EB\u30FC\u30C8\u8981\u7D20\u304C\u542B\u3080\u3059\u3079\u3066\u3092\u30E9\u30C3\u30D7\u3059\u308B"wrapper"\u30AF\u30A8\u30EA\u30FC\u30D1\u30E9\u30E1\u30FC\u30BF\u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\u3002 -Api.NoXPathMatch=XPath \u201D{0}"\u306F\u4E00\u81F4\u3057\u307E\u305B\u3093\u3002 +Api.MultipleMatch=XPath "{0}" \u306f {1} \u500b\u306e\u30ce\u30fc\u30c9\u3068\u4e00\u81f4\u3057\u307e\u3057\u305f\u3002 \ + 1\u3064\u306e\u30ce\u30fc\u30c9\u306b\u306e\u307f\u4e00\u81f4\u3059\u308bXPath\u3092\u4f5c\u6210\u3057\u3066\u304f\u3060\u3055\u3044\u3002\u3082\u3057\u304f\u306f\u3001\u30eb\u30fc\u30c8\u8981\u7d20\u304c\u542b\u3080\u3059\u3079\u3066\u3092\u30e9\u30c3\u30d7\u3059\u308b"wrapper"\u30af\u30a8\u30ea\u30fc\u30d1\u30e9\u30e1\u30fc\u30bf\u3092\u4f7f\u7528\u3057\u3066\u304f\u3060\u3055\u3044\u3002 +Api.NoXPathMatch=XPath \u201d{0}"\u306f\u4e00\u81f4\u3057\u307e\u305b\u3093\u3002 -BallColor.Aborted=\u4E2D\u65AD -BallColor.Disabled=\u969C\u5BB3 +BallColor.Aborted=\u4e2d\u65ad +BallColor.Disabled=\u969c\u5bb3 BallColor.Failed=\u5931\u6557 -BallColor.InProgress=\u9032\u884C\u4E2D -BallColor.Pending=\u672A\u6C7A\u5B9A -BallColor.Success=\u6210\u529F -BallColor.Unstable=\u4E0D\u5B89\u5B9A - -Computer.Caption=\u30B9\u30EC\u30FC\u30D6 {0} -Computer.Permissions.Title=\u30B9\u30EC\u30FC\u30D6 -Computer.ConfigurePermission.Description=\u3053\u306E\u30D1\u30FC\u30DF\u30C3\u30B7\u30E7\u30F3\u306F\u3001\u30B9\u30EC\u30FC\u30D6\u306E\u8A2D\u5B9A\u3092\u8A31\u53EF\u3057\u307E\u3059\u3002 -Computer.DeletePermission.Description=\u3053\u306E\u30D1\u30FC\u30DF\u30C3\u30B7\u30E7\u30F3\u306F\u3001\u30B9\u30EC\u30FC\u30D6\u306E\u524A\u9664\u3092\u8A31\u53EF\u3057\u307E\u3059\u3002 - -ComputerSet.NoSuchSlave=\u30B9\u30EC\u30FC\u30D6\u304C\u5B58\u5728\u3057\u307E\u305B\u3093: {0} -ComputerSet.SlaveAlreadyExists=''{0}''\u306F\u3059\u3067\u306B\u5B58\u5728\u3057\u307E\u3059 -ComputerSet.SpecifySlaveToCopy=\u30B3\u30D4\u30FC\u3059\u308B\u30B9\u30EC\u30FC\u30D6\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044 +BallColor.InProgress=\u9032\u884c\u4e2d +BallColor.Pending=\u672a\u6c7a\u5b9a +BallColor.Success=\u6210\u529f +BallColor.Unstable=\u4e0d\u5b89\u5b9a + +Computer.Caption=\u30b9\u30ec\u30fc\u30d6 {0} +Computer.Permissions.Title=\u30b9\u30ec\u30fc\u30d6 +Computer.ConfigurePermission.Description=\u3053\u306e\u30d1\u30fc\u30df\u30c3\u30b7\u30e7\u30f3\u306f\u3001\u30b9\u30ec\u30fc\u30d6\u306e\u8a2d\u5b9a\u3092\u8a31\u53ef\u3057\u307e\u3059\u3002 +Computer.DeletePermission.Description=\u3053\u306e\u30d1\u30fc\u30df\u30c3\u30b7\u30e7\u30f3\u306f\u3001\u30b9\u30ec\u30fc\u30d6\u306e\u524a\u9664\u3092\u8a31\u53ef\u3057\u307e\u3059\u3002 + +ComputerSet.NoSuchSlave=\u30b9\u30ec\u30fc\u30d6\u304c\u5b58\u5728\u3057\u307e\u305b\u3093: {0} +ComputerSet.SlaveAlreadyExists=''{0}''\u306f\u3059\u3067\u306b\u5b58\u5728\u3057\u307e\u3059 +ComputerSet.SpecifySlaveToCopy=\u30b3\u30d4\u30fc\u3059\u308b\u30b9\u30ec\u30fc\u30d6\u3092\u6307\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044 +ComputerSet.DisplayName=\u30ce\u30fc\u30c9 Executor.NotAvailable=N/A -ExternalJob.DisplayName=\u5916\u90E8\u30B8\u30E7\u30D6\u306E\u76E3\u8996 -ExternalJob.Pronoun=\u30B8\u30E7\u30D6 +ExternalJob.DisplayName=\u5916\u90e8\u30b8\u30e7\u30d6\u306e\u76e3\u8996 +ExternalJob.Pronoun=\u30b8\u30e7\u30d6 + +FreeStyleProject.DisplayName=\u30d5\u30ea\u30fc\u30b9\u30bf\u30a4\u30eb\u30fb\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u30d3\u30eb\u30c9 -FreeStyleProject.DisplayName=\u30D5\u30EA\u30FC\u30B9\u30BF\u30A4\u30EB\u30FB\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u30D3\u30EB\u30C9 +HealthReport.EmptyString= -Hudson.BadPortNumber={0}\u306F\u4E0D\u6B63\u306A\u30DD\u30FC\u30C8\u756A\u53F7\u3067\u3059\u3002 -Hudson.Computer.Caption=\u30DE\u30B9\u30BF\u30FC -Hudson.Computer.DisplayName=\u30DE\u30B9\u30BF\u30FC -Hudson.ControlCodeNotAllowed=\u5236\u5FA1\u6587\u5B57\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002: {0} +Hudson.BadPortNumber={0}\u306f\u4e0d\u6b63\u306a\u30dd\u30fc\u30c8\u756a\u53f7\u3067\u3059\u3002 +Hudson.Computer.Caption=\u30de\u30b9\u30bf\u30fc +Hudson.Computer.DisplayName=\u30de\u30b9\u30bf\u30fc +Hudson.ControlCodeNotAllowed=\u5236\u5fa1\u6587\u5b57\u306f\u4f7f\u7528\u3067\u304d\u307e\u305b\u3093\u3002: {0} Hudson.DisplayName=Hudson -Hudson.JobAlreadyExists=''{0}''\u3068\u3044\u3046\u30B8\u30E7\u30D6\u306F\u65E2\u306B\u5B58\u5728\u3057\u3066\u3044\u307E\u3059\u3002 -Hudson.NoJavaInPath=Java\u304C\u30D1\u30B9\u306B\u3042\u308A\u307E\u305B\u3093\u3002JDKs\u306E\u8A2D\u5B9A\u304C\u5FC5\u8981? -Hudson.NoName=\u540D\u524D\u304C\u6307\u5B9A\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002 -Hudson.NoSuchDirectory=\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u304C\u3042\u308A\u307E\u305B\u3093\u3002: {0} -Hudson.NotADirectory={0} \u306F\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002 -Hudson.NotAPlugin={0} \u306FHudson\u306E\u30D7\u30E9\u30B0\u30A4\u30F3\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002 -Hudson.NotJDKDir={0} \u306FJDK\u306E\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3067\u306F\u306A\u3044\u3088\u3046\u3067\u3059\u3002 -Hudson.Permissions.Title=\u5168\u4F53 -Hudson.UnsafeChar=''{0}''\u306F\u4F7F\u7528\u3067\u304D\u306A\u3044\u6587\u5B57\u3067\u3059\u3002 -Hudson.ViewAlreadyExists="{0}"\u3068\u3044\u3046\u30D3\u30E5\u30FC\u306F\u65E2\u306B\u5B58\u5728\u3057\u3066\u3044\u307E\u3059\u3002 +Hudson.JobAlreadyExists=''{0}''\u3068\u3044\u3046\u30b8\u30e7\u30d6\u306f\u65e2\u306b\u5b58\u5728\u3057\u3066\u3044\u307e\u3059\u3002 +Hudson.NoJavaInPath=Java\u304c\u30d1\u30b9\u306b\u3042\u308a\u307e\u305b\u3093\u3002JDKs\u306e\u8a2d\u5b9a\u304c\u5fc5\u8981? +Hudson.NoName=\u540d\u524d\u304c\u6307\u5b9a\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002 +Hudson.NoSuchDirectory=\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u304c\u3042\u308a\u307e\u305b\u3093\u3002: {0} +Hudson.NodeBeingRemoved=\u30ce\u30fc\u30c9\u3092\u524a\u9664\u4e2d\u3067\u3059\u3002 +Hudson.NotADirectory={0} \u306f\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002 +Hudson.NotAPlugin={0} \u306fHudson\u306e\u30d7\u30e9\u30b0\u30a4\u30f3\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002 +Hudson.NotJDKDir={0} \u306fJDK\u306e\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3067\u306f\u306a\u3044\u3088\u3046\u3067\u3059\u3002 +Hudson.Permissions.Title=\u5168\u4f53 +Hudson.USER_CONTENT_README=\u3053\u306e\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306e\u30d5\u30a1\u30a4\u30eb\u306f\u3001http://server/hudson/userContent/ \u3068\u3057\u3066\u63d0\u4f9b\u3055\u308c\u307e\u3059\u3002 +Hudson.UnsafeChar=''{0}''\u306f\u4f7f\u7528\u3067\u304d\u306a\u3044\u6587\u5b57\u3067\u3059\u3002 +Hudson.ViewAlreadyExists="{0}"\u3068\u3044\u3046\u30d3\u30e5\u30fc\u306f\u65e2\u306b\u5b58\u5728\u3057\u3066\u3044\u307e\u3059\u3002 Hudson.ViewName=\u3059\u3079\u3066 -Hudson.NotANumber=\u6570\u5B57\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002 -Hudson.NotAPositiveNumber=\u6B63\u306E\u6570\u5B57\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002 -Hudson.NotANegativeNumber=\u8CA0\u306E\u6570\u5B57\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002 +Hudson.NotANumber=\u6570\u5b57\u3092\u6307\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044\u3002 +Hudson.NotAPositiveNumber=\u6b63\u306e\u6570\u5b57\u3092\u6307\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044\u3002 +Hudson.NotANonNegativeNumber=0\u4ee5\u4e0a\u306e\u6570\u5b57\u3092\u6307\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044\u3002 +Hudson.NotANegativeNumber=\u8ca0\u306e\u6570\u5b57\u3092\u6307\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044\u3002 Hudson.NotUsesUTF8ToDecodeURL=\ - URL\u304CUTF-8\u3067\u30C7\u30B3\u30FC\u30C9\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002\u30B8\u30E7\u30D6\u540D\u306A\u3069\u306Bnon-ASCII\u306A\u6587\u5B57\u3092\u4F7F\u7528\u3059\u308B\u5834\u5408\u306F\u3001\ - \u30B3\u30F3\u30C6\u30CA\u306E\u8A2D\u5B9A\u3084\ - Tomcat i18N\u3092\u53C2\u8003\u306B\u8A2D\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002 + URL\u304cUTF-8\u3067\u30c7\u30b3\u30fc\u30c9\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002\u30b8\u30e7\u30d6\u540d\u306a\u3069\u306bnon-ASCII\u306a\u6587\u5b57\u3092\u4f7f\u7528\u3059\u308b\u5834\u5408\u306f\u3001\ + \u30b3\u30f3\u30c6\u30ca\u306e\u8a2d\u5b9a\u3084\ + Tomcat i18N\u3092\u53c2\u8003\u306b\u8a2d\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044\u3002 Hudson.AdministerPermission.Description=\ - \u3053\u306E\u30D1\u30FC\u30DF\u30C3\u30B7\u30E7\u30F3\u306F\u3001(OS\u304C\u8A31\u53EF\u3059\u308B\u7BC4\u56F2\u5185\u3067\u306E\uFF09\u30ED\u30FC\u30AB\u30EB\u30B7\u30B9\u30C6\u30E0\u5168\u4F53\u3078\u306E\u30A2\u30AF\u30BB\u30B9\u306B\u76F8\u5F53\u3059\u308B\u3001\ - \u3068\u3066\u3082\u6CE8\u610F\u304C\u5FC5\u8981\u306A\u64CD\u4F5C\u3068\u540C\u7A0B\u5EA6\u306E\u3001\u30B7\u30B9\u30C6\u30E0\u5168\u4F53\u306E\u8A2D\u5B9A\u5909\u66F4\u3092\u8A31\u53EF\u3057\u307E\u3059\u3002 + \u3053\u306e\u30d1\u30fc\u30df\u30c3\u30b7\u30e7\u30f3\u306f\u3001(OS\u304c\u8a31\u53ef\u3059\u308b\u7bc4\u56f2\u5185\u3067\u306e\uff09\u30ed\u30fc\u30ab\u30eb\u30b7\u30b9\u30c6\u30e0\u5168\u4f53\u3078\u306e\u30a2\u30af\u30bb\u30b9\u306b\u76f8\u5f53\u3059\u308b\u3001\ + \u3068\u3066\u3082\u6ce8\u610f\u304c\u5fc5\u8981\u306a\u64cd\u4f5c\u3068\u540c\u7a0b\u5ea6\u306e\u3001\u30b7\u30b9\u30c6\u30e0\u5168\u4f53\u306e\u8a2d\u5b9a\u5909\u66f4\u3092\u8a31\u53ef\u3057\u307e\u3059\u3002 Hudson.ReadPermission.Description=\ - \u53C2\u7167\u30D1\u30FC\u30DF\u30C3\u30B7\u30E7\u30F3\u306F\u3001Hudson\u306E\u307B\u307C\u3059\u3079\u3066\u306E\u753B\u9762\u3092\u53C2\u7167\u3059\u308B\u306E\u306B\u5FC5\u8981\u3067\u3059\u3002\ - \u3053\u306E\u30D1\u30FC\u30DF\u30C3\u30B7\u30E7\u30F3\u306F\u3001\u8A8D\u8A3C\u3055\u308C\u3066\u3044\u306A\u3044\u30E6\u30FC\u30B6\u30FC\u306B\u306FHudson\u306E\u753B\u9762\u3092\u53C2\u7167\u3055\u305B\u305F\u304F\u306A\u3044\u5834\u5408\u306B\u4FBF\u5229\u3067\u3059\u3002\ - — \u533F\u540D\u30E6\u30FC\u30B6\u30FC\u304B\u3089\u3053\u306E\u30D1\u30FC\u30DF\u30C3\u30B7\u30E7\u30F3\u3092\u524A\u9664\u5F8C\u3001"\u8A8D\u8A3C\u6E08\u307F"\u306E\u65E2\u5B58\u30E6\u30FC\u30B6\u30FC\u3092\u8FFD\u52A0\u3057\u3066\u53C2\u7167\u3092\u8A31\u53EF\u3057\u307E\u3059\u3002 + \u53c2\u7167\u30d1\u30fc\u30df\u30c3\u30b7\u30e7\u30f3\u306f\u3001Hudson\u306e\u307b\u307c\u3059\u3079\u3066\u306e\u753b\u9762\u3092\u53c2\u7167\u3059\u308b\u306e\u306b\u5fc5\u8981\u3067\u3059\u3002\ + \u3053\u306e\u30d1\u30fc\u30df\u30c3\u30b7\u30e7\u30f3\u306f\u3001\u8a8d\u8a3c\u3055\u308c\u3066\u3044\u306a\u3044\u30e6\u30fc\u30b6\u30fc\u306b\u306fHudson\u306e\u753b\u9762\u3092\u53c2\u7167\u3055\u305b\u305f\u304f\u306a\u3044\u5834\u5408\u306b\u4fbf\u5229\u3067\u3059\u3002\ + — \u533f\u540d\u30e6\u30fc\u30b6\u30fc\u304b\u3089\u3053\u306e\u30d1\u30fc\u30df\u30c3\u30b7\u30e7\u30f3\u3092\u524a\u9664\u5f8c\u3001"\u8a8d\u8a3c\u6e08\u307f"\u306e\u65e2\u5b58\u30e6\u30fc\u30b6\u30fc\u3092\u8ffd\u52a0\u3057\u3066\u53c2\u7167\u3092\u8a31\u53ef\u3057\u307e\u3059\u3002 +Hudson.NodeDescription=\u30de\u30b9\u30bf\u30fc\u30ce\u30fc\u30c9 -Item.Permissions.Title=\u30B8\u30E7\u30D6 +Item.Permissions.Title=\u30b8\u30e7\u30d6 -Job.AllRecentBuildFailed=\u6700\u8FD1\u306E\u5168\u3066\u306E\u30D3\u30EB\u30C9\u306F\u5931\u6557\u3057\u307E\u3057\u305F\u3002 -Job.BuildStability=\u5B89\u5B9A\u3057\u305F\u30D3\u30EB\u30C9: {0} -Job.NOfMFailed=\u6700\u8FD1\u306E{1}\u500B\u4E2D\u3001{0}\u500B\u30D3\u30EB\u30C9\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002 -Job.NoRecentBuildFailed=\u6700\u8FD1\u306E\u30D3\u30EB\u30C9\u306F\u5931\u6557\u3057\u3066\u307E\u305B\u3093\u3002 -Job.Pronoun=\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8 +Job.AllRecentBuildFailed=\u6700\u8fd1\u306e\u5168\u3066\u306e\u30d3\u30eb\u30c9\u306f\u5931\u6557\u3057\u307e\u3057\u305f\u3002 +Job.BuildStability=\u5b89\u5b9a\u3057\u305f\u30d3\u30eb\u30c9: {0} +Job.NOfMFailed=\u6700\u8fd1\u306e{1}\u500b\u4e2d\u3001{0}\u500b\u30d3\u30eb\u30c9\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 +Job.NoRecentBuildFailed=\u6700\u8fd1\u306e\u30d3\u30eb\u30c9\u306f\u5931\u6557\u3057\u3066\u307e\u305b\u3093\u3002 +Job.Pronoun=\u30d7\u30ed\u30b8\u30a7\u30af\u30c8 Job.minutes=\u5206 -Queue.AllNodesOffline=\u30E9\u30D9\u30EB ''{{0}'' \u306E\u3059\u3079\u3066\u306E\u30CE\u30FC\u30C9\u306F\u30AA\u30D5\u30E9\u30A4\u30F3\u3067\u3059\u3002 -Queue.BlockedBy={0}\u306B\u30D6\u30ED\u30C3\u30AF\u3055\u308C\u3066\u3044\u307E\u3059\u3002 -Queue.InProgress=\u30D3\u30EB\u30C9\u306F\u3059\u3067\u306B\u5B9F\u884C\u4E2D\u3067\u3059\u3002 -Queue.InQuietPeriod=\u5F85\u6A5F\u4E2D\u3067\u3059\u3002\u3042\u3068{0}\u3067\u3059\u3002 -Queue.NodeOffline={0} \u306F\u30AA\u30D5\u30E9\u30A4\u30F3\u3067\u3059\u3002 +Label.GroupOf={0} +Label.InvalidLabel=\u4e0d\u6b63\u306a\u30e9\u30d9\u30eb +Label.ProvisionedFrom={0}\u304b\u3089\u4f9b\u7d66 +MultiStageTimeSeries.EMPTY_STRING= +Queue.AllNodesOffline=\u30e9\u30d9\u30eb ''{0}'' \u306e\u3059\u3079\u3066\u306e\u30ce\u30fc\u30c9\u306f\u30aa\u30d5\u30e9\u30a4\u30f3\u3067\u3059\u3002 +Queue.BlockedBy={0}\u306b\u30d6\u30ed\u30c3\u30af\u3055\u308c\u3066\u3044\u307e\u3059\u3002 +Queue.HudsonIsAboutToShutDown=Hudson\u306f\u30b7\u30e3\u30c3\u30c8\u30c0\u30a6\u30f3\u4e2d\u3067\u3059\u3002 +Queue.InProgress=\u30d3\u30eb\u30c9\u306f\u3059\u3067\u306b\u5b9f\u884c\u4e2d\u3067\u3059\u3002 +Queue.InQuietPeriod=\u5f85\u6a5f\u4e2d\u3067\u3059\u3002\u3042\u3068{0}\u3067\u3059\u3002 +Queue.NodeOffline={0} \u306f\u30aa\u30d5\u30e9\u30a4\u30f3\u3067\u3059\u3002 Queue.Unknown=??? +Queue.WaitingForNextAvailableExecutor=\u5229\u7528\u53ef\u80fd\u306a\u6b21\u306e\u30a8\u30b0\u30bc\u30ad\u30e5\u30fc\u30bf\u30fc\u3092\u5f85\u3063\u3066\u3044\u307e\u3059\u3002 +Queue.WaitingForNextAvailableExecutorOn={0}\u3067\u5229\u7528\u53ef\u80fd\u306a\u6b21\u306e\u30a8\u30b0\u30bc\u30ad\u30e5\u30fc\u30bf\u30fc\u3092\u5f85\u3063\u3066\u3044\u307e\u3059\u3002 +Queue.init=\u30d3\u30eb\u30c9\u30ad\u30e5\u30fc\u3092\u5fa9\u5143\u4e2d\u3067\u3059\u3002 -Queue.WaitingForNextAvailableExecutor=\u5229\u7528\u53EF\u80FD\u306A\u6B21\u306E\u30A8\u30B0\u30BC\u30AD\u30E5\u30FC\u30BF\u30FC\u3092\u5F85\u3063\u3066\u3044\u307E\u3059\u3002 -Queue.WaitingForNextAvailableExecutorOn={0}\u3067\u5229\u7528\u53EF\u80FD\u306A\u6B21\u306E\u30A8\u30B0\u30BC\u30AD\u30E5\u30FC\u30BF\u30FC\u3092\u5F85\u3063\u3066\u3044\u307E\u3059\u3002 - -Run.BuildAborted=\u30D3\u30EB\u30C9\u3092\u4E2D\u6B62\u3057\u307E\u3057\u305F\u3002 -Run.MarkedExplicitly=\u8A18\u9332\u3092\u6B8B\u3059\u305F\u3081\u306B\u30DE\u30FC\u30AF\u3057\u307E\u3059\u3002 -Run.Permissions.Title=\u30D3\u30EB\u30C9 -Run.UnableToDelete={0}\u3092\u524A\u9664\u3067\u304D\u307E\u305B\u3093\u3002: {1} +Run.BuildAborted=\u30d3\u30eb\u30c9\u3092\u4e2d\u6b62\u3057\u307e\u3057\u305f\u3002 +Run.MarkedExplicitly=\u8a18\u9332\u3092\u6b8b\u3059\u305f\u3081\u306b\u30de\u30fc\u30af\u3057\u307e\u3059\u3002 +Run.Permissions.Title=\u30d3\u30eb\u30c9 +Run.UnableToDelete={0}\u3092\u524a\u9664\u3067\u304d\u307e\u305b\u3093\u3002: {1} Run.DeletePermission.Description=\ - \u3053\u306E\u30D1\u30FC\u30DF\u30C3\u30B7\u30E7\u30F3\u306F\u3001\u30D3\u30EB\u30C9\u5C65\u6B74\u304B\u3089\u306E\u7279\u5B9A\u30D3\u30EB\u30C9\u306E\u524A\u9664\u3092\u8A31\u53EF\u3057\u307E\u3059\u3002 + \u3053\u306e\u30d1\u30fc\u30df\u30c3\u30b7\u30e7\u30f3\u306f\u3001\u30d3\u30eb\u30c9\u5c65\u6b74\u304b\u3089\u306e\u7279\u5b9a\u30d3\u30eb\u30c9\u306e\u524a\u9664\u3092\u8a31\u53ef\u3057\u307e\u3059\u3002 Run.UpdatePermission.Description=\ - \u3053\u306E\u30D1\u30FC\u30DF\u30C3\u30B7\u30E7\u30F3\u306F\u3001\u30D3\u30EB\u30C9\u5931\u6557\u306E\u539F\u56E0\u306B\u95A2\u3059\u308B\u30E1\u30E2\u3092\u6B8B\u3059\u306A\u3069\u3001\u30D3\u30EB\u30C9\u306E\u8AAC\u660E\u3084\u4ED6\u306E\u5C5E\u6027\u306E\u66F4\u65B0\u3092\u8A31\u53EF\u3057\u307E\u3059\u3002 - -Slave.InvalidConfig.Executors=\u30B9\u30EC\u30FC\u30D6 {0} \u306E\u8A2D\u5B9A\u306B\u8AA4\u308A\u304C\u3042\u308A\u307E\u3059\u3002\u540C\u6642\u5B9F\u884C\u6570\u304C\u4E0D\u6B63\u3067\u3059\u3002 -Slave.InvalidConfig.NoName=\u30B9\u30EC\u30FC\u30D6\u306E\u8A2D\u5B9A\u306B\u8AA4\u308A\u304C\u3042\u308A\u307E\u3059\u3002\u540D\u524D\u304C\u672A\u8A2D\u5B9A\u3067\u3059\u3002 -Slave.InvalidConfig.NoRemoteDir=\u30B9\u30EC\u30FC\u30D6 {0} \u306E\u8A2D\u5B9A\u306B\u8AA4\u308A\u304C\u3042\u308A\u307E\u3059\u3002\u30EA\u30E2\u30FC\u30C8FS\u30EB\u30FC\u30C8\u304C\u672A\u8A2D\u5B9A\u3067\u3059\u3002 -Slave.Launching=\u30B9\u30EC\u30FC\u30D6\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8\u3092\u8D77\u52D5\u3057\u307E\u3057\u305F\u3002{0} -Slave.Terminated=\u30B9\u30EC\u30FC\u30D6\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8\u3092\u7D42\u4E86\u3057\u307E\u3057\u305F\u3002{0} -Slave.UnableToLaunch=\u30B9\u30EC\u30FC\u30D6\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8 {0} \u3092\u8D77\u52D5\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002{1} -Slave.UnixSlave=\u3053\u308C\u306FUnix\u306E\u30B9\u30EC\u30FC\u30D6\u3067\u3059\u3002 -Slave.WindowsSlave=\u3053\u308C\u306FWindows\u306E\u30B9\u30EC\u30FC\u30D6\u3067\u3059\u3002 - -View.Permissions.Title=\u30D3\u30E5\u30FC + \u3053\u306e\u30d1\u30fc\u30df\u30c3\u30b7\u30e7\u30f3\u306f\u3001\u30d3\u30eb\u30c9\u5931\u6557\u306e\u539f\u56e0\u306b\u95a2\u3059\u308b\u30e1\u30e2\u3092\u6b8b\u3059\u306a\u3069\u3001\u30d3\u30eb\u30c9\u306e\u8aac\u660e\u3084\u4ed6\u306e\u5c5e\u6027\u306e\u66f4\u65b0\u3092\u8a31\u53ef\u3057\u307e\u3059\u3002 + +Run.Summary.Stable=\u5b89\u5b9a +Run.Summary.Unstable=\u4e0d\u5b89\u5b9a +Run.Summary.Aborted=\u4e2d\u65ad +Run.Summary.BackToNormal=\u6b63\u5e38\u306b\u5fa9\u5e30 +Run.Summary.BrokenForALongTime=\u9577\u671f\u9593\u6545\u969c\u4e2d +Run.Summary.BrokenSinceThisBuild=\u3053\u306e\u30d3\u30eb\u30c9\u304b\u3089\u6545\u969c +Run.Summary.BrokenSince=\u30d3\u30eb\u30c9{0}\u304b\u3089\u6545\u969c +Run.Summary.TestFailures={0}\u500b\u306e{0,choice,0#\u30c6\u30b9\u30c8\u5931\u6557|1#\u30c6\u30b9\u30c8\u5931\u6557|1<\u30c6\u30b9\u30c8\u5931\u6557} +Run.Summary.TestsStartedToFail={0}\u500b\u306e{0,choice,0#\u30c6\u30b9\u30c8|1#\u30c6\u30b9\u30c8|1<\u30c6\u30b9\u30c8}\u304c\u5931\u6557 +Run.Summary.TestsStillFailing={0}\u500b\u306e{0,choice,0#\u30c6\u30b9\u30c8|1#\u30c6\u30b9\u30c8|1<\u30c6\u30b9\u30c8}\u304c\u307e\u3060\u5931\u6557 +Run.Summary.MoreTestsFailing={0}\u500b\u306e{0,choice,0#\u30c6\u30b9\u30c8|1#\u30c6\u30b9\u30c8|1<\u30c6\u30b9\u30c8}\u304c\u66f4\u306b\u5931\u6557 (\u5408\u8a08 {1}) +Run.Summary.LessTestsFailing={0}\u500b\u306e{0,choice,0#\u30c6\u30b9\u30c8|1#\u30c6\u30b9\u30c8|1<\u30c6\u30b9\u30c8}\u304c\u56de\u5fa9 (\u5408\u8a08 {1}) +Run.Summary.Unknown=? + +Slave.InvalidConfig.Executors=\u30b9\u30ec\u30fc\u30d6 {0} \u306e\u8a2d\u5b9a\u306b\u8aa4\u308a\u304c\u3042\u308a\u307e\u3059\u3002\u540c\u6642\u5b9f\u884c\u6570\u304c\u4e0d\u6b63\u3067\u3059\u3002 +Slave.InvalidConfig.NoName=\u30b9\u30ec\u30fc\u30d6\u306e\u8a2d\u5b9a\u306b\u8aa4\u308a\u304c\u3042\u308a\u307e\u3059\u3002\u540d\u524d\u304c\u672a\u8a2d\u5b9a\u3067\u3059\u3002 +Slave.InvalidConfig.NoRemoteDir=\u30b9\u30ec\u30fc\u30d6 {0} \u306e\u8a2d\u5b9a\u306b\u8aa4\u308a\u304c\u3042\u308a\u307e\u3059\u3002\u30ea\u30e2\u30fc\u30c8FS\u30eb\u30fc\u30c8\u304c\u672a\u8a2d\u5b9a\u3067\u3059\u3002 +Slave.Launching=\u30b9\u30ec\u30fc\u30d6\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u3092\u8d77\u52d5\u3057\u307e\u3057\u305f\u3002{0} +Slave.Network.Mounted.File.System.Warning=\u672c\u5f53\u306bFS\u30eb\u30fc\u30c8\u3068\u3057\u3066\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u30de\u30a6\u30f3\u30c8\u3055\u308c\u305f\u30d5\u30a1\u30a4\u30eb\u30b7\u30b9\u30c6\u30e0\u3092\u4f7f\u7528\u3057\u305f\u3044\u3067\u3059\u304b\uff1f \u3053\u306e\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306f\u30de\u30b9\u30bf\u30fc\u306b\u898b\u3048\u308b\u5fc5\u8981\u306f\u7121\u3044\u3053\u3068\u306b\u6ce8\u610f\u3057\u3066\u304f\u3060\u3055\u3044\u3002 +Slave.Remote.Director.Mandatory=\u30ea\u30e2\u30fc\u30c8\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306f\u5fc5\u9808\u3067\u3059\u3002 +Slave.Terminated=\u30b9\u30ec\u30fc\u30d6\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u3092\u7d42\u4e86\u3057\u307e\u3057\u305f\u3002{0} +Slave.UnableToLaunch=\u30b9\u30ec\u30fc\u30d6\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8 {0} \u3092\u8d77\u52d5\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002{1} +Slave.UnixSlave=\u3053\u308c\u306fUnix\u306e\u30b9\u30ec\u30fc\u30d6\u3067\u3059\u3002 +Slave.WindowsSlave=\u3053\u308c\u306fWindows\u306e\u30b9\u30ec\u30fc\u30d6\u3067\u3059\u3002 + +View.Permissions.Title=\u30d3\u30e5\u30fc View.CreatePermission.Description=\ - \u3053\u306E\u30D1\u30FC\u30DF\u30C3\u30B7\u30E7\u30F3\u306F\u3001\u65B0\u898F\u30D3\u30E5\u30FC\u306E\u4F5C\u6210\u3092\u8A31\u53EF\u3057\u307E\u3059\u3002 + \u3053\u306e\u30d1\u30fc\u30df\u30c3\u30b7\u30e7\u30f3\u306f\u3001\u65b0\u898f\u30d3\u30e5\u30fc\u306e\u4f5c\u6210\u3092\u8a31\u53ef\u3057\u307e\u3059\u3002 View.DeletePermission.Description=\ - \u3053\u306E\u30D1\u30FC\u30DF\u30C3\u30B7\u30E7\u30F3\u306F\u3001\u65E2\u5B58\u306E\u30D3\u30E5\u30FC\u306E\u524A\u9664\u3092\u8A31\u53EF\u3057\u307E\u3059\u3002 + \u3053\u306e\u30d1\u30fc\u30df\u30c3\u30b7\u30e7\u30f3\u306f\u3001\u65e2\u5b58\u306e\u30d3\u30e5\u30fc\u306e\u524a\u9664\u3092\u8a31\u53ef\u3057\u307e\u3059\u3002 View.ConfigurePermission.Description=\ - \u3053\u306E\u30D1\u30FC\u30DF\u30C3\u30B7\u30E7\u30F3\u306F\u3001\u30D3\u30E5\u30FC\u306E\u8A2D\u5B9A\u5909\u66F4\u3092\u8A31\u53EF\u3057\u307E\u3059\u3002 + \u3053\u306e\u30d1\u30fc\u30df\u30c3\u30b7\u30e7\u30f3\u306f\u3001\u30d3\u30e5\u30fc\u306e\u8a2d\u5b9a\u5909\u66f4\u3092\u8a31\u53ef\u3057\u307e\u3059\u3002 +View.MissingMode=\u30d3\u30e5\u30fc\u306e\u7a2e\u985e\u304c\u9078\u629e\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002 -UpdateCenter.Status.CheckingInternet=\u30A4\u30F3\u30BF\u30FC\u30CD\u30C3\u30C8\u3068\u306E\u63A5\u7D9A\u3092\u30C1\u30A7\u30C3\u30AF\u3057\u307E\u3059\u3002 -UpdateCenter.Status.CheckingJavaNet=java.net\u3068\u306E\u63A5\u7D9A\u3092\u30C1\u30A7\u30C3\u30AF\u3057\u307E\u3059\u3002 -UpdateCenter.Status.Success=\u6210\u529F +UpdateCenter.Status.CheckingInternet=\u30a4\u30f3\u30bf\u30fc\u30cd\u30c3\u30c8\u3068\u306e\u63a5\u7d9a\u3092\u30c1\u30a7\u30c3\u30af\u3057\u307e\u3059\u3002 +UpdateCenter.Status.CheckingJavaNet=hudson-ci.org\u3068\u306e\u63a5\u7d9a\u3092\u30c1\u30a7\u30c3\u30af\u3057\u307e\u3059\u3002 +UpdateCenter.Status.Success=\u6210\u529f UpdateCenter.Status.UnknownHostException=\ - \u30DB\u30B9\u30C8\u540D {0}\u306E\u89E3\u6C7A\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002 \ - \u305F\u3076\u3093\u3001HTTP\u30D7\u30ED\u30AF\u30B7\u30FC\u3092\u8A2D\u5B9A\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002 + \u30db\u30b9\u30c8\u540d {0}\u306e\u89e3\u6c7a\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 \ + \u305f\u3076\u3093\u3001HTTP\u30d7\u30ed\u30af\u30b7\u30fc\u3092\u8a2d\u5b9a\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002 UpdateCenter.Status.ConnectionFailed=\ - {0} \u3068\u306E\u63A5\u7D9A\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002 \ - \u305F\u3076\u3093\u3001HTTP\u30D7\u30ED\u30AF\u30B7\u30FC\u3092\u8A2D\u5B9A\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002 - -Permalink.LastBuild=\u6700\u65B0\u306E\u30D3\u30EB\u30C9 -Permalink.LastStableBuild=\u6700\u65B0\u306E\u5B89\u5B9A\u30D3\u30EB\u30C9 -Permalink.LastSuccessfulBuild=\u6700\u65B0\u306E\u6210\u529F\u30D3\u30EB\u30C9 -Permalink.LastFailedBuild=\u6700\u65B0\u306E\u5931\u6557\u30D3\u30EB\u30C9 - -ParameterAction.DisplayName=\u30D1\u30E9\u30E1\u30FC\u30BF -ParametersDefinitionProperty.DisplayName=\u30D1\u30E9\u30E1\u30FC\u30BF -StringParameterDefinition.DisplayName=\u6587\u5B57\u5217 -FileParameterDefinition.DisplayName=\u30D5\u30A1\u30A4\u30EB -BooleanParameterDefinition.DisplayName=\u771F\u507D\u5024 -ChoiceParameterDefinition.DisplayName=\u9078\u629E -RunParameterDefinition.DisplayName=\u30D3\u30EB\u30C9 - -Node.Mode.NORMAL=\u3053\u306E\u30B9\u30EC\u30FC\u30D6\u3092\u3067\u304D\u308B\u3060\u3051\u5229\u7528\u3059\u308B -Node.Mode.EXCLUSIVE=\u3053\u306E\u30DE\u30B7\u30FC\u30F3\u3092\u7279\u5B9A\u30B8\u30E7\u30D6\u5C02\u7528\u306B\u3059\u308B - -ListView.DisplayName=\u30EA\u30B9\u30C8\u30D3\u30E5\u30FC - -MyView.DisplayName=\u30DE\u30A4\u30D3\u30E5\u30FC - -LoadStatistics.Legends.TotalExecutors=\u30A8\u30B0\u30BC\u30AD\u30E5\u30FC\u30BF\u30FC\u7DCF\u6570 -LoadStatistics.Legends.BusyExecutors=\u30D3\u30B8\u30FC\u30A8\u30B0\u30BC\u30AD\u30E5\u30FC\u30BF\u30FC\u6570 -LoadStatistics.Legends.QueueLength=\u30D3\u30EB\u30C9\u30AD\u30E5\u30FC\u9577 - -Cause.LegacyCodeCause.ShortDescription=\u975E\u63A8\u5968\u306E\u30B3\u30FC\u30C9\u304C\u5B9F\u884C(\u8D77\u52D5\u5951\u6A5F\u306B\u95A2\u3059\u308B\u60C5\u5831\u304C\u3042\u308A\u307E\u305B\u3093) -Cause.UpstreamCause.ShortDescription=\u4E0A\u6D41\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8"{0}"\u306E#{1}\u304C\u5B9F\u884C\u3000 -Cause.UserCause.ShortDescription=\u30E6\u30FC\u30B6\u30FC{0}\u304C\u5B9F\u884C -Cause.RemoteCause.ShortDescription = \u30EA\u30E2\u30FC\u30C8\u30DB\u30B9\u30C8{0}\u304C\u5B9F\u884C -Cause.RemoteCause.ShortDescriptionWithNote = \u30EA\u30E2\u30FC\u30C8\u30DB\u30B9\u30C8{0}\u304C\u5B9F\u884C({1}) + {0} \u3068\u306e\u63a5\u7d9a\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 \ + \u305f\u3076\u3093\u3001HTTP\u30d7\u30ed\u30af\u30b7\u30fc\u3092\u8a2d\u5b9a\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002 +UpdateCenter.init=\u30a2\u30c3\u30d7\u30c7\u30fc\u30c8\u30bb\u30f3\u30bf\u30fc\u306e\u521d\u671f\u5316\u4e2d +UpdateCenter.PluginCategory.builder=\u30d3\u30eb\u30c9\u30c4\u30fc\u30eb +UpdateCenter.PluginCategory.buildwrapper=\u30d3\u30eb\u30c9\u30e9\u30c3\u30d1\u30fc +UpdateCenter.PluginCategory.cli=\u30b3\u30de\u30f3\u30c9\u30e9\u30a4\u30f3\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9 +UpdateCenter.PluginCategory.cluster=\u30af\u30e9\u30b9\u30bf\u30fc\u7ba1\u7406/\u5206\u6563\u30d3\u30eb\u30c9 +UpdateCenter.PluginCategory.external=\u5916\u90e8\u30b5\u30a4\u30c8/\u30c4\u30fc\u30eb\u3068\u306e\u9023\u643a +UpdateCenter.PluginCategory.maven=Maven +UpdateCenter.PluginCategory.misc=\u305d\u306e\u4ed6 +UpdateCenter.PluginCategory.notifier=\u30d3\u30eb\u30c9\u901a\u77e5 +UpdateCenter.PluginCategory.page-decorator=\u30da\u30fc\u30b8\u30c7\u30b3\u30ec\u30fc\u30bf\u30fc +UpdateCenter.PluginCategory.post-build=\u30d3\u30eb\u30c9\u5f8c\u306e\u30a2\u30af\u30b7\u30e7\u30f3 +UpdateCenter.PluginCategory.report=\u30d3\u30eb\u30c9\u30ec\u30dd\u30fc\u30c8 +UpdateCenter.PluginCategory.scm=\u30bd\u30fc\u30b9\u7ba1\u7406\u30b7\u30b9\u30c6\u30e0 +UpdateCenter.PluginCategory.scm-related=\u30bd\u30fc\u30b9\u7ba1\u7406\u30b7\u30b9\u30c6\u30e0\u95a2\u9023 +UpdateCenter.PluginCategory.slaves=\u30b9\u30ec\u30fc\u30d6\u306e\u8d77\u52d5\u3068\u7ba1\u7406 +UpdateCenter.PluginCategory.trigger=\u30d3\u30eb\u30c9\u30c8\u30ea\u30ac +UpdateCenter.PluginCategory.ui=\u30e6\u30fc\u30b6\u30fc\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9 +UpdateCenter.PluginCategory.upload=\u6210\u679c\u7269\u306e\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9 +UpdateCenter.PluginCategory.user=\u8a8d\u8a3c/\u30e6\u30fc\u30b6\u30fc\u7ba1\u7406 +UpdateCenter.PluginCategory.must-be-labeled=\u672a\u5206\u985e +UpdateCenter.PluginCategory.unrecognized=Misc ({0}) + +Permalink.LastBuild=\u6700\u65b0\u306e\u30d3\u30eb\u30c9 +Permalink.LastStableBuild=\u6700\u65b0\u306e\u5b89\u5b9a\u30d3\u30eb\u30c9 +Permalink.LastUnstableBuild=\u6700\u65b0\u306e\u4e0d\u5b89\u5b9a\u30d3\u30eb\u30c9 +Permalink.LastUnsuccessfulBuild=\u6700\u65b0\u306e\u4e0d\u6210\u529f\u30d3\u30eb\u30c9 +Permalink.LastSuccessfulBuild=\u6700\u65b0\u306e\u6210\u529f\u30d3\u30eb\u30c9 +Permalink.LastFailedBuild=\u6700\u65b0\u306e\u5931\u6557\u30d3\u30eb\u30c9 + + +ParameterAction.DisplayName=\u30d1\u30e9\u30e1\u30fc\u30bf +ParametersDefinitionProperty.DisplayName=\u30d1\u30e9\u30e1\u30fc\u30bf +StringParameterDefinition.DisplayName=\u6587\u5b57\u5217 +FileParameterDefinition.DisplayName=\u30d5\u30a1\u30a4\u30eb +BooleanParameterDefinition.DisplayName=\u771f\u507d\u5024 +ChoiceParameterDefinition.DisplayName=\u9078\u629e +RunParameterDefinition.DisplayName=\u30d3\u30eb\u30c9 +PasswordParameterDefinition.DisplayName=\u30d1\u30b9\u30ef\u30fc\u30c9 + +Node.Mode.NORMAL=\u3053\u306e\u30b9\u30ec\u30fc\u30d6\u3092\u3067\u304d\u308b\u3060\u3051\u5229\u7528\u3059\u308b +Node.Mode.EXCLUSIVE=\u3053\u306e\u30de\u30b7\u30fc\u30f3\u3092\u7279\u5b9a\u30b8\u30e7\u30d6\u5c02\u7528\u306b\u3059\u308b + +ListView.DisplayName=\u30ea\u30b9\u30c8\u30d3\u30e5\u30fc + +MyView.DisplayName=\u30de\u30a4\u30d3\u30e5\u30fc + +LoadStatistics.Legends.TotalExecutors=\u30a8\u30b0\u30bc\u30ad\u30e5\u30fc\u30bf\u30fc\u7dcf\u6570 +LoadStatistics.Legends.BusyExecutors=\u30d3\u30b8\u30fc\u30a8\u30b0\u30bc\u30ad\u30e5\u30fc\u30bf\u30fc\u6570 +LoadStatistics.Legends.QueueLength=\u30d3\u30eb\u30c9\u30ad\u30e5\u30fc\u9577 + +Cause.LegacyCodeCause.ShortDescription=\u975e\u63a8\u5968\u306e\u30b3\u30fc\u30c9\u304c\u5b9f\u884c(\u8d77\u52d5\u5951\u6a5f\u306b\u95a2\u3059\u308b\u60c5\u5831\u304c\u3042\u308a\u307e\u305b\u3093) +Cause.UpstreamCause.ShortDescription=\u4e0a\u6d41\u30d7\u30ed\u30b8\u30a7\u30af\u30c8"{0}"\u306e#{1}\u304c\u5b9f\u884c\u3000 +Cause.UserCause.ShortDescription=\u30e6\u30fc\u30b6\u30fc{0}\u304c\u5b9f\u884c +Cause.RemoteCause.ShortDescription=\u30ea\u30e2\u30fc\u30c8\u30db\u30b9\u30c8{0}\u304c\u5b9f\u884c +Cause.RemoteCause.ShortDescriptionWithNote=\u30ea\u30e2\u30fc\u30c8\u30db\u30b9\u30c8{0}\u304c\u5b9f\u884c({1}) + +ProxyView.NoSuchViewExists="{0}"\u3068\u3044\u3046\u30b0\u30ed\u30fc\u30d0\u30eb\u30d3\u30e5\u30fc\u306f\u3042\u308a\u307e\u305b\u3093\u3002 +ProxyView.DisplayName=\u30b0\u30ed\u30fc\u30d0\u30eb\u30d3\u30e5\u30fc\u306e\u8907\u88fd + +MyViewsProperty.GlobalAction.DisplayName=My Views +MyViewsProperty.ViewExistsCheck.NotExist="{0}"\u3068\u3044\u3046\u30d3\u30e5\u30fc\u306f\u3042\u308a\u307e\u305b\u3093\u3002 +MyViewsProperty.ViewExistsCheck.AlreadyExists="{0}"\u3068\u3044\u3046\u30d3\u30e5\u30fc\u306f\u65e2\u306b\u5b58\u5728\u3057\u307e\u3059\u3002 + +CLI.restart.shortDescription=Hudson\u3092\u518d\u8d77\u52d5\u3057\u307e\u3059\u3002 +CLI.safe-restart.shortDescription=Hudson\u3092\u5b89\u5168\u306b\u518d\u8d77\u52d5\u3057\u307e\u3059\u3002 +CLI.keep-build.shortDescription=\u30d3\u30eb\u30c9\u3092\u4fdd\u5b58\u3059\u308b\u3088\u3046\u306b\u30de\u30fc\u30af\u3057\u307e\u3059\u3002 +CLI.quiet-down.shortDescription=Hudson\u306f\u518d\u8d77\u52d5\u306b\u5411\u3051\u3066\u7d42\u4e86\u51e6\u7406\u3092\u5b9f\u65bd\u4e2d\u3067\u3059\u3002\u30d3\u30eb\u30c9\u3092\u958b\u59cb\u3057\u306a\u3044\u3067\u304f\u3060\u3055\u3044\u3002 +CLI.cancel-quiet-down.shortDescription="quite-down"\u30b3\u30de\u30f3\u30c9\u306e\u51e6\u7406\u3092\u30ad\u30e3\u30f3\u30bb\u30eb\u3057\u307e\u3059\u3002 +CLI.reload-configuration.shortDescription=\u30e1\u30e2\u30ea\u306b\u3042\u308b\u3059\u3079\u3066\u306e\u30c7\u30fc\u30bf\u3092\u7834\u68c4\u3057\u3066\u3001\u30d5\u30a1\u30a4\u30eb\u304b\u3089\u518d\u30ed\u30fc\u30c9\u3057\u307e\u3059\u3002\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u3092\u76f4\u63a5\u4fee\u6b63\u3057\u305f\u5834\u5408\u306b\u5f79\u306b\u7acb\u3061\u307e\u3059\u3002 +CLI.clear-queue.shortDescription=\u30d3\u30eb\u30c9\u30ad\u30e5\u30fc\u3092\u30af\u30ea\u30a2\u3057\u307e\u3059\u3002 +CLI.delete-job.shortDescription=\u30b8\u30e7\u30d6\u3092\u524a\u9664\u3057\u307e\u3059\u3002 +CLI.disable-job.shortDescription=\u30b8\u30e7\u30d6\u3092\u7121\u52b9\u5316\u3057\u307e\u3059\u3002 +CLI.enable-job.shortDescription=\u30b8\u30e7\u30d6\u3092\u6709\u52b9\u5316\u3057\u307e\u3059\u3002 +CLI.delete-node.shortDescription=\u30ce\u30fc\u30c9\u3092\u524a\u9664\u3057\u307e\u3059\u3002 +CLI.disconnect-node.shortDescription=\u30ce\u30fc\u30c9\u3068\u306e\u63a5\u7d9a\u3092\u5207\u65ad\u3057\u307e\u3059\u3002 +CLI.connect-node.shortDescription=\u30ce\u30fc\u30c9\u3068\u518d\u63a5\u7d9a\u3057\u307e\u3059\u3002 +CLI.online-node.shortDescription=\u76f4\u524d\u306b\u5b9f\u884c\u3057\u305f"online-node"\u30b3\u30de\u30f3\u30c9\u3092\u53d6\u308a\u6d88\u3057\u3001\u30d3\u30eb\u30c9\u3092\u5b9f\u884c\u3059\u308b\u30ce\u30fc\u30c9\u306e\u4f7f\u7528\u3092\u518d\u958b\u3057\u307e\u3059\u3002 +CLI.offline-node.shortDescription="online-node"\u30b3\u30de\u30f3\u30c9\u304c\u5b9f\u884c\u3055\u308c\u308b\u307e\u3067\u3001\u30d3\u30eb\u30c9\u3092\u5b9f\u884c\u3059\u308b\u30ce\u30fc\u30c9\u306e\u4f7f\u7528\u3092\u4e00\u6642\u7684\u306b\u505c\u6b62\u3057\u307e\u3059\u3002 + diff --git a/core/src/main/resources/hudson/model/Messages_pt_BR.properties b/core/src/main/resources/hudson/model/Messages_pt_BR.properties index 086a4b4c761a9ff03508bbfb2db9a21aeab9e357..60280c85120ddec847984144bd942422e38c7b13 100644 --- a/core/src/main/resources/hudson/model/Messages_pt_BR.properties +++ b/core/src/main/resources/hudson/model/Messages_pt_BR.properties @@ -100,7 +100,330 @@ Slave.UnixSlave=Este \u00e9 um slave Unix Slave.WindowsSlave=Este \u00e9 um slave Windows View.Permissions.Title=Vis\u00e3o -Permalink.LastBuild=\u00DAltima constru\u00E7\u00E3o -Permalink.LastStableBuild=\u00DAltima constru\u00E7\u00E3o est\u00E1vel -Permalink.LastSuccessfulBuild=\u00DAltima constru\u00E7\u00E3o bem sucedida -Permalink.LastFailedBuild=\u00DAltima constru\u00E7\u00E3o que falhou +Permalink.LastBuild=\u00daltima constru\u00e7\u00e3o +Permalink.LastStableBuild=\u00daltima constru\u00e7\u00e3o est\u00e1vel +Permalink.LastSuccessfulBuild=\u00daltima constru\u00e7\u00e3o bem sucedida +Permalink.LastFailedBuild=\u00daltima constru\u00e7\u00e3o que falhou +# Waiting for next available executor +Queue.WaitingForNextAvailableExecutor=Aguardando pelo pr\u00f3ximo executor dispon\u00edvel +# {0} {0,choice,0#tests|1#test|1Failed to resolve host name {0}. \ +# Perhaps you need to configure HTTP proxy? +UpdateCenter.Status.UnknownHostException=\ + Falhou ao resolver o host {0}. \ + Talvez voc\u00ea precise configurar o proxy de HTTP? + +# \ +# Your container doesn''t use UTF-8 to decode URLs. If you use non-ASCII characters as a job name etc, \ +# this will cause problems. \ +# See Containers and \ +# Tomcat i18n for more details. +Hudson.NotUsesUTF8ToDecodeURL=\ + Seu cont\u00eainer n\u00e3o usa UTF-8 para decodificar as URLs. Se voc\u00ea usa caracteres n\u00e3o-ASCII em nomes de tarefas e etc, \ + isto causar\u00e1 problemas. \ + Veja Cont\u00eainers e \ + Tomcat i18n para mais detalhes. +# Checking internet connectivity +UpdateCenter.Status.CheckingInternet=Checando conectividade com a internet +# \ +# This permission allows users to delete existing views. +View.DeletePermission.Description=\ + Esta permiss\u00e3o permite aos usu\u00e1rios apagar visualiza\u00e7\u00f5es existentes. +# Checking hudson-ci.org connectivity +UpdateCenter.Status.CheckingJavaNet=Checando conecitividade com hudson-ci.org +# Authentication and User Management +UpdateCenter.PluginCategory.user=Autentica\u00e7\u00e3o e Gerenciamento de Usu\u00e1rio +# My View +MyView.DisplayName=Minha Visualiza\u00e7\u00e3o +# Files in this directory will be served under your http://server/hudson/userContent/ +Hudson.USER_CONTENT_README=Os arquivos neste diret\u00f3rio estar\u00e3o acessiveis em http://server/hudson/userContent/ +# Source Code Management related +UpdateCenter.PluginCategory.scm-related=Gerenciamento de C\u00f3digo Fonte relacionado +# Cancel the effect of the "quiet-down" command. +CLI.cancel-quiet-down.shortDescription=Cancelar o efeito do comando "silenciar". +# Clears the build queue +CLI.clear-queue.shortDescription=Limpa a fila de constru\u00e7\u00f5es +# Upstream project {0} is already building. +AbstractProject.UpstreamBuildInProgress=O projeto pai {0} j\u00e1 est\u00e1 em constru\u00e7\u00e3o +# A view with name {0} does not exist +MyViewsProperty.ViewExistsCheck.NotExist=N\u00e3o existe uma visualiza\u00e7\u00e3o com o nome {0} +# {0} {0,choice,0#test failures|1#test failure|1Failed to connect to {0}. \ +# Perhaps you need to configure HTTP proxy? +UpdateCenter.Status.ConnectionFailed=\ + Falhou ao conectar em {0}. \ + Talvez voc\u00ea precise configurar um proxy de HTTP? + +# Maven +UpdateCenter.PluginCategory.maven=Maven +# Slave +Computer.Permissions.Title=Slave +# Resume using a node for performing builds, to cancel out the earlier "offline-node" command. +CLI.online-node.shortDescription=Concluir usando um n\u00f3 para executar as constru\u00e7\u00f5es e cancelar o comando "n\u00f3-offline" mais recente. +# Artifact Uploaders +UpdateCenter.PluginCategory.upload=Uploaders de Artefato +# Last unstable build +Permalink.LastUnstableBuild=\u00daltima constru\u00e7\u00e3o inst\u00e1vel +# Enables a job +CLI.enable-job.shortDescription=Habilitar uma tarefa +# ? +Run.Summary.Unknown=? +# Parameters +ParametersDefinitionProperty.DisplayName=Par\u00e2metros +# \ +# This permission grants the ability to start a new build. +AbstractProject.BuildPermission.Description=\ + Esta permiss\u00e3o garante a habilidade te iniciar uma nova constru\u00e7\u00e3o. + +# Are you sure you want to use network mounted file system for FS root? Note that this directory does not need to be visible to the master. +Slave.Network.Mounted.File.System.Warning=Voc\u00ea tem certeza que voc\u00ea quer usar um diret\u00f3rio de rede para o sistema de arquivos ra\u00edz? Note que este diret\u00f3rio n\u00e3o precisa estar vis\u00edvel para o master. +# group of {0} +Label.GroupOf=grupo de {0} +# All nodes of label ''{0}'' are offline +Queue.AllNodesOffline=Todos os n\u00f3s de label ''{0}'' est\u00e3o offline +# Busy executors +LoadStatistics.Legends.BusyExecutors=Executores ocupados diff --git a/core/src/main/resources/hudson/model/Messages_zh_CN.properties b/core/src/main/resources/hudson/model/Messages_zh_CN.properties new file mode 100644 index 0000000000000000000000000000000000000000..1f324a7879bec22d6637480fa27a753d9f5ecdcf --- /dev/null +++ b/core/src/main/resources/hudson/model/Messages_zh_CN.properties @@ -0,0 +1,280 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, +# Eric Lefevre-Ardant, Erik Ramfelt, Seiji Sogabe, id:cactusman +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +AbstractBuild.BuildingRemotely=Building remotely on {0} +AbstractBuild.BuildingOnMaster=Building on master +AbstractBuild.KeptBecause=kept because of {0} + +AbstractItem.NoSuchJobExists=No such job ''{0}'' exists. Perhaps you meant ''{1}''? +AbstractProject.NewBuildForWorkspace=Scheduling a new build to get a workspace. +AbstractProject.Pronoun=Project +AbstractProject.Aborted=Aborted +AbstractProject.BuildInProgress=Build #{0} is already in progress{1} +AbstractProject.UpstreamBuildInProgress=Upstream project {0} is already building. +AbstractProject.Disabled=Build disabled +AbstractProject.ETA=\ (ETA:{0}) +AbstractProject.NoBuilds=No existing build. Scheduling a new one. +AbstractProject.NoSCM=No SCM +AbstractProject.NoWorkspace=No workspace is available, so can''t check for updates. +AbstractProject.PollingABorted=SCM polling aborted +AbstractProject.ScmAborted=SCM check out aborted +AbstractProject.WorkspaceOffline=Workspace is offline. +AbstractProject.BuildPermission.Description=\ + This permission grants the ability to start a new build. +AbstractProject.WorkspacePermission.Description=\ + This permission grants the ability to retrieve the contents of a workspace \ + Hudson checked out for performing builds. If you don''t want an user to access \ + the source code, you can do so by revoking this permission. +AbstractProject.ExtendedReadPermission.Description=\ + This permission grants read-only access to project configurations. Please be \ + aware that sensitive information in your builds, such as passwords, will be \ + exposed to a wider audience by granting this permission. + +Api.MultipleMatch=XPath "{0}" matched {1} nodes. \ + Create XPath that only matches one, or use the "wrapper" query parameter to wrap them all under a root element. +Api.NoXPathMatch=XPath {0} didn''t match + +BallColor.Aborted=Aborted +BallColor.Disabled=Disabled +BallColor.Failed=Failed +BallColor.InProgress=In progress +BallColor.Pending=Pending +BallColor.Success=Success +BallColor.Unstable=Unstable + +CLI.clear-queue.shortDescription=Clears the build queue +CLI.delete-job.shortDescription=Deletes a job +CLI.disable-job.shortDescription=Disables a job +CLI.enable-job.shortDescription=Enables a job +CLI.delete-node.shortDescription=Deletes a node +CLI.disconnect-node.shortDescription=Disconnects from a node +CLI.connect-node.shortDescription=Reconnect to a node +CLI.online-node.shortDescription=Resume using a node for performing builds, to cancel out the earlier "offline-node" command. +CLI.offline-node.shortDescription=Stop using a node for performing builds temporarily, until the next "online-node" command. + +Computer.Caption=Slave {0} +Computer.Permissions.Title=Slave +Computer.ConfigurePermission.Description=This permission allows users to configure slaves. +Computer.DeletePermission.Description=This permission allows users to delete existing slaves. +Computer.BadChannel=Slave node offline or not a remote channel (such as master node). + +ComputerSet.NoSuchSlave=No such slave: {0} +ComputerSet.SlaveAlreadyExists=Slave called ''{0}'' already exists +ComputerSet.SpecifySlaveToCopy=Specify which slave to copy +ComputerSet.DisplayName=nodes +Executor.NotAvailable=N/A + +ExternalJob.DisplayName=\u76d1\u63a7\u4e00\u4e2a\u5916\u90e8\u7684\u4efb\u52a1 +ExternalJob.Pronoun=Job + +FreeStyleProject.DisplayName=\u6784\u5efa\u4e00\u4e2a\u81ea\u7531\u98ce\u683c\u7684\u8f6f\u4ef6\u9879\u76ee + +HealthReport.EmptyString= + +Hudson.BadPortNumber=Bad port number {0} +Hudson.Computer.Caption=Master +Hudson.Computer.DisplayName=master +Hudson.ControlCodeNotAllowed=No control code is allowed: {0} +Hudson.DisplayName=Hudson +Hudson.JobAlreadyExists=A job already exists with the name ''{0}'' +Hudson.NoJavaInPath=java is not in your PATH. Maybe you need to configure JDKs? +Hudson.NoName=No name is specified +Hudson.NoSuchDirectory=No such directory: {0} +Hudson.NodeBeingRemoved=Node is being removed +Hudson.NotADirectory={0} is not a directory +Hudson.NotAPlugin={0} is not a Hudson plugin +Hudson.NotJDKDir={0} doesn''t look like a JDK directory +Hudson.Permissions.Title=Overall +Hudson.USER_CONTENT_README=Files in this directory will be served under your http://server/hudson/userContent/ +Hudson.UnsafeChar=''{0}'' is an unsafe character +Hudson.ViewAlreadyExists=A view already exists with the name "{0}" +Hudson.ViewName=All +Hudson.NotANumber=Not a number +Hudson.NotAPositiveNumber=Not a positive number +Hudson.NotANonNegativeNumber=Number may not be negative +Hudson.NotANegativeNumber=Not a negative number +Hudson.NotUsesUTF8ToDecodeURL=\ + Your container doesn''t use UTF-8 to decode URLs. If you use non-ASCII characters as a job name etc, \ + this will cause problems. \ + See Containers and \ + Tomcat i18n for more details. +Hudson.AdministerPermission.Description=\ + This permission grants the ability to make system-wide configuration changes, \ + as well as perform highly sensitive operations that amounts to full local system access \ + (within the scope granted by the underlying OS.) +Hudson.ReadPermission.Description=\ + The read permission is necessary for viewing almost all pages of Hudson. \ + This permission is useful when you don''t want unauthenticated users to see \ + Hudson pages — revoke this permission from the anonymous user, then \ + add "authenticated" pseudo-user and grant the read access. +Hudson.NodeDescription=the master Hudson node + +Item.Permissions.Title=Job + +Job.AllRecentBuildFailed=All recent builds failed. +Job.BuildStability=Build stability: {0} +Job.NOfMFailed={0} out of the last {1} builds failed. +Job.NoRecentBuildFailed=No recent builds failed. +Job.Pronoun=Project +Job.minutes=mins + +Label.GroupOf=group of {0} +Label.InvalidLabel=invalid label +Label.ProvisionedFrom=Provisioned from {0} +MultiStageTimeSeries.EMPTY_STRING= +Node.BecauseNodeIsReserved={0} is reserved for jobs tied to it +Node.LabelMissing={0} doesn''t have label {1} +Queue.AllNodesOffline=All nodes of label ''{0}'' are offline +Queue.BlockedBy=Blocked by {0} +Queue.HudsonIsAboutToShutDown=Hudson is about to shut down +Queue.InProgress=A build is already in progress +Queue.InQuietPeriod=In the quiet period. Expires in {0} +Queue.NodeOffline={0} is offline +Queue.Unknown=??? +Queue.WaitingForNextAvailableExecutor=Waiting for next available executor +Queue.WaitingForNextAvailableExecutorOn=Waiting for next available executor on {0} +Queue.init=Restoring the build queue + +Run.BuildAborted=Build was aborted +Run.MarkedExplicitly=explicitly marked to keep the record +Run.Permissions.Title=Run +Run.UnableToDelete=Unable to delete {0}: {1} +Run.DeletePermission.Description=\ + This permission allows users to manually delete specific builds from the build history. +Run.UpdatePermission.Description=\ + This permission allows users to update description and other properties of a build, \ + for example to leave notes about the cause of a build failure. +Run.InProgressDuration={0} and counting + +Run.Summary.Stable=stable +Run.Summary.Unstable=unstable +Run.Summary.Aborted=aborted +Run.Summary.BackToNormal=back to normal +Run.Summary.BrokenForALongTime=broken for a long time +Run.Summary.BrokenSinceThisBuild=broken since this build +Run.Summary.BrokenSince=broken since build {0} +Run.Summary.TestFailures={0} {0,choice,0#test failures|1#test failure|1Failed to resolve host name {0}. \ + Perhaps you need to configure HTTP proxy? +UpdateCenter.Status.ConnectionFailed=\ + Failed to connect to {0}. \ + Perhaps you need to configure HTTP proxy? +UpdateCenter.init=Initialing update center +UpdateCenter.PluginCategory.builder=Build Tools +UpdateCenter.PluginCategory.buildwrapper=Build Wrappers +UpdateCenter.PluginCategory.cli=Command Line Interface +UpdateCenter.PluginCategory.cluster=Cluster Management and Distributed Build +UpdateCenter.PluginCategory.external=External Site/Tool Integrations +UpdateCenter.PluginCategory.maven=Maven +UpdateCenter.PluginCategory.misc=Miscellaneous +UpdateCenter.PluginCategory.notifier=Build Notifiers +UpdateCenter.PluginCategory.page-decorator=Page Decorators +UpdateCenter.PluginCategory.post-build=Other Post-Build Actions +UpdateCenter.PluginCategory.report=Build Reports +UpdateCenter.PluginCategory.scm=Source Code Management +UpdateCenter.PluginCategory.scm-related=Source Code Management related +UpdateCenter.PluginCategory.slaves=Slave Launchers and Controllers +UpdateCenter.PluginCategory.trigger=Build Triggers +UpdateCenter.PluginCategory.ui=User Interface +UpdateCenter.PluginCategory.upload=Artifact Uploaders +UpdateCenter.PluginCategory.user=Authentication and User Management +UpdateCenter.PluginCategory.must-be-labeled=Uncategorized +UpdateCenter.PluginCategory.unrecognized=Misc ({0}) + +Permalink.LastBuild=Last build +Permalink.LastStableBuild=Last stable build +Permalink.LastUnstableBuild=Last unstable build +Permalink.LastUnsuccessfulBuild=Last unsuccessful build +Permalink.LastSuccessfulBuild=Last successful build +Permalink.LastFailedBuild=Last failed build + +ParameterAction.DisplayName=Parameters +ParametersDefinitionProperty.DisplayName=Parameters +StringParameterDefinition.DisplayName=String Parameter +FileParameterDefinition.DisplayName=File Parameter +BooleanParameterDefinition.DisplayName=Boolean Value +ChoiceParameterDefinition.DisplayName=Choice +RunParameterDefinition.DisplayName=Run Parameter +PasswordParameterDefinition.DisplayName=Password Parameter + +Node.Mode.NORMAL=\u5c3d\u53ef\u80fd\u7684\u4f7f\u7528\u8fd9\u4e2a\u8282\u70b9 +Node.Mode.EXCLUSIVE=\u53ea\u5141\u8bb8\u8fd0\u884c\u7ed1\u5b9a\u5230\u8fd9\u53f0\u673a\u5668\u7684Job + +ListView.DisplayName=List View + +MyView.DisplayName=\u6211\u7684\u89c6\u56fe + +LoadStatistics.Legends.TotalExecutors=Total executors +LoadStatistics.Legends.BusyExecutors=Busy executors +LoadStatistics.Legends.QueueLength=Queue length + +Cause.LegacyCodeCause.ShortDescription=Legacy code started this job. No cause information is available +Cause.UpstreamCause.ShortDescription=Started by upstream project "{0}" build number {1} +Cause.UserCause.ShortDescription=Started by user {0} +Cause.RemoteCause.ShortDescription=Started by remote host {0} +Cause.RemoteCause.ShortDescriptionWithNote=Started by remote host {0} with note: {1} + +ProxyView.NoSuchViewExists=Global view {0} does not exist +ProxyView.DisplayName=Include a global view + +MyViewsProperty.DisplayName=My Views +MyViewsProperty.GlobalAction.DisplayName=My Views +MyViewsProperty.ViewExistsCheck.NotExist=A view with name {0} does not exist +MyViewsProperty.ViewExistsCheck.AlreadyExists=A view with name {0} already exists + +CLI.restart.shortDescription=Restart Hudson +CLI.safe-restart.shortDescription=Safely restart Hudson +CLI.keep-build.shortDescription=Mark the build to keep the build forever. +CLI.quiet-down.shortDescription=Quiet down Hudson, in preparation for a restart. Don''t start any builds. +CLI.cancel-quiet-down.shortDescription=Cancel the effect of the "quiet-down" command. +CLI.reload-configuration.shortDescription=Discard all the loaded data in memory and reload everything from file system. Useful when you modified config files directly on disk. diff --git a/core/src/main/resources/hudson/model/MyView/newViewDetail_da.properties b/core/src/main/resources/hudson/model/MyView/newViewDetail_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..0c696be01a0ed50d13ac8fc2d0f1d0cf1c2da86a --- /dev/null +++ b/core/src/main/resources/hudson/model/MyView/newViewDetail_da.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +blurb=Denne visning viser automatisk alle de jobs som den nuv\u00e6rende bruger har adgang til. diff --git a/core/src/main/resources/hudson/model/MyView/newViewDetail_de.properties b/core/src/main/resources/hudson/model/MyView/newViewDetail_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..220d0001e2db518f2fed25b4965767053238ce68 --- /dev/null +++ b/core/src/main/resources/hudson/model/MyView/newViewDetail_de.properties @@ -0,0 +1,3 @@ +blurb=\ + Diese Ansicht zeigt automatisch alle Jobs an, auf die der momentan angemeldete \ + Benutzer Zugriff hat. diff --git a/core/src/main/resources/hudson/model/MyView/newViewDetail_es.properties b/core/src/main/resources/hudson/model/MyView/newViewDetail_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..14cbc099503b61ccb8ae59303c7c1b458b483cca --- /dev/null +++ b/core/src/main/resources/hudson/model/MyView/newViewDetail_es.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +blurb=\ + Esta vista muestra automáticamente todas las tareas a las que el usuario puede acceder. + diff --git a/core/src/main/resources/hudson/model/MyView/newViewDetail_fr.properties b/core/src/main/resources/hudson/model/MyView/newViewDetail_fr.properties index 75dd566525d754ad833d74decdef50f60338f4b4..ea8b88f672302d6f11b439b376b41a75a31e1c26 100644 --- a/core/src/main/resources/hudson/model/MyView/newViewDetail_fr.properties +++ b/core/src/main/resources/hudson/model/MyView/newViewDetail_fr.properties @@ -20,4 +20,4 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -blurb=Cette vue n''a pas de job associé. +blurb=Cette vue n''a pas de job associé. diff --git a/core/src/main/resources/hudson/model/MyView/newViewDetail_ko.properties b/core/src/main/resources/hudson/model/MyView/newViewDetail_ko.properties new file mode 100644 index 0000000000000000000000000000000000000000..de7ab91b36f464cf1cab6be289edb5cc55260afd --- /dev/null +++ b/core/src/main/resources/hudson/model/MyView/newViewDetail_ko.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +blurb=\uC774 \uC870\uD68C\uB294 \uD604\uC7AC \uC0AC\uC6A9\uC790\uAC00 \uC811\uADFC\uD558\uACE0 \uC788\uB294 \uBAA8\uB4E0 \uC791\uC5C5\uC744 \uC790\uB3D9\uC801\uC73C\uB85C \uD45C\uC2DC\uD568. diff --git a/core/src/main/resources/hudson/model/MyView/newViewDetail_pt_BR.properties b/core/src/main/resources/hudson/model/MyView/newViewDetail_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..2aa7fd56addb3eb713725a8f63ce073d8d0dcfa0 --- /dev/null +++ b/core/src/main/resources/hudson/model/MyView/newViewDetail_pt_BR.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +# \ +# This view automatically displays all the jobs that the current user has an access to. +blurb=\ +# Estes usu\u00E1rios podem se logar no Hudson. Este \u00E9 um super conjunto desta lista, \ diff --git a/core/src/main/resources/hudson/model/MyView/newViewDetail_ru.properties b/core/src/main/resources/hudson/model/MyView/newViewDetail_ru.properties new file mode 100644 index 0000000000000000000000000000000000000000..223ada73c2e2c0127524a458fbab2d49de1c74a6 --- /dev/null +++ b/core/src/main/resources/hudson/model/MyView/newViewDetail_ru.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +blurb=\u0414\u0430\u043D\u043D\u043E\u0435 \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0435 \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0435\u0442 \u0432\u0441\u0435 \u0437\u0430\u0434\u0430\u0447\u0438, \u0434\u043E\u0441\u0442\u0443\u043F \u043A \u043A\u043E\u0442\u043E\u0440\u044B\u043C \u0438\u043C\u0435\u0435\u0442 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u0435\u043C. diff --git a/core/src/main/resources/hudson/model/MyView/newViewDetail_sv_SE.properties b/core/src/main/resources/hudson/model/MyView/newViewDetail_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..2f1b5faf0cc4e764c85c228963f80b12fa2c2c10 --- /dev/null +++ b/core/src/main/resources/hudson/model/MyView/newViewDetail_sv_SE.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +blurb=Visar jobb som den aktuella anv\u00E4ndaren har tillg\u00E5ng till. diff --git a/core/src/main/resources/hudson/model/MyView/noJob_da.properties b/core/src/main/resources/hudson/model/MyView/noJob_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..1b1fae53717b91d8c53c7f6e3eda0c3a83531ffc --- /dev/null +++ b/core/src/main/resources/hudson/model/MyView/noJob_da.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +blurb=Denne visning har ingen jobs. diff --git a/core/src/main/resources/hudson/model/MyView/noJob_de.properties b/core/src/main/resources/hudson/model/MyView/noJob_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..9d31bb2e1b0aed044547f372a6291101d0cba68c --- /dev/null +++ b/core/src/main/resources/hudson/model/MyView/noJob_de.properties @@ -0,0 +1 @@ +blurb=Diese Ansicht enthält keine Jobs. diff --git a/core/src/main/resources/hudson/model/MyView/noJob_es.properties b/core/src/main/resources/hudson/model/MyView/noJob_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..12e59392dcf39a02c7faff2591939db5c8c22900 --- /dev/null +++ b/core/src/main/resources/hudson/model/MyView/noJob_es.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +blurb=No hay ninguna tarea asignada a esta vista. diff --git a/core/src/main/resources/hudson/model/MyView/noJob_fr.properties b/core/src/main/resources/hudson/model/MyView/noJob_fr.properties index 75dd566525d754ad833d74decdef50f60338f4b4..ea8b88f672302d6f11b439b376b41a75a31e1c26 100644 --- a/core/src/main/resources/hudson/model/MyView/noJob_fr.properties +++ b/core/src/main/resources/hudson/model/MyView/noJob_fr.properties @@ -20,4 +20,4 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -blurb=Cette vue n''a pas de job associé. +blurb=Cette vue n''a pas de job associé. diff --git a/core/src/main/resources/hudson/model/MyView/noJob_pt_BR.properties b/core/src/main/resources/hudson/model/MyView/noJob_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..adb3c8e9727fbb32ddbea6f5af7dfbb950bc2904 --- /dev/null +++ b/core/src/main/resources/hudson/model/MyView/noJob_pt_BR.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +# This view has no jobs. +blurb=\ +# Estes usu\u00E1rios podem se logar no Hudson. Este \u00E9 um super conjunto desta lista, \ diff --git a/core/src/main/resources/hudson/model/MyViewsProperty/config.jelly b/core/src/main/resources/hudson/model/MyViewsProperty/config.jelly new file mode 100644 index 0000000000000000000000000000000000000000..32463ee34474d5209d4a23b5c93b676aaea63d93 --- /dev/null +++ b/core/src/main/resources/hudson/model/MyViewsProperty/config.jelly @@ -0,0 +1,30 @@ + + + + + + + \ No newline at end of file diff --git a/core/src/main/resources/hudson/model/MyViewsProperty/config.properties b/core/src/main/resources/hudson/model/MyViewsProperty/config.properties new file mode 100644 index 0000000000000000000000000000000000000000..1faeee49f4592d9d7e50d52ce95393f1c064e98c --- /dev/null +++ b/core/src/main/resources/hudson/model/MyViewsProperty/config.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +description=The view selected by default when navigating to the users' private views \ No newline at end of file diff --git a/core/src/main/resources/hudson/model/MyViewsProperty/config_da.properties b/core/src/main/resources/hudson/model/MyViewsProperty/config_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..29824a12ffc42d60edc7d059e834e28505b4b0ac --- /dev/null +++ b/core/src/main/resources/hudson/model/MyViewsProperty/config_da.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Default\ View=Standardvisning +description=Visningen der bruges som standard for brugerens private visninger diff --git a/core/src/main/resources/hudson/model/MyViewsProperty/config_de.properties b/core/src/main/resources/hudson/model/MyViewsProperty/config_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..27f8470a90c7e662a9f347fad15599760d1b0572 --- /dev/null +++ b/core/src/main/resources/hudson/model/MyViewsProperty/config_de.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Default\ View=Standardansicht +description=Die Ansicht wird als Vorgabe ausgewählt, wenn der Anwender seine privaten Ansichten öffnet. \ No newline at end of file diff --git a/core/src/main/resources/hudson/model/MyViewsProperty/config_es.properties b/core/src/main/resources/hudson/model/MyViewsProperty/config_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..1b12b7da8c9837e2d93a7e19f32e5ba0362a7588 --- /dev/null +++ b/core/src/main/resources/hudson/model/MyViewsProperty/config_es.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +description=Es la vista selecciona por defecto cuando se navega por las vistas privadas de usuario +Default\ View=Vista por defecto diff --git a/core/src/main/resources/hudson/model/MyViewsProperty/config_fr.properties b/core/src/main/resources/hudson/model/MyViewsProperty/config_fr.properties new file mode 100644 index 0000000000000000000000000000000000000000..d3d3a94ea1cbf89db4f37d7f23a5924a3a88bbad --- /dev/null +++ b/core/src/main/resources/hudson/model/MyViewsProperty/config_fr.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Default\ View=Vue par d\u00E9faut +description=La vue s\u00E9lectionn\u00E9e par d\u00E9faut lors de la navigation dans les vues priv\u00E9es de l''''utilisateur diff --git a/core/src/main/resources/hudson/model/MyViewsProperty/config_ja.properties b/core/src/main/resources/hudson/model/MyViewsProperty/config_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..deaf432dd3048f5374853cf05cca5b6de407b3fe --- /dev/null +++ b/core/src/main/resources/hudson/model/MyViewsProperty/config_ja.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Default\ View=\u30C7\u30D5\u30A9\u30EB\u30C8\u30D3\u30E5\u30FC +description=\u30E6\u30FC\u30B6\u30FC\u500B\u4EBA\u306E\u30D3\u30E5\u30FC\u3092\u8868\u793A\u3059\u308B\u969B\u306B\u30C7\u30D5\u30A9\u30EB\u30C8\u3067\u8868\u793A\u3059\u308B\u30D3\u30E5\u30FC diff --git a/core/src/main/resources/hudson/model/MyViewsProperty/config_pt_BR.properties b/core/src/main/resources/hudson/model/MyViewsProperty/config_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..19a629994a4c31300bb8d9d3cfd897d72292d081 --- /dev/null +++ b/core/src/main/resources/hudson/model/MyViewsProperty/config_pt_BR.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Default\ View= +# The view selected by default when navigating to the users' private views +description= diff --git a/core/src/main/resources/hudson/model/MyViewsProperty/newView.jelly b/core/src/main/resources/hudson/model/MyViewsProperty/newView.jelly new file mode 100644 index 0000000000000000000000000000000000000000..6b60201777d7d036845bfb0c534a292c27103682 --- /dev/null +++ b/core/src/main/resources/hudson/model/MyViewsProperty/newView.jelly @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/core/src/main/resources/hudson/model/MyViewsProperty/newView_da.properties b/core/src/main/resources/hudson/model/MyViewsProperty/newView_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..0cb74ff940234cea1041956348233e3b964c7029 --- /dev/null +++ b/core/src/main/resources/hudson/model/MyViewsProperty/newView_da.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +View\ name=Visningens navn diff --git a/core/src/main/resources/hudson/model/MyViewsProperty/newView_de.properties b/core/src/main/resources/hudson/model/MyViewsProperty/newView_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..5b3a61d6aee418e2300842f5c9e1d02bb948721a --- /dev/null +++ b/core/src/main/resources/hudson/model/MyViewsProperty/newView_de.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +View\ name=Name der Ansicht diff --git a/core/src/main/resources/hudson/model/MyViewsProperty/newView_es.properties b/core/src/main/resources/hudson/model/MyViewsProperty/newView_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..be886d35e3c5e2e4d993dd8e3654b66cc1f35807 --- /dev/null +++ b/core/src/main/resources/hudson/model/MyViewsProperty/newView_es.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +View\ name=Nombre de la vista diff --git a/core/src/main/resources/hudson/model/MyViewsProperty/newView_ja.properties b/core/src/main/resources/hudson/model/MyViewsProperty/newView_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..16ebc119b52c8754b4d93d7b1ea5eb7a52c04311 --- /dev/null +++ b/core/src/main/resources/hudson/model/MyViewsProperty/newView_ja.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +View\ name=\u30D3\u30E5\u30FC\u540D + diff --git a/core/src/main/resources/hudson/model/MyViewsProperty/newView_pt_BR.properties b/core/src/main/resources/hudson/model/MyViewsProperty/newView_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..e2affaf3470cfa141f921445d30f1712318e13f4 --- /dev/null +++ b/core/src/main/resources/hudson/model/MyViewsProperty/newView_pt_BR.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +View\ name=Visualizar nome diff --git a/core/src/main/resources/hudson/model/NoFingerprintMatch/index.jelly b/core/src/main/resources/hudson/model/NoFingerprintMatch/index.jelly index 1255d2c510faa2d484f5a5589daa8355a3734487..c5ceea3a98cd1c6511f1e2a75c2905738b4e8bf1 100644 --- a/core/src/main/resources/hudson/model/NoFingerprintMatch/index.jelly +++ b/core/src/main/resources/hudson/model/NoFingerprintMatch/index.jelly @@ -38,7 +38,7 @@ THE SOFTWARE.

    - ${%description(it.displayName)} + ${%description(h.escape(it.displayName))}

    1. diff --git a/core/src/main/resources/hudson/model/NoFingerprintMatch/index.properties b/core/src/main/resources/hudson/model/NoFingerprintMatch/index.properties index 7226ea910741aae67e6dde7e3a72362cb2f5fe11..06f7088a8319a4dfb270d6b79f241e07b9bae417 100644 --- a/core/src/main/resources/hudson/model/NoFingerprintMatch/index.properties +++ b/core/src/main/resources/hudson/model/NoFingerprintMatch/index.properties @@ -22,7 +22,7 @@ description=The fingerprint {0} did not match any of the recorded data. cause.1=\ - Perhaps the file was not created under Hudson.\ + Perhaps the file was not created under Hudson. \ Maybe it''s a version that someone built locally on his/her own machine. cause.2=\ Perhaps the projects are not set up correctly and not recording \ diff --git a/core/src/main/resources/hudson/model/NoFingerprintMatch/index_da.properties b/core/src/main/resources/hudson/model/NoFingerprintMatch/index_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..731b1b159eb676fc3dfcfa637cfb6b378eb79d5d --- /dev/null +++ b/core/src/main/resources/hudson/model/NoFingerprintMatch/index_da.properties @@ -0,0 +1,29 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +cause.2=M\u00e5ske er projektet konfigureret forkert og opsamler ikke filfingeraftryk. \ +Check projektets indstillinger. +Back\ to\ Dashboard=Tilbage til oversigtssiden +description=filfingeraftryk {0} matcher ingen opsamlede data. +No\ matching\ record\ found=Ingen matchende opslag fundet +cause.1=M\u00e5ske blev filen ikke skabt under Hudson. \ +M\u00e5ske er det en version nogen har bygget manuelt. diff --git a/core/src/main/resources/hudson/model/NoFingerprintMatch/index_de.properties b/core/src/main/resources/hudson/model/NoFingerprintMatch/index_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..5fca9eab0f31d14c4691fc3a49b4167b0873de75 --- /dev/null +++ b/core/src/main/resources/hudson/model/NoFingerprintMatch/index_de.properties @@ -0,0 +1,7 @@ +Back\ to\ Dashboard=Zurück zur Übersicht +No\ matching\ record\ found=Kein übereinstimmender Fingerabdruck gefunden. +description=Der Fingerabdruck {0} stimmte in keinem Fall mit aufgezeichneten Daten überein. +cause.1=Vielleicht ist die Datei nicht innerhalb von Hudson erstellt worden. \ + Möglicherweise wurde sie von jemandem lokal auf seinem/ihrem Rechner erstellt. +cause.2=Vielleicht wurde das Aufzeichnen von Fingerabdrücken in den Projekteinstellungen \ + nicht konfiguriert. Überprüfen Sie die Projekteinstellungen. diff --git a/core/src/main/resources/hudson/model/NoFingerprintMatch/index_es.properties b/core/src/main/resources/hudson/model/NoFingerprintMatch/index_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..4f843f1f5d4e6f31838ee40ebab398c9ab6917c0 --- /dev/null +++ b/core/src/main/resources/hudson/model/NoFingerprintMatch/index_es.properties @@ -0,0 +1,31 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +description=La firma del fichero {0} no coincide con ninguna de las que hay almacenadas. +cause.1=\ + Quizás el fichero no fué creado con Hudson y sea un fichero creado por alguien en su propia máquina. +cause.2=\ + O puede ser que los proyectos no estén correctamente configurados para almacenar la firma de ficheros. Compruebe que la configuración del proyecto sea correcta. + +No\ matching\ record\ found=No se encontraron registros +Back\ to\ Dashboard=Volver al Panel de control + diff --git a/core/src/main/resources/hudson/model/NoFingerprintMatch/index_fr.properties b/core/src/main/resources/hudson/model/NoFingerprintMatch/index_fr.properties index 45bb73dca2aad08ef45c7ec9842144df9d8a68dd..01c5a1455fc1337013e94b6df7084e3f59f79480 100644 --- a/core/src/main/resources/hudson/model/NoFingerprintMatch/index_fr.properties +++ b/core/src/main/resources/hudson/model/NoFingerprintMatch/index_fr.properties @@ -20,13 +20,13 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -description=L''empreinte numérique {0} ne correspond pas aux empreintes déjà enregistrées. -cause.1=\ - Le fichier n''a peut-être pas été créé par Hudson.\ - Peut-être est-ce une version que quelqu''un a construit localement sur sa propre machine. -cause.2=\ - Peut-être que les projets n''ont pas été configurés pour enregistrer les empreintes. \ - Vérifiez la configuration du projet -No\ matching\ record\ found=Aucune donnée correspondante trouvée -Back\ to\ Dashboard=Retour au tableau de bord - +description=L''empreinte numérique {0} ne correspond pas aux empreintes déjà enregistrées. +cause.1=\ + Le fichier n''a peut-être pas été créé par Hudson.\ + Peut-être est-ce une version que quelqu''un a construit localement sur sa propre machine. +cause.2=\ + Peut-être que les projets n''ont pas été configurés pour enregistrer les empreintes. \ + Vérifiez la configuration du projet +No\ matching\ record\ found=Aucune donnée correspondante trouvée +Back\ to\ Dashboard=Retour au tableau de bord + diff --git a/core/src/main/resources/hudson/model/NoFingerprintMatch/index_pt_BR.properties b/core/src/main/resources/hudson/model/NoFingerprintMatch/index_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..fd933fe38bcbd6740c664a8c8a14691cc4ac7bc0 --- /dev/null +++ b/core/src/main/resources/hudson/model/NoFingerprintMatch/index_pt_BR.properties @@ -0,0 +1,34 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +# \ +# Perhaps the projects are not set up correctly and not recording \ +# fingerprints. Check the project setting. +cause.2= +Back\ to\ Dashboard= +# The fingerprint {0} did not match any of the recorded data. +description= +No\ matching\ record\ found= +# \ +# Perhaps the file was not created under Hudson. \ +# Maybe it''s a version that someone built locally on his/her own machine. +cause.1= diff --git a/core/src/main/resources/hudson/model/NoFingerprintMatch/index_tr.properties b/core/src/main/resources/hudson/model/NoFingerprintMatch/index_tr.properties index 82d43f25071cae19a0a2a302408b688c07dd39ef..1d51696dc3c71c9a8a101309b6bc42b56f59fc49 100644 --- a/core/src/main/resources/hudson/model/NoFingerprintMatch/index_tr.properties +++ b/core/src/main/resources/hudson/model/NoFingerprintMatch/index_tr.properties @@ -20,11 +20,11 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -No\ matching\ record\ found=E\u015fle\u015fen kay\u0131t bulunamad\u0131 -Back\ to\ Dashboard=Kontrol Merkezi''ne D\u00f6n -description=Parmakizi {0}, kay\u0131tl\u0131 herhangi bir bilgi ile e\u015fle\u015ftirilemedi -cause.1=\ - Dosya Hudson alt\u0131nda olu\u015fturulmam\u0131\u015f olabilir.\ - Arad\u0131\u011f\u0131n\u0131z versiyon, belki de ba\u015fkas\u0131n\u0131n kendi bilgisayar\u0131nda yap\u0131land\u0131rd\u0131\u011f\u0131 bir versiyondur. -cause.2=\ - Proje ayarlar\u0131 parmakizi kaydedecek \u015fekilde ayarlanmam\u0131\u015f olabilir. L\u00fctfen proje ayarlar\u0131n\u0131 kontrol edin. +No\ matching\ record\ found=E\u015fle\u015fen kay\u0131t bulunamad\u0131 +Back\ to\ Dashboard=Kontrol Merkezi''ne D\u00f6n +description=Parmakizi {0}, kay\u0131tl\u0131 herhangi bir bilgi ile e\u015fle\u015ftirilemedi +cause.1=\ + Dosya Hudson alt\u0131nda olu\u015fturulmam\u0131\u015f olabilir.\ + Arad\u0131\u011f\u0131n\u0131z versiyon, belki de ba\u015fkas\u0131n\u0131n kendi bilgisayar\u0131nda yap\u0131land\u0131rd\u0131\u011f\u0131 bir versiyondur. +cause.2=\ + Proje ayarlar\u0131 parmakizi kaydedecek \u015fekilde ayarlanmam\u0131\u015f olabilir. L\u00fctfen proje ayarlar\u0131n\u0131 kontrol edin. diff --git a/core/src/main/resources/hudson/model/Node/help-labelString.html b/core/src/main/resources/hudson/model/Node/help-labelString.html index 23c626674ebc292c2bb97c9ffcda2c274c286de4..d6951e220f117011aa14746a18c203bdd4796fd2 100644 --- a/core/src/main/resources/hudson/model/Node/help-labelString.html +++ b/core/src/main/resources/hudson/model/Node/help-labelString.html @@ -1,5 +1,7 @@
      Labels (AKA tags) are used for grouping multiple slaves into one logical group. + Use spaces between each label. For instance 'regression java6' will assign a + node the labels 'regression' and 'java6'.

      For example, if you have multiple Windows slaves and you have jobs that require diff --git a/core/src/main/resources/hudson/model/Node/help-labelString_de.html b/core/src/main/resources/hudson/model/Node/help-labelString_de.html index 8561a563190ce5509ca3e4864ad714f2e4e41c4e..10fc53a877cdefe9c074c35e709b33ddba86158b 100644 --- a/core/src/main/resources/hudson/model/Node/help-labelString_de.html +++ b/core/src/main/resources/hudson/model/Node/help-labelString_de.html @@ -1,11 +1,11 @@

      Gruppen (auch: Labels oder Tags) werden benutzt, um mehrere Slave-Knoten in eine - logische Gruppe zusammenzufassen. - + logische Gruppe zusammenzufassen. Die Angabe 'regression java6' ordnet beispielsweise + einen Knoten den Gruppen 'regression' und 'java6' zu.

      Beispiel: Sie haben mehrere Slave-Knoten unter Windows und einen Job, der Windows erfordert. Sie können dann alle Ihre Windows-Slave-Knoten unter der Gruppe - "Windows" zusammenfassen und den Job an die Gruppe "Windows" binden. + "windows" zusammenfassen und den Job an die Gruppe "windows" binden. Dadurch kann Ihr Job jedem der Windows-Slave-Knoten zugewiesen werden - aber keinem anderen Slave-Knoten sonst.

      \ No newline at end of file diff --git a/core/src/main/resources/hudson/model/Node/help-labelString_ja.html b/core/src/main/resources/hudson/model/Node/help-labelString_ja.html index 50d7bce19f1ec5507a3e9a1b97c0b4b43ad44d6f..7091e436b287a56b21fe7227a2bc465b89025f2b 100644 --- a/core/src/main/resources/hudson/model/Node/help-labelString_ja.html +++ b/core/src/main/resources/hudson/model/Node/help-labelString_ja.html @@ -1,5 +1,6 @@
      ラベル(別å ã‚¿ã‚°)ã¯è¤‡æ•°ã®ã‚¹ãƒ¬ãƒ¼ãƒ–ã‚’1ã¤ã®è«–ç†ã‚°ãƒ«ãƒ¼ãƒ—ã«ã¾ã¨ã‚ã‚‹ãŸã‚ã«ä½¿ç”¨ã—ã¾ã™ã€‚ + 複数ã®ãƒ©ãƒ™ãƒ«ã‚’使用ã™ã‚‹å ´åˆã‚¹ãƒšãƒ¼ã‚¹ã§åŒºåˆ‡ã‚Šã¾ã™ã€‚例ãˆã°ã€'regression java6'ã¯ã€ãƒŽãƒ¼ãƒ‰ã«'regression'ã¨'java6'を割り当ã¦ã¾ã™ã€‚

      例ãˆã°ã€Windowsã®ã‚¹ãƒ¬ãƒ¼ãƒ–ãŒè¤‡æ•°ã¨ã€WindowsãŒå¿…è¦ãªã‚¸ãƒ§ãƒ–ãŒã‚ã‚‹å ´åˆã€ã™ã¹ã¦ã®Windowsスレーブã®'windows'ã¨ã„ã†ãƒ©ãƒ™ãƒ«ã‚’設定ã—〠diff --git a/core/src/main/resources/hudson/model/Node/help-labelString_zh_CN.html b/core/src/main/resources/hudson/model/Node/help-labelString_zh_CN.html new file mode 100644 index 0000000000000000000000000000000000000000..e45d74fc00db4a5c525ed9bdad4c9d1bc30d31df --- /dev/null +++ b/core/src/main/resources/hudson/model/Node/help-labelString_zh_CN.html @@ -0,0 +1,7 @@ +

      + 标记(åˆå«åšæ ‡ç­¾)用æ¥å¯¹å¤šèŠ‚点分组,标记之间用空格分隔.例如'refression java6'将会把一个节点标记上'regression'å’Œ'java6'. + +

      + 举例æ¥è¯´,如果你有多个Windows系统的构建节点并且你的Job也需è¦åœ¨Windows系统上è¿è¡Œ,那么你å¯ä»¥é…置所有的Windows系统节点都标记为'windows', + 然åŽæŠŠJob也标记为'windows'.这样的è¯ä½ çš„Jobå°±ä¸ä¼šè¿è¡Œåœ¨é™¤äº†Windows节点以外的其它节点之上了. +

      \ No newline at end of file diff --git a/core/src/main/resources/hudson/model/Node/help-numExecutors.html b/core/src/main/resources/hudson/model/Node/help-numExecutors.html index 4c8fe55c47a3d91fb856999be28cfe64fcf7f46d..7e30307f29c1561084f778e8c6d044c88434f6a1 100644 --- a/core/src/main/resources/hudson/model/Node/help-numExecutors.html +++ b/core/src/main/resources/hudson/model/Node/help-numExecutors.html @@ -10,5 +10,6 @@

      When using Hudson in the master/slave mode, setting this value to 0 would prevent the master - to do any build on its own. -

      \ No newline at end of file + from doing any building on its own. Slaves may not have zero executors, but may be + temporarily disabled using the button on the slave's status page. +
      diff --git a/core/src/main/resources/hudson/model/Node/help-numExecutors_de.html b/core/src/main/resources/hudson/model/Node/help-numExecutors_de.html index 91ff56708aafc0637c4f30b760b9273ffc68273f..e94e16fe1dc9efc472bef518699b95ccfbbd191d 100644 --- a/core/src/main/resources/hudson/model/Node/help-numExecutors_de.html +++ b/core/src/main/resources/hudson/model/Node/help-numExecutors_de.html @@ -1,6 +1,6 @@
      Diese Einstellung legt die Anzahl gleichzeitiger Build-Prozesse in Hudson fest. - Sie beeinflußt daher die Gesamtlast, die Hudson auf einem System erzeugen kann. + Sie beeinflusst daher die Gesamtlast, die Hudson auf einem System erzeugen kann. Ein guter Ausgangspunkt wäre die Anzahl der CPUs Ihres Systems.

      @@ -12,7 +12,8 @@

      - Falls Hudson im Master/Slave-Modus betrieben wird, legt ein Wert von 0 hier fest, - daß ausschließlich auf den Slaves Build-Prozesse durchgeführt werden, nie aber - auf dem Master selbst. + Falls Hudson im Master/Slave-Modus betrieben wird, legt ein Wert von 0 auf dem Master + fest, daß ausschließlich auf den Slaves Build-Prozesse durchgeführt werden, nie aber + auf dem Master selbst. Slaves müssen mindestens 1 Build-Prozessor bereitstellen, können + aber temporär durch eine Schaltfläche auf der Statusseite des Slaves deaktiviert werden.

      \ No newline at end of file diff --git a/core/src/main/resources/hudson/model/Node/help-numExecutors_ja.html b/core/src/main/resources/hudson/model/Node/help-numExecutors_ja.html index b139633a1326c22bed9ca8f72f933d59186c56af..47ed9ae2ffef5b520e5641e6421ad005bcd199d5 100644 --- a/core/src/main/resources/hudson/model/Node/help-numExecutors_ja.html +++ b/core/src/main/resources/hudson/model/Node/help-numExecutors_ja.html @@ -8,6 +8,6 @@ CPUã¯åˆ¥ã®ãƒ—ロジェクトをビルドã§ãã‚‹ã‹ã‚‰ã§ã™ã€‚

      - マスタ/スレーブ モードã§Hudsonを使用ã™ã‚‹å ´åˆã€ - ã“ã®å€¤ã‚’0ã«è¨­å®šã™ã‚‹ã¨ãƒžã‚¹ã‚¿è‡ªèº«ã¯ãƒ“ルドã—ãªã„よã†ã«ãªã‚Šã¾ã™ã€‚ + マスタ/スレーブ モードã§Hudsonを使用ã™ã‚‹å ´åˆã€ã“ã®å€¤ã‚’0ã«è¨­å®šã™ã‚‹ã¨ãƒžã‚¹ã‚¿è‡ªèº«ã¯ãƒ“ルドã—ãªã„よã†ã«ãªã‚Šã¾ã™ã€‚ + スレーブã®å ´åˆ0ã«ã™ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“ãŒã€ã‚¹ãƒ¬ãƒ¼ãƒ–ã®è¨­å®šç”»é¢ã®ãƒœã‚¿ãƒ³ã§ä¸€æ™‚çš„ã«åˆ©ç”¨ä¸å¯ã«ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚

    diff --git a/core/src/main/resources/hudson/model/Node/help-numExecutors_zh_CN.html b/core/src/main/resources/hudson/model/Node/help-numExecutors_zh_CN.html new file mode 100644 index 0000000000000000000000000000000000000000..5de041a84112ed6d3caeba8e5685bbe85682291b --- /dev/null +++ b/core/src/main/resources/hudson/model/Node/help-numExecutors_zh_CN.html @@ -0,0 +1,11 @@ +
    + 这个值控制ç€Hudson并å‘构建的数é‡. + 因此这个值会影å“Hudson系统的负载压力. + 使用处ç†å™¨ä¸ªæ•°ä½œä¸ºå…¶å€¼ä¼šæ˜¯æ¯”较好的选择. + +

    + 增大这个值会使æ¯ä¸ªæž„建的è¿è¡Œæ—¶é—´æ›´é•¿,但是这能够增大整体的构建数é‡,因为当一个项目在等待I/O时它å…许CPU去构建å¦ä¸€ä¸ªé¡¹ç›®. + +

    + 设置这个值为0对于从Hudson移除一个失效的从节点éžå¸¸æœ‰ç”¨,并且ä¸ä¼šä¸¢å¤±é…置信æ¯ã€‚ +

    \ No newline at end of file diff --git a/core/src/main/resources/hudson/model/ParametersAction/index.jelly b/core/src/main/resources/hudson/model/ParametersAction/index.jelly index 4726a748e5a32403427348594f6132d514abca1d..007d6d12a2b7cf53dd917025d1ec4c4ac3dee10a 100644 --- a/core/src/main/resources/hudson/model/ParametersAction/index.jelly +++ b/core/src/main/resources/hudson/model/ParametersAction/index.jelly @@ -1,7 +1,8 @@ - + - - - - - + xmlns:l="/lib/layout" xmlns:t="/lib/hudson" xmlns:f="/lib/form" + xmlns:i="jelly:fmt" xmlns:p="/lib/hudson/project"> + + + + + +

    ${%Build} #${build.number}

    @@ -40,5 +42,5 @@ THE SOFTWARE.
    -
    +
    diff --git a/core/src/main/resources/hudson/model/ParametersAction/index_da.properties b/core/src/main/resources/hudson/model/ParametersAction/index_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..cee2beb26fd6771a5d5ca5e16e7cc1a1efbe6042 --- /dev/null +++ b/core/src/main/resources/hudson/model/ParametersAction/index_da.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Build=Byg +Parameters=Parametre diff --git a/core/src/main/resources/hudson/model/ParametersAction/index_de.properties b/core/src/main/resources/hudson/model/ParametersAction/index_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..d6f337c2179024ee91d401f6125fa69cdb4a13e9 --- /dev/null +++ b/core/src/main/resources/hudson/model/ParametersAction/index_de.properties @@ -0,0 +1,2 @@ +Build=Build +Parameters=Parameter diff --git a/core/src/main/resources/hudson/model/ParametersAction/index_es.properties b/core/src/main/resources/hudson/model/ParametersAction/index_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..7122038898fd56e448715d334bd7ee8fd25e4e82 --- /dev/null +++ b/core/src/main/resources/hudson/model/ParametersAction/index_es.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Build=Tarea +Parameters=Parámetros diff --git a/core/src/main/resources/hudson/model/ParametersAction/index_fr.properties b/core/src/main/resources/hudson/model/ParametersAction/index_fr.properties index 0064fee856afe9f06e5cd685c91e385404432f9a..ca8e3995b5420b9b290eafc955c0e32e0f95acff 100644 --- a/core/src/main/resources/hudson/model/ParametersAction/index_fr.properties +++ b/core/src/main/resources/hudson/model/ParametersAction/index_fr.properties @@ -20,5 +20,5 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Parameters=Paramètres -Build= +Parameters=Paramètres +Build= diff --git a/core/src/main/resources/hudson/model/ParametersAction/index_pt_BR.properties b/core/src/main/resources/hudson/model/ParametersAction/index_pt_BR.properties index 11d3274c4a3d786ddf5b60deb8441a1782ecf7d4..6ec986830c5d679c83524ff6d8c82803eb7d386b 100644 --- a/core/src/main/resources/hudson/model/ParametersAction/index_pt_BR.properties +++ b/core/src/main/resources/hudson/model/ParametersAction/index_pt_BR.properties @@ -21,3 +21,4 @@ # THE SOFTWARE. Build=Construir +Parameters= diff --git a/core/src/main/resources/hudson/model/ParametersAction/index_tr.properties b/core/src/main/resources/hudson/model/ParametersAction/index_tr.properties index e739dc302778042c4d57698bb0f5b1421b1c2e20..43854f09eb6e2a9e8e15c1af7cfa22b660d2075d 100644 --- a/core/src/main/resources/hudson/model/ParametersAction/index_tr.properties +++ b/core/src/main/resources/hudson/model/ParametersAction/index_tr.properties @@ -20,4 +20,4 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Build=Yap\u0131land\u0131rma +Build=Yap\u0131land\u0131rma diff --git a/core/src/main/resources/hudson/model/ParametersDefinitionProperty/config_da.properties b/core/src/main/resources/hudson/model/ParametersDefinitionProperty/config_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..f18767a9ff2521145a3c3cf0b7b40623373b18b3 --- /dev/null +++ b/core/src/main/resources/hudson/model/ParametersDefinitionProperty/config_da.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Add\ Parameter=Tilf\u00f8j Parametre +This\ build\ is\ parameterized=Dette byg er parameteriseret diff --git a/core/src/main/resources/hudson/model/ParametersDefinitionProperty/config_de.properties b/core/src/main/resources/hudson/model/ParametersDefinitionProperty/config_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..b095c4e88032cdaa819b7a9594421360171311c3 --- /dev/null +++ b/core/src/main/resources/hudson/model/ParametersDefinitionProperty/config_de.properties @@ -0,0 +1,2 @@ +This\ build\ is\ parameterized=Dieser Build ist parametrisiert. +Add\ Parameter=Parameter hinzufügen diff --git a/core/src/main/resources/hudson/model/ParametersDefinitionProperty/config_es.properties b/core/src/main/resources/hudson/model/ParametersDefinitionProperty/config_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..29bf30e7594c0a25da45da0ef2a45bf299f4cdfc --- /dev/null +++ b/core/src/main/resources/hudson/model/ParametersDefinitionProperty/config_es.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +This\ build\ is\ parameterized=Esta ejecución debe parametrizarse +Add\ Parameter=Añadir un parámetro diff --git a/core/src/main/resources/hudson/model/ParametersDefinitionProperty/config_fr.properties b/core/src/main/resources/hudson/model/ParametersDefinitionProperty/config_fr.properties index 572f26bed12c63d42947f7379b441458917d353d..6c9fe1823c0ea9509d174f71614c2327bb57b5b3 100644 --- a/core/src/main/resources/hudson/model/ParametersDefinitionProperty/config_fr.properties +++ b/core/src/main/resources/hudson/model/ParametersDefinitionProperty/config_fr.properties @@ -20,5 +20,5 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -This\ build\ is\ parameterized=Ce build a des paramètres -Add\ Parameter=Ajouter un paramètre +This\ build\ is\ parameterized=Ce build a des paramètres +Add\ Parameter=Ajouter un paramètre diff --git a/core/src/main/resources/hudson/model/ParametersDefinitionProperty/config_pt_BR.properties b/core/src/main/resources/hudson/model/ParametersDefinitionProperty/config_pt_BR.properties index 1eb0112f135020b549461ea964d0ae077c0c539d..72ed00f021a49cfed2fecc93d9970e9843fa9bbc 100644 --- a/core/src/main/resources/hudson/model/ParametersDefinitionProperty/config_pt_BR.properties +++ b/core/src/main/resources/hudson/model/ParametersDefinitionProperty/config_pt_BR.properties @@ -21,4 +21,4 @@ # THE SOFTWARE. This\ build\ is\ parameterized=Esta constru\u00E7\u00E3o \u00E9 parametrizada -Add\ Parameter=Adicionar Par\u00E2metro \ No newline at end of file +Add\ Parameter=Adicionar Par\u00E2metro diff --git a/core/src/main/resources/hudson/model/ParametersDefinitionProperty/config_ru.properties b/core/src/main/resources/hudson/model/ParametersDefinitionProperty/config_ru.properties new file mode 100644 index 0000000000000000000000000000000000000000..dfada83b3f5af558d4540d3d39f1d1b355aef23f --- /dev/null +++ b/core/src/main/resources/hudson/model/ParametersDefinitionProperty/config_ru.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Add\ Parameter=\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u041F\u0430\u0440\u0430\u043C\u0435\u0442\u0440 +This\ build\ is\ parameterized=\u042D\u0442\u043E \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u0438\u0437\u043E\u0432\u0430\u043D\u043D\u0430\u044F \u0441\u0431\u043E\u0440\u043A\u0430 diff --git a/core/src/main/resources/hudson/model/ParametersDefinitionProperty/config_tr.properties b/core/src/main/resources/hudson/model/ParametersDefinitionProperty/config_tr.properties index 3cad0a24973fda36e0dd13d36e200a74cd76d738..269e5de81bbe610c7b59dab2a25c551a9c5672c4 100644 --- a/core/src/main/resources/hudson/model/ParametersDefinitionProperty/config_tr.properties +++ b/core/src/main/resources/hudson/model/ParametersDefinitionProperty/config_tr.properties @@ -20,5 +20,5 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -This\ build\ is\ parameterized=Bu yap\u0131land\u0131rma parametrele\u015ftirilmi\u015ftir. -Add\ Parameter=Parametre ekle +This\ build\ is\ parameterized=Bu yap\u0131land\u0131rma parametrele\u015ftirilmi\u015ftir. +Add\ Parameter=Parametre ekle diff --git a/core/src/main/resources/hudson/model/ParametersDefinitionProperty/index.jelly b/core/src/main/resources/hudson/model/ParametersDefinitionProperty/index.jelly index 2063aa15aa261d97d49c56f615ea261e5ab3405a..09507388a2a318fdb1263deb0c6a86eb7f07970b 100644 --- a/core/src/main/resources/hudson/model/ParametersDefinitionProperty/index.jelly +++ b/core/src/main/resources/hudson/model/ParametersDefinitionProperty/index.jelly @@ -1,7 +1,7 @@ - - -

    ${it.owner.pronoun} ${it.owner.displayName}

    + + +

    ${it.owner.pronoun} ${it.owner.displayName}

    ${%description}

    - - - - - - - - -
    -
    - \ No newline at end of file + + + + + + + + + + + + + + diff --git a/core/src/main/resources/hudson/model/ParametersDefinitionProperty/index_da.properties b/core/src/main/resources/hudson/model/ParametersDefinitionProperty/index_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..3c4ef981bcd12f5de7a30f45f9bdaa543f4be27a --- /dev/null +++ b/core/src/main/resources/hudson/model/ParametersDefinitionProperty/index_da.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Build=Byg +description=Dette byg kr\u00e6ver parametre: diff --git a/core/src/main/resources/hudson/model/ParametersDefinitionProperty/index_de.properties b/core/src/main/resources/hudson/model/ParametersDefinitionProperty/index_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..f3fdb7378c07626cc8101e24af25ae847b3cf0ea --- /dev/null +++ b/core/src/main/resources/hudson/model/ParametersDefinitionProperty/index_de.properties @@ -0,0 +1,2 @@ +description=Dieser Build erfordert Parameter: +Build=Build diff --git a/core/src/main/resources/hudson/model/ParametersDefinitionProperty/index_es.properties b/core/src/main/resources/hudson/model/ParametersDefinitionProperty/index_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..cfcda26191ba2a35aaab198c08bf902dc194af4d --- /dev/null +++ b/core/src/main/resources/hudson/model/ParametersDefinitionProperty/index_es.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +description=Esta ejecución requiere parametros adicionales: +Build=Ejecución diff --git a/core/src/main/resources/hudson/model/ParametersDefinitionProperty/index_fr.properties b/core/src/main/resources/hudson/model/ParametersDefinitionProperty/index_fr.properties index 5f28edf73fc6c40505bedbdc80cc782a036890a6..94ebf469b5536efa25c99dc2756a491691cfbd8f 100644 --- a/core/src/main/resources/hudson/model/ParametersDefinitionProperty/index_fr.properties +++ b/core/src/main/resources/hudson/model/ParametersDefinitionProperty/index_fr.properties @@ -20,5 +20,5 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -description=Ce build nécessite des paramètres: -Build= +description=Ce build nécessite des paramètres: +Build= diff --git a/core/src/main/resources/hudson/model/ParametersDefinitionProperty/index_pt_BR.properties b/core/src/main/resources/hudson/model/ParametersDefinitionProperty/index_pt_BR.properties index 603560e082394c817a31d16ec04df1e67caee727..a1ae472e853b0bc0fac32594e73a6c3147a9d9fc 100644 --- a/core/src/main/resources/hudson/model/ParametersDefinitionProperty/index_pt_BR.properties +++ b/core/src/main/resources/hudson/model/ParametersDefinitionProperty/index_pt_BR.properties @@ -21,3 +21,4 @@ # THE SOFTWARE. description=Esta constru\u00E7\u00E3o requer os par\u00E2metros: +Build= diff --git a/core/src/main/resources/hudson/model/ParametersDefinitionProperty/index_tr.properties b/core/src/main/resources/hudson/model/ParametersDefinitionProperty/index_tr.properties index 39d6c4d8a7a0e64c399ace906609cd5481f028a2..96741b96958d22a5f0b5344f7af7a9b7090389a8 100644 --- a/core/src/main/resources/hudson/model/ParametersDefinitionProperty/index_tr.properties +++ b/core/src/main/resources/hudson/model/ParametersDefinitionProperty/index_tr.properties @@ -20,5 +20,5 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -description=tan\u0131m -Build=Yap\u0131land\u0131rma +description=tan\u0131m +Build=Yap\u0131land\u0131rma diff --git a/core/src/main/resources/hudson/model/PasswordParameterDefinition/config.jelly b/core/src/main/resources/hudson/model/PasswordParameterDefinition/config.jelly new file mode 100644 index 0000000000000000000000000000000000000000..175f87661c8b9931344aa9332f7d298329ca583e --- /dev/null +++ b/core/src/main/resources/hudson/model/PasswordParameterDefinition/config.jelly @@ -0,0 +1,37 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/core/src/main/resources/hudson/model/PasswordParameterDefinition/config_da.properties b/core/src/main/resources/hudson/model/PasswordParameterDefinition/config_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..1fa04ed0bbe56ac76817703b42a16a3ada8c597d --- /dev/null +++ b/core/src/main/resources/hudson/model/PasswordParameterDefinition/config_da.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Name=Navn +Default\ Value=Standardv\u00e6rdi +Description=Beskrivelse diff --git a/core/src/main/resources/hudson/model/PasswordParameterDefinition/config_de.properties b/core/src/main/resources/hudson/model/PasswordParameterDefinition/config_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..581ecf0d25fd9268f21b5237c9963e7293749632 --- /dev/null +++ b/core/src/main/resources/hudson/model/PasswordParameterDefinition/config_de.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Name=Name +Default\ Value=Defaultwert +Description=Beschreibung diff --git a/core/src/main/resources/hudson/model/PasswordParameterDefinition/config_es.properties b/core/src/main/resources/hudson/model/PasswordParameterDefinition/config_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..0effa47580d572ea68bcd204becf957067a1aeb9 --- /dev/null +++ b/core/src/main/resources/hudson/model/PasswordParameterDefinition/config_es.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Name=Nombre +Default\ Value=Valor por defecto +Description=Descripción diff --git a/core/src/main/resources/hudson/model/PasswordParameterDefinition/config_fr.properties b/core/src/main/resources/hudson/model/PasswordParameterDefinition/config_fr.properties new file mode 100644 index 0000000000000000000000000000000000000000..051ef7d16ee3de92877df492a85dc177651aa310 --- /dev/null +++ b/core/src/main/resources/hudson/model/PasswordParameterDefinition/config_fr.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Default\ Value=Valeur par d\u00E9faut +Name=Nom diff --git a/core/src/main/resources/hudson/model/PasswordParameterDefinition/config_ja.properties b/core/src/main/resources/hudson/model/PasswordParameterDefinition/config_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..c46ccab1f66691200d37a64da6fe2876f30359af --- /dev/null +++ b/core/src/main/resources/hudson/model/PasswordParameterDefinition/config_ja.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Name=\u540D\u524D +Default\ Value=\u30C7\u30D5\u30A9\u30EB\u30C8\u5024 +Description=\u8AAC\u660E \ No newline at end of file diff --git a/core/src/main/resources/hudson/model/PasswordParameterDefinition/config_pt_BR.properties b/core/src/main/resources/hudson/model/PasswordParameterDefinition/config_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..c92c06cfcf02d63dba6711e3ca1991f82354397e --- /dev/null +++ b/core/src/main/resources/hudson/model/PasswordParameterDefinition/config_pt_BR.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Name= +Default\ Value= +Description= diff --git a/core/src/main/resources/hudson/model/PasswordParameterDefinition/config_zh_TW.properties b/core/src/main/resources/hudson/model/PasswordParameterDefinition/config_zh_TW.properties new file mode 100644 index 0000000000000000000000000000000000000000..1b64e0b35b03df804685c47c1aabe18bedda1da7 --- /dev/null +++ b/core/src/main/resources/hudson/model/PasswordParameterDefinition/config_zh_TW.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Default\ Value=\u9810\u8A2D\u503C +Name=\u540D\u7A31 diff --git a/core/src/main/resources/hudson/model/PasswordParameterDefinition/index.jelly b/core/src/main/resources/hudson/model/PasswordParameterDefinition/index.jelly new file mode 100644 index 0000000000000000000000000000000000000000..acaec9ee062128b10e7c47d344a2cbfab797cab9 --- /dev/null +++ b/core/src/main/resources/hudson/model/PasswordParameterDefinition/index.jelly @@ -0,0 +1,34 @@ + + + + +
    + + +
    +
    +
    \ No newline at end of file diff --git a/core/src/main/resources/hudson/model/PasswordParameterValue/value.jelly b/core/src/main/resources/hudson/model/PasswordParameterValue/value.jelly new file mode 100644 index 0000000000000000000000000000000000000000..a064c798d68aa076e5685306da0d2a55515906eb --- /dev/null +++ b/core/src/main/resources/hudson/model/PasswordParameterValue/value.jelly @@ -0,0 +1,31 @@ + + + + + + + \ No newline at end of file diff --git a/core/src/main/resources/hudson/model/PermalinkProjectAction/Permalink/link_da.properties b/core/src/main/resources/hudson/model/PermalinkProjectAction/Permalink/link_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..bb7491113e7e9d2f7c8d1950a2f2ba6f2e4495ba --- /dev/null +++ b/core/src/main/resources/hudson/model/PermalinkProjectAction/Permalink/link_da.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +format={0} (#{1}), {2} siden diff --git a/core/src/main/resources/hudson/model/PermalinkProjectAction/Permalink/link_es.properties b/core/src/main/resources/hudson/model/PermalinkProjectAction/Permalink/link_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..337133b497fa7e2a37ac8396800e40afff0c9ee2 --- /dev/null +++ b/core/src/main/resources/hudson/model/PermalinkProjectAction/Permalink/link_es.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +format="{0} (#{1}), hace {2}" + diff --git a/core/src/main/resources/hudson/model/PermalinkProjectAction/Permalink/link_fi.properties b/core/src/main/resources/hudson/model/PermalinkProjectAction/Permalink/link_fi.properties new file mode 100644 index 0000000000000000000000000000000000000000..9584df3862b6585897ea85b73b17a33804e2d448 --- /dev/null +++ b/core/src/main/resources/hudson/model/PermalinkProjectAction/Permalink/link_fi.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +format={0} (#{1}), {2} sitten diff --git a/core/src/main/resources/hudson/model/PermalinkProjectAction/Permalink/link_it.properties b/core/src/main/resources/hudson/model/PermalinkProjectAction/Permalink/link_it.properties new file mode 100644 index 0000000000000000000000000000000000000000..2b2b972de3923826c5d8fcbb6b0463052efaf415 --- /dev/null +++ b/core/src/main/resources/hudson/model/PermalinkProjectAction/Permalink/link_it.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +format={0} (#{1}), {2} fa diff --git a/core/src/main/resources/hudson/model/PermalinkProjectAction/Permalink/link_nb_NO.properties b/core/src/main/resources/hudson/model/PermalinkProjectAction/Permalink/link_nb_NO.properties new file mode 100644 index 0000000000000000000000000000000000000000..4d117d9e34247c6d43a208c1b09bba444b03c1cc --- /dev/null +++ b/core/src/main/resources/hudson/model/PermalinkProjectAction/Permalink/link_nb_NO.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +format={0} (#{1}), {2} siden diff --git a/core/src/main/resources/hudson/model/PermalinkProjectAction/Permalink/link_sl.properties b/core/src/main/resources/hudson/model/PermalinkProjectAction/Permalink/link_sl.properties new file mode 100644 index 0000000000000000000000000000000000000000..3b18d344fc45ca1fb12cf7768654db1a293b0229 --- /dev/null +++ b/core/src/main/resources/hudson/model/PermalinkProjectAction/Permalink/link_sl.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +format="{0} (#{1}), prej {2}" diff --git a/core/src/main/resources/hudson/model/PermalinkProjectAction/Permalink/link_sv_SE.properties b/core/src/main/resources/hudson/model/PermalinkProjectAction/Permalink/link_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..def0997554018bf4db95ee56cbe863a9ed4879bb --- /dev/null +++ b/core/src/main/resources/hudson/model/PermalinkProjectAction/Permalink/link_sv_SE.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +format={0} (#{1}), {2} sedan diff --git a/core/src/main/resources/hudson/model/PermalinkProjectAction/Permalink/link_zh_CN.properties b/core/src/main/resources/hudson/model/PermalinkProjectAction/Permalink/link_zh_CN.properties new file mode 100644 index 0000000000000000000000000000000000000000..7a8f739008628ff6652c3822ab81738dcbede410 --- /dev/null +++ b/core/src/main/resources/hudson/model/PermalinkProjectAction/Permalink/link_zh_CN.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +format={0}(#{1}),{2}\u524D diff --git a/core/src/main/resources/hudson/model/ProxyView/configure-entries.jelly b/core/src/main/resources/hudson/model/ProxyView/configure-entries.jelly new file mode 100644 index 0000000000000000000000000000000000000000..90ca7573c98d26208043ae6e73aaaeb4c6d57f84 --- /dev/null +++ b/core/src/main/resources/hudson/model/ProxyView/configure-entries.jelly @@ -0,0 +1,41 @@ + + + + + + + + + diff --git a/core/src/main/resources/hudson/model/ProxyView/configure-entries_da.properties b/core/src/main/resources/hudson/model/ProxyView/configure-entries_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..53b57f716c5a2d56cb2a5286a680faea06ebb91b --- /dev/null +++ b/core/src/main/resources/hudson/model/ProxyView/configure-entries_da.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +The\ name\ of\ a\ global\ view\ that\ will\ be\ shown.=Navnet p\u00e5 den globale visning der vil blive vist. +View\ name=Visningens navn diff --git a/core/src/main/resources/hudson/model/ProxyView/configure-entries_de.properties b/core/src/main/resources/hudson/model/ProxyView/configure-entries_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..5222cc089fee446a84e4bc2205871f2428b65aab --- /dev/null +++ b/core/src/main/resources/hudson/model/ProxyView/configure-entries_de.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +View\ name=Name der Ansicht +The\ name\ of\ a\ global\ view\ that\ will\ be\ shown.=\ + Name einer globalen Ansicht, der angezeigt wird. diff --git a/core/src/main/resources/hudson/model/ProxyView/configure-entries_es.properties b/core/src/main/resources/hudson/model/ProxyView/configure-entries_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..94493a82ba96ebb8cfa1fdb250cb2b97be19be48 --- /dev/null +++ b/core/src/main/resources/hudson/model/ProxyView/configure-entries_es.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +View\ name=Nombre de la vista +The\ name\ of\ a\ global\ view\ that\ will\ be\ shown.=Nombre de una vista global para mostrar. diff --git a/core/src/main/resources/hudson/model/ProxyView/configure-entries_ja.properties b/core/src/main/resources/hudson/model/ProxyView/configure-entries_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..fc5ccdae4057e624adc072a0737dac2a530464ea --- /dev/null +++ b/core/src/main/resources/hudson/model/ProxyView/configure-entries_ja.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +View\ name=\u30D3\u30E5\u30FC\u540D +The\ name\ of\ a\ global\ view\ that\ will\ be\ shown.=\ + \u8868\u793A\u3059\u308B\u30B0\u30ED\u30FC\u30D0\u30EB\u306A\u30D3\u30E5\u30FC\u306E\u540D\u524D diff --git a/core/src/main/resources/hudson/model/ProxyView/configure-entries_pt_BR.properties b/core/src/main/resources/hudson/model/ProxyView/configure-entries_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..628e3415636e3b0280be2509aff3ddec99191e24 --- /dev/null +++ b/core/src/main/resources/hudson/model/ProxyView/configure-entries_pt_BR.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +The\ name\ of\ a\ global\ view\ that\ will\ be\ shown.= +View\ name=Visualizar nome diff --git a/core/src/main/resources/hudson/model/ProxyView/main.jelly b/core/src/main/resources/hudson/model/ProxyView/main.jelly new file mode 100644 index 0000000000000000000000000000000000000000..6e040649bfbaa343160d928b03432217af5833ed --- /dev/null +++ b/core/src/main/resources/hudson/model/ProxyView/main.jelly @@ -0,0 +1,27 @@ + + + + + \ No newline at end of file diff --git a/core/src/main/resources/hudson/model/ProxyView/newViewDetail.jelly b/core/src/main/resources/hudson/model/ProxyView/newViewDetail.jelly new file mode 100644 index 0000000000000000000000000000000000000000..4553c537feb5f6e8381adebfbcfdd5c55a5d3661 --- /dev/null +++ b/core/src/main/resources/hudson/model/ProxyView/newViewDetail.jelly @@ -0,0 +1,27 @@ + + +
    + ${%Shows the content of a global view.} +
    \ No newline at end of file diff --git a/core/src/main/resources/hudson/model/ProxyView/newViewDetail_da.properties b/core/src/main/resources/hudson/model/ProxyView/newViewDetail_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..6db80440855e7234f39feae2ab36194e05a3e5de --- /dev/null +++ b/core/src/main/resources/hudson/model/ProxyView/newViewDetail_da.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Shows\ the\ content\ of\ a\ global\ view.=Viser indholdet af en global visning diff --git a/core/src/main/resources/hudson/model/ProxyView/newViewDetail_de.properties b/core/src/main/resources/hudson/model/ProxyView/newViewDetail_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..984d1a11b0d7604eb8d829e58844eb074225eb7d --- /dev/null +++ b/core/src/main/resources/hudson/model/ProxyView/newViewDetail_de.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Shows\ the\ content\ of\ a\ global\ view.=\ + Zeigt den Inhalt einer globalen Ansicht. \ No newline at end of file diff --git a/core/src/main/resources/hudson/model/ProxyView/newViewDetail_es.properties b/core/src/main/resources/hudson/model/ProxyView/newViewDetail_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..a09ffcace393503b9e9339d7aa1e4e9881aab53c --- /dev/null +++ b/core/src/main/resources/hudson/model/ProxyView/newViewDetail_es.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Shows\ the\ content\ of\ a\ global\ view.=Muestra el contenido de una vista global. diff --git a/core/src/main/resources/hudson/model/ProxyView/newViewDetail_ja.properties b/core/src/main/resources/hudson/model/ProxyView/newViewDetail_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..c4e42db36a2507608d2f7f583cf38815f3da61cb --- /dev/null +++ b/core/src/main/resources/hudson/model/ProxyView/newViewDetail_ja.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Shows\ the\ content\ of\ a\ global\ view.=\ + \u30B0\u30ED\u30FC\u30D0\u30EB\u306A\u30D3\u30E5\u30FC\u3068\u540C\u4E00\u306E\u5185\u5BB9\u3092\u8868\u793A\u3057\u307E\u3059\u3002 diff --git a/core/src/main/resources/hudson/model/ProxyView/newViewDetail_pt_BR.properties b/core/src/main/resources/hudson/model/ProxyView/newViewDetail_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..1baeef17d79e0d9cadf966ee0d05209d3bd55482 --- /dev/null +++ b/core/src/main/resources/hudson/model/ProxyView/newViewDetail_pt_BR.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Shows\ the\ content\ of\ a\ global\ view.= diff --git a/core/src/main/resources/hudson/model/Run/KeepLogBuildBadge/badge.jelly b/core/src/main/resources/hudson/model/Run/KeepLogBuildBadge/badge.jelly index 372c0febe3f99c876ee114bbdd4ab4decc631be2..8bc00359c60bc7b9b15d59449ce530cd13dbb9d8 100644 --- a/core/src/main/resources/hudson/model/Run/KeepLogBuildBadge/badge.jelly +++ b/core/src/main/resources/hudson/model/Run/KeepLogBuildBadge/badge.jelly @@ -1,7 +1,7 @@ [saved] \ No newline at end of file + title="${%Keep this build forever}" alt="[saved]" + src="${imagesURL}/16x16/lock.gif"/> diff --git a/core/src/main/resources/hudson/model/Run/KeepLogBuildBadge/badge_da.properties b/core/src/main/resources/hudson/model/Run/KeepLogBuildBadge/badge_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..8cdfae239cc30b197fbe8fe4b0348c8c10261bb6 --- /dev/null +++ b/core/src/main/resources/hudson/model/Run/KeepLogBuildBadge/badge_da.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Keep\ this\ build\ forever=Behold dette byg for evigt diff --git a/core/src/main/resources/hudson/model/Run/KeepLogBuildBadge/badge_de.properties b/core/src/main/resources/hudson/model/Run/KeepLogBuildBadge/badge_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..09561148d4c15714ae3930e551de2a46b40c045c --- /dev/null +++ b/core/src/main/resources/hudson/model/Run/KeepLogBuildBadge/badge_de.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Keep\ this\ build\ forever=Diesen Build unbefristet aufbewahren diff --git a/core/src/main/resources/hudson/model/Run/KeepLogBuildBadge/badge_es.properties b/core/src/main/resources/hudson/model/Run/KeepLogBuildBadge/badge_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..e323d15739647bd22db439b69deae2ff9df79aca --- /dev/null +++ b/core/src/main/resources/hudson/model/Run/KeepLogBuildBadge/badge_es.properties @@ -0,0 +1 @@ +Keep\ this\ build\ forever=Mantener esta ejecución para siempre diff --git a/core/src/main/resources/hudson/model/Run/KeepLogBuildBadge/badge_fi.properties b/core/src/main/resources/hudson/model/Run/KeepLogBuildBadge/badge_fi.properties new file mode 100644 index 0000000000000000000000000000000000000000..7e9d4b1912999335cccef954b9d3e0dbd4a4c461 --- /dev/null +++ b/core/src/main/resources/hudson/model/Run/KeepLogBuildBadge/badge_fi.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Keep\ this\ build\ forever=S\u00E4ilyt\u00E4 t\u00E4m\u00E4 k\u00E4\u00E4nn\u00F6s ikuisesti diff --git a/core/src/main/resources/hudson/model/Run/KeepLogBuildBadge/badge_ja.properties b/core/src/main/resources/hudson/model/Run/KeepLogBuildBadge/badge_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..f1aba41fbfc028089974ee4d07b6d8833182bfd3 --- /dev/null +++ b/core/src/main/resources/hudson/model/Run/KeepLogBuildBadge/badge_ja.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Keep\ this\ build\ forever=\u30D3\u30EB\u30C9\u3092\u4FDD\u5B58 diff --git a/core/src/main/resources/hudson/model/Run/KeepLogBuildBadge/badge_pt_BR.properties b/core/src/main/resources/hudson/model/Run/KeepLogBuildBadge/badge_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..5f65df8fcbcb6090ef0057be7988265d07c11fa9 --- /dev/null +++ b/core/src/main/resources/hudson/model/Run/KeepLogBuildBadge/badge_pt_BR.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Keep\ this\ build\ forever=Manter esta constru\u00E7\u00E3o sempre diff --git a/core/src/main/resources/hudson/model/Run/_api.jelly b/core/src/main/resources/hudson/model/Run/_api.jelly index 31e0035cbc5109cd03f62700f100609b7021db86..dcfffb68a35becf25819d7e77fbd55940c636141 100644 --- a/core/src/main/resources/hudson/model/Run/_api.jelly +++ b/core/src/main/resources/hudson/model/Run/_api.jelly @@ -25,11 +25,11 @@ THE SOFTWARE.

    Other Useful URLs

    -
    build number
    +
    Build number
    - This URL returns the build number in the text/plain format. + This URL returns the build number in text/plain format.
    -
    build timestamp
    +
    Build timestamp
    This URL returns the build timestamp. You can also use the format query parameter to control the date format, which follows @@ -39,4 +39,4 @@ THE SOFTWARE. in which the date is formatted.
    -
    \ No newline at end of file + diff --git a/core/src/main/resources/hudson/model/Run/artifacts-index.jelly b/core/src/main/resources/hudson/model/Run/artifacts-index.jelly index 99c184b719725d86cd297e78ab11c7eda2e82032..6baa53e5b9e8226a7a72dc4400a07c16fb8cef75 100644 --- a/core/src/main/resources/hudson/model/Run/artifacts-index.jelly +++ b/core/src/main/resources/hudson/model/Run/artifacts-index.jelly @@ -1,7 +1,7 @@ - - - - - ${%Build Artifacts} - - - - + + + + + + ${%Build Artifacts} + + + + + \ No newline at end of file diff --git a/core/src/main/resources/hudson/model/Run/artifacts-index_da.properties b/core/src/main/resources/hudson/model/Run/artifacts-index_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..87b7e16767aa11631be17d0e5cb0e06c4c144f2a --- /dev/null +++ b/core/src/main/resources/hudson/model/Run/artifacts-index_da.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Build\ Artifacts=Byggeartifakter diff --git a/core/src/main/resources/hudson/model/Run/artifacts-index_de.properties b/core/src/main/resources/hudson/model/Run/artifacts-index_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..0741216c68b1e804ef04e41daef93ea022fb6f6f --- /dev/null +++ b/core/src/main/resources/hudson/model/Run/artifacts-index_de.properties @@ -0,0 +1 @@ +Build\ Artifacts=Build-Artefakte diff --git a/core/src/main/resources/hudson/model/Run/artifacts-index_es.properties b/core/src/main/resources/hudson/model/Run/artifacts-index_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..0f8ef4ed6ffd9137a7a2e079c53c132955b5f13b --- /dev/null +++ b/core/src/main/resources/hudson/model/Run/artifacts-index_es.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Build\ Artifacts=Lanzar ejecuciones diff --git a/core/src/main/resources/hudson/model/Run/artifacts-index_fr.properties b/core/src/main/resources/hudson/model/Run/artifacts-index_fr.properties index f88ce19080606350a859e372bfd9c16c7680f6ab..e7a27d7f7b3af031b2c6bdbacd1330aa30eb7ac6 100644 --- a/core/src/main/resources/hudson/model/Run/artifacts-index_fr.properties +++ b/core/src/main/resources/hudson/model/Run/artifacts-index_fr.properties @@ -20,4 +20,4 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Build\ Artifacts=Artefacts du build +Build\ Artifacts=Artefacts du build diff --git a/core/src/main/resources/hudson/model/Run/artifacts-index_pt_BR.properties b/core/src/main/resources/hudson/model/Run/artifacts-index_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..dbe2cc7092961f4d3cdd6369b03d1c9bcf6a8fd7 --- /dev/null +++ b/core/src/main/resources/hudson/model/Run/artifacts-index_pt_BR.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Build\ Artifacts=Artefatos de Constru\u00E7\u00E3o diff --git a/core/src/main/resources/hudson/model/Run/confirmDelete.jelly b/core/src/main/resources/hudson/model/Run/confirmDelete.jelly index 81e71b991724d44a25da95f598841a441ab5b10c..b864d0e0560671c15efeca87f0a26738716bdb08 100644 --- a/core/src/main/resources/hudson/model/Run/confirmDelete.jelly +++ b/core/src/main/resources/hudson/model/Run/confirmDelete.jelly @@ -32,7 +32,7 @@ THE SOFTWARE. ${%Warning}: ${%cannotMsg(msg)} -
    + ${%Are you sure about deleting the build?} diff --git a/core/src/main/resources/hudson/model/Run/confirmDelete_da.properties b/core/src/main/resources/hudson/model/Run/confirmDelete_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..db9479754da92d10d188e1a919349fe8ffeebb84 --- /dev/null +++ b/core/src/main/resources/hudson/model/Run/confirmDelete_da.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Yes=Ja +cannotMsg=Kan ikke slette dette byg, da det er {0} +Are\ you\ sure\ about\ deleting\ the\ build?=Er du sikker p\u00e5 at du vil slette dette byg? +Warning=Advarsel diff --git a/core/src/main/resources/hudson/model/Run/confirmDelete_es.properties b/core/src/main/resources/hudson/model/Run/confirmDelete_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..f68c8e1a7805f297a3d2ab14e88cf1b70923fdbe --- /dev/null +++ b/core/src/main/resources/hudson/model/Run/confirmDelete_es.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +cannotMsg=Esta ejecución no se puede borrar porque está {0} +Warning=Cuidado +Yes=Sí +Are\ you\ sure\ about\ deleting\ the\ build?=¿Estás seguro de quere borrar la ejecución? diff --git a/core/src/main/resources/hudson/model/Run/confirmDelete_sv_SE.properties b/core/src/main/resources/hudson/model/Run/confirmDelete_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..1c96f245b3d75fbc1e68e22b820fec29682eb2b9 --- /dev/null +++ b/core/src/main/resources/hudson/model/Run/confirmDelete_sv_SE.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Are\ you\ sure\ about\ deleting\ the\ build?=\u00C4r du s\u00E4ker p\u00E5 att du vill ta bort det h\u00E4r bygget? +Yes=Ja diff --git a/core/src/main/resources/hudson/model/Run/console.jelly b/core/src/main/resources/hudson/model/Run/console.jelly index b0aac243965f2a63e4305a096a92ec6009767918..266e54a2845407ec9ff1e7fcf86ea21a6e489581 100644 --- a/core/src/main/resources/hudson/model/Run/console.jelly +++ b/core/src/main/resources/hudson/model/Run/console.jelly @@ -45,23 +45,27 @@ THE SOFTWARE. ${%skipSome(offset/1024,"consoleFull")} - + + + + -
    
    +          
               
    - + - - -
    +
    +            
    +            ${it.writeLogTo(offset,output)}
    +          
    diff --git a/core/src/main/resources/hudson/model/Run/consoleFull.jelly b/core/src/main/resources/hudson/model/Run/consoleFull.jelly index 5070814e89a75f43e285775445e1fff3fd93db96..3312a8edfca0e0f90245f1bc9c3833fea76144e0 100644 --- a/core/src/main/resources/hudson/model/Run/consoleFull.jelly +++ b/core/src/main/resources/hudson/model/Run/consoleFull.jelly @@ -21,7 +21,7 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --> - + - + diff --git a/core/src/main/resources/hudson/model/Run/consoleText.jelly b/core/src/main/resources/hudson/model/Run/consoleText.jelly deleted file mode 100644 index 65cc579150dc0baa1151cb50e65590fc13c5a323..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/model/Run/consoleText.jelly +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/core/src/main/resources/hudson/model/Run/console_da.properties b/core/src/main/resources/hudson/model/Run/console_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..da9897173b7fafe07eece5692cf08e95be06a98c --- /dev/null +++ b/core/src/main/resources/hudson/model/Run/console_da.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +skipSome=Springer over {0,number,integer} KB.. Fuld Log +View\ as\ plain\ text=Vis som r\u00e5 tekstfil +Console\ Output=Konsol Output diff --git a/core/src/main/resources/hudson/model/Run/console_de.properties b/core/src/main/resources/hudson/model/Run/console_de.properties index 08c820731a9963119239203d7601d65d8ff2acce..e1e95fe86abe80c6dd527597aa16047f0f4fbeea 100644 --- a/core/src/main/resources/hudson/model/Run/console_de.properties +++ b/core/src/main/resources/hudson/model/Run/console_de.properties @@ -21,4 +21,5 @@ # THE SOFTWARE. Console\ Output=Konsolenausgabe -View\ as\ plain\ text=Als Nur-Text anzeigen +View\ as\ plain\ text=Als reinen Text anzeigen +skipSome=Vorausgehende {0,number,integer} KB sind in dieser Darstellung ausgelassen. Alles anzeigen diff --git a/core/src/main/resources/hudson/model/Run/console_es.properties b/core/src/main/resources/hudson/model/Run/console_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..65d8236a2844c4025fe10a5ee511fa4001c73718 --- /dev/null +++ b/core/src/main/resources/hudson/model/Run/console_es.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Alan Harder +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +skipSome=Descartando {0,number,integer} KB.. Log completo +View\ as\ plain\ text=Mostrar en texto plano +Console\ Output=Salida de consola diff --git a/core/src/main/resources/hudson/model/Run/console_fi.properties b/core/src/main/resources/hudson/model/Run/console_fi.properties new file mode 100644 index 0000000000000000000000000000000000000000..a379ec5ee24800e0ccdd5b9310e519ab49a54a99 --- /dev/null +++ b/core/src/main/resources/hudson/model/Run/console_fi.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Console\ Output=Konsolituloste +View\ as\ plain\ text=N\u00E4yt\u00E4 pelkk\u00E4n\u00E4 tekstin\u00E4 diff --git a/core/src/main/resources/hudson/model/Run/console_hu.properties b/core/src/main/resources/hudson/model/Run/console_hu.properties new file mode 100644 index 0000000000000000000000000000000000000000..7956c85047fd3da5eb403f352833b51b0973350b --- /dev/null +++ b/core/src/main/resources/hudson/model/Run/console_hu.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Console\ Output=Parancssor Kimenete +View\ as\ plain\ text=Egyszer\u0171 sz\u00F6vegk\u00E9nt +skipSome=Kimaradt {0,number,integer} KB.. Teljes Napl\u00F3 diff --git a/core/src/main/resources/hudson/model/Run/console_it.properties b/core/src/main/resources/hudson/model/Run/console_it.properties new file mode 100644 index 0000000000000000000000000000000000000000..4fb88939ddf6f42948635045911655a920a55368 --- /dev/null +++ b/core/src/main/resources/hudson/model/Run/console_it.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Console\ Output=Output Console +View\ as\ plain\ text=Vedi come testo semplice diff --git a/core/src/main/resources/hudson/model/Run/console_ko.properties b/core/src/main/resources/hudson/model/Run/console_ko.properties new file mode 100644 index 0000000000000000000000000000000000000000..b52d52e9c35be6f3b288a7e389a717a80b7120fc --- /dev/null +++ b/core/src/main/resources/hudson/model/Run/console_ko.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Console\ Output=\uCF58\uC194 \uCD9C\uB825 +View\ as\ plain\ text=\uD3C9\uBB38\uC73C\uB85C \uC870\uD68C diff --git a/core/src/main/resources/hudson/model/Run/console_nb_NO.properties b/core/src/main/resources/hudson/model/Run/console_nb_NO.properties new file mode 100644 index 0000000000000000000000000000000000000000..7b5bdd05873d7bb08cdf42350cb7ad4551fcb9c7 --- /dev/null +++ b/core/src/main/resources/hudson/model/Run/console_nb_NO.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +View\ as\ plain\ text=Se som vanlig tekst diff --git a/core/src/main/resources/hudson/model/Run/console_nl.properties b/core/src/main/resources/hudson/model/Run/console_nl.properties index 596ad33c1cbbb4cc2d12d9125dd6744fa487464c..125e318e628f77d9db6674f80b39fe0e21b0c73a 100644 --- a/core/src/main/resources/hudson/model/Run/console_nl.properties +++ b/core/src/main/resources/hudson/model/Run/console_nl.properties @@ -21,4 +21,4 @@ # THE SOFTWARE. Console\ Output=Uitvoer op de console -View\ as\ plain\ text=Bekijken in simpele textmode +View\ as\ plain\ text=Bekijken in simpele tekstmodus diff --git a/core/src/main/resources/hudson/model/Run/console_pt_BR.properties b/core/src/main/resources/hudson/model/Run/console_pt_BR.properties index 574aee7ffe340252d551ba0c03195a3a1175e94a..0f45dd702f924ae3c4e9f05bc80561d11bff293f 100644 --- a/core/src/main/resources/hudson/model/Run/console_pt_BR.properties +++ b/core/src/main/resources/hudson/model/Run/console_pt_BR.properties @@ -20,5 +20,7 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Console\ Output=Sa\u00EDda de Console +Console\ Output=Sa\u00EDda do Console View\ as\ plain\ text=Visualizar como somente texto +# Skipping {0,number,integer} KB.. Full Log +skipSome= diff --git a/core/src/main/resources/hudson/model/Run/console_ru.properties b/core/src/main/resources/hudson/model/Run/console_ru.properties index 99ebd7d3ceb9120dd89b4b0cb79cbb9e0e03c776..eed20fed6ce606b8016e4957bb8f52772b1db9ea 100644 --- a/core/src/main/resources/hudson/model/Run/console_ru.properties +++ b/core/src/main/resources/hudson/model/Run/console_ru.properties @@ -20,5 +20,5 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Console\ Output=\u0412\u044b\u0432\u043e\u0434 \u043a\u043e\u043d\u0441\u043e\u043b\u0438 -View\ as\ plain\ text=\u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043a\u0430\u043a \u0447\u0438\u0441\u0442\u044b\u0439 \u0442\u0435\u043a\u0441\u0442 +Console\ Output=\u0412\u044B\u0432\u043E\u0434 \u043D\u0430 \u043A\u043E\u043D\u0441\u043E\u043B\u044C +View\ as\ plain\ text=\u041F\u043E\u0441\u043C\u043E\u0442\u0440\u0435\u0442\u044C \u0431\u0435\u0437 \u0444\u043E\u0440\u043C\u0430\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F diff --git a/core/src/main/resources/hudson/model/Run/console_sv_SE.properties b/core/src/main/resources/hudson/model/Run/console_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..2dbfbf906f863be76d6471a9b0c7578e715b66d6 --- /dev/null +++ b/core/src/main/resources/hudson/model/Run/console_sv_SE.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Console\ Output=Konsollutskrift +View\ as\ plain\ text=Visa som oformaterad text diff --git a/core/src/main/resources/hudson/model/Run/console_zh_CN.properties b/core/src/main/resources/hudson/model/Run/console_zh_CN.properties new file mode 100644 index 0000000000000000000000000000000000000000..e46c706d2477b7bbe39dd669c8497d14d4ac464e --- /dev/null +++ b/core/src/main/resources/hudson/model/Run/console_zh_CN.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Console\ Output=\u547D\u4EE4\u884C\u8F93\u51FA +View\ as\ plain\ text=\u4EE5\u6587\u672C\u65B9\u5F0F\u67E5\u770B diff --git a/core/src/main/resources/hudson/model/Run/console_zh_TW.properties b/core/src/main/resources/hudson/model/Run/console_zh_TW.properties new file mode 100644 index 0000000000000000000000000000000000000000..2aac50118edaaef1eebb59d32c2e6e0b246fdf45 --- /dev/null +++ b/core/src/main/resources/hudson/model/Run/console_zh_TW.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Console\ Output=\u756B\u9762\u8F38\u51FA +View\ as\ plain\ text=\u7D14\u6587\u5B57\u6AA2\u8996 diff --git a/core/src/main/resources/hudson/model/Run/delete_da.properties b/core/src/main/resources/hudson/model/Run/delete_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..c553cdf3a6f31371ac9a306b0e18af9271e2a992 --- /dev/null +++ b/core/src/main/resources/hudson/model/Run/delete_da.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Delete\ this\ build=Slet dette byg diff --git a/core/src/main/resources/hudson/model/Run/delete_es.properties b/core/src/main/resources/hudson/model/Run/delete_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..c07814c8ec2b701dfe734e8d77a6b2d67adaf679 --- /dev/null +++ b/core/src/main/resources/hudson/model/Run/delete_es.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Delete\ this\ build=Borrar esta ejecución diff --git a/core/src/main/resources/hudson/model/Run/delete_fi.properties b/core/src/main/resources/hudson/model/Run/delete_fi.properties new file mode 100644 index 0000000000000000000000000000000000000000..144dfd0b469a696c17d500294978decdc02f0f90 --- /dev/null +++ b/core/src/main/resources/hudson/model/Run/delete_fi.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Delete\ this\ build=Poista t\u00E4m\u00E4 k\u00E4\u00E4nn\u00F6s diff --git a/core/src/main/resources/hudson/model/Run/delete_it.properties b/core/src/main/resources/hudson/model/Run/delete_it.properties new file mode 100644 index 0000000000000000000000000000000000000000..611bb9c8be13e1cb515eac102fa9e5f86549dd11 --- /dev/null +++ b/core/src/main/resources/hudson/model/Run/delete_it.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Delete\ this\ build=Elimina questa build diff --git a/core/src/main/resources/hudson/model/Run/delete_ja.properties b/core/src/main/resources/hudson/model/Run/delete_ja.properties index e42e99d81fa167c3eaf6c1b32921f6e1c057eeec..3db1723d47fd16e3d2c09a5a6855a03ea9fbd50a 100644 --- a/core/src/main/resources/hudson/model/Run/delete_ja.properties +++ b/core/src/main/resources/hudson/model/Run/delete_ja.properties @@ -20,4 +20,4 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Delete\ this\ build=\u30d3\u30eb\u30c9\u306e\u524a\u9664 \ No newline at end of file +Delete\ this\ build=\u30D3\u30EB\u30C9\u3092\u524A\u9664 \ No newline at end of file diff --git a/core/src/main/resources/hudson/model/Run/delete_ko.properties b/core/src/main/resources/hudson/model/Run/delete_ko.properties new file mode 100644 index 0000000000000000000000000000000000000000..726183a7004a254e1567c8ef323f3b364eb2df9f --- /dev/null +++ b/core/src/main/resources/hudson/model/Run/delete_ko.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Delete\ this\ build=\uC774 \uBE4C\uB4DC\uB97C \uC0AD\uC81C diff --git a/core/src/main/resources/hudson/model/Run/delete_sl.properties b/core/src/main/resources/hudson/model/Run/delete_sl.properties new file mode 100644 index 0000000000000000000000000000000000000000..73ec426c8f748307e844124e535378128357ec2f --- /dev/null +++ b/core/src/main/resources/hudson/model/Run/delete_sl.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Delete\ this\ build=Zbri\u0161i prevajanje diff --git a/core/src/main/resources/hudson/model/Run/delete_sv_SE.properties b/core/src/main/resources/hudson/model/Run/delete_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..b30781ab03e9307f03dfdfb1ca5ab4c2306a2e10 --- /dev/null +++ b/core/src/main/resources/hudson/model/Run/delete_sv_SE.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Delete\ this\ build=Ta bort det h\u00E4r bygget diff --git a/core/src/main/resources/hudson/model/Run/delete_zh_CN.properties b/core/src/main/resources/hudson/model/Run/delete_zh_CN.properties new file mode 100644 index 0000000000000000000000000000000000000000..267eb056c4e94be314008cc086604e374b7cdcb7 --- /dev/null +++ b/core/src/main/resources/hudson/model/Run/delete_zh_CN.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Delete\ this\ build=\u5220\u9664\u672c\u6b21\u6784\u5efa diff --git a/core/src/main/resources/hudson/model/Run/logKeep_da.properties b/core/src/main/resources/hudson/model/Run/logKeep_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..49ef74fe8d8856f86e6c26ef1e6f1d07de4d95bf --- /dev/null +++ b/core/src/main/resources/hudson/model/Run/logKeep_da.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Don''t\ keep\ this\ build\ forever=Behold ikke dette byg for evigt +Keep\ this\ build\ forever=Behold dette byg for evigt diff --git a/core/src/main/resources/hudson/model/Run/logKeep_es.properties b/core/src/main/resources/hudson/model/Run/logKeep_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..8513e783cbfa3b02f815527a3672eb8c4b00b5fd --- /dev/null +++ b/core/src/main/resources/hudson/model/Run/logKeep_es.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Don''t\ keep\ this\ build\ forever=No conservar esta ejecución. +Keep\ this\ build\ forever=Conservar esta ejecución para siempre. + diff --git a/core/src/main/resources/hudson/model/Run/logKeep_fi.properties b/core/src/main/resources/hudson/model/Run/logKeep_fi.properties new file mode 100644 index 0000000000000000000000000000000000000000..deb16ce21aadb97390e4192423e5e1a57df9cd3c --- /dev/null +++ b/core/src/main/resources/hudson/model/Run/logKeep_fi.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Don''t\ keep\ this\ build\ forever=\u00C4l\u00E4 s\u00E4\u00E4st\u00E4 t\u00E4t\u00E4 k\u00E4\u00E4nn\u00F6st\u00E4 ikuisesti +Keep\ this\ build\ forever=S\u00E4ilyt\u00E4 t\u00E4m\u00E4 k\u00E4\u00E4nn\u00F6s ikuisesti diff --git a/core/src/main/resources/hudson/model/Run/logKeep_it.properties b/core/src/main/resources/hudson/model/Run/logKeep_it.properties new file mode 100644 index 0000000000000000000000000000000000000000..bf789cc8fb8bdaa984c8572ecdc3a18225a77d52 --- /dev/null +++ b/core/src/main/resources/hudson/model/Run/logKeep_it.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Keep\ this\ build\ forever=Mantieni per sempre questa build diff --git a/core/src/main/resources/hudson/model/Run/logKeep_ja.properties b/core/src/main/resources/hudson/model/Run/logKeep_ja.properties index 62304e0961968b62007b68cfaba8244726ee147c..64c33753da5b1025d5d25ffe154b2d48f225140a 100644 --- a/core/src/main/resources/hudson/model/Run/logKeep_ja.properties +++ b/core/src/main/resources/hudson/model/Run/logKeep_ja.properties @@ -1,6 +1,6 @@ # The MIT License # -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -20,5 +20,5 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Don't\ keep\ this\ build\ forever=\u30d3\u30eb\u30c9\u3092\u4fdd\u5b58\u3057\u306a\u3044 -Keep\ this\ build\ forever=\u30d3\u30eb\u30c9\u3092\u4fdd\u5b58 +Don't\ keep\ this\ build\ forever=\u30D3\u30EB\u30C9\u3092\u4FDD\u5B58\u3057\u306A\u3044 +Keep\ this\ build\ forever=\u30D3\u30EB\u30C9\u3092\u4FDD\u5B58 diff --git a/core/src/main/resources/hudson/model/Run/logKeep_nb_NO.properties b/core/src/main/resources/hudson/model/Run/logKeep_nb_NO.properties new file mode 100644 index 0000000000000000000000000000000000000000..baaaec8dbd20bbf21ab832723affcb6aa983a519 --- /dev/null +++ b/core/src/main/resources/hudson/model/Run/logKeep_nb_NO.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Keep\ this\ build\ forever=Behold dette bygget for alltid diff --git a/core/src/main/resources/hudson/model/Run/logKeep_nl.properties b/core/src/main/resources/hudson/model/Run/logKeep_nl.properties index 6f12a5efaffccc6144eb1b52dac290a3a4728563..72f366d1d3250f06f218892c09c297b8b516e6d4 100644 --- a/core/src/main/resources/hudson/model/Run/logKeep_nl.properties +++ b/core/src/main/resources/hudson/model/Run/logKeep_nl.properties @@ -21,4 +21,4 @@ # THE SOFTWARE. Don't\ keep\ this\ build\ forever=Deze bouwpoging niet eeuwig bijhouden. -Keep\ this\ build\ forever=Hou deze bouwpoging eeuwig bij. +Keep\ this\ build\ forever=Hou deze bouwpoging eeuwig bij diff --git a/core/src/main/resources/hudson/model/Run/logKeep_pt_BR.properties b/core/src/main/resources/hudson/model/Run/logKeep_pt_BR.properties index ced7efc7b5fb203d4b110895112a22d3277f01ae..adcfe955935de167fd74e089da7435395e9a2ca0 100644 --- a/core/src/main/resources/hudson/model/Run/logKeep_pt_BR.properties +++ b/core/src/main/resources/hudson/model/Run/logKeep_pt_BR.properties @@ -20,5 +20,6 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Don't\ keep\ this\ build\ forever=N\u00E3o manter esta constru\u00E7\u00E3o nunca Keep\ this\ build\ forever=Manter esta constru\u00E7\u00E3o sempre +Don''t\ keep\ this\ build\ forever= +Don't\ keep\ this\ build\ forever= diff --git a/core/src/main/resources/hudson/model/Run/logKeep_sv_SE.properties b/core/src/main/resources/hudson/model/Run/logKeep_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..2f9d5b2becf4de8581288b1650e6e014a8224fd1 --- /dev/null +++ b/core/src/main/resources/hudson/model/Run/logKeep_sv_SE.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Don''t\ keep\ this\ build\ forever=Spara inte bygget f\u00F6r alltid +Keep\ this\ build\ forever=Spara det h\u00E4r bygget f\u00F6r alltid diff --git a/core/src/main/resources/hudson/model/RunParameterDefinition/config.jelly b/core/src/main/resources/hudson/model/RunParameterDefinition/config.jelly index 60c4842c8d76310911365459424ea3ad87e996cc..d4a0122a47232ccde9874cd848c39034ae4b663f 100755 --- a/core/src/main/resources/hudson/model/RunParameterDefinition/config.jelly +++ b/core/src/main/resources/hudson/model/RunParameterDefinition/config.jelly @@ -31,7 +31,7 @@ THE SOFTWARE. diff --git a/core/src/main/resources/hudson/model/RunParameterDefinition/config_da.properties b/core/src/main/resources/hudson/model/RunParameterDefinition/config_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..727f24cdf4c59ecf7fe2ecad69b015553dfcd8a7 --- /dev/null +++ b/core/src/main/resources/hudson/model/RunParameterDefinition/config_da.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Project=Projekt +Name=Navn +Description=Beskrivelse diff --git a/core/src/main/resources/hudson/model/RunParameterDefinition/config_de.properties b/core/src/main/resources/hudson/model/RunParameterDefinition/config_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..39b03edb84bd5796d43fec68e5df75c5f1b94123 --- /dev/null +++ b/core/src/main/resources/hudson/model/RunParameterDefinition/config_de.properties @@ -0,0 +1,3 @@ +Name=Name +Project=Projekt +Description=Beschreibung diff --git a/core/src/main/resources/hudson/model/RunParameterDefinition/config_es.properties b/core/src/main/resources/hudson/model/RunParameterDefinition/config_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..d09baf053f9b8473bb9f833415faec751f659034 --- /dev/null +++ b/core/src/main/resources/hudson/model/RunParameterDefinition/config_es.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Name=Nombre +Project=Proyecto +Description=Descripción diff --git a/core/src/main/resources/hudson/model/RunParameterDefinition/config_fr.properties b/core/src/main/resources/hudson/model/RunParameterDefinition/config_fr.properties index 1b3a32f28d71fdf52e122c470d71db4a2fc9b472..cf691aa903ce43b7d26a981fadc86303e6772914 100644 --- a/core/src/main/resources/hudson/model/RunParameterDefinition/config_fr.properties +++ b/core/src/main/resources/hudson/model/RunParameterDefinition/config_fr.properties @@ -22,3 +22,4 @@ Name=Nom Description= +Project=Projet diff --git a/core/src/main/resources/hudson/model/RunParameterDefinition/config_pt_BR.properties b/core/src/main/resources/hudson/model/RunParameterDefinition/config_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..2020feb99cea63b5cda06bcfbce5ec76e32bfc2a --- /dev/null +++ b/core/src/main/resources/hudson/model/RunParameterDefinition/config_pt_BR.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Project=Projeto +Name= +Description= diff --git a/core/src/main/resources/hudson/model/RunParameterDefinition/config_ru.properties b/core/src/main/resources/hudson/model/RunParameterDefinition/config_ru.properties new file mode 100644 index 0000000000000000000000000000000000000000..f8ff0f56ce705eaffc5adc2e89529232601fc620 --- /dev/null +++ b/core/src/main/resources/hudson/model/RunParameterDefinition/config_ru.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Project=\u041F\u0440\u043E\u0435\u043A\u0442 diff --git a/core/src/main/resources/hudson/model/RunParameterValue/value.jelly b/core/src/main/resources/hudson/model/RunParameterValue/value.jelly index e432c7d088c1b5bf391bec63f6906b4d31e9f88f..9674ff7b6bf8c9d2bc6341e8c7a68f05b93b296b 100755 --- a/core/src/main/resources/hudson/model/RunParameterValue/value.jelly +++ b/core/src/main/resources/hudson/model/RunParameterValue/value.jelly @@ -26,6 +26,6 @@ THE SOFTWARE. xmlns:l="/lib/layout" xmlns:t="/lib/hudson" xmlns:f="/lib/form" xmlns:i="jelly:fmt" xmlns:p="/lib/hudson/project"> - ${it.run} + ${it.run} - \ No newline at end of file + diff --git a/core/src/main/resources/hudson/model/Slave/help-launcher_da.properties b/core/src/main/resources/hudson/model/Slave/help-launcher_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..f300f950904e0d1bcf46fa14c357f2279f62b312 --- /dev/null +++ b/core/src/main/resources/hudson/model/Slave/help-launcher_da.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Controls\ how\ Hudson\ starts\ this\ slave.=Styrer hvordan Hudson starter denne slave. diff --git a/core/src/main/resources/hudson/model/Slave/help-launcher_de.properties b/core/src/main/resources/hudson/model/Slave/help-launcher_de.properties index cf1c35a075954a9881e0b8ed0d6f11ad14d81806..0188e6637a2cca908f5fd31cd99e8ae991d235cb 100644 --- a/core/src/main/resources/hudson/model/Slave/help-launcher_de.properties +++ b/core/src/main/resources/hudson/model/Slave/help-launcher_de.properties @@ -1 +1 @@ -Controls\ how\ Hudson\ starts\ this\ slave.=Steuert, wie Hudson den Slave-Knoten startet. \ No newline at end of file +Controls\ how\ Hudson\ starts\ this\ slave.=Steuert, wie Hudson den Slave-Knoten startet. diff --git a/core/src/main/resources/hudson/model/Slave/help-launcher_es.properties b/core/src/main/resources/hudson/model/Slave/help-launcher_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..5876d50c6f2e16b941ecf92ce9dd0412f158e2cd --- /dev/null +++ b/core/src/main/resources/hudson/model/Slave/help-launcher_es.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Controls\ how\ Hudson\ starts\ this\ slave.=Controla cómo Hudson inicia este esclavo. diff --git a/core/src/main/resources/hudson/model/Slave/help-launcher_fr.properties b/core/src/main/resources/hudson/model/Slave/help-launcher_fr.properties index 2ff9a382b2f0637f83dacc568be4e9f8e5699aaa..a2b7f5a287b266ecd484872d2010a810d5eb1290 100644 --- a/core/src/main/resources/hudson/model/Slave/help-launcher_fr.properties +++ b/core/src/main/resources/hudson/model/Slave/help-launcher_fr.properties @@ -1,23 +1,23 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Alan Harder, Eric Lefevre-Ardant -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Controls\ how\ Hudson\ starts\ this\ slave.=Contrôle la façon dont Hudson démarre l''esclave. +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Alan Harder, Eric Lefevre-Ardant +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Controls\ how\ Hudson\ starts\ this\ slave.=Contrôle la façon dont Hudson démarre l''esclave. diff --git a/core/src/main/resources/hudson/model/Slave/help-launcher_pt_BR.properties b/core/src/main/resources/hudson/model/Slave/help-launcher_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..77deb113b7785eee269e561cb51a1321fce892b1 --- /dev/null +++ b/core/src/main/resources/hudson/model/Slave/help-launcher_pt_BR.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Controls\ how\ Hudson\ starts\ this\ slave.= diff --git a/core/src/main/resources/hudson/model/Slave/help-remoteFS_de.html b/core/src/main/resources/hudson/model/Slave/help-remoteFS_de.html index 9562bf4dbc9db08a4d7addd7f8c1d2dd8c98d744..0c79683d395d3b11e0148b73962d1c88cd1727bb 100644 --- a/core/src/main/resources/hudson/model/Slave/help-remoteFS_de.html +++ b/core/src/main/resources/hudson/model/Slave/help-remoteFS_de.html @@ -1,16 +1,16 @@
    -

    - Ein Slave-Knoten ben�tigt ein Verzeichis, das exklusiv Hudson - zur Verf�gung steht. Geben Sie den absoluten Pfad dieses + Ein Slave-Knoten benötigt ein Verzeichnis, das Hudson exklusiv + zur Verfügung steht. Geben Sie den absoluten Pfad dieses Arbeitsverzeichnisses auf dem Slave-Knoten an, z.B. - '/export/home/hudson'. + '/export/home/hudson' oder 'c:\hudson'. Dieses Verzeichnis muß unter normalen + Umständen nicht vom Master aus erreichbar sein.

    Slave-Knoten speichern keine wichtigen Daten (abgesehen von den aktiven Arbeitsbereichen derjenigen Projekte, die zuletzt auf dem - Slave-Knoten gebaut wurden). Sie k�nnen daher gefahrlos das Slave-Arbeitsverzeichnis - auf ein tempor�res Verzeichnis setzen. Der einzige Nachteil dieses Vorgehens - w�re der Verlust der aktuellen Arbeitsbereiche, falls der Slave-Knoten - abgeschaltet w�rde. + Slave-Knoten gebaut wurden). Sie können daher gefahrlos das Slave-Arbeitsverzeichnis + auf ein temporäres Verzeichnis setzen. Der einzige Nachteil dieses Vorgehens + wäre der Verlust der aktuellen Arbeitsbereiche, falls der Slave-Knoten + abgeschaltet würde.

    diff --git a/core/src/main/resources/hudson/model/StringParameterDefinition/config_da.properties b/core/src/main/resources/hudson/model/StringParameterDefinition/config_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..1fa04ed0bbe56ac76817703b42a16a3ada8c597d --- /dev/null +++ b/core/src/main/resources/hudson/model/StringParameterDefinition/config_da.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Name=Navn +Default\ Value=Standardv\u00e6rdi +Description=Beskrivelse diff --git a/core/src/main/resources/hudson/model/StringParameterDefinition/config_de.properties b/core/src/main/resources/hudson/model/StringParameterDefinition/config_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..ac7c983a08168374394124e6a3a15f2649e3def8 --- /dev/null +++ b/core/src/main/resources/hudson/model/StringParameterDefinition/config_de.properties @@ -0,0 +1,3 @@ +Name=Name +Default\ Value=Vorgabewert +Description=Beschreibung diff --git a/core/src/main/resources/hudson/model/StringParameterDefinition/config_es.properties b/core/src/main/resources/hudson/model/StringParameterDefinition/config_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..0effa47580d572ea68bcd204becf957067a1aeb9 --- /dev/null +++ b/core/src/main/resources/hudson/model/StringParameterDefinition/config_es.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Name=Nombre +Default\ Value=Valor por defecto +Description=Descripción diff --git a/core/src/main/resources/hudson/model/StringParameterDefinition/config_fr.properties b/core/src/main/resources/hudson/model/StringParameterDefinition/config_fr.properties index e308dc0d570a00ad2d21e9b98b28627f7755c230..f955c915321629b1f0d9307385335395f9cfbcb4 100644 --- a/core/src/main/resources/hudson/model/StringParameterDefinition/config_fr.properties +++ b/core/src/main/resources/hudson/model/StringParameterDefinition/config_fr.properties @@ -20,6 +20,7 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Name=Nom -Default\ Value=Valeur par défaut -Description= +Name=Nom +Default\ Value=Valeur par défaut +Description=Description + diff --git a/core/src/main/resources/hudson/model/StringParameterDefinition/config_pt_BR.properties b/core/src/main/resources/hudson/model/StringParameterDefinition/config_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..c92c06cfcf02d63dba6711e3ca1991f82354397e --- /dev/null +++ b/core/src/main/resources/hudson/model/StringParameterDefinition/config_pt_BR.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Name= +Default\ Value= +Description= diff --git a/core/src/main/resources/hudson/model/StringParameterDefinition/config_ru.properties b/core/src/main/resources/hudson/model/StringParameterDefinition/config_ru.properties new file mode 100644 index 0000000000000000000000000000000000000000..069c2794cb070004792fba81b59af29a9e601b76 --- /dev/null +++ b/core/src/main/resources/hudson/model/StringParameterDefinition/config_ru.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Default\ Value=\u0417\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u043F\u043E-\u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E +Description=\u041E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 +Name=\u0418\u043C\u044F diff --git a/core/src/main/resources/hudson/model/StringParameterDefinition/config_zh_TW.properties b/core/src/main/resources/hudson/model/StringParameterDefinition/config_zh_TW.properties new file mode 100644 index 0000000000000000000000000000000000000000..92ae5cb97dcda9702475122ca0835ddfb430f6d7 --- /dev/null +++ b/core/src/main/resources/hudson/model/StringParameterDefinition/config_zh_TW.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Default\ Value=\u9810\u8A2D\u503C +Description=\u63CF\u8FF0 +Name=\u540D\u7A31 diff --git a/core/src/main/resources/hudson/model/TaskAction/log.jelly b/core/src/main/resources/hudson/model/TaskAction/log.jelly index 9e4ae9b541fbda5477eb19c7ef1999bb90625caa..a62d3bb2b3ba53354872d1ec944a62029c3788e4 100644 --- a/core/src/main/resources/hudson/model/TaskAction/log.jelly +++ b/core/src/main/resources/hudson/model/TaskAction/log.jelly @@ -29,15 +29,18 @@ THE SOFTWARE. -
    
    +      
           
    - + -
    +
    +        
    +        ${it.obtainLog().writeLogTo(0,output)}
    +      
    diff --git a/core/src/main/resources/hudson/model/TaskAction/log_da.properties b/core/src/main/resources/hudson/model/TaskAction/log_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..ea8d633d999f8b068569ac1507562b35494723e4 --- /dev/null +++ b/core/src/main/resources/hudson/model/TaskAction/log_da.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Clear\ error\ to\ retry=Ryd fejl for at fors\u00f8ge igen diff --git a/core/src/main/resources/hudson/model/TaskAction/log_es.properties b/core/src/main/resources/hudson/model/TaskAction/log_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..afb4e2ac4374398cc86af6d807147756c75e3f37 --- /dev/null +++ b/core/src/main/resources/hudson/model/TaskAction/log_es.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Clear\ error\ to\ retry=Limpiar el error para reintentar diff --git a/core/src/main/resources/hudson/model/TreeView/sidepanel2.jelly b/core/src/main/resources/hudson/model/TreeView/sidepanel2.jelly index d40f7852c23d3fc88c459bfca7839b2b4cbc7839..b15b5f6c77c7a87900da1be1889f06fbe905cea9 100644 --- a/core/src/main/resources/hudson/model/TreeView/sidepanel2.jelly +++ b/core/src/main/resources/hudson/model/TreeView/sidepanel2.jelly @@ -26,5 +26,5 @@ THE SOFTWARE. Side panel for the build view. --> - - \ No newline at end of file + + diff --git a/core/src/main/resources/hudson/model/TreeView/sidepanel2_da.properties b/core/src/main/resources/hudson/model/TreeView/sidepanel2_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..448476e66208b11f89ce109e73b141938a1444a7 --- /dev/null +++ b/core/src/main/resources/hudson/model/TreeView/sidepanel2_da.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +New\ View=Ny visning diff --git a/core/src/main/resources/hudson/model/TreeView/sidepanel2_de.properties b/core/src/main/resources/hudson/model/TreeView/sidepanel2_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..ce2c2658a4f95935018560db7afc1bfc66cce7c8 --- /dev/null +++ b/core/src/main/resources/hudson/model/TreeView/sidepanel2_de.properties @@ -0,0 +1 @@ +New\ View=Neue Ansicht diff --git a/core/src/main/resources/hudson/model/TreeView/sidepanel2_es.properties b/core/src/main/resources/hudson/model/TreeView/sidepanel2_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..4df3f2f5318f1706a0a4b36d2487930903f5feb8 --- /dev/null +++ b/core/src/main/resources/hudson/model/TreeView/sidepanel2_es.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +New\ View=Nueva vista diff --git a/core/src/main/resources/hudson/model/TreeView/sidepanel2_fr.properties b/core/src/main/resources/hudson/model/TreeView/sidepanel2_fr.properties index 2ee03074c989dfcda017d3e5f3aea5165c6d77e9..f4253389b678e19ad080473312065a271b32b91a 100644 --- a/core/src/main/resources/hudson/model/TreeView/sidepanel2_fr.properties +++ b/core/src/main/resources/hudson/model/TreeView/sidepanel2_fr.properties @@ -20,4 +20,4 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -New\ View=Nouvelle vue +New\ View=Nouvelle vue diff --git a/core/src/main/resources/hudson/model/TreeView/sidepanel2_ja.properties b/core/src/main/resources/hudson/model/TreeView/sidepanel2_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..78f5e6bb3258a5d631bb0d020472c04a9d83e059 --- /dev/null +++ b/core/src/main/resources/hudson/model/TreeView/sidepanel2_ja.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +New\ View=\u65B0\u898F\u30D3\u30E5\u30FC diff --git a/core/src/main/resources/hudson/model/TreeView/sidepanel2_pt_BR.properties b/core/src/main/resources/hudson/model/TreeView/sidepanel2_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..648e82c0c57bfd4084e4846a7f479bcee199a7c4 --- /dev/null +++ b/core/src/main/resources/hudson/model/TreeView/sidepanel2_pt_BR.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +New\ View= diff --git a/core/src/main/resources/hudson/model/UpdateCenter/ConnectionCheckJob/row.jelly b/core/src/main/resources/hudson/model/UpdateCenter/ConnectionCheckJob/row.jelly index 88a1b5f0e1d57531cdeafadaf1521637578a2224..eab55037fd325ab2c22efa405c87d87c2a8054a3 100644 --- a/core/src/main/resources/hudson/model/UpdateCenter/ConnectionCheckJob/row.jelly +++ b/core/src/main/resources/hudson/model/UpdateCenter/ConnectionCheckJob/row.jelly @@ -1,7 +1,7 @@ - \ No newline at end of file + diff --git a/core/src/main/resources/hudson/model/UpdateCenter/PageDecoratorImpl/footer.jelly b/core/src/main/resources/hudson/model/UpdateCenter/PageDecoratorImpl/footer.jelly index 3b4a4633a8620df2e31a38a9dd600635a7ffee91..2f5b00a7d9a053e254bee9425dafc10fe46c5e02 100644 --- a/core/src/main/resources/hudson/model/UpdateCenter/PageDecoratorImpl/footer.jelly +++ b/core/src/main/resources/hudson/model/UpdateCenter/PageDecoratorImpl/footer.jelly @@ -30,12 +30,18 @@ THE SOFTWARE. This file is pulled into the layout.jelly --> - - - + + + + + diff --git a/core/src/main/resources/hudson/model/UpdateCenter/index.jelly b/core/src/main/resources/hudson/model/UpdateCenter/index.jelly index c8abb639181674c14a0698571ba7455a0d94dd40..7a685af58737c87b7106eea9de0cca86056c25db 100644 --- a/core/src/main/resources/hudson/model/UpdateCenter/index.jelly +++ b/core/src/main/resources/hudson/model/UpdateCenter/index.jelly @@ -1,7 +1,8 @@ - + @@ -30,7 +30,7 @@ THE SOFTWARE. Builds for ${it} - + - \ No newline at end of file + diff --git a/core/src/main/resources/hudson/model/User/configure.jelly b/core/src/main/resources/hudson/model/User/configure.jelly index 601c650f16ebc27817f59cf71eef136e70fb21fe..5b372d82ccedf7c96cf8b19db0be0da6520343ff 100644 --- a/core/src/main/resources/hudson/model/User/configure.jelly +++ b/core/src/main/resources/hudson/model/User/configure.jelly @@ -25,9 +25,8 @@ THE SOFTWARE. + - - @@ -40,8 +39,8 @@ THE SOFTWARE. - - + + @@ -59,4 +58,4 @@ THE SOFTWARE. - \ No newline at end of file + diff --git a/core/src/main/resources/hudson/model/User/configure_da.properties b/core/src/main/resources/hudson/model/User/configure_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..bdf3d413bb552ef9922beea528c23e5865f34060 --- /dev/null +++ b/core/src/main/resources/hudson/model/User/configure_da.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +title=Bruger ''{0}'' Konfiguration +Your\ name=Dit navn +Save=Gem +Description=Beskrivelse diff --git a/core/src/main/resources/hudson/model/User/configure_de.properties b/core/src/main/resources/hudson/model/User/configure_de.properties index 194d22b1047a5247e0b16605130e3fcd899199d8..9137070c920febaebf635c722d30d6f12fe59b05 100644 --- a/core/src/main/resources/hudson/model/User/configure_de.properties +++ b/core/src/main/resources/hudson/model/User/configure_de.properties @@ -23,4 +23,4 @@ Your\ name=Ihr Name Description=Beschreibung Save=Übernehmen -title=Benutzer ''{0}'' Konfiguation +title=Benutzer ''{0}'' Konfiguration diff --git a/core/src/main/resources/hudson/model/User/configure_es.properties b/core/src/main/resources/hudson/model/User/configure_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..6de1655a58fcbf60e23efacdc1929d62dbd40d36 --- /dev/null +++ b/core/src/main/resources/hudson/model/User/configure_es.properties @@ -0,0 +1,27 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +title=Configuración del usuario: ''{0}'' +Your\ name=Nombre +Save=Guardar +Description=Descripción + diff --git a/core/src/main/resources/hudson/model/User/configure_pt_BR.properties b/core/src/main/resources/hudson/model/User/configure_pt_BR.properties index fbc470bd23695c66412dfd155d52c2b2667cb8b1..585f022204a80cc2d32eb53f5a2018b3c7cc25ed 100644 --- a/core/src/main/resources/hudson/model/User/configure_pt_BR.properties +++ b/core/src/main/resources/hudson/model/User/configure_pt_BR.properties @@ -23,3 +23,5 @@ Your\ name=Seu nome Description=Descri\u00E7\u00E3o Save=Salvar +# User ''{0}'' Configuration +title=Configuração do Usuário {0} diff --git a/core/src/main/resources/hudson/model/User/configure_sv_SE.properties b/core/src/main/resources/hudson/model/User/configure_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..2b3b447dc4fcb28fa1bde24ac29a1865cb0c629e --- /dev/null +++ b/core/src/main/resources/hudson/model/User/configure_sv_SE.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Description=Beskrivning +Save=Spara +Your\ name=Ditt namn diff --git a/core/src/main/resources/hudson/model/User/configure_zh_TW.properties b/core/src/main/resources/hudson/model/User/configure_zh_TW.properties new file mode 100644 index 0000000000000000000000000000000000000000..e597c32fc61a55787716015a4e39d0ed890e24e7 --- /dev/null +++ b/core/src/main/resources/hudson/model/User/configure_zh_TW.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Description=\u63CF\u8FF0 +Save=\u5132\u5B58 +Your\ name=\u4F60\u7684\u540D\u5B57 diff --git a/core/src/main/resources/hudson/model/User/delete.jelly b/core/src/main/resources/hudson/model/User/delete.jelly new file mode 100644 index 0000000000000000000000000000000000000000..9731b949dcf7c30dd9e897e840782872ade713d0 --- /dev/null +++ b/core/src/main/resources/hudson/model/User/delete.jelly @@ -0,0 +1,36 @@ + + + + + + + +
    + ${%Are you sure about deleting the user from Hudson?} + + +
    +
    +
    diff --git a/core/src/main/resources/hudson/model/User/delete_da.properties b/core/src/main/resources/hudson/model/User/delete_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..2647365a31d75de32e735f593c8df8740639d027 --- /dev/null +++ b/core/src/main/resources/hudson/model/User/delete_da.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Yes=Ja +Are\ you\ sure\ about\ deleting\ the\ user\ from\ Hudson?=Er du sikker p\u00e5 at du vil slette brugeren fra Hudson? diff --git a/core/src/main/resources/hudson/model/User/delete_de.properties b/core/src/main/resources/hudson/model/User/delete_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..c22799cabb776e396ecf497c4a8b3ba221f6a08b --- /dev/null +++ b/core/src/main/resources/hudson/model/User/delete_de.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Are\ you\ sure\ about\ deleting\ the\ user\ from\ Hudson?=\ + Möchten Sie den Benutzer wirklich löschen? +Yes=Ja diff --git a/core/src/main/resources/hudson/model/User/delete_es.properties b/core/src/main/resources/hudson/model/User/delete_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..c7d7420eea7ccfc6c5ec864a1fb7011085dcd6d7 --- /dev/null +++ b/core/src/main/resources/hudson/model/User/delete_es.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Are\ you\ sure\ about\ deleting\ the\ user\ from\ Hudson?=¿Estás seguro de querer borrar el usuario de Hudson? +Yes=Sí diff --git a/core/src/main/resources/hudson/model/User/delete_ja.properties b/core/src/main/resources/hudson/model/User/delete_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..e9e71e69353ddd3589ff2176ef499a39b87cb3fd --- /dev/null +++ b/core/src/main/resources/hudson/model/User/delete_ja.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Are\ you\ sure\ about\ deleting\ the\ user\ from\ Hudson?=\ + Hduson\u304B\u3089\u30E6\u30FC\u30B6\u30FC\u3092\u524A\u9664\u3057\u3066\u3082\u3088\u308D\u3057\u3044\u3067\u3059\u304B\u3002 +Yes=\u306F\u3044 diff --git a/core/src/main/resources/hudson/model/User/delete_pt_BR.properties b/core/src/main/resources/hudson/model/User/delete_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..827ba512e86f994070b178176c2ca0b3e784b886 --- /dev/null +++ b/core/src/main/resources/hudson/model/User/delete_pt_BR.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Yes=Sim +Are\ you\ sure\ about\ deleting\ the\ user\ from\ Hudson?=Tem certeza que deseja remover este usuário do Hudson? diff --git a/core/src/main/resources/hudson/model/User/index.jelly b/core/src/main/resources/hudson/model/User/index.jelly index a0d7c1f3b31495bea605f005b9c2a27f38f38ec3..9bdb6e1ef15901f3e13026213f31630cf4833773 100644 --- a/core/src/main/resources/hudson/model/User/index.jelly +++ b/core/src/main/resources/hudson/model/User/index.jelly @@ -21,7 +21,7 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --> - + @@ -30,11 +30,11 @@ THE SOFTWARE. ${it.fullName} - + - \ No newline at end of file + diff --git a/core/src/main/resources/hudson/model/User/sidepanel.jelly b/core/src/main/resources/hudson/model/User/sidepanel.jelly index 976c6edd58c93c61f65a293a9189ddb192cb3c1e..38054f60b56e994267bf923283cb382cba2b6a2c 100644 --- a/core/src/main/resources/hudson/model/User/sidepanel.jelly +++ b/core/src/main/resources/hudson/model/User/sidepanel.jelly @@ -25,14 +25,20 @@ THE SOFTWARE. + - + - + + + + + + - \ No newline at end of file + diff --git a/core/src/main/resources/hudson/model/User/sidepanel_da.properties b/core/src/main/resources/hudson/model/User/sidepanel_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..113a436aac166a63dfbb5ad1304229d6b75d2060 --- /dev/null +++ b/core/src/main/resources/hudson/model/User/sidepanel_da.properties @@ -0,0 +1,28 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Configure=Konfigurer +Status=Status +Delete=Slet +People=Personer +Builds=Byg +My\ Views=Mine Views diff --git a/core/src/main/resources/hudson/model/User/sidepanel_de.properties b/core/src/main/resources/hudson/model/User/sidepanel_de.properties index bbac86e439d56839e301195515927f0ba05b706a..41c4c6c09dbd8a3ce810db933608ff0566d0cf5c 100644 --- a/core/src/main/resources/hudson/model/User/sidepanel_de.properties +++ b/core/src/main/resources/hudson/model/User/sidepanel_de.properties @@ -1,6 +1,6 @@ # The MIT License # -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -20,7 +20,9 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Back\ to\ Dashboard=Zurück zur Übersicht +People=Benutzer Status=Status Builds=Builds Configure=Konfigurieren +My\ Views=Meine Ansichten +Delete=Löschen diff --git a/core/src/main/resources/hudson/model/User/sidepanel_el.properties b/core/src/main/resources/hudson/model/User/sidepanel_el.properties new file mode 100644 index 0000000000000000000000000000000000000000..665bbbd02c71cb075ee6c0d75a1fd93b4192d692 --- /dev/null +++ b/core/src/main/resources/hudson/model/User/sidepanel_el.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Configure=\u03A0\u03B1\u03C1\u03B1\u03BC\u03B5\u03C4\u03C1\u03BF\u03C0\u03BF\u03AF\u03B7\u03C3\u03B7 +My\ Views=\u039F\u03B9 \u03CC\u03C8\u03B5\u03B9\u03C2 \u03BC\u03BF\u03C5 +People=\u0386\u03BD\u03B8\u03C1\u03C9\u03C0\u03BF\u03B9 +Status=\u039A\u03B1\u03C4\u03AC\u03C3\u03C4\u03B1\u03C3\u03B7 diff --git a/core/src/main/resources/hudson/model/User/sidepanel_es.properties b/core/src/main/resources/hudson/model/User/sidepanel_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..b5102edbaf8435139f65c60ed9c09d3f45739079 --- /dev/null +++ b/core/src/main/resources/hudson/model/User/sidepanel_es.properties @@ -0,0 +1,28 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +People=Actividad +Status=Estado +Builds=Ejecuciones +My\ Views=Mi vista +Configure=Configurar +Delete=Borrar diff --git a/core/src/main/resources/hudson/model/User/sidepanel_fi.properties b/core/src/main/resources/hudson/model/User/sidepanel_fi.properties new file mode 100644 index 0000000000000000000000000000000000000000..4fe2d2c945116b3fba7ad66319acd873c0ac23fa --- /dev/null +++ b/core/src/main/resources/hudson/model/User/sidepanel_fi.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Builds=K\u00E4\u00E4nn\u00F6kset +Configure=Muokkaa +My\ Views=Omat n\u00E4kym\u00E4t +Status=Tila diff --git a/core/src/main/resources/hudson/model/User/sidepanel_fr.properties b/core/src/main/resources/hudson/model/User/sidepanel_fr.properties index 00b40165fde182313bc109c4e5f36ded5c0fb793..04917ad66ee4225bbd67dfda557ddf4ac0f80dd5 100644 --- a/core/src/main/resources/hudson/model/User/sidepanel_fr.properties +++ b/core/src/main/resources/hudson/model/User/sidepanel_fr.properties @@ -1,6 +1,6 @@ # The MIT License # -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Eric Lefevre-Ardant +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Eric Lefevre-Ardant # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -20,7 +20,9 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Back\ to\ Dashboard=Retour au tableau de bord +People=Personnes +Delete=Supprimer +My\ Views=Mes vues Status=Statut -Builds= +Builds=Builds Configure=Configurer diff --git a/core/src/main/resources/hudson/model/User/sidepanel_ja.properties b/core/src/main/resources/hudson/model/User/sidepanel_ja.properties index 0c43975c2690552e3efa2a92688105a2a485c8d3..e3c5ae2b1ac1e6d75858fbec01905e9af115453c 100644 --- a/core/src/main/resources/hudson/model/User/sidepanel_ja.properties +++ b/core/src/main/resources/hudson/model/User/sidepanel_ja.properties @@ -1,6 +1,6 @@ # The MIT License # -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:cactusman +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:cactusman, Seiji Sogabe # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -20,7 +20,9 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Back\ to\ Dashboard=\u30c0\u30c3\u30b7\u30e5\u30dc\u30fc\u30c9\u3078\u623b\u308b -Status=\u72b6\u614b -Builds=\u30d3\u30eb\u30c9 -Configure=\u8a2d\u5b9a \ No newline at end of file +People=\u4EBA\u3005 +Status=\u72B6\u614B +Builds=\u30D3\u30EB\u30C9 +Configure=\u8A2D\u5B9A +Delete=\u524A\u9664 +My\ Views=My Views diff --git a/core/src/main/resources/hudson/model/User/sidepanel_nl.properties b/core/src/main/resources/hudson/model/User/sidepanel_nl.properties index 23441987485e1fea651ccf147edb47d40d42fd81..ce91e14aa6003860866e28593c69ada5de1507bd 100644 --- a/core/src/main/resources/hudson/model/User/sidepanel_nl.properties +++ b/core/src/main/resources/hudson/model/User/sidepanel_nl.properties @@ -1,6 +1,6 @@ # The MIT License # -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:sorokh +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:sorokh # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -20,7 +20,7 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Back\ to\ Dashboard=Terug naar Dashboard +People=Gebruikers Status=Status Builds=Bouwpogingen Configure=Configureer diff --git a/core/src/main/resources/hudson/model/User/sidepanel_pt_BR.properties b/core/src/main/resources/hudson/model/User/sidepanel_pt_BR.properties index d577f3f7899b7040496aac81fccbad6ad8f58709..c2fa5749fb7dde1631cf6277fe65b671dc773e63 100644 --- a/core/src/main/resources/hudson/model/User/sidepanel_pt_BR.properties +++ b/core/src/main/resources/hudson/model/User/sidepanel_pt_BR.properties @@ -1,6 +1,6 @@ # The MIT License # -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Reginaldo L. Russinholi +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Reginaldo L. Russinholi # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -20,7 +20,9 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Back\ to\ Dashboard=Voltar ao Painel Principal +People=Pessoas Status=Estado Builds=Constru\u00E7\u00F5es Configure=Configurar +Delete=Apagar +My\ Views=Minhas Visualizações diff --git a/core/src/main/resources/hudson/model/User/sidepanel_ru.properties b/core/src/main/resources/hudson/model/User/sidepanel_ru.properties index 6b77fe0be5203f87f22de05edaacfc5e2435e449..addfcac880a7cbac98c958d867effd8e2280e15a 100644 --- a/core/src/main/resources/hudson/model/User/sidepanel_ru.properties +++ b/core/src/main/resources/hudson/model/User/sidepanel_ru.properties @@ -1,6 +1,6 @@ # The MIT License # -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Mike Salnikov +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Mike Salnikov # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -20,7 +20,7 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Back\ to\ Dashboard=\u0412\u0435\u0440\u043d\u0443\u0442\u044c\u0441\u044f +People=\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u0438 Status=\u0421\u0442\u0430\u0442\u0443\u0441 Builds=\u0421\u0431\u043e\u0440\u043a\u0438 Configure=\u041d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c diff --git a/core/src/main/resources/hudson/model/User/sidepanel_sv_SE.properties b/core/src/main/resources/hudson/model/User/sidepanel_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..30d9b3299fcaf9462806a06b6c20bf8f017734ba --- /dev/null +++ b/core/src/main/resources/hudson/model/User/sidepanel_sv_SE.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +People=Personer +Builds=Bygghistorik +Configure=Konfigurera +Status=Status diff --git a/core/src/main/resources/hudson/model/User/sidepanel_tr.properties b/core/src/main/resources/hudson/model/User/sidepanel_tr.properties index 1ef05d1d80129ecd8edff1f04ac709b85a1c7b51..ceaa356f74cb7e7bd0e16ac9da88de6b90ab2b5a 100644 --- a/core/src/main/resources/hudson/model/User/sidepanel_tr.properties +++ b/core/src/main/resources/hudson/model/User/sidepanel_tr.properties @@ -1,6 +1,6 @@ # The MIT License # -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Oguz Dag +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Oguz Dag # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -20,7 +20,7 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Back\ to\ Dashboard=Kontrol Merkezi''ne D\u00f6n +People=\u0130nsanlar Status=Durum Builds=Yap\u0131land\u0131rmalar Configure=Konfig\u00fcrasyonu\ De\u011fi\u015ftir diff --git a/core/src/main/resources/hudson/model/User/sidepanel_zh_CN.properties b/core/src/main/resources/hudson/model/User/sidepanel_zh_CN.properties new file mode 100644 index 0000000000000000000000000000000000000000..9428d7ebf5892e78236fab46549dedd2dccbee83 --- /dev/null +++ b/core/src/main/resources/hudson/model/User/sidepanel_zh_CN.properties @@ -0,0 +1,27 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +People=\u7528\u6237 +Builds=\u6784\u5efa +Configure=\u8bbe\u7f6e +My\ Views=\u6211\u7684\u89c6\u56fe +Status=\u72b6\u6001 diff --git a/core/src/main/resources/hudson/model/User/sidepanel_zh_TW.properties b/core/src/main/resources/hudson/model/User/sidepanel_zh_TW.properties new file mode 100644 index 0000000000000000000000000000000000000000..06a19a188a9542e039ef11aa1a0098a6966ca723 --- /dev/null +++ b/core/src/main/resources/hudson/model/User/sidepanel_zh_TW.properties @@ -0,0 +1,27 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Delete=\u522A\u9664 +People=\u4F7F\u7528\u8005 +Builds=\u5EFA\u69CB +Configure=\u8A2D\u5B9A +Status=\u72C0\u614B diff --git a/core/src/main/resources/hudson/model/View/People/index.jelly b/core/src/main/resources/hudson/model/View/People/index.jelly index 856f1845679edb7b9a3b43654f9b00f59ad2e47d..05e40b72dc201785d60a6a93681e3508ae2b808a 100644 --- a/core/src/main/resources/hudson/model/View/People/index.jelly +++ b/core/src/main/resources/hudson/model/View/People/index.jelly @@ -1,7 +1,7 @@ - - - + + + + +

    + + ${%People} + + + - ${it.parent.displayName} +

    - - + + - +
    @@ -35,13 +43,21 @@ THE SOFTWARE.
    ${p.user}${p.user} ${p.lastChangeTimeString}${p.project.name}${p.project.fullDisplayName}
    + + + + +
    -
    -
    \ No newline at end of file + + diff --git a/core/src/main/resources/hudson/model/View/People/index_da.properties b/core/src/main/resources/hudson/model/View/People/index_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..07f503a64f4507251c1062b8e31156a2c4378f00 --- /dev/null +++ b/core/src/main/resources/hudson/model/View/People/index_da.properties @@ -0,0 +1,27 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +On=P\u00e5 +Last\ Active=Sidst Aktiv +People=Personer +Name=Navn +All\ People=Alle Personer diff --git a/core/src/main/resources/hudson/model/View/People/index_de.properties b/core/src/main/resources/hudson/model/View/People/index_de.properties index 2be47edee384bbfa4048c83642dc5c6cb70a0cbe..deb36768c1458a661e02dee047c4aa46b43b0a14 100644 --- a/core/src/main/resources/hudson/model/View/People/index_de.properties +++ b/core/src/main/resources/hudson/model/View/People/index_de.properties @@ -23,3 +23,5 @@ Name=Name Last\ Active=Letzte Aktivität On=Job +All\ People=Alle Benutzer +People=Benutzer diff --git a/core/src/main/resources/hudson/model/View/People/index_el.properties b/core/src/main/resources/hudson/model/View/People/index_el.properties new file mode 100644 index 0000000000000000000000000000000000000000..b2627b7de249d57c37f3e157d72c9dd74feee168 --- /dev/null +++ b/core/src/main/resources/hudson/model/View/People/index_el.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Last\ Active=\u03A4\u03B5\u03B1\u03BB\u03B1\u03C5\u03C4\u03B1\u03AF\u03B1 \u03C7\u03C1\u03BF\u03BD\u03B9\u03BA\u03AE \u03B5\u03BD\u03B5\u03C1\u03B3\u03AE \u03B1\u03BD\u03B1\u03C6\u03BF\u03C1\u03AC +Name=\u038C\u03BD\u03BF\u03BC\u03B1 +On=\u03A4\u03B5\u03BB\u03B1\u03C5\u03C4\u03B1\u03AF\u03B1 \u03B5\u03BD\u03B5\u03C1\u03B3\u03AE \u03B1\u03BD\u03B1\u03C6\u03BF\u03C1\u03AC \u03C3\u03C4\u03BF project +People=\u0386\u03BD\u03C1\u03B8\u03C9\u03C0\u03BF\u03B9 diff --git a/core/src/main/resources/hudson/model/View/People/index_es.properties b/core/src/main/resources/hudson/model/View/People/index_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..b7b7e98123467b3bf270b8685170fbcd1a0dc496 --- /dev/null +++ b/core/src/main/resources/hudson/model/View/People/index_es.properties @@ -0,0 +1,28 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Name=Nombre +Last\ Active=Actividad reciente +On=En +All\ People=Todos +People=Actividad + diff --git a/core/src/main/resources/hudson/model/View/People/index_fr.properties b/core/src/main/resources/hudson/model/View/People/index_fr.properties index 368082b915dc1ee25c390d8df83dcc2b9947aa8a..362fec2217416a96995af4ee1b87e25a4ca474e2 100644 --- a/core/src/main/resources/hudson/model/View/People/index_fr.properties +++ b/core/src/main/resources/hudson/model/View/People/index_fr.properties @@ -23,3 +23,4 @@ Name=Nom Last\ Active=Dernière activité On=Sur +People=Personnes diff --git a/core/src/main/resources/hudson/model/View/People/index_it.properties b/core/src/main/resources/hudson/model/View/People/index_it.properties new file mode 100644 index 0000000000000000000000000000000000000000..97dcfa6f54ba727699dcb40aaeee48d5ded081cd --- /dev/null +++ b/core/src/main/resources/hudson/model/View/People/index_it.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Last\ Active=Ultima attivit\u00E0 +Name=Nome +On=Su +People=Persone diff --git a/core/src/main/resources/hudson/model/View/People/index_ja.properties b/core/src/main/resources/hudson/model/View/People/index_ja.properties index ce198d2fdd977a992b3a44a81f2254114b847c13..7334191460ad0e53db633a75d2347e27e279e243 100644 --- a/core/src/main/resources/hudson/model/View/People/index_ja.properties +++ b/core/src/main/resources/hudson/model/View/People/index_ja.properties @@ -1,6 +1,6 @@ # The MIT License # -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:cactusman +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:cactusman, Seiji Sogabe # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -20,6 +20,8 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Name=\u540d\u524d -Last\ Active=\u6700\u8fd1\u306e\u6d3b\u52d5 -On=\u5834\u6240 \ No newline at end of file +Name=\u540D\u524D +Last\ Active=\u6700\u8FD1\u306E\u6D3B\u52D5 +On=\u5834\u6240 +People=\u4EBA\u3005 +All\ People=\u3059\u3079\u3066 \ No newline at end of file diff --git a/core/src/main/resources/hudson/model/View/People/index_nl.properties b/core/src/main/resources/hudson/model/View/People/index_nl.properties index 543edd605489fd0efc0bb6fd5ddf0081cbbc7cb1..875ad7b6cfcfb341143541cf1d1780dcbc14b1e3 100644 --- a/core/src/main/resources/hudson/model/View/People/index_nl.properties +++ b/core/src/main/resources/hudson/model/View/People/index_nl.properties @@ -23,3 +23,4 @@ Name=Naam Last\ Active=Laatste activiteit On=Job +People=Gebruikers diff --git a/core/src/main/resources/hudson/model/View/People/index_pt_BR.properties b/core/src/main/resources/hudson/model/View/People/index_pt_BR.properties index 98ba50b4f6c297ec608d9b9b8449df73c2c4ed46..d25d77f7547c03b69ae88ea5fc98072c61448154 100644 --- a/core/src/main/resources/hudson/model/View/People/index_pt_BR.properties +++ b/core/src/main/resources/hudson/model/View/People/index_pt_BR.properties @@ -23,3 +23,5 @@ Name=Nome Last\ Active=\u00DAltimo Ativo On=Ligado +People=Pessoas +All\ People= diff --git a/core/src/main/resources/hudson/model/View/People/index_ru.properties b/core/src/main/resources/hudson/model/View/People/index_ru.properties index 3f1fe28e500d2dfced3e9fd28d7d2c51bc55d2b3..136a57fe786069c4a18de92ce9c85d8f1fa8ca56 100644 --- a/core/src/main/resources/hudson/model/View/People/index_ru.properties +++ b/core/src/main/resources/hudson/model/View/People/index_ru.properties @@ -23,3 +23,4 @@ Name=\u0418\u043c\u044f Last\ Active=\u041f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u044c On=\u0412 \u043f\u0440\u043e\u0435\u043a\u0442\u0435 +People=\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u0438 diff --git a/core/src/main/resources/hudson/model/View/People/index_sv_SE.properties b/core/src/main/resources/hudson/model/View/People/index_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..d2a292b57f4a4a7bf82a2c79363cabad0dfa51dd --- /dev/null +++ b/core/src/main/resources/hudson/model/View/People/index_sv_SE.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Last\ Active=Senast aktiv +Name=Namn +On=P\u00E5 diff --git a/core/src/main/resources/hudson/model/View/People/index_zh_TW.properties b/core/src/main/resources/hudson/model/View/People/index_zh_TW.properties new file mode 100644 index 0000000000000000000000000000000000000000..23753688997af91b92522eed4f34c9b52c68ef98 --- /dev/null +++ b/core/src/main/resources/hudson/model/View/People/index_zh_TW.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Name=\u540D\u7A31 diff --git a/core/src/main/resources/hudson/model/View/ajaxBuildQueue.jelly b/core/src/main/resources/hudson/model/View/ajaxBuildQueue.jelly index 2d226a0f96ffb655a77bcae3f87bc4d3775a22ee..73731b8c0308acb3b9b52b93cf2b1f2348177e4a 100644 --- a/core/src/main/resources/hudson/model/View/ajaxBuildQueue.jelly +++ b/core/src/main/resources/hudson/model/View/ajaxBuildQueue.jelly @@ -27,6 +27,6 @@ THE SOFTWARE. --> - + \ No newline at end of file diff --git a/core/src/main/resources/hudson/model/View/ajaxExecutors.jelly b/core/src/main/resources/hudson/model/View/ajaxExecutors.jelly index a543776859bbef62f4b14675fb9cbb8e72cb9631..3deb4e7da27a1d12d1f8126f721ed9c212557c09 100644 --- a/core/src/main/resources/hudson/model/View/ajaxExecutors.jelly +++ b/core/src/main/resources/hudson/model/View/ajaxExecutors.jelly @@ -1,7 +1,7 @@ - + \ No newline at end of file diff --git a/core/src/main/resources/hudson/model/View/builds.jelly b/core/src/main/resources/hudson/model/View/builds.jelly index f7870b9c9a7bb94caaf8ad2d110a8d9a38eaee37..d4dab8a8cc38ecccb979c70b81292042c434ce06 100644 --- a/core/src/main/resources/hudson/model/View/builds.jelly +++ b/core/src/main/resources/hudson/model/View/builds.jelly @@ -1,7 +1,8 @@ + + + + - \ No newline at end of file + diff --git a/core/src/main/resources/hudson/model/View/builds_da.properties b/core/src/main/resources/hudson/model/View/builds_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..1e4565783924f5d3118e81f8d8823469ae78db03 --- /dev/null +++ b/core/src/main/resources/hudson/model/View/builds_da.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Export\ as\ plain\ XML=Eksporter som XML +buildHistory=Byggehistorik af {0} diff --git a/core/src/main/resources/hudson/model/View/builds_de.properties b/core/src/main/resources/hudson/model/View/builds_de.properties index 5682ff50b34aa8f1fb41bd55a23d6559e946ca58..c544173bd6259081c273227cf37133df97789447 100644 --- a/core/src/main/resources/hudson/model/View/builds_de.properties +++ b/core/src/main/resources/hudson/model/View/builds_de.properties @@ -21,3 +21,4 @@ # THE SOFTWARE. buildHistory=Build-Verlauf von {0} +Export\ as\ plain\ XML=Als XML exportieren diff --git a/core/src/main/resources/hudson/model/View/builds_es.properties b/core/src/main/resources/hudson/model/View/builds_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..514fb5001c0feaf41092dc6fdadc06fe3d21f77a --- /dev/null +++ b/core/src/main/resources/hudson/model/View/builds_es.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +buildHistory=Historia de las tareas ejecutadas en {0} + +Export\ as\ plain\ XML=Exportar como XML diff --git a/core/src/main/resources/hudson/model/View/builds_fr.properties b/core/src/main/resources/hudson/model/View/builds_fr.properties index e91475d12e7fe687816d99622ae5d39ba8b9865f..4e0bb5ec5d271336a0c89491b94f7ff5cd32f47d 100644 --- a/core/src/main/resources/hudson/model/View/builds_fr.properties +++ b/core/src/main/resources/hudson/model/View/builds_fr.properties @@ -1,6 +1,7 @@ # The MIT License # -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Eric Lefevre-Ardant +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Eric Lefevre-Ardant, +# Manufacture Francaise des Pneumatiques Michelin, Romain Seguy # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -21,3 +22,4 @@ # THE SOFTWARE. buildHistory=Historique des builds de {0} +Export\ as\ plain\ XML=Exporter au format XML \ No newline at end of file diff --git a/core/src/main/resources/hudson/model/View/builds_it.properties b/core/src/main/resources/hudson/model/View/builds_it.properties new file mode 100644 index 0000000000000000000000000000000000000000..9577c9ca8389db87418150152b13fb2a592d2fe0 --- /dev/null +++ b/core/src/main/resources/hudson/model/View/builds_it.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +buildHistory=Cronologia build di {0} diff --git a/core/src/main/resources/hudson/model/View/builds_ja.properties b/core/src/main/resources/hudson/model/View/builds_ja.properties index 140a5e0adbdf39279b5a5b932b9f8fb50ab5ce38..197dfb16e39b273805696321fa05bed4d612cada 100644 --- a/core/src/main/resources/hudson/model/View/builds_ja.properties +++ b/core/src/main/resources/hudson/model/View/builds_ja.properties @@ -1,6 +1,6 @@ # The MIT License # -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:cactusman +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:cactusman, Seiji Sogabe # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -20,4 +20,5 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -buildHistory={0}\u306e\u30d3\u30eb\u30c9\u5c65\u6b74 \ No newline at end of file +buildHistory={0}\u306E\u30D3\u30EB\u30C9\u5C65\u6B74 +Export\ as\ plain\ XML=XML\u5F62\u5F0F\u3067\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8 diff --git a/core/src/main/resources/hudson/model/View/builds_ko.properties b/core/src/main/resources/hudson/model/View/builds_ko.properties new file mode 100644 index 0000000000000000000000000000000000000000..91411e59d21f9c4c71c623dcddb02d92667c0ba5 --- /dev/null +++ b/core/src/main/resources/hudson/model/View/builds_ko.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +buildHistory={0}\uC758 \uBE4C\uB4DC \uAE30\uB85D diff --git a/core/src/main/resources/hudson/model/View/builds_nb_NO.properties b/core/src/main/resources/hudson/model/View/builds_nb_NO.properties new file mode 100644 index 0000000000000000000000000000000000000000..0c85b948c02549112bd1a65d87e3c69871d90673 --- /dev/null +++ b/core/src/main/resources/hudson/model/View/builds_nb_NO.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +buildHistory=Bygghistorie for {0} diff --git a/core/src/main/resources/hudson/model/View/builds_nl.properties b/core/src/main/resources/hudson/model/View/builds_nl.properties index db6be20acaa4d19f56665aaea36bff57588a1a27..eb3a8d3855f304302496249aaa29d6379cf4e66d 100644 --- a/core/src/main/resources/hudson/model/View/builds_nl.properties +++ b/core/src/main/resources/hudson/model/View/builds_nl.properties @@ -20,4 +20,5 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. +Export\ as\ plain\ XML=Exporteert als gewone XML buildHistory=Overzicht bouwpogingen diff --git a/core/src/main/resources/hudson/model/View/builds_pt_BR.properties b/core/src/main/resources/hudson/model/View/builds_pt_BR.properties index b74efacc4961c27d9bb8b46e008fc87eb9b91349..e971cca2e65a2edaa678417381e359ae84c2444a 100644 --- a/core/src/main/resources/hudson/model/View/builds_pt_BR.properties +++ b/core/src/main/resources/hudson/model/View/builds_pt_BR.properties @@ -20,4 +20,5 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -buildHistory=Hist\u00F3rico de Constru\u00E7\u00E3o de {0} \ No newline at end of file +buildHistory=Hist\u00F3rico de Constru\u00E7\u00E3o de {0}Export\ as\ plain\ XML= +Export\ as\ plain\ XML= diff --git a/core/src/main/resources/hudson/model/View/builds_ru.properties b/core/src/main/resources/hudson/model/View/builds_ru.properties index 5bb5611c92961cf854e378bf1fc50adff7a99dae..b4c8900066c29aaee500e0951efd1420d93b5541 100644 --- a/core/src/main/resources/hudson/model/View/builds_ru.properties +++ b/core/src/main/resources/hudson/model/View/builds_ru.properties @@ -20,4 +20,5 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. +Export\ as\ plain\ XML=\u042D\u043A\u0441\u043F\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0432 XML buildHistory=\u0418\u0441\u0442\u043e\u0440\u0438\u044f \u0441\u0431\u043e\u0440\u043e\u043a {0} diff --git a/core/src/main/resources/hudson/model/View/builds_sv_SE.properties b/core/src/main/resources/hudson/model/View/builds_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..b72579c27bf3cbacf77b0cde35c0e9537e30d7a4 --- /dev/null +++ b/core/src/main/resources/hudson/model/View/builds_sv_SE.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +buildHistory=Bygghistorik f\u00F6r {0} diff --git a/core/src/main/resources/hudson/model/View/builds_zh_CN.properties b/core/src/main/resources/hudson/model/View/builds_zh_CN.properties new file mode 100644 index 0000000000000000000000000000000000000000..d32afbb22284d425ed485fa6b673b95f19ddcbfc --- /dev/null +++ b/core/src/main/resources/hudson/model/View/builds_zh_CN.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +buildHistory={0} \u7684\u6784\u5efa\u5386\u53f2 diff --git a/core/src/main/resources/hudson/model/View/configure.jelly b/core/src/main/resources/hudson/model/View/configure.jelly index 58b1c373f372eb917f5e2b32e0039c1d63f51c67..941d991329fcb8307ceabdf126f4cc10a689ce79 100644 --- a/core/src/main/resources/hudson/model/View/configure.jelly +++ b/core/src/main/resources/hudson/model/View/configure.jelly @@ -1,7 +1,7 @@ diff --git a/core/src/main/resources/hudson/model/View/configure_da.properties b/core/src/main/resources/hudson/model/View/configure_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..9024f961117380b5546b3d339de42f04cacb2069 --- /dev/null +++ b/core/src/main/resources/hudson/model/View/configure_da.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Filter\ build\ queue=Filtrer byggek\u00f8 +Filter\ build\ executors=Filtrer byggeafviklere +Name=Navn +Description=Beskrivelse diff --git a/core/src/main/resources/hudson/model/View/configure_de.properties b/core/src/main/resources/hudson/model/View/configure_de.properties index e0c92c8a4507ef3599cea43afff200a20216c9ce..577fca8956e6c998d33fdf57cf68ccbdf1fbaafa 100644 --- a/core/src/main/resources/hudson/model/View/configure_de.properties +++ b/core/src/main/resources/hudson/model/View/configure_de.properties @@ -21,4 +21,6 @@ # THE SOFTWARE. Name=Name -Description=Beschreibung \ No newline at end of file +Description=Beschreibung +Filter\ build\ executors=Build-Prozessoren filtern +Filter\ build\ queue=Build-Warteschlange filtern diff --git a/core/src/main/resources/hudson/model/View/configure_es.properties b/core/src/main/resources/hudson/model/View/configure_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..782784f09844ffdda0dc33b957a1389f0ab83a73 --- /dev/null +++ b/core/src/main/resources/hudson/model/View/configure_es.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Name=Nombre +Description=Descripción +Filter\ build\ queue=Filtrar cola de ejecución +Filter\ build\ executors=Filtrar ejecutores diff --git a/core/src/main/resources/hudson/model/View/configure_fr.properties b/core/src/main/resources/hudson/model/View/configure_fr.properties index 8eee95d5d74a185f1f3bc9217d2721d808037f41..48306af0bfd5c565da6e1aed98c841616fe462ee 100644 --- a/core/src/main/resources/hudson/model/View/configure_fr.properties +++ b/core/src/main/resources/hudson/model/View/configure_fr.properties @@ -1,6 +1,6 @@ # The MIT License # -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Eric Lefevre-Ardant +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Eric Lefevre-Ardant # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -20,5 +20,7 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. +Filter\ build\ executors=Filtrer les lanceurs de build +Filter\ build\ queue=Filtrer la file d''attente de build Name=Nom -Description= +Description=Description diff --git a/core/src/main/resources/hudson/model/View/configure_ja.properties b/core/src/main/resources/hudson/model/View/configure_ja.properties index ac04b27a1d43e10633e678618804fb2b67f2505d..5fcdb65a34f836580eadcd40eb4fa845fc9d5f08 100644 --- a/core/src/main/resources/hudson/model/View/configure_ja.properties +++ b/core/src/main/resources/hudson/model/View/configure_ja.properties @@ -20,5 +20,7 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Name=\u540d\u524d -Description=\u8aac\u660e \ No newline at end of file +Name=\u540D\u524D +Description=\u8AAC\u660E +Filter\ build\ queue=\u30D3\u30EB\u30C9\u30AD\u30E5\u30FC\u3092\u30D5\u30A3\u30EB\u30BF\u30FC +Filter\ build\ executors=\u30A8\u30B0\u30BC\u30AD\u30E5\u30FC\u30BF\u30FC\u3092\u30D5\u30A3\u30EB\u30BF\u30FC diff --git a/core/src/main/resources/hudson/model/View/configure_nl.properties b/core/src/main/resources/hudson/model/View/configure_nl.properties index 64e1289ad96e92e97d0ce4a21a03529c1cb0dbc4..269b36209aef7fc0224eb77c29d9f42d3c44bd9d 100644 --- a/core/src/main/resources/hudson/model/View/configure_nl.properties +++ b/core/src/main/resources/hudson/model/View/configure_nl.properties @@ -20,5 +20,7 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. +Filter\ build\ executors=Filter uitvoerders +Filter\ build\ queue=Filter geplande bouwpogingen Name=Naam -Description=Omschrijving \ No newline at end of file +Description=Omschrijving diff --git a/core/src/main/resources/hudson/model/View/configure_pt_BR.properties b/core/src/main/resources/hudson/model/View/configure_pt_BR.properties index 622d057e4da62ed2272061ca91b640970c3b10fe..371649c6a4a59864fdb795fcf15e52fff51c6c70 100644 --- a/core/src/main/resources/hudson/model/View/configure_pt_BR.properties +++ b/core/src/main/resources/hudson/model/View/configure_pt_BR.properties @@ -21,4 +21,6 @@ # THE SOFTWARE. Name=Nome -Description=Descri\u00E7\u00E3o \ No newline at end of file +Description=Descri\u00E7\u00E3oFilter\ build\ queue= +Filter\ build\ executors= +Filter\ build\ queue= diff --git a/core/src/main/resources/hudson/model/View/configure_sv_SE.properties b/core/src/main/resources/hudson/model/View/configure_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..16d4cbbbf5826e60ed4b33a4b7f0eec5a03d12b2 --- /dev/null +++ b/core/src/main/resources/hudson/model/View/configure_sv_SE.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Description=Beskrivning +Name=Namn diff --git a/core/src/main/resources/hudson/model/View/delete.jelly b/core/src/main/resources/hudson/model/View/delete.jelly index 1e6268809a511013a7c1a3f8efb4bbcd325b3567..03f8a1ae52f0a597f2c145f0a0c2416f4d46d339 100644 --- a/core/src/main/resources/hudson/model/View/delete.jelly +++ b/core/src/main/resources/hudson/model/View/delete.jelly @@ -27,7 +27,7 @@ THE SOFTWARE. -
    + ${%Are you sure about deleting the view?} diff --git a/core/src/main/resources/hudson/model/View/delete_da.properties b/core/src/main/resources/hudson/model/View/delete_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..f8719812b5aa7b767a782481b0515c0aa99439a4 --- /dev/null +++ b/core/src/main/resources/hudson/model/View/delete_da.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Yes=Ja +Are\ you\ sure\ about\ deleting\ the\ view?=Er du sikker pa at du vil slette visningen? diff --git a/core/src/main/resources/hudson/model/View/delete_es.properties b/core/src/main/resources/hudson/model/View/delete_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..ce60d0deb9ef4e8bf4e99b5bb848aaaeae0fb6ed --- /dev/null +++ b/core/src/main/resources/hudson/model/View/delete_es.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Are\ you\ sure\ about\ deleting\ the\ view?=¿Estás seguro de querer borrar esta vista? +Yes=Sí diff --git a/core/src/main/resources/hudson/model/View/delete_sv_SE.properties b/core/src/main/resources/hudson/model/View/delete_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..736f447cf06477b4245427d6ee8928778c7eac4e --- /dev/null +++ b/core/src/main/resources/hudson/model/View/delete_sv_SE.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Are\ you\ sure\ about\ deleting\ the\ view?=\u00C4r du s\u00E4ker p\u00E5 att du vill ta bort vyn? +Yes=Ja diff --git a/core/src/main/resources/hudson/model/View/index.jelly b/core/src/main/resources/hudson/model/View/index.jelly index 8194bd8f589fe04a3651cde174b77bc3b627ea6c..7b53bbec7fd0ec71982954b695a2e3c3df302136 100644 --- a/core/src/main/resources/hudson/model/View/index.jelly +++ b/core/src/main/resources/hudson/model/View/index.jelly @@ -23,23 +23,29 @@ THE SOFTWARE. --> - - - - - -
    - -
    - - -
    - + + + + + + + + + + + +
    + +
    + + +
    + - - - -
    + +
    +
    \ No newline at end of file diff --git a/core/src/main/resources/hudson/model/View/index_da.properties b/core/src/main/resources/hudson/model/View/index_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..d53fe0b1c6159a7cfd0e8ec2bdf5caf53bc785a9 --- /dev/null +++ b/core/src/main/resources/hudson/model/View/index_da.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Dashboard=Oversigtssiden diff --git a/core/src/main/resources/hudson/model/View/index_es.properties b/core/src/main/resources/hudson/model/View/index_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..75002e1b845ff958e073d6da60346cc5b74225bc --- /dev/null +++ b/core/src/main/resources/hudson/model/View/index_es.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Dashboard=Panel de control diff --git a/core/src/main/resources/hudson/model/View/main.jelly b/core/src/main/resources/hudson/model/View/main.jelly index 41a675ab5f201d94ac26faef2abe52595d232614..c746ab86af28c2aeecbcf503d89cc7cec5d80af6 100644 --- a/core/src/main/resources/hudson/model/View/main.jelly +++ b/core/src/main/resources/hudson/model/View/main.jelly @@ -1,7 +1,7 @@ - - - - - - - - - - - - - - - - - -
    -
    - -
    - - - - - - -
    -
    \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/core/src/main/resources/hudson/model/View/newJob.jelly b/core/src/main/resources/hudson/model/View/newJob.jelly index de0ba223feb53501d8fc01ae639f927f69764818..05d47c9b734525542d0d0bdbb77fb8c0e168b814 100644 --- a/core/src/main/resources/hudson/model/View/newJob.jelly +++ b/core/src/main/resources/hudson/model/View/newJob.jelly @@ -1,7 +1,7 @@ - + - + + descriptors="${jobs}" checkUrl="checkJobName" xmlns:n="/lib/hudson/newFromList" /> diff --git a/core/src/main/resources/hudson/model/View/newJob_da.properties b/core/src/main/resources/hudson/model/View/newJob_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..f2325372921167db1b45a34e1966c99e4a27a7c4 --- /dev/null +++ b/core/src/main/resources/hudson/model/View/newJob_da.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Copy\ existing\ job=Kopier eksisterende job +Job\ name=Job navn +New\ Job=Nyt job diff --git a/core/src/main/resources/hudson/model/View/newJob_de.properties b/core/src/main/resources/hudson/model/View/newJob_de.properties index c91476691e71518ec5ec7496316f75e5dcf04d67..62e69d2675318b81cb97c0f818e48df78cbae85f 100644 --- a/core/src/main/resources/hudson/model/View/newJob_de.properties +++ b/core/src/main/resources/hudson/model/View/newJob_de.properties @@ -22,4 +22,4 @@ Job\ name=Job Name Copy\ existing\ job=Kopiere bestehenden Job -Copy\ from=Kopiere von +New\ Job=Neuen Job anlegen diff --git a/core/src/main/resources/hudson/model/View/newJob_el.properties b/core/src/main/resources/hudson/model/View/newJob_el.properties new file mode 100644 index 0000000000000000000000000000000000000000..b6fd522b77b409ba90b2f4acc4c9365aebb70bac --- /dev/null +++ b/core/src/main/resources/hudson/model/View/newJob_el.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Copy\ existing\ job=\u0391\u03BD\u03C4\u03B9\u03B3\u03C1\u03B1\u03C6\u03AE \u03C5\u03C0\u03AC\u03C1\u03C7\u03BF\u03C5\u03C3\u03B1\u03C2 \u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1\u03C2 +Job\ name=\u039F\u03BD\u03BF\u03BC\u03B1\u03C3\u03AF\u03B1 \u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1\u03C2 diff --git a/core/src/main/resources/hudson/model/View/newJob_es.properties b/core/src/main/resources/hudson/model/View/newJob_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..5858160243bd8f01c119df74260f45696f3b0477 --- /dev/null +++ b/core/src/main/resources/hudson/model/View/newJob_es.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Job\ name=Nombre del proyecto +Copy\ existing\ job=Copiar un proyecto existente +New\ Job=Nuevo proyecto diff --git a/core/src/main/resources/hudson/model/View/newJob_it.properties b/core/src/main/resources/hudson/model/View/newJob_it.properties new file mode 100644 index 0000000000000000000000000000000000000000..fc61930fc70d6cddfcdf070238e261308e858adb --- /dev/null +++ b/core/src/main/resources/hudson/model/View/newJob_it.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Copy\ existing\ job=Copia job esistente +Job\ name=Nome job diff --git a/core/src/main/resources/hudson/model/View/newJob_ja.properties b/core/src/main/resources/hudson/model/View/newJob_ja.properties index e444bce57dbcc3e23138e055be9305a728f801a2..ec25ad3266c575ce8aaa906ca14c1468f1bdc9f2 100644 --- a/core/src/main/resources/hudson/model/View/newJob_ja.properties +++ b/core/src/main/resources/hudson/model/View/newJob_ja.properties @@ -1,6 +1,6 @@ # The MIT License # -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:cactusman +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:cactusman, Seiji Sogabe # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -20,8 +20,6 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Job\ name=\u30b8\u30e7\u30d6\u540d - -Copy\ existing\ job=\u65e2\u5b58\u30b8\u30e7\u30d6\u306e\u30b3\u30d4\u30fc - -Copy\ from=\u30b3\u30d4\u30fc\u5143 \ No newline at end of file +Job\ name=\u30B8\u30E7\u30D6\u540D +Copy\ existing\ job=\u65E2\u5B58\u30B8\u30E7\u30D6\u306E\u30B3\u30D4\u30FC +New\ Job=\u65B0\u898F\u30B8\u30E7\u30D6 diff --git a/core/src/main/resources/hudson/model/View/newJob_nb_NO.properties b/core/src/main/resources/hudson/model/View/newJob_nb_NO.properties new file mode 100644 index 0000000000000000000000000000000000000000..099ca9c3163b7ddce23b8c5e9c97a45456e0de91 --- /dev/null +++ b/core/src/main/resources/hudson/model/View/newJob_nb_NO.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Copy\ existing\ job=Kopier eksisterende jobb +Job\ name=Jobbnavn diff --git a/core/src/main/resources/hudson/model/View/newJob_pl.properties b/core/src/main/resources/hudson/model/View/newJob_pl.properties new file mode 100644 index 0000000000000000000000000000000000000000..5dbb2ab842c27085326790e32493886e6a6a10fd --- /dev/null +++ b/core/src/main/resources/hudson/model/View/newJob_pl.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Copy\ existing\ job=Kopiuj istniej\u0105ce zadanie +Job\ name=Nazwa zadania diff --git a/core/src/main/resources/hudson/model/View/newJob_pt_BR.properties b/core/src/main/resources/hudson/model/View/newJob_pt_BR.properties index f6c27122e9e7d0b2648568dde8e1012f1f978e79..0e16a87ad497b971190cb5269e86b0434e49649d 100644 --- a/core/src/main/resources/hudson/model/View/newJob_pt_BR.properties +++ b/core/src/main/resources/hudson/model/View/newJob_pt_BR.properties @@ -22,4 +22,4 @@ Job\ name=Nome da tarefa Copy\ existing\ job=Copiar tarefa existente -Copy\ from=Copiar de +New\ Job=Nova Tarefa diff --git a/core/src/main/resources/hudson/model/View/newJob_sv_SE.properties b/core/src/main/resources/hudson/model/View/newJob_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..c7b45438e2f0db6fb8eba7a7829f66a6bfbd47e9 --- /dev/null +++ b/core/src/main/resources/hudson/model/View/newJob_sv_SE.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Copy\ existing\ job=Kopiera existerande jobb +Job\ name=Namn p\u00E5 jobb diff --git a/core/src/main/resources/hudson/model/View/newJob_zh_CN.properties b/core/src/main/resources/hudson/model/View/newJob_zh_CN.properties new file mode 100644 index 0000000000000000000000000000000000000000..67bf9991c97e1bf1b5f33a38900121a31ca68b2d --- /dev/null +++ b/core/src/main/resources/hudson/model/View/newJob_zh_CN.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Copy\ existing\ job=\u590D\u5236\u73B0\u6709\u4EFB\u52A1 +Job\ name=\u4EFB\u52A1\u540D\u79F0 diff --git a/core/src/main/resources/hudson/model/View/newJob_zh_TW.properties b/core/src/main/resources/hudson/model/View/newJob_zh_TW.properties new file mode 100644 index 0000000000000000000000000000000000000000..dbf48f24d074640850421acdf6442073e0afd234 --- /dev/null +++ b/core/src/main/resources/hudson/model/View/newJob_zh_TW.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Job\ name=\u5DE5\u4F5C\u540D\u7A31 diff --git a/core/src/main/resources/hudson/model/View/noJob.jelly b/core/src/main/resources/hudson/model/View/noJob.jelly index 5c8e05412f92d95527c5d9fa86545570aff589db..5793ae8ab83c0c8918085f4f0bc55ab092b2d98c 100644 --- a/core/src/main/resources/hudson/model/View/noJob.jelly +++ b/core/src/main/resources/hudson/model/View/noJob.jelly @@ -23,10 +23,19 @@ THE SOFTWARE. --> -
    + +
    ${%description_1} - + ${%description_2}
    - \ No newline at end of file + diff --git a/core/src/main/resources/hudson/model/View/noJob_da.properties b/core/src/main/resources/hudson/model/View/noJob_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..c1732d9fef736351139ac468fb945cf9292eab02 --- /dev/null +++ b/core/src/main/resources/hudson/model/View/noJob_da.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +description_1=Denne visning har ingen tilknyttede jobs. +description_2=Tilf\u00f8j nogen. diff --git a/core/src/main/resources/hudson/model/View/noJob_de.properties b/core/src/main/resources/hudson/model/View/noJob_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..c13be1e488030eded82afeb7a01f8b42b45dbffc --- /dev/null +++ b/core/src/main/resources/hudson/model/View/noJob_de.properties @@ -0,0 +1,2 @@ +description_1=Dieser Ansicht wurden keine Jobs zugeordnet. +description_2=Sie können Jobs hinzufügen. diff --git a/core/src/main/resources/hudson/model/View/noJob_es.properties b/core/src/main/resources/hudson/model/View/noJob_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..9fbbf9adf71cd5dddeadc34510aabcf27e43c677 --- /dev/null +++ b/core/src/main/resources/hudson/model/View/noJob_es.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +description_1=Esta vista no tiene ningún proyecto asociado. +description_2=Añadir. + diff --git a/core/src/main/resources/hudson/model/View/noJob_nb_NO.properties b/core/src/main/resources/hudson/model/View/noJob_nb_NO.properties new file mode 100644 index 0000000000000000000000000000000000000000..6e0d74b51e68a944ba5c1aeeb688ce13da5f89ff --- /dev/null +++ b/core/src/main/resources/hudson/model/View/noJob_nb_NO.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +description_1=Denne visningen har ingen tilknyttede jobber. +description_2=Vennligst legg til. diff --git a/core/src/main/resources/hudson/model/View/noJob_pt_BR.properties b/core/src/main/resources/hudson/model/View/noJob_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..69749f1cd58d85480efd0de510b0072589309f5a --- /dev/null +++ b/core/src/main/resources/hudson/model/View/noJob_pt_BR.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +# This view has no jobs associated with it. +description_1= +# Please add some. +description_2= diff --git a/core/src/main/resources/hudson/model/View/sidepanel.jelly b/core/src/main/resources/hudson/model/View/sidepanel.jelly index 03ac13e6e8e5993bdf38193dfcad4765b68df485..ace45fbdd9b3df2b9a7c5723bd2bb56149a80511 100644 --- a/core/src/main/resources/hudson/model/View/sidepanel.jelly +++ b/core/src/main/resources/hudson/model/View/sidepanel.jelly @@ -1,7 +1,8 @@ - - - - + + + + - - - - - + + + + + + + + + + - - - - + + + + + + @@ -55,10 +63,10 @@ THE SOFTWARE. - - + + - \ No newline at end of file + diff --git a/core/src/main/resources/hudson/model/View/sidepanel_ca.properties b/core/src/main/resources/hudson/model/View/sidepanel_ca.properties new file mode 100644 index 0000000000000000000000000000000000000000..9c74fcc213f23e43c3735df2aa6e58915da2aad0 --- /dev/null +++ b/core/src/main/resources/hudson/model/View/sidepanel_ca.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Build\ History=Historic de construcci\u00F3 +Manage\ Hudson=Configuraci\u00F3 de Hudson diff --git a/core/src/main/resources/hudson/model/View/sidepanel_cs.properties b/core/src/main/resources/hudson/model/View/sidepanel_cs.properties new file mode 100644 index 0000000000000000000000000000000000000000..7bf465b05ce3b3056823b7c3a28915489685daf3 --- /dev/null +++ b/core/src/main/resources/hudson/model/View/sidepanel_cs.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Build\ History=Historie build\u016F +Manage\ Hudson=Administrace diff --git a/core/src/main/resources/hudson/model/View/sidepanel_da.properties b/core/src/main/resources/hudson/model/View/sidepanel_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..21678a078d2467966a7dcc311e17b6a78bfe7fcd --- /dev/null +++ b/core/src/main/resources/hudson/model/View/sidepanel_da.properties @@ -0,0 +1,30 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Check\ File\ Fingerprint=Check filfingeraftryk +Project\ Relationship=Projektforhold +Manage\ Hudson=Bestyr Hudson +Delete\ View=Slet visning +People=Personer +Build\ History=Byggehistorik +Edit\ View=Rediger visning +New\ Job=Nyt job diff --git a/core/src/main/resources/hudson/model/View/sidepanel_el.properties b/core/src/main/resources/hudson/model/View/sidepanel_el.properties new file mode 100644 index 0000000000000000000000000000000000000000..27ca563428ef1af54348edf9d0b7bda6f2773a7b --- /dev/null +++ b/core/src/main/resources/hudson/model/View/sidepanel_el.properties @@ -0,0 +1,29 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Build\ History=\u0399\u03C3\u03C4\u03BF\u03C1\u03B9\u03BA\u03CC Build +Delete\ View=\u0394\u03B9\u03B1\u03B3\u03C1\u03B1\u03C6\u03AE \u038C\u03C8\u03B7\u03C2 +Edit\ View=\u0395\u03C0\u03B5\u03BE\u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1 \u038C\u03C8\u03B7\u03C2 +Manage\ Hudson=\u0394\u03B9\u03B1\u03C7\u03B5\u03AF\u03C1\u03B9\u03C3\u03B7 Hudson +New\ Job=\u039D\u03AD\u03B1 \u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1 +People=\u039F\u03B9 \u03AC\u03BD\u03B8\u03C1\u03C9\u03C0\u03BF\u03B9 +Project\ Relationship=\u03A3\u03C5\u03C3\u03C7\u03B5\u03C4\u03AF\u03C3\u03B5\u03B9\u03C2 \u03C4\u03BF\u03C5 Project diff --git a/core/src/main/resources/hudson/model/View/sidepanel_es.properties b/core/src/main/resources/hudson/model/View/sidepanel_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..38d080da88fdead69061027a789e344c3fe77826 --- /dev/null +++ b/core/src/main/resources/hudson/model/View/sidepanel_es.properties @@ -0,0 +1,33 @@ +### +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Build\ History=Historia de ejecuciones +Manage\ Hudson=Administrar Hudson +New\ Job=Crear nueva Tarea +People=Actividad +Edit\ View=Editar la vista +Delete\ View=Borrar la vista +Project\ Relationship=Dependencia entre proyectos +Check\ File\ Fingerprint=Comprobar firma de ficheros + + diff --git a/core/src/main/resources/hudson/model/View/sidepanel_fi.properties b/core/src/main/resources/hudson/model/View/sidepanel_fi.properties new file mode 100644 index 0000000000000000000000000000000000000000..b02fb5696026415cc7019764a90ba290b7a3832f --- /dev/null +++ b/core/src/main/resources/hudson/model/View/sidepanel_fi.properties @@ -0,0 +1,28 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Build\ History=K\u00E4\u00E4nn\u00F6shistoria +Check\ File\ Fingerprint=Tarkasta tiedoston sormenj\u00E4ljet +Manage\ Hudson=Hallitse Hudsonia +New\ Job=Uusi ty\u00F6 +People=K\u00E4ytt\u00E4j\u00E4t +Project\ Relationship=Projektien riippuvuudet diff --git a/core/src/main/resources/hudson/model/View/sidepanel_fr.properties b/core/src/main/resources/hudson/model/View/sidepanel_fr.properties index 0b859702da02893431b82982496396b100aa43f7..8a11ca6ef095fb7efd944a5b6a0e9b5ca47ae8ab 100644 --- a/core/src/main/resources/hudson/model/View/sidepanel_fr.properties +++ b/core/src/main/resources/hudson/model/View/sidepanel_fr.properties @@ -20,11 +20,11 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -New\ Job=Nouveau job +New\ Job=Nouvelle t\u00E2che Manage\ Hudson=Administrer Hudson People=Personnes -Build\ History=Historique des builds -Edit\ View=Editer la vue +Build\ History=Historique des constructions +Edit\ View=\u00C9diter la vue Delete\ View=Supprimer la vue Project\ Relationship=Relations entre les projets Check\ File\ Fingerprint=Vérifier les empreintes numériques diff --git a/core/src/main/resources/hudson/model/View/sidepanel_hu.properties b/core/src/main/resources/hudson/model/View/sidepanel_hu.properties new file mode 100644 index 0000000000000000000000000000000000000000..da3bf71299cd59d0b87177a9c5a0f48cffc41341 --- /dev/null +++ b/core/src/main/resources/hudson/model/View/sidepanel_hu.properties @@ -0,0 +1,27 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Build\ History=\u00C9p\u00EDt\u00E9sek T\u00F6rt\u00E9nete +Check\ File\ Fingerprint=F\u00E1jl Ujjlenyomat Ellen\u0151rz\u00E9se +Manage\ Hudson=Hudson Kezel\u00E9se +New\ Job=\u00FAj feladat +Project\ Relationship=Projekt Kapcsolat diff --git a/core/src/main/resources/hudson/model/View/sidepanel_it.properties b/core/src/main/resources/hudson/model/View/sidepanel_it.properties new file mode 100644 index 0000000000000000000000000000000000000000..99a8fba21c9aa8cb229a9e9421b826f848729667 --- /dev/null +++ b/core/src/main/resources/hudson/model/View/sidepanel_it.properties @@ -0,0 +1,28 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Build\ History=Cronologia build +Check\ File\ Fingerprint=Controlla impronta file +Manage\ Hudson=Configura Hudson +New\ Job=Nuovo job +People=Utenti +Project\ Relationship=Relazioni fra progetti diff --git a/core/src/main/resources/hudson/model/View/sidepanel_ko.properties b/core/src/main/resources/hudson/model/View/sidepanel_ko.properties index faac54e48dbb21a40dfaba22d9ccb545deafcd79..5128091f074b439155879b624cd43e313017960d 100644 --- a/core/src/main/resources/hudson/model/View/sidepanel_ko.properties +++ b/core/src/main/resources/hudson/model/View/sidepanel_ko.properties @@ -20,7 +20,8 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -New\ Job=\uC0C8 \uC791\uC5C5 -Manage\ Hudson=Hudson \uAD00\uB9AC -People=\uAC1C\uBC1C\uC790 -Build\ History=\uBE4C\uB4DC \uAE30\uB85D +New\ Job=\uC0C8 \uC791\uC5C5 +Delete\ View=\uBCF4\uAE30 \uC0AD\uC81C +Manage\ Hudson=Hudson \uAD00\uB9AC +People=\uAC1C\uBC1C\uC790 +Build\ History=\uBE4C\uB4DC \uAE30\uB85D diff --git a/core/src/main/resources/hudson/model/View/sidepanel_lt.properties b/core/src/main/resources/hudson/model/View/sidepanel_lt.properties new file mode 100644 index 0000000000000000000000000000000000000000..da2c0352e255c72f4de794f0e2397e91c1e1c042 --- /dev/null +++ b/core/src/main/resources/hudson/model/View/sidepanel_lt.properties @@ -0,0 +1,27 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Build\ History=U\u017Eduo\u010Di\u0173 istorija +Check\ File\ Fingerprint=Tikrinti Failo Antspaud\u0105 +Delete\ View=\u0160alinti Vaizd\u0105 +Edit\ View=Redaguoti skilt\u012F +Project\ Relationship=Projekto S\u0105ry\u0161iai diff --git a/core/src/main/resources/hudson/model/View/sidepanel_nb_NO.properties b/core/src/main/resources/hudson/model/View/sidepanel_nb_NO.properties new file mode 100644 index 0000000000000000000000000000000000000000..0055f2cb87c79d44fceda5d322144723cff7b535 --- /dev/null +++ b/core/src/main/resources/hudson/model/View/sidepanel_nb_NO.properties @@ -0,0 +1,30 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Build\ History=Bygghistorie +Check\ File\ Fingerprint=Unders\u00F8k fingeravtrykk for filer +Delete\ View=Slett visning +Edit\ View=Rediger visning +Manage\ Hudson=Konfigurer Hudson +New\ Job=Ny jobb +People=Folk +Project\ Relationship=Forhold mellom prosjekter diff --git a/core/src/main/resources/hudson/model/View/sidepanel_pt_PT.properties b/core/src/main/resources/hudson/model/View/sidepanel_pt_PT.properties new file mode 100644 index 0000000000000000000000000000000000000000..f353a8a09a527a4f49aee88bf3bebf8833e43962 --- /dev/null +++ b/core/src/main/resources/hudson/model/View/sidepanel_pt_PT.properties @@ -0,0 +1,28 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Build\ History=Historial de compila\u00E7\u00F5es +Check\ File\ Fingerprint=Verificar a impress\u00E3o digital de ficheiro +Manage\ Hudson=Gerir o Hudson +New\ Job=Novo processo +People=Pessoal +Project\ Relationship=Relacionamento de Projectos diff --git a/core/src/main/resources/hudson/model/View/sidepanel_ru.properties b/core/src/main/resources/hudson/model/View/sidepanel_ru.properties index 7620545a4cd16ae678643e8213f2b72018eefa12..2e8606c974c132f39a3976b2f354e63367b0a972 100644 --- a/core/src/main/resources/hudson/model/View/sidepanel_ru.properties +++ b/core/src/main/resources/hudson/model/View/sidepanel_ru.properties @@ -22,7 +22,7 @@ New\ Job=\u041d\u043e\u0432\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u0430 Manage\ Hudson=\u041d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c Hudson -People=\u0410\u043a\u043a\u0430\u0443\u043d\u0442\u044b +People=\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u0438 Build\ History=\u0418\u0441\u0442\u043e\u0440\u0438\u044f \u0441\u0431\u043e\u0440\u043e\u043a Edit\ View=\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0438\u0434 Delete\ View=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0432\u0438\u0434 diff --git a/core/src/main/resources/hudson/model/View/sidepanel_sv_SE.properties b/core/src/main/resources/hudson/model/View/sidepanel_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..c088ec785e527e815d03c29841b93b6e92eaf8cd --- /dev/null +++ b/core/src/main/resources/hudson/model/View/sidepanel_sv_SE.properties @@ -0,0 +1,29 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Build\ History=Bygghistorik +Delete\ View=Ta bort vy +Edit\ View=Redigera vy +Manage\ Hudson=Hantera Hudson +New\ Job=Skapa nytt jobb +People=Personer +Project\ Relationship=Jobbsamband diff --git a/core/src/main/resources/hudson/model/View/sidepanel_zh_CN.properties b/core/src/main/resources/hudson/model/View/sidepanel_zh_CN.properties new file mode 100644 index 0000000000000000000000000000000000000000..27dd07e06392e61ae3cef8d9046b3ff6bedde13b --- /dev/null +++ b/core/src/main/resources/hudson/model/View/sidepanel_zh_CN.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Build\ History=\u6784\u5efa\u5386\u53f2 +Manage\ Hudson=\u7cfb\u7edf\u7ba1\u7406 +New\ Job=\u65b0\u5efa\u4efb\u52a1 +People=\u7528\u6237 diff --git a/core/src/main/resources/hudson/model/View/sidepanel_zh_TW.properties b/core/src/main/resources/hudson/model/View/sidepanel_zh_TW.properties new file mode 100644 index 0000000000000000000000000000000000000000..5ab7866e3352f313a4c81f9ab182441a5af181ad --- /dev/null +++ b/core/src/main/resources/hudson/model/View/sidepanel_zh_TW.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Build\ History=\u5EFA\u69CB\u6B77\u7A0B +Manage\ Hudson=\u7BA1\u7406Hudson +New\ Job=\u8D77\u59CB\u65B0\u5DE5\u4F5C +People=\u4F7F\u7528\u8005 diff --git a/core/src/main/resources/hudson/model/labels/LabelAtom/configure.jelly b/core/src/main/resources/hudson/model/labels/LabelAtom/configure.jelly new file mode 100644 index 0000000000000000000000000000000000000000..8a3dabb887cff7727e02eb89b23d9f31b7858409 --- /dev/null +++ b/core/src/main/resources/hudson/model/labels/LabelAtom/configure.jelly @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/core/src/main/resources/hudson/model/labels/LabelAtom/configure.properties b/core/src/main/resources/hudson/model/labels/LabelAtom/configure.properties new file mode 100644 index 0000000000000000000000000000000000000000..a7e65ea78846c23c394dd95642c4a473b4d31ecf --- /dev/null +++ b/core/src/main/resources/hudson/model/labels/LabelAtom/configure.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2010, Alan Harder +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +title={0} Config diff --git a/core/src/main/resources/hudson/model/labels/LabelAtom/configure_da.properties b/core/src/main/resources/hudson/model/labels/LabelAtom/configure_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..0a521e1d23ee5bf46ef717289c5cd5fc5d944bda --- /dev/null +++ b/core/src/main/resources/hudson/model/labels/LabelAtom/configure_da.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +title={0} Konfiguration +Save=Gem +Name=Navn diff --git a/core/src/main/resources/hudson/model/queue/CauseOfBlockage/BecauseLabelIsBusy/summary.jelly b/core/src/main/resources/hudson/model/queue/CauseOfBlockage/BecauseLabelIsBusy/summary.jelly new file mode 100644 index 0000000000000000000000000000000000000000..390552849c8c43b83c6fe3602d74b2403f132190 --- /dev/null +++ b/core/src/main/resources/hudson/model/queue/CauseOfBlockage/BecauseLabelIsBusy/summary.jelly @@ -0,0 +1,31 @@ + + + + + + ${it.label.name} + + + \ No newline at end of file diff --git a/core/src/main/resources/hudson/model/queue/CauseOfBlockage/BecauseLabelIsBusy/summary.properties b/core/src/main/resources/hudson/model/queue/CauseOfBlockage/BecauseLabelIsBusy/summary.properties new file mode 100644 index 0000000000000000000000000000000000000000..b6c0fe122b9968cf716864051ee80a4eac8f2a6e --- /dev/null +++ b/core/src/main/resources/hudson/model/queue/CauseOfBlockage/BecauseLabelIsBusy/summary.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +description=Waiting for next available executor on {0} \ No newline at end of file diff --git a/core/src/main/resources/hudson/model/queue/CauseOfBlockage/BecauseLabelIsBusy/summary_es.properties b/core/src/main/resources/hudson/model/queue/CauseOfBlockage/BecauseLabelIsBusy/summary_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..ba69db7a2022ae714588ec148ff8d03fbfb4cb35 --- /dev/null +++ b/core/src/main/resources/hudson/model/queue/CauseOfBlockage/BecauseLabelIsBusy/summary_es.properties @@ -0,0 +1,22 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + diff --git a/core/src/main/resources/hudson/model/queue/CauseOfBlockage/BecauseLabelIsBusy/summary_ja.properties b/core/src/main/resources/hudson/model/queue/CauseOfBlockage/BecauseLabelIsBusy/summary_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..971e55c4049054302e7d13fc897877a8429d25b4 --- /dev/null +++ b/core/src/main/resources/hudson/model/queue/CauseOfBlockage/BecauseLabelIsBusy/summary_ja.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +description={0}\u3067\u5229\u7528\u53EF\u80FD\u306A\u30A8\u30B0\u30BC\u30AD\u30E5\u30FC\u30BF\u30FC\u3092\u5F85\u6A5F\u4E2D \ No newline at end of file diff --git a/core/src/main/resources/hudson/model/queue/CauseOfBlockage/BecauseLabelIsOffline/summary.jelly b/core/src/main/resources/hudson/model/queue/CauseOfBlockage/BecauseLabelIsOffline/summary.jelly new file mode 100644 index 0000000000000000000000000000000000000000..390552849c8c43b83c6fe3602d74b2403f132190 --- /dev/null +++ b/core/src/main/resources/hudson/model/queue/CauseOfBlockage/BecauseLabelIsOffline/summary.jelly @@ -0,0 +1,31 @@ + + + + + + ${it.label.name} + + + \ No newline at end of file diff --git a/core/src/main/resources/hudson/model/queue/CauseOfBlockage/BecauseLabelIsOffline/summary.properties b/core/src/main/resources/hudson/model/queue/CauseOfBlockage/BecauseLabelIsOffline/summary.properties new file mode 100644 index 0000000000000000000000000000000000000000..31255c287f2e3bc00ba4317c8852faa7ceae84fc --- /dev/null +++ b/core/src/main/resources/hudson/model/queue/CauseOfBlockage/BecauseLabelIsOffline/summary.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +description=All nodes of label ''{0}'' are offline \ No newline at end of file diff --git a/core/src/main/resources/hudson/model/queue/CauseOfBlockage/BecauseLabelIsOffline/summary_es.properties b/core/src/main/resources/hudson/model/queue/CauseOfBlockage/BecauseLabelIsOffline/summary_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..5426c35fc57a8cd3fd8ff569eacf41a25c9247dc --- /dev/null +++ b/core/src/main/resources/hudson/model/queue/CauseOfBlockage/BecauseLabelIsOffline/summary_es.properties @@ -0,0 +1,22 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + diff --git a/core/src/main/resources/hudson/model/queue/CauseOfBlockage/BecauseLabelIsOffline/summary_ja.properties b/core/src/main/resources/hudson/model/queue/CauseOfBlockage/BecauseLabelIsOffline/summary_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..627d7154a3a3822ede9c385c623674b8bda035c3 --- /dev/null +++ b/core/src/main/resources/hudson/model/queue/CauseOfBlockage/BecauseLabelIsOffline/summary_ja.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +description=\u30E9\u30D9\u30EB ''{0}'' \u306E\u5168\u30CE\u30FC\u30C9\u304C\u30AA\u30D5\u30E9\u30A4\u30F3 diff --git a/core/src/main/resources/hudson/model/queue/CauseOfBlockage/BecauseNodeIsBusy/summary.jelly b/core/src/main/resources/hudson/model/queue/CauseOfBlockage/BecauseNodeIsBusy/summary.jelly new file mode 100644 index 0000000000000000000000000000000000000000..2f6f6ebe45b3be8c5d547559f9de9dda4e457cc6 --- /dev/null +++ b/core/src/main/resources/hudson/model/queue/CauseOfBlockage/BecauseNodeIsBusy/summary.jelly @@ -0,0 +1,31 @@ + + + + + + + + + \ No newline at end of file diff --git a/core/src/main/resources/hudson/model/queue/CauseOfBlockage/BecauseNodeIsBusy/summary.properties b/core/src/main/resources/hudson/model/queue/CauseOfBlockage/BecauseNodeIsBusy/summary.properties new file mode 100644 index 0000000000000000000000000000000000000000..159afb37a29155902de12b36f734c62cbf2311b8 --- /dev/null +++ b/core/src/main/resources/hudson/model/queue/CauseOfBlockage/BecauseNodeIsBusy/summary.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +description=Waiting for next available executor on {0} \ No newline at end of file diff --git a/core/src/main/resources/hudson/model/queue/CauseOfBlockage/BecauseNodeIsBusy/summary_es.properties b/core/src/main/resources/hudson/model/queue/CauseOfBlockage/BecauseNodeIsBusy/summary_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..5426c35fc57a8cd3fd8ff569eacf41a25c9247dc --- /dev/null +++ b/core/src/main/resources/hudson/model/queue/CauseOfBlockage/BecauseNodeIsBusy/summary_es.properties @@ -0,0 +1,22 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + diff --git a/core/src/main/resources/hudson/model/queue/CauseOfBlockage/BecauseNodeIsBusy/summary_ja.properties b/core/src/main/resources/hudson/model/queue/CauseOfBlockage/BecauseNodeIsBusy/summary_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..971e55c4049054302e7d13fc897877a8429d25b4 --- /dev/null +++ b/core/src/main/resources/hudson/model/queue/CauseOfBlockage/BecauseNodeIsBusy/summary_ja.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +description={0}\u3067\u5229\u7528\u53EF\u80FD\u306A\u30A8\u30B0\u30BC\u30AD\u30E5\u30FC\u30BF\u30FC\u3092\u5F85\u6A5F\u4E2D \ No newline at end of file diff --git a/core/src/main/resources/hudson/model/queue/CauseOfBlockage/BecauseNodeIsOffline/summary.jelly b/core/src/main/resources/hudson/model/queue/CauseOfBlockage/BecauseNodeIsOffline/summary.jelly new file mode 100644 index 0000000000000000000000000000000000000000..2f6f6ebe45b3be8c5d547559f9de9dda4e457cc6 --- /dev/null +++ b/core/src/main/resources/hudson/model/queue/CauseOfBlockage/BecauseNodeIsOffline/summary.jelly @@ -0,0 +1,31 @@ + + + + + + + + + \ No newline at end of file diff --git a/core/src/main/resources/hudson/model/queue/CauseOfBlockage/BecauseNodeIsOffline/summary.properties b/core/src/main/resources/hudson/model/queue/CauseOfBlockage/BecauseNodeIsOffline/summary.properties new file mode 100644 index 0000000000000000000000000000000000000000..451565147d622089e334e55a3db1acf4ee375ac3 --- /dev/null +++ b/core/src/main/resources/hudson/model/queue/CauseOfBlockage/BecauseNodeIsOffline/summary.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +description={0} is offline \ No newline at end of file diff --git a/core/src/main/resources/hudson/model/queue/CauseOfBlockage/BecauseNodeIsOffline/summary_es.properties b/core/src/main/resources/hudson/model/queue/CauseOfBlockage/BecauseNodeIsOffline/summary_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..5426c35fc57a8cd3fd8ff569eacf41a25c9247dc --- /dev/null +++ b/core/src/main/resources/hudson/model/queue/CauseOfBlockage/BecauseNodeIsOffline/summary_es.properties @@ -0,0 +1,22 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + diff --git a/core/src/main/resources/hudson/model/queue/CauseOfBlockage/BecauseNodeIsOffline/summary_ja.properties b/core/src/main/resources/hudson/model/queue/CauseOfBlockage/BecauseNodeIsOffline/summary_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..e7c0cbc1a067d95d4f7d2849a6ecceb762775002 --- /dev/null +++ b/core/src/main/resources/hudson/model/queue/CauseOfBlockage/BecauseNodeIsOffline/summary_ja.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +description={0} \u304C\u30AA\u30D5\u30E9\u30A4\u30F3 diff --git a/core/src/main/resources/hudson/model/queue/CauseOfBlockage/summary.jelly b/core/src/main/resources/hudson/model/queue/CauseOfBlockage/summary.jelly new file mode 100644 index 0000000000000000000000000000000000000000..b37c0ffb585d2cbb5adcb4f82581f9cbab92fa5b --- /dev/null +++ b/core/src/main/resources/hudson/model/queue/CauseOfBlockage/summary.jelly @@ -0,0 +1,28 @@ + + + + + ${it.shortDescription} + \ No newline at end of file diff --git a/core/src/main/resources/hudson/model/queue/Messages.properties b/core/src/main/resources/hudson/model/queue/Messages.properties new file mode 100644 index 0000000000000000000000000000000000000000..420953d233dd1f8709e6075601870384ab6b6e93 --- /dev/null +++ b/core/src/main/resources/hudson/model/queue/Messages.properties @@ -0,0 +1 @@ +QueueSorter.installDefaultQueueSorter=Installing default queue sorter \ No newline at end of file diff --git a/core/src/main/resources/hudson/model/queue/Messages_da.properties b/core/src/main/resources/hudson/model/queue/Messages_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..9144680aa84752060dc8c9859c6dfc82534bc281 --- /dev/null +++ b/core/src/main/resources/hudson/model/queue/Messages_da.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +QueueSorter.installDefaultQueueSorter=Installerer standard k\u00f8sorteringsr\u00e6kkef\u00f8lge diff --git a/core/src/main/resources/hudson/model/queue/Messages_de.properties b/core/src/main/resources/hudson/model/queue/Messages_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..0225d821ab5413482312a40ab4ab277c0fedb258 --- /dev/null +++ b/core/src/main/resources/hudson/model/queue/Messages_de.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +QueueSorter.installDefaultQueueSorter=Installiere Default-Sortierung der Build-Warteschlage (build queue) \ No newline at end of file diff --git a/core/src/main/resources/hudson/model/queue/Messages_es.properties b/core/src/main/resources/hudson/model/queue/Messages_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..480e9d7053562dea8cb86cfa2d19aa22df89b048 --- /dev/null +++ b/core/src/main/resources/hudson/model/queue/Messages_es.properties @@ -0,0 +1 @@ +QueueSorter.installDefaultQueueSorter=Instalando el ordenador de colas por defecto diff --git a/core/src/main/resources/hudson/model/queue/Messages_ja.properties b/core/src/main/resources/hudson/model/queue/Messages_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..67e65edd5cf2b55fc35cebd767e08135a7a10b8d --- /dev/null +++ b/core/src/main/resources/hudson/model/queue/Messages_ja.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +QueueSorter.installDefaultQueueSorter=\u30C7\u30D5\u30A9\u30EB\u30C8\u306EQueue\u30BD\u30FC\u30BF\u30FC\u3092\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB diff --git a/core/src/main/resources/hudson/model/queue/Messages_pt_BR.properties b/core/src/main/resources/hudson/model/queue/Messages_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..ac326da7bb15fdb63c51ea747f157b6a9bb1996c --- /dev/null +++ b/core/src/main/resources/hudson/model/queue/Messages_pt_BR.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +# Installing default queue sorter +QueueSorter.installDefaultQueueSorter= diff --git a/core/src/main/resources/hudson/node_monitors/AbstractDiskSpaceMonitor/config.jelly b/core/src/main/resources/hudson/node_monitors/AbstractDiskSpaceMonitor/config.jelly new file mode 100644 index 0000000000000000000000000000000000000000..d050916defe0bda9a0c696446cb2538699b803a8 --- /dev/null +++ b/core/src/main/resources/hudson/node_monitors/AbstractDiskSpaceMonitor/config.jelly @@ -0,0 +1,28 @@ + + + + + + \ No newline at end of file diff --git a/core/src/main/resources/hudson/node_monitors/AbstractDiskSpaceMonitor/config_da.properties b/core/src/main/resources/hudson/node_monitors/AbstractDiskSpaceMonitor/config_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..4ea7bd50459a6a4722ccd8a34ceb3be9ccd612fc --- /dev/null +++ b/core/src/main/resources/hudson/node_monitors/AbstractDiskSpaceMonitor/config_da.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Free\ Space\ Threshold=Ledig Plads T\u00e6rskel diff --git a/core/src/main/resources/hudson/node_monitors/AbstractDiskSpaceMonitor/config_de.properties b/core/src/main/resources/hudson/node_monitors/AbstractDiskSpaceMonitor/config_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..48606462b2080f0c1044a63e43473644c79d7b7b --- /dev/null +++ b/core/src/main/resources/hudson/node_monitors/AbstractDiskSpaceMonitor/config_de.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Free\ Space\ Threshold=Freier Plattenplatz Mindestgrenze \ No newline at end of file diff --git a/core/src/main/resources/hudson/node_monitors/AbstractDiskSpaceMonitor/config_es.properties b/core/src/main/resources/hudson/node_monitors/AbstractDiskSpaceMonitor/config_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..8123df36de0d9bca520493a68455da17e82e660e --- /dev/null +++ b/core/src/main/resources/hudson/node_monitors/AbstractDiskSpaceMonitor/config_es.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Free\ Space\ Threshold=Umbral de espacio libre diff --git a/core/src/main/resources/hudson/node_monitors/AbstractDiskSpaceMonitor/config_fr.properties b/core/src/main/resources/hudson/node_monitors/AbstractDiskSpaceMonitor/config_fr.properties new file mode 100644 index 0000000000000000000000000000000000000000..81b41053ddd67950bc5bb72e53e8acf7ea79e8e1 --- /dev/null +++ b/core/src/main/resources/hudson/node_monitors/AbstractDiskSpaceMonitor/config_fr.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Free\ Space\ Threshold=Seuil d''espace libre diff --git a/core/src/main/resources/hudson/node_monitors/AbstractDiskSpaceMonitor/config_ja.properties b/core/src/main/resources/hudson/node_monitors/AbstractDiskSpaceMonitor/config_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..896e36d81ab41e3721a6b492ed58edecbcf5aec6 --- /dev/null +++ b/core/src/main/resources/hudson/node_monitors/AbstractDiskSpaceMonitor/config_ja.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Free\ Space\ Threshold=\u7A7A\u304D\u5BB9\u91CF\u306E\u95BE\u5024 \ No newline at end of file diff --git a/core/src/main/resources/hudson/node_monitors/AbstractDiskSpaceMonitor/config_pt_BR.properties b/core/src/main/resources/hudson/node_monitors/AbstractDiskSpaceMonitor/config_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..a7fbf2ca324d667f66850fa078d9b8aba47f47ea --- /dev/null +++ b/core/src/main/resources/hudson/node_monitors/AbstractDiskSpaceMonitor/config_pt_BR.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Free\ Space\ Threshold= diff --git a/core/src/main/resources/hudson/node_monitors/AbstractDiskSpaceMonitor/config_ru.properties b/core/src/main/resources/hudson/node_monitors/AbstractDiskSpaceMonitor/config_ru.properties new file mode 100644 index 0000000000000000000000000000000000000000..107dcbc8383808097d0ba621be052d4c002e399a --- /dev/null +++ b/core/src/main/resources/hudson/node_monitors/AbstractDiskSpaceMonitor/config_ru.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Free\ Space\ Threshold=\u041F\u043E\u0440\u043E\u0433\u043E\u0432\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 diff --git a/core/src/main/resources/hudson/node_monitors/AbstractDiskSpaceMonitor/help-freeSpaceThreshold.html b/core/src/main/resources/hudson/node_monitors/AbstractDiskSpaceMonitor/help-freeSpaceThreshold.html new file mode 100644 index 0000000000000000000000000000000000000000..e3c7ce0d8e0cd84983bc216ad51064942a4c2ceb --- /dev/null +++ b/core/src/main/resources/hudson/node_monitors/AbstractDiskSpaceMonitor/help-freeSpaceThreshold.html @@ -0,0 +1,5 @@ +
    + This option configures the amount of minimum amount of free disk space + desired for a slave's proper operation, such as "1.5GB", "100KB", etc. + If a slave is found to have less free disk space than this amount, it will be marked offline. +
    \ No newline at end of file diff --git a/core/src/main/resources/hudson/node_monitors/AbstractDiskSpaceMonitor/help-freeSpaceThreshold_de.html b/core/src/main/resources/hudson/node_monitors/AbstractDiskSpaceMonitor/help-freeSpaceThreshold_de.html new file mode 100644 index 0000000000000000000000000000000000000000..1478dd66d0ae446bc6ecfe562d1e4a00243251c2 --- /dev/null +++ b/core/src/main/resources/hudson/node_monitors/AbstractDiskSpaceMonitor/help-freeSpaceThreshold_de.html @@ -0,0 +1,6 @@ +
    + Diese Option legt die Mindestgrenze für den freien Plattenplatz fest, + den ein Slave-Knoten zur korrekten Ausführung benötigt, z.B. "1.5GB", "100KB". + Unterschreitet der freie Plattenplatz eines Slave-Knotens diese Grenze, wird er + offline genommen. +
    \ No newline at end of file diff --git a/core/src/main/resources/hudson/node_monitors/AbstractDiskSpaceMonitor/help-freeSpaceThreshold_ja.html b/core/src/main/resources/hudson/node_monitors/AbstractDiskSpaceMonitor/help-freeSpaceThreshold_ja.html new file mode 100644 index 0000000000000000000000000000000000000000..a34d9e6430608fe0d9d9a7237a2b26acf09957bf --- /dev/null +++ b/core/src/main/resources/hudson/node_monitors/AbstractDiskSpaceMonitor/help-freeSpaceThreshold_ja.html @@ -0,0 +1,4 @@ +
    + ã“ã®ã‚ªãƒ—ションã¯ã€ã‚¹ãƒ¬ãƒ¼ãƒ–ãŒæ­£å¸¸å‹•ä½œã™ã‚‹ãŸã‚ã«æœ€ä½Žé™å¿…è¦ãªç©ºãディスク容é‡ã‚’設定ã—ã¾ã™(例 "1.5GB"ã€"100KB"ãªã©)。 + スレーブã®ç©ºã容é‡ãŒã“ã®å€¤ã‚ˆã‚Šå°‘ãªã„å ´åˆã€ã‚ªãƒ•ãƒ©ã‚¤ãƒ³ã«ãªã‚Šã¾ã™ã€‚ +
    \ No newline at end of file diff --git a/core/src/main/resources/hudson/node_monitors/ArchitectureMonitor/help_de.html b/core/src/main/resources/hudson/node_monitors/ArchitectureMonitor/help_de.html new file mode 100644 index 0000000000000000000000000000000000000000..635d1ec1e3ac00447768535c8b00fe4a1c2cf81d --- /dev/null +++ b/core/src/main/resources/hudson/node_monitors/ArchitectureMonitor/help_de.html @@ -0,0 +1,4 @@ +
    + Zeigt lediglich zur Information das Betriebssystem eines Slaves an. + Diese Anzeige beeinflusst niemals den Online/Offline-Status eines Slaves. +
    diff --git a/core/src/main/resources/hudson/node_monitors/ClockMonitor/help_de.html b/core/src/main/resources/hudson/node_monitors/ClockMonitor/help_de.html new file mode 100644 index 0000000000000000000000000000000000000000..00bd973b69db53e7dd230e437608563d94ac15ea --- /dev/null +++ b/core/src/main/resources/hudson/node_monitors/ClockMonitor/help_de.html @@ -0,0 +1,9 @@ +
    + Überwacht die Zeitdifferenz zwischen dem Master und den Slaves. + Obwohl Hudson mit zeitlichen Differenzen zwischen Rechnern zurechtkommt, + neigen Versionsmanagementsysteme und verteilte Dateizugriffe unter diesen + Umständen zu merkwürdigen Problemen. + +

    + Um Uhren auf mehreren Rechnern synchron zu halten, ziehen Sie NTP im Betracht. +

    \ No newline at end of file diff --git a/core/src/main/resources/hudson/node_monitors/DiskSpaceMonitor/help_de.html b/core/src/main/resources/hudson/node_monitors/DiskSpaceMonitor/help_de.html new file mode 100644 index 0000000000000000000000000000000000000000..abd0376f12479710502e2595233737feb584a082 --- /dev/null +++ b/core/src/main/resources/hudson/node_monitors/DiskSpaceMonitor/help_de.html @@ -0,0 +1,8 @@ +
    + Ãœberwacht den freien Festplattenplatz in $HUDSON_HOME auf jedem Slave. + Unterschreitet der freie Platz eine bestimmte Schwelle, so wird der Slave offline genommen. + +

    + In diesem Verzeichnis $HUDSON_HOME finden alle Builds statt, so daß ein + volles Verzeichnis Builds scheitern lässt. +

    \ No newline at end of file diff --git a/core/src/main/resources/hudson/node_monitors/DiskSpaceMonitorDescriptor/DiskSpace/cause.jelly b/core/src/main/resources/hudson/node_monitors/DiskSpaceMonitorDescriptor/DiskSpace/cause.jelly new file mode 100644 index 0000000000000000000000000000000000000000..fda2bd0586600d7ba2fddb47a30d7f451d69d177 --- /dev/null +++ b/core/src/main/resources/hudson/node_monitors/DiskSpaceMonitorDescriptor/DiskSpace/cause.jelly @@ -0,0 +1,27 @@ + + + +

    ${%blurb(it.gbLeft)}

    +
    diff --git a/core/src/main/resources/hudson/node_monitors/DiskSpaceMonitorDescriptor/DiskSpace/cause.properties b/core/src/main/resources/hudson/node_monitors/DiskSpaceMonitorDescriptor/DiskSpace/cause.properties new file mode 100644 index 0000000000000000000000000000000000000000..eb85bb61fb7d79b92135990a44f0e375b9ac3ac3 --- /dev/null +++ b/core/src/main/resources/hudson/node_monitors/DiskSpaceMonitorDescriptor/DiskSpace/cause.properties @@ -0,0 +1,22 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +blurb=Disk space is too low. Only {0}GB left. \ No newline at end of file diff --git a/core/src/main/resources/hudson/node_monitors/DiskSpaceMonitorDescriptor/DiskSpace/cause_da.properties b/core/src/main/resources/hudson/node_monitors/DiskSpaceMonitorDescriptor/DiskSpace/cause_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..cea15312ae2a9e1840c9564346ef93a3449023f1 --- /dev/null +++ b/core/src/main/resources/hudson/node_monitors/DiskSpaceMonitorDescriptor/DiskSpace/cause_da.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +blurb=Disk plads for lav. Kun {0}GB tilbage. diff --git a/core/src/main/resources/hudson/node_monitors/DiskSpaceMonitorDescriptor/DiskSpace/cause_de.properties b/core/src/main/resources/hudson/node_monitors/DiskSpaceMonitorDescriptor/DiskSpace/cause_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..b5e4ec1f5d00264c999f366a40723fb98fe13c5c --- /dev/null +++ b/core/src/main/resources/hudson/node_monitors/DiskSpaceMonitorDescriptor/DiskSpace/cause_de.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +blurb=Zu wenig Festplattenplatz: Nur noch {0}GB frei. \ No newline at end of file diff --git a/core/src/main/resources/hudson/node_monitors/DiskSpaceMonitorDescriptor/DiskSpace/cause_es.properties b/core/src/main/resources/hudson/node_monitors/DiskSpaceMonitorDescriptor/DiskSpace/cause_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..fc3c56ea6051c0adbff00241aacafb6672a14a1f --- /dev/null +++ b/core/src/main/resources/hudson/node_monitors/DiskSpaceMonitorDescriptor/DiskSpace/cause_es.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +blurb=El espacio en disco es muy bajo, sólo quedan {0}GB. + diff --git a/core/src/main/resources/hudson/node_monitors/DiskSpaceMonitorDescriptor/DiskSpace/cause_ja.properties b/core/src/main/resources/hudson/node_monitors/DiskSpaceMonitorDescriptor/DiskSpace/cause_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..c8f2f160289e92f95743b40f7ffb7bbd95a7f70d --- /dev/null +++ b/core/src/main/resources/hudson/node_monitors/DiskSpaceMonitorDescriptor/DiskSpace/cause_ja.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +blurb=\u30C7\u30A3\u30B9\u30AF\u5BB9\u91CF\u304C\u5C11\u306A\u3059\u304E\u307E\u3059\u3002\u6B8B\u308A{0}GB\u3067\u3059\u3002 \ No newline at end of file diff --git a/core/src/main/resources/hudson/node_monitors/DiskSpaceMonitorDescriptor/DiskSpace/cause_pt_BR.properties b/core/src/main/resources/hudson/node_monitors/DiskSpaceMonitorDescriptor/DiskSpace/cause_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..35d09854129bb7ae3cd8268ca0e128e037be6625 --- /dev/null +++ b/core/src/main/resources/hudson/node_monitors/DiskSpaceMonitorDescriptor/DiskSpace/cause_pt_BR.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +# Disk space is too low. Only {0}GB left. +blurb=\ +# Estes usu\u00E1rios podem se logar no Hudson. Este \u00E9 um super conjunto desta lista, \ diff --git a/core/src/main/resources/hudson/node_monitors/Messages_da.properties b/core/src/main/resources/hudson/node_monitors/Messages_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..446f325e83ad8486fe20371a13468e8c97a3739e --- /dev/null +++ b/core/src/main/resources/hudson/node_monitors/Messages_da.properties @@ -0,0 +1,31 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +ClockMonitor.DisplayName=Clock Forskel +ResponseTimeMonitor.TimeOut=Time out p\u00e5 sidste {0} fors\u00f8g +DiskSpaceMonitor.MarkedOffline=Tager {0} offline midlertidigt grundet mangel p\u00e5 diskplads +DiskSpaceMonitor.DisplayName=Ledig Disk Plads +TemporarySpaceMonitor.DisplayName=Ledig Temp Plads +SwapSpaceMonitor.DisplayName=Ledig Swap Plads +ArchitectureMonitor.DisplayName=Arkitektur +ResponseTimeMonitor.MarkedOffline=Tager {0} offline midlertidigt da den ikke svarer +ResponseTimeMonitor.DisplayName=Respons Tid diff --git a/core/src/main/resources/hudson/node_monitors/Messages_de.properties b/core/src/main/resources/hudson/node_monitors/Messages_de.properties index cd45f4ba3aa41042ae4de93218c611aaf8632f36..4bbeb7475ae99063d274a75e5aee60215b238e79 100644 --- a/core/src/main/resources/hudson/node_monitors/Messages_de.properties +++ b/core/src/main/resources/hudson/node_monitors/Messages_de.properties @@ -21,6 +21,15 @@ # THE SOFTWARE. ArchitectureMonitor.DisplayName=Architektur -ClockMonitor.DisplayName=Zeitdifferenzen -DiskSpaceMonitor.DisplayName=Verf\u00FCgbarer Festplattenplatz +ClockMonitor.DisplayName=Zeitdifferenz +DiskSpaceMonitor.DisplayName=Freier Plattenplatz +DiskSpaceMonitor.MarkedOffline=Nehme {0} temporär offline, da der Festplattenplatz knapp geworden ist. +ResponseTimeMonitor.DisplayName=Antwortzeit +ResponseTimeMonitor.MarkedOffline=Nehme {0} temporär offline, weil Slave nicht antwortet. +ResponseTimeMonitor.TimeOut= {0} mal keine Antwort +SwapSpaceMonitor.DisplayName=Freier Swap Space +TemporarySpaceMonitor.DisplayName=Freier TEMP-Platz + + + \ No newline at end of file diff --git a/core/src/main/resources/hudson/node_monitors/Messages_es.properties b/core/src/main/resources/hudson/node_monitors/Messages_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..67c6fd3a4502bef1c57b51b3d52fe9892988c4d1 --- /dev/null +++ b/core/src/main/resources/hudson/node_monitors/Messages_es.properties @@ -0,0 +1,31 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Eric Lefevre-Ardant, Seiji Sogabe, Thomas J. Black +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +ArchitectureMonitor.DisplayName=Arquitectura +ClockMonitor.DisplayName=Diferencia entre los relojes +DiskSpaceMonitor.MarkedOffline=Poniendo temporalmente {0} fuera de línea debido a falta de espacio en disco duro +DiskSpaceMonitor.DisplayName=Espacio de disco libre +ResponseTimeMonitor.DisplayName=Tiempo de respuesta +ResponseTimeMonitor.MarkedOffline=Poniendo temporalmente {0} fuera de línea porque no responde +ResponseTimeMonitor.TimeOut=Se sobrepasó el tiempo de espera en el último intento de {0} +SwapSpaceMonitor.DisplayName=Espacio de intercambio libre +TemporarySpaceMonitor.DisplayName=Espacio temporal libre diff --git a/core/src/main/resources/hudson/node_monitors/Messages_fr.properties b/core/src/main/resources/hudson/node_monitors/Messages_fr.properties index 1077bb44266aa4d34e7b68a4ba5682ec600f607e..2f0d91ce22e9615973e4d4c336e8f4f94330ef80 100644 --- a/core/src/main/resources/hudson/node_monitors/Messages_fr.properties +++ b/core/src/main/resources/hudson/node_monitors/Messages_fr.properties @@ -21,10 +21,10 @@ # THE SOFTWARE. ArchitectureMonitor.DisplayName=Architecture -ClockMonitor.DisplayName=Diff\u00C3\u00A9rence entre les horloges +ClockMonitor.DisplayName=Différence entre les horloges DiskSpaceMonitor.DisplayName=Espace disque disponible -DiskSpaceMonitor.MarkedOffline=D\u00C3\u00A9connexion temporaire de {0} par cause de manque d''espace disque -ResponseTimeMonitor.DisplayName=Temps de r\u00C3\u00A9ponse -ResponseTimeMonitor.MarkedOffline={0} est marqu\u00C3\u00A9 comme d\u00C3\u00A9connect\u00C3\u00A9 temporairement, parce qu''il ne r\u00C3\u00A9pond pas +DiskSpaceMonitor.MarkedOffline=Déconnexion temporaire de {0} par cause de manque d''espace disque +ResponseTimeMonitor.DisplayName=Temps de réponse +ResponseTimeMonitor.MarkedOffline={0} est marqué comme déconnecté temporairement, parce qu''il ne répond pas ResponseTimeMonitor.TimeOut=Time out du dernier essai {0} SwapSpaceMonitor.DisplayName=Espace de swap disponible diff --git a/core/src/main/resources/hudson/node_monitors/Messages_pt_BR.properties b/core/src/main/resources/hudson/node_monitors/Messages_pt_BR.properties index 634b9bb38318b4aa7f58523e241c4fb19097af3a..4902e3908fcc42b6f76ffc3018d1974f99dcc1a4 100644 --- a/core/src/main/resources/hudson/node_monitors/Messages_pt_BR.properties +++ b/core/src/main/resources/hudson/node_monitors/Messages_pt_BR.properties @@ -22,4 +22,15 @@ ArchitectureMonitor.DisplayName=Arquitetura ClockMonitor.DisplayName=Diferen\u00E7a de Rel\u00F3gio -DiskSpaceMonitor.DisplayName=Espa\u00E7o Livre em Disco \ No newline at end of file +DiskSpaceMonitor.DisplayName=Espa\u00E7o Livre em Disco# Time out for last {0} try +ResponseTimeMonitor.TimeOut= +# Free Temp Space +TemporarySpaceMonitor.DisplayName= +# Response Time +ResponseTimeMonitor.DisplayName= +# Making {0} offline temporarily due to the lack of disk space +DiskSpaceMonitor.MarkedOffline= +# Free Swap Space +SwapSpaceMonitor.DisplayName= +# Making {0} offline temporarily because it''s not responding +ResponseTimeMonitor.MarkedOffline= diff --git a/core/src/main/resources/hudson/node_monitors/MonitorMarkedNodeOffline/message_da.properties b/core/src/main/resources/hudson/node_monitors/MonitorMarkedNodeOffline/message_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..6f92a3dbdcf3f12fdd3646f19ded1aa0188b49a2 --- /dev/null +++ b/core/src/main/resources/hudson/node_monitors/MonitorMarkedNodeOffline/message_da.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +blurb=Hudson tog nogle slaver offline, da deres helbredsparametre kom under en t\u00e6rskelv\u00e6rdi. +Dismiss=Luk diff --git a/core/src/main/resources/hudson/node_monitors/MonitorMarkedNodeOffline/message_de.properties b/core/src/main/resources/hudson/node_monitors/MonitorMarkedNodeOffline/message_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..65629c91db79c3641de2a6f89a6d3b2ee6208369 --- /dev/null +++ b/core/src/main/resources/hudson/node_monitors/MonitorMarkedNodeOffline/message_de.properties @@ -0,0 +1,5 @@ +blurb=\ + Hudson hat einige Slaves offline genommen, da deren Gesundheitszustand \ + eine bestimmte Schwelle unterschritten hatte. Wenn Sie nicht möchten, daß Hudson dies vornimmt, \ + können Sie die Konfiguration ändern. +Dismiss=Schließen diff --git a/core/src/main/resources/hudson/node_monitors/MonitorMarkedNodeOffline/message_es.properties b/core/src/main/resources/hudson/node_monitors/MonitorMarkedNodeOffline/message_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..cc2887d430727ca8a2a88313bc445d8e1e600494 --- /dev/null +++ b/core/src/main/resources/hudson/node_monitors/MonitorMarkedNodeOffline/message_es.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +blurb=Hudson puso algún esclavo fuera de línea porque su estado de disponibilidad \ + ha bajado por debajo e un umbral. Si quieres que Hudson no haga ésto, cambia la configuración.. +Dismiss=Descartar diff --git a/core/src/main/resources/hudson/node_monitors/MonitorMarkedNodeOffline/message_ja.properties b/core/src/main/resources/hudson/node_monitors/MonitorMarkedNodeOffline/message_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..c6193420e535c226cf9e2863ff66f25a69b5a1e7 --- /dev/null +++ b/core/src/main/resources/hudson/node_monitors/MonitorMarkedNodeOffline/message_ja.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi,Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +blurb=\ + \u30B9\u30EC\u30FC\u30D6\u306E\u72B6\u614B\u304C\u95BE\u5024\u3092\u4E0B\u56DE\u3063\u305F\u305F\u3081\u3001\u30B9\u30EC\u30FC\u30D6\u3092\u30AA\u30D5\u30E9\u30A4\u30F3\u306B\u3057\u307E\u3057\u305F\u3002\ + \u30AA\u30D5\u30E9\u30A4\u30F3\u306B\u3057\u306A\u3044\u3088\u3046\u306B\u3059\u308B\u306B\u306F\u3001\u8A2D\u5B9A\u3092\u5909\u66F4\u3057\u3066\u304F\u3060\u3055\u3044\u3002 +Dismiss=\u7121\u8996 \ No newline at end of file diff --git a/core/src/main/resources/hudson/node_monitors/MonitorMarkedNodeOffline/message_pt_BR.properties b/core/src/main/resources/hudson/node_monitors/MonitorMarkedNodeOffline/message_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..3814b40d304ec801e2d25594ed898d2b91f1dcc1 --- /dev/null +++ b/core/src/main/resources/hudson/node_monitors/MonitorMarkedNodeOffline/message_pt_BR.properties @@ -0,0 +1,28 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Dismiss= +# Hudson took some slaves offline because their key health metrics went below a threshold. \ +# If you don''t want Hudson to do this, \ +# change the setting. +blurb=\ +# Estes usu\u00E1rios podem se logar no Hudson. Este \u00E9 um super conjunto desta lista, \ diff --git a/core/src/main/resources/hudson/node_monitors/ResponseTimeMonitor/Data/cause.jelly b/core/src/main/resources/hudson/node_monitors/ResponseTimeMonitor/Data/cause.jelly new file mode 100644 index 0000000000000000000000000000000000000000..31cc91039f8831a0ae2ee9465122b601a3ddced9 --- /dev/null +++ b/core/src/main/resources/hudson/node_monitors/ResponseTimeMonitor/Data/cause.jelly @@ -0,0 +1,27 @@ + + + +

    ${%Ping response time is too long or timed out.}

    +
    diff --git a/core/src/main/resources/hudson/node_monitors/ResponseTimeMonitor/Data/cause_da.properties b/core/src/main/resources/hudson/node_monitors/ResponseTimeMonitor/Data/cause_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..f3b6b5dc252fbb87ed442456d6772c5e6c65929d --- /dev/null +++ b/core/src/main/resources/hudson/node_monitors/ResponseTimeMonitor/Data/cause_da.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Ping\ response\ time\ is\ too\ long\ or\ timed\ out.=Ping svartider er for lange, eller timer ud. diff --git a/core/src/main/resources/hudson/node_monitors/ResponseTimeMonitor/Data/cause_de.properties b/core/src/main/resources/hudson/node_monitors/ResponseTimeMonitor/Data/cause_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..bf651a59d8da7e60f8497528468837f57d8bdeef --- /dev/null +++ b/core/src/main/resources/hudson/node_monitors/ResponseTimeMonitor/Data/cause_de.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +Ping\ response\ time\ is\ too\ long\ or\ timed\ out.=\ + Ping-Anwortzeit zu groß bzw. Time-out aufgetreten. \ No newline at end of file diff --git a/core/src/main/resources/hudson/node_monitors/ResponseTimeMonitor/Data/cause_es.properties b/core/src/main/resources/hudson/node_monitors/ResponseTimeMonitor/Data/cause_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..7a586d2088b3a9c5fc602c3c7ec19321e036202b --- /dev/null +++ b/core/src/main/resources/hudson/node_monitors/ResponseTimeMonitor/Data/cause_es.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Ping\ response\ time\ is\ too\ long\ or\ timed\ out.=La respuesta al ''ping'' tarda mucho o falló. diff --git a/core/src/main/resources/hudson/node_monitors/ResponseTimeMonitor/Data/cause_ja.properties b/core/src/main/resources/hudson/node_monitors/ResponseTimeMonitor/Data/cause_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..34604111afe0cedeb65792142899131e4746c6ac --- /dev/null +++ b/core/src/main/resources/hudson/node_monitors/ResponseTimeMonitor/Data/cause_ja.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +Ping\ response\ time\ is\ too\ long\ or\ timed\ out.=\ + Ping\u306E\u5FDC\u7B54\u6642\u9593\u304C\u9577\u3059\u304E\u308B\u304B\u3001\u30BF\u30A4\u30E0\u30A2\u30A6\u30C8\u3067\u3059\u3002 \ No newline at end of file diff --git a/core/src/main/resources/hudson/node_monitors/ResponseTimeMonitor/Data/cause_pt_BR.properties b/core/src/main/resources/hudson/node_monitors/ResponseTimeMonitor/Data/cause_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..42364d87ff0c84e164d6cc0304905bc31b06ba68 --- /dev/null +++ b/core/src/main/resources/hudson/node_monitors/ResponseTimeMonitor/Data/cause_pt_BR.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Ping\ response\ time\ is\ too\ long\ or\ timed\ out.= diff --git a/core/src/main/resources/hudson/node_monitors/ResponseTimeMonitor/help_de.html b/core/src/main/resources/hudson/node_monitors/ResponseTimeMonitor/help_de.html new file mode 100644 index 0000000000000000000000000000000000000000..a86c7c2f8ea8013833c019844edc130fd88d72d8 --- /dev/null +++ b/core/src/main/resources/hudson/node_monitors/ResponseTimeMonitor/help_de.html @@ -0,0 +1,9 @@ +
    + Misst die Laufzeit vom Master zum Slave und zurück. Überschreitet die Laufzeit + wiederholt einen Schwellwert, so wird der Slave offline genommen. + +

    + Dies ist nützlich, um abgestürzte Slaves auszumachen oder Netzwerkprobleme zu erkennen. + Präziser ausgedrückt, schickt der Master ein "NO-OP"-Kommando an den Slave und misst die Zeit, + die vergeht, bis das Ergebnis des NO-OP-Kommandos wieder eintrifft. +

    \ No newline at end of file diff --git a/core/src/main/resources/hudson/node_monitors/SwapSpaceMonitor/help_de.html b/core/src/main/resources/hudson/node_monitors/SwapSpaceMonitor/help_de.html new file mode 100644 index 0000000000000000000000000000000000000000..4094d6cb637e3d44ded6f3cb30a9b72ba051928a --- /dev/null +++ b/core/src/main/resources/hudson/node_monitors/SwapSpaceMonitor/help_de.html @@ -0,0 +1,24 @@ +
    + Dieser Monitor überwacht den freien virtuellen Speicher auf den Slaves (auch als "Swap Space" + bekannt). Unterschreitet dieser eine bestimmte Schwelle, wird ein Slave offline genommen. + +

    + Die exakte Definition des Swap Spaces ist betriebssystemabhängig: + +

      +
    • + Unter Windows ist dieser Wert + der freie Platz in der Page-Datei, + da aber Windows die Page-Datei automatisch vergrößern kann, ist der Wert nur bedingt von Bedeutung. + +
    • + Unter Linux, wird dieser Wert aus /proc/meminfo ermittelt. + +
    • + Unter anderen Unix-Betriebssystemen wird der Wert durch Ausführung des top-Kommandos ermittelt. +
    + +

    + Wenn Sie ein Betriebssystem einsetzen, bei dem dieser Wert nicht angezeigt wird, + geben Sie uns Bescheid, damit wir diese Funktion weiter verbessern können. +

    \ No newline at end of file diff --git a/core/src/main/resources/hudson/node_monitors/TemporarySpaceMonitor/help_de.html b/core/src/main/resources/hudson/node_monitors/TemporarySpaceMonitor/help_de.html new file mode 100644 index 0000000000000000000000000000000000000000..5af367f2829cd8cc07c938cd8dc8abc062574149 --- /dev/null +++ b/core/src/main/resources/hudson/node_monitors/TemporarySpaceMonitor/help_de.html @@ -0,0 +1,13 @@ +
    + Überwacht den freien Festplattenplatz im Temporärverzeichnis. Unterschreitet der freie Platz eine + gewisse Schwelle, so wird der Slave offline genommen. +

    + Java-Werkzeuge und Tests/Builds arbeiten häufig mit Dateien im Temporärverzeichnis und können + daher unerwartete Ergebnisse liefern, wenn der Platz in diesem Verzeichnis erschöpft ist. + +

    + Präziser ausgedrückt, wird der freie Festplattenplatz auf der Partition ermittelt, die das + Verzeichnis enthält, auf welches die Systemeigenschaft java.io.tmpdir verweist. + Um herauszufinden, wo dieses Verzeichnis auf einem bestimmten Slave liegt, rufen Sie + ${rootURL}/computer/SLAVENAME/systemInfo auf. +

    \ No newline at end of file diff --git a/core/src/main/resources/hudson/os/solaris/ZFSInstaller/MigrationCompleteNotice/message_da.properties b/core/src/main/resources/hudson/os/solaris/ZFSInstaller/MigrationCompleteNotice/message_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..0cbf6678f0ff27a3ac5d2ee5579df5cb280b4511 --- /dev/null +++ b/core/src/main/resources/hudson/os/solaris/ZFSInstaller/MigrationCompleteNotice/message_da.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Data\ was\ successfully\ migrated\ to\ ZFS.=Data succesfuldt migreret til ZFS +OK=OK diff --git a/core/src/main/resources/hudson/os/solaris/ZFSInstaller/MigrationCompleteNotice/message_de.properties b/core/src/main/resources/hudson/os/solaris/ZFSInstaller/MigrationCompleteNotice/message_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..b221a1dd42085c90828c0999ed83c9c555a5dc1f --- /dev/null +++ b/core/src/main/resources/hudson/os/solaris/ZFSInstaller/MigrationCompleteNotice/message_de.properties @@ -0,0 +1,2 @@ +Data\ was\ successfully\ migrated\ to\ ZFS.=Daten wurden erfolgreich in ein ZFS-Dateisystem migriert. +OK=OK diff --git a/core/src/main/resources/hudson/os/solaris/ZFSInstaller/MigrationCompleteNotice/message_es.properties b/core/src/main/resources/hudson/os/solaris/ZFSInstaller/MigrationCompleteNotice/message_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..86e81264e97dc883ec3aa4bb1af54e7697dd37a4 --- /dev/null +++ b/core/src/main/resources/hudson/os/solaris/ZFSInstaller/MigrationCompleteNotice/message_es.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Data\ was\ successfully\ migrated\ to\ ZFS.=Los datos fueron migrados correctamente a ZFS +OK=Sí diff --git a/core/src/main/resources/hudson/os/solaris/ZFSInstaller/MigrationCompleteNotice/message_fr.properties b/core/src/main/resources/hudson/os/solaris/ZFSInstaller/MigrationCompleteNotice/message_fr.properties index d379ba446aab7c2a8048cf0e12354df01b5a2cdc..fc73e432d10f3130d8e31f7b1f0ad6356ef40d1b 100644 --- a/core/src/main/resources/hudson/os/solaris/ZFSInstaller/MigrationCompleteNotice/message_fr.properties +++ b/core/src/main/resources/hudson/os/solaris/ZFSInstaller/MigrationCompleteNotice/message_fr.properties @@ -1,24 +1,24 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Eric Lefevre-Ardant -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Data\ was\ successfully\ migrated\ to\ ZFS.=Les données ont été transferrées sur ZFS. -OK= +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Eric Lefevre-Ardant +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Data\ was\ successfully\ migrated\ to\ ZFS.=Les données ont été transferrées sur ZFS. +OK= diff --git a/core/src/main/resources/hudson/os/solaris/ZFSInstaller/MigrationCompleteNotice/message_ja.properties b/core/src/main/resources/hudson/os/solaris/ZFSInstaller/MigrationCompleteNotice/message_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..d589488a3ef15d649c5db620692c7e6337729946 --- /dev/null +++ b/core/src/main/resources/hudson/os/solaris/ZFSInstaller/MigrationCompleteNotice/message_ja.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Data\ was\ successfully\ migrated\ to\ ZFS.=\u30C7\u30FC\u30BF\u3092\u6B63\u5E38\u306BZFS\u306B\u79FB\u884C\u3057\u307E\u3057\u305F\u3002 +OK=OK diff --git a/core/src/main/resources/hudson/os/solaris/ZFSInstaller/MigrationCompleteNotice/message_pt_BR.properties b/core/src/main/resources/hudson/os/solaris/ZFSInstaller/MigrationCompleteNotice/message_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..d555a9389800797da29f07308bd4784d769685c3 --- /dev/null +++ b/core/src/main/resources/hudson/os/solaris/ZFSInstaller/MigrationCompleteNotice/message_pt_BR.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +OK= +Data\ was\ successfully\ migrated\ to\ ZFS.= diff --git a/core/src/main/resources/hudson/os/solaris/ZFSInstaller/MigrationFailedNotice/index_da.properties b/core/src/main/resources/hudson/os/solaris/ZFSInstaller/MigrationFailedNotice/index_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..b789c98868c756db24932aa4115330d07cba88c2 --- /dev/null +++ b/core/src/main/resources/hudson/os/solaris/ZFSInstaller/MigrationFailedNotice/index_da.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +ZFS\ Migration\ Problem=ZFS Migrationsproblemer diff --git a/core/src/main/resources/hudson/os/solaris/ZFSInstaller/MigrationFailedNotice/index_de.properties b/core/src/main/resources/hudson/os/solaris/ZFSInstaller/MigrationFailedNotice/index_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..838dd302268960df600e93ea5517220fc331dc61 --- /dev/null +++ b/core/src/main/resources/hudson/os/solaris/ZFSInstaller/MigrationFailedNotice/index_de.properties @@ -0,0 +1 @@ +ZFS\ Migration\ Problem=Problem bei der ZFS-Migration diff --git a/core/src/main/resources/hudson/os/solaris/ZFSInstaller/MigrationFailedNotice/index_es.properties b/core/src/main/resources/hudson/os/solaris/ZFSInstaller/MigrationFailedNotice/index_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..7bfbe9ab6754999b0cf8bc6009f978ebc49f3bd6 --- /dev/null +++ b/core/src/main/resources/hudson/os/solaris/ZFSInstaller/MigrationFailedNotice/index_es.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +ZFS\ Migration\ Problem=Problemas el la migración ZFS diff --git a/core/src/main/resources/hudson/os/solaris/ZFSInstaller/MigrationFailedNotice/index_fr.properties b/core/src/main/resources/hudson/os/solaris/ZFSInstaller/MigrationFailedNotice/index_fr.properties index 48f69c432435f2417a9003ee543fb985327ba881..1a48b292dccbdfc7d2b12d99076df231e3430b9a 100644 --- a/core/src/main/resources/hudson/os/solaris/ZFSInstaller/MigrationFailedNotice/index_fr.properties +++ b/core/src/main/resources/hudson/os/solaris/ZFSInstaller/MigrationFailedNotice/index_fr.properties @@ -1,23 +1,23 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Eric Lefevre-Ardant -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -ZFS\ Migration\ Problem=Problème de migration ZFS +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Eric Lefevre-Ardant +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +ZFS\ Migration\ Problem=Problème de migration ZFS diff --git a/core/src/main/resources/hudson/os/solaris/ZFSInstaller/MigrationFailedNotice/index_ja.properties b/core/src/main/resources/hudson/os/solaris/ZFSInstaller/MigrationFailedNotice/index_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..dc4908c441f069edd668fc4eed9e76d3ba848eed --- /dev/null +++ b/core/src/main/resources/hudson/os/solaris/ZFSInstaller/MigrationFailedNotice/index_ja.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +ZFS\ Migration\ Problem=ZFS\u79FB\u884C\u306E\u554F\u984C diff --git a/core/src/main/resources/hudson/os/solaris/ZFSInstaller/MigrationFailedNotice/index_pt_BR.properties b/core/src/main/resources/hudson/os/solaris/ZFSInstaller/MigrationFailedNotice/index_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..4b752d65fa6591f367be943cc034c8826d6d30f4 --- /dev/null +++ b/core/src/main/resources/hudson/os/solaris/ZFSInstaller/MigrationFailedNotice/index_pt_BR.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +ZFS\ Migration\ Problem= diff --git a/core/src/main/resources/hudson/os/solaris/ZFSInstaller/MigrationFailedNotice/message.jelly b/core/src/main/resources/hudson/os/solaris/ZFSInstaller/MigrationFailedNotice/message.jelly index 441dce664c468926b9e766659c5d9bced3188822..1cdcec0a810aa605962e8302f0f2030299053d96 100644 --- a/core/src/main/resources/hudson/os/solaris/ZFSInstaller/MigrationFailedNotice/message.jelly +++ b/core/src/main/resources/hudson/os/solaris/ZFSInstaller/MigrationFailedNotice/message.jelly @@ -25,6 +25,6 @@ THE SOFTWARE. \ No newline at end of file diff --git a/core/src/main/resources/hudson/os/solaris/ZFSInstaller/MigrationFailedNotice/message_da.properties b/core/src/main/resources/hudson/os/solaris/ZFSInstaller/MigrationFailedNotice/message_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..f7fa5b9f0beedd65ec6faa928137913ccb40d4c2 --- /dev/null +++ b/core/src/main/resources/hudson/os/solaris/ZFSInstaller/MigrationFailedNotice/message_da.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +ZFS\ migration\ failed.=ZFS migration fejlede. +See\ the\ log\ for\ more\ details=Se loggen for flere detaljer diff --git a/core/src/main/resources/hudson/os/solaris/ZFSInstaller/MigrationFailedNotice/message_de.properties b/core/src/main/resources/hudson/os/solaris/ZFSInstaller/MigrationFailedNotice/message_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..b01660a02a520611ffb5e42db59ec7fd3f1ddcee --- /dev/null +++ b/core/src/main/resources/hudson/os/solaris/ZFSInstaller/MigrationFailedNotice/message_de.properties @@ -0,0 +1 @@ +ZFS\ migration\ failed.=ZFS-Migration fehlgeschlagen. diff --git a/core/src/main/resources/hudson/os/solaris/ZFSInstaller/MigrationFailedNotice/message_es.properties b/core/src/main/resources/hudson/os/solaris/ZFSInstaller/MigrationFailedNotice/message_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..8b40e24ccaeed30d369275afec65d219cc13ddd2 --- /dev/null +++ b/core/src/main/resources/hudson/os/solaris/ZFSInstaller/MigrationFailedNotice/message_es.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +ZFS\ migration\ failed.=La migración ZFS falló +See\ the\ log\ for\ more\ details=Echa un vistazo a los 'logs' para más información diff --git a/core/src/main/resources/hudson/os/solaris/ZFSInstaller/MigrationFailedNotice/message_fr.properties b/core/src/main/resources/hudson/os/solaris/ZFSInstaller/MigrationFailedNotice/message_fr.properties index 03d999f3cd22cf20ffa5c4f7fc401fd6372f9a1f..3dbc17c2fdd881d99e9b2deee49bd7afe561a9d8 100644 --- a/core/src/main/resources/hudson/os/solaris/ZFSInstaller/MigrationFailedNotice/message_fr.properties +++ b/core/src/main/resources/hudson/os/solaris/ZFSInstaller/MigrationFailedNotice/message_fr.properties @@ -1,23 +1,23 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Eric Lefevre-Ardant -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -ZFS\ migration\ failed.=La migration ZFS a échoué. +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Eric Lefevre-Ardant +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +ZFS\ migration\ failed.=La migration ZFS a échoué. diff --git a/core/src/main/resources/hudson/os/solaris/ZFSInstaller/MigrationFailedNotice/message_ja.properties b/core/src/main/resources/hudson/os/solaris/ZFSInstaller/MigrationFailedNotice/message_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..7791df21afcbba121d0bce3bc259377feb7556cb --- /dev/null +++ b/core/src/main/resources/hudson/os/solaris/ZFSInstaller/MigrationFailedNotice/message_ja.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +ZFS\ migration\ failed.=ZFS\u3078\u306E\u79FB\u884C\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002 +See\ the\ log\ for\ more\ details=\u8A73\u7D30\u306F\u30ED\u30B0\u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044\u3002 diff --git a/core/src/main/resources/hudson/os/solaris/ZFSInstaller/MigrationFailedNotice/message_pt_BR.properties b/core/src/main/resources/hudson/os/solaris/ZFSInstaller/MigrationFailedNotice/message_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..32cea78f9d679eac678531c5890dec1c47c61e19 --- /dev/null +++ b/core/src/main/resources/hudson/os/solaris/ZFSInstaller/MigrationFailedNotice/message_pt_BR.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +ZFS\ migration\ failed.= +See\ the\ log\ for\ more\ details= diff --git a/core/src/main/resources/hudson/os/solaris/ZFSInstaller/askRootPassword.jelly b/core/src/main/resources/hudson/os/solaris/ZFSInstaller/askRootPassword.jelly index 53840a87986193773e0bc1c2084f8a17fa76ef9b..9ee3c4595a2bd319d2fcc49674cb944092b62b16 100644 --- a/core/src/main/resources/hudson/os/solaris/ZFSInstaller/askRootPassword.jelly +++ b/core/src/main/resources/hudson/os/solaris/ZFSInstaller/askRootPassword.jelly @@ -40,7 +40,7 @@ THE SOFTWARE. - + @@ -59,4 +59,4 @@ THE SOFTWARE.
    - \ No newline at end of file + diff --git a/core/src/main/resources/hudson/os/solaris/ZFSInstaller/askRootPassword_da.properties b/core/src/main/resources/hudson/os/solaris/ZFSInstaller/askRootPassword_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..cfc2282133ddf2a6ed3736d4785c620c93ee4042 --- /dev/null +++ b/core/src/main/resources/hudson/os/solaris/ZFSInstaller/askRootPassword_da.properties @@ -0,0 +1,29 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Password=Adgangskode +Username=Brugernavn +Permission\ Denied=Tilladelse N\u00e6gtet +blurb=Det ser ud til at den nuv\u00e6rende bruger mangler de n\u00f8dvendige rettigheder til at skabe et ZFS filsystem. \ +Angiv et brugernavn og en adgangskode der er i stand til at gennemf\u00f8re denne handling, s\u00e5som root. +OK=OK +See\ errors...=Se fejl... diff --git a/core/src/main/resources/hudson/os/solaris/ZFSInstaller/askRootPassword_de.properties b/core/src/main/resources/hudson/os/solaris/ZFSInstaller/askRootPassword_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..daf98a567eb5c11c50c4930ba1ef7ac241ecac76 --- /dev/null +++ b/core/src/main/resources/hudson/os/solaris/ZFSInstaller/askRootPassword_de.properties @@ -0,0 +1,9 @@ +Permission\ Denied=Zugriff verweigert +blurb=\ + Der momentane Benutzer scheint nicht über ausreichende Berechtigungen zu verfügen, \ + um ein ZFS-Dateisystem anzulegen. Bitte geben Sie einen Benutzer mit Passwort an, \ + der über ausreichende Berechtigungen verfügt, z.B. root. +Username=Benutzer +Password=Passwort +OK=OK +See\ errors...=Fehler anzeigen... diff --git a/core/src/main/resources/hudson/os/solaris/ZFSInstaller/askRootPassword_es.properties b/core/src/main/resources/hudson/os/solaris/ZFSInstaller/askRootPassword_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..63e5c15dc0c298a2fce66706aafe0f9b34ff17aa --- /dev/null +++ b/core/src/main/resources/hudson/os/solaris/ZFSInstaller/askRootPassword_es.properties @@ -0,0 +1,29 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +blurb=Parece que la cuenta actual carece de los permisos necesarios para crear un sistema de archivos ZFS. \ + Por favor, dé un usario y contraseña válido para realizar ese trabajo. Por ejemplo ''root''. +Password=Contraseña +Username=Usuario +OK=Sí +Permission\ Denied=Permiso denegado +See\ errors...=Ver los errores ... diff --git a/core/src/main/resources/hudson/os/solaris/ZFSInstaller/askRootPassword_fr.properties b/core/src/main/resources/hudson/os/solaris/ZFSInstaller/askRootPassword_fr.properties index a61e3b7c4e36e3c4dc4ec7576e2f6c4fa02b0929..a75164226a79f2e200c9f923300be5e081ae4287 100644 --- a/core/src/main/resources/hudson/os/solaris/ZFSInstaller/askRootPassword_fr.properties +++ b/core/src/main/resources/hudson/os/solaris/ZFSInstaller/askRootPassword_fr.properties @@ -1,29 +1,29 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Eric Lefevre-Ardant -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Permission\ Denied=Permission refusée -blurb=Il semble que le compte utilisateur courant n''a pas les permissions nécessaires pour créer un système de fichier ZFS. \ - Veuillez renseigner un nom d''utilisateur et mot de passe qui le peut, comme root par exemple. -Username=Nom d''utilisateur -Password=Mot de passe -OK= -See\ errors...=Voir les erreurs... +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Eric Lefevre-Ardant +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Permission\ Denied=Permission refusée +blurb=Il semble que le compte utilisateur courant n''a pas les permissions nécessaires pour créer un système de fichier ZFS. \ + Veuillez renseigner un nom d''utilisateur et mot de passe qui le peut, comme root par exemple. +Username=Nom d''utilisateur +Password=Mot de passe +OK= +See\ errors...=Voir les erreurs... diff --git a/core/src/main/resources/hudson/os/solaris/ZFSInstaller/askRootPassword_ja.properties b/core/src/main/resources/hudson/os/solaris/ZFSInstaller/askRootPassword_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..04599dca66998adeb8ba13ab119123bc2a918405 --- /dev/null +++ b/core/src/main/resources/hudson/os/solaris/ZFSInstaller/askRootPassword_ja.properties @@ -0,0 +1,29 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Permission\ Denied=\u30A2\u30AF\u30BB\u30B9\u304C\u62D2\u5426\u3055\u308C\u307E\u3057\u305F\u3002 +Username=\u30E6\u30FC\u30B6\u30FC\u540D +Password=\u30D1\u30B9\u30EF\u30FC\u30C9 +OK=OK +See\ errors...=\u30A8\u30E9\u30FC\u306E\u8A73\u7D30... +blurb=\u73FE\u5728\u306E\u30E6\u30FC\u30B6\u30FC\u30A2\u30AB\u30A6\u30F3\u30C8\u306B\u306F\u3001ZFS\u306E\u4F5C\u6210\u306B\u5FC5\u8981\u306A\u6A29\u9650\u304C\u306A\u3044\u3088\u3046\u3067\u3059\u3002 \ + root\u306E\u3088\u3046\u306AZFS\u3092\u4F5C\u6210\u3067\u304D\u308B\u30E6\u30FC\u30B6\u30FC\u540D\u3068\u30D1\u30B9\u30EF\u30FC\u30C9\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044\u3002. \ No newline at end of file diff --git a/core/src/main/resources/hudson/os/solaris/ZFSInstaller/askRootPassword_pt_BR.properties b/core/src/main/resources/hudson/os/solaris/ZFSInstaller/askRootPassword_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..548a30259c38e3fb41eb8a1e66845238b6c8cc3d --- /dev/null +++ b/core/src/main/resources/hudson/os/solaris/ZFSInstaller/askRootPassword_pt_BR.properties @@ -0,0 +1,31 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +OK= +See\ errors...= +Password=Senha +Username= +Permission\ Denied= +# It appears that the current user account lacks necessary permissions to create a ZFS file system. \ +# Please provide the username and the password that's capable of doing this, such as root. +blurb=\ +# Estes usu\u00E1rios podem se logar no Hudson. Este \u00E9 um super conjunto desta lista, \ diff --git a/core/src/main/resources/hudson/os/solaris/ZFSInstaller/confirm_da.properties b/core/src/main/resources/hudson/os/solaris/ZFSInstaller/confirm_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..363ad9f4349dec7931116f03c99a181b8d2d146a --- /dev/null +++ b/core/src/main/resources/hudson/os/solaris/ZFSInstaller/confirm_da.properties @@ -0,0 +1,32 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +rename=Omd\u00f8b {0} til {0}.backup +You\ will\ need\ the\ root\ password\ of\ the\ system\ to\ do\ this.=Du skal bruge root adgangskoden til systemet for at g\u00f8re dette. +delete=Slet {0}.backup +Start\ migration=Start migration +Restart\ itself\ so\ that\ the\ migration\ can\ be\ done\ without\ worrying\ about\ concurrent\ data\ modifications=\ +Genstart s\u00e5 migrationen kan gennemf\u00f8res uden at bekymre sig om samtidige data modifikationer +mount=Monter et nyt ZFS filsystem ved {0} +blurb=Hudson vil g\u00f8re f\u00f8lgende for at migrere dine eksisterende data til ZFS filsystemet. +create=Dan et nyt ZFS filsystem {0} og kopier alle data til det +ZFS\ file\ system\ creation=ZFS filsystem oprettelse diff --git a/core/src/main/resources/hudson/os/solaris/ZFSInstaller/confirm_de.properties b/core/src/main/resources/hudson/os/solaris/ZFSInstaller/confirm_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..92aa1dcb4fff66dd418e9014cc66fc8c43117f79 --- /dev/null +++ b/core/src/main/resources/hudson/os/solaris/ZFSInstaller/confirm_de.properties @@ -0,0 +1,13 @@ +ZFS\ file\ system\ creation=Erstellung eines ZFS-Dateisystems +Start\ migration=Migration starten +blurb=\ + Hudson führt die folgenden Schritte aus, um Ihre existierenden Daten in ein \ + ZFS-Dateisystem zu migrieren: +You\ will\ need\ the\ root\ password\ of\ the\ system\ to\ do\ this.=Sie benötigen dazu das root-Passwort des Systems. +Restart\ itself\ so\ that\ the\ migration\ can\ be\ done\ without\ worrying\ about\ concurrent\ data\ modifications=\ + Sich selbst neustarten, so daß die Migration ohne besondere Rücksichtnahme \ + auf Probleme gleichzeitiger Zugriffe durchgeführt werden kann. +create=Neues ZFS-Dateisystem {0} erstellen und Daten dorthin kopieren +rename={0} in {0}.backup umbenennen +mount=Neues ZFS-Dateisystem unter {0} einhängen +delete=Lösche {0}.backup diff --git a/core/src/main/resources/hudson/os/solaris/ZFSInstaller/confirm_es.properties b/core/src/main/resources/hudson/os/solaris/ZFSInstaller/confirm_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..8140d95661116217f0a68260852efe57c819cd68 --- /dev/null +++ b/core/src/main/resources/hudson/os/solaris/ZFSInstaller/confirm_es.properties @@ -0,0 +1,31 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +blurb=Hudson realizará los siguientes pasos para migrar tus datos actuales a un sistema de archivos ZFS +create=Crear un sistema ZFS {0} y copiar los datos a él. +rename=Renombrar {0} a {0}.backup +mount=Montar el nuevo sistema de ficheros ZFS en {0} +delete=Borrar {0}.backup +Start\ migration=Comenzar la migración +Restart\ itself\ so\ that\ the\ migration\ can\ be\ done\ without\ worrying\ about\ concurrent\ data\ modifications=Rearrancar para que la migración pueda hacerse sin preocuparse del acceso concurrente a los datos +You\ will\ need\ the\ root\ password\ of\ the\ system\ to\ do\ this.=Necesitas la contraseña de root +ZFS\ file\ system\ creation=Creación de un sistema de archivos ZFS diff --git a/core/src/main/resources/hudson/os/solaris/ZFSInstaller/confirm_fr.properties b/core/src/main/resources/hudson/os/solaris/ZFSInstaller/confirm_fr.properties index daecf437639ad2eea320d7993166dc1a5f5f6bd7..d1c35f97eb67380b3351449e94ad4933192895cb 100644 --- a/core/src/main/resources/hudson/os/solaris/ZFSInstaller/confirm_fr.properties +++ b/core/src/main/resources/hudson/os/solaris/ZFSInstaller/confirm_fr.properties @@ -1,31 +1,31 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Eric Lefevre-Ardant -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -ZFS\ file\ system\ creation=Création du système de fichier ZFS +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Eric Lefevre-Ardant +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +ZFS\ file\ system\ creation=Création du système de fichier ZFS blurb=Hudson exécutera les étapes suivantes pour migrer vos données existantes vers un système ZFS. -You\ will\ need\ the\ root\ password\ of\ the\ system\ to\ do\ this.=Vous aurez besoin du mot de passe root pour faire cela. -Restart\ itself\ so\ that\ the\ migration\ can\ be\ done\ without\ worrying\ about\ concurrent\ data\ modifications=Redémarrage afin d''éviter les problèmes de modifications de données concurrentes pendant la migration +You\ will\ need\ the\ root\ password\ of\ the\ system\ to\ do\ this.=Vous aurez besoin du mot de passe root pour faire cela. +Restart\ itself\ so\ that\ the\ migration\ can\ be\ done\ without\ worrying\ about\ concurrent\ data\ modifications=Redémarrage afin d''éviter les problèmes de modifications de données concurrentes pendant la migration create=Créer un nouveau système de fichier ZFS {0} et y copier toutes les données rename=Renommer {0} en {0}.backup mount=Monter un système de fichier ZFS sur {0} -delete=Supprimer {0}.backup -Start\ migration=Démarrer la migration +delete=Supprimer {0}.backup +Start\ migration=Démarrer la migration diff --git a/core/src/main/resources/hudson/os/solaris/ZFSInstaller/confirm_ja.properties b/core/src/main/resources/hudson/os/solaris/ZFSInstaller/confirm_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..26dbcf39857dbf8cdfbee6da399206137eaefc79 --- /dev/null +++ b/core/src/main/resources/hudson/os/solaris/ZFSInstaller/confirm_ja.properties @@ -0,0 +1,32 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +ZFS\ file\ system\ creation=ZFS\u306E\u4F5C\u6210 +blurb=\u30C7\u30FC\u30BF\u3092ZFS\u306B\u79FB\u884C\u3059\u308B\u305F\u3081\u306B\u3001\u6B21\u306E\u30B9\u30C6\u30C3\u30D7\u3092\u5B9F\u884C\u3057\u307E\u3059\u3002 +You\ will\ need\ the\ root\ password\ of\ the\ system\ to\ do\ this.=\u5B9F\u884C\u3059\u308B\u306B\u306F\u3001\u30B7\u30B9\u30C6\u30E0\u306E\u30EB\u30FC\u30C8\u30D1\u30B9\u30EF\u30FC\u30C9\u304C\u5FC5\u8981\u3067\u3059\u3002 +Restart\ itself\ so\ that\ the\ migration\ can\ be\ done\ without\ worrying\ about\ concurrent\ data\ modifications=\ + \u73FE\u5728\u306E\u30C7\u30FC\u30BF\u3092\u5909\u66F4\u3059\u308B\u3053\u3068\u306A\u304F\u79FB\u884C\u3092\u5B8C\u4E86\u3067\u304D\u308B\u3088\u3046\u306B\u518D\u8D77\u52D5\u3057\u307E\u3059\u3002 +create=ZFS {0} \u3092\u65B0\u898F\u306B\u4F5C\u6210\u3057\u3001\u30C7\u30FC\u30BF\u3092\u3059\u3079\u3066\u30B3\u30D4\u30FC\u3057\u307E\u3059\u3002 +rename={0} \u3092 {0}.backup \u306B\u30EA\u30CD\u30FC\u30E0\u3057\u307E\u3059\u3002 +mount=\u4F5C\u6210\u3057\u305FZFS\u3092 {0} \u306B\u30DE\u30A6\u30F3\u30C8\u3057\u307E\u3059\u3002 +delete={0}.backup \u3092\u524A\u9664\u3057\u307E\u3059\u3002 +Start\ migration=\u79FB\u884C\u958B\u59CB \ No newline at end of file diff --git a/core/src/main/resources/hudson/os/solaris/ZFSInstaller/confirm_pt_BR.properties b/core/src/main/resources/hudson/os/solaris/ZFSInstaller/confirm_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..cff84671919972a981711d930c09f6d0df54aebb --- /dev/null +++ b/core/src/main/resources/hudson/os/solaris/ZFSInstaller/confirm_pt_BR.properties @@ -0,0 +1,37 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +# Rename {0} to {0}.backup +rename= +You\ will\ need\ the\ root\ password\ of\ the\ system\ to\ do\ this.= +# Mount a new ZFS file system at {0} +mount= +# Delete {0}.backup +delete=Excluir {0} +# Hudson will perform the following steps to migrate your existing data to a ZFS file system. +blurb=\ +# Estes usu\u00E1rios podem se logar no Hudson. Este \u00E9 um super conjunto desta lista, \ +# Create a new ZFS file system {0} and copy all the data into it +create= +Start\ migration= +Restart\ itself\ so\ that\ the\ migration\ can\ be\ done\ without\ worrying\ about\ concurrent\ data\ modifications= +ZFS\ file\ system\ creation= diff --git a/core/src/main/resources/hudson/os/solaris/ZFSInstaller/message_da.properties b/core/src/main/resources/hudson/os/solaris/ZFSInstaller/message_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..70dfb33f7bd08d6e30d166c9a8b7b1579f970c96 --- /dev/null +++ b/core/src/main/resources/hudson/os/solaris/ZFSInstaller/message_da.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Yes,\ please=Ja tak +No,\ thank\ you= Nej tak +blurb=Du k\u00f8rer p\u00e5 Solaris. Kunne du t\u00e6nke dig at Hudson laver et ZFS filsystem til dig, \ +s\u00e5 du kan f\u00e5 det meste ud af Solaris? diff --git a/core/src/main/resources/hudson/os/solaris/ZFSInstaller/message_de.properties b/core/src/main/resources/hudson/os/solaris/ZFSInstaller/message_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..d725a1d1ac2ef11f32f95901c7ad2ee0ffdaf69e --- /dev/null +++ b/core/src/main/resources/hudson/os/solaris/ZFSInstaller/message_de.properties @@ -0,0 +1,5 @@ +blurb=\ + Sie verwenden Solaris. Möchten Sie, daß Hudson ein ZFS-Dateisystem für Sie anlegt, \ + so daß Sie die Vorteile von Solaris bestmöglich ausnutzen können? +Yes,\ please=Ja, bitte. +No,\ thank\ you=Nein, danke. diff --git a/core/src/main/resources/hudson/os/solaris/ZFSInstaller/message_es.properties b/core/src/main/resources/hudson/os/solaris/ZFSInstaller/message_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..4dbc882c07673753bba976d094021aa41e406ade --- /dev/null +++ b/core/src/main/resources/hudson/os/solaris/ZFSInstaller/message_es.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +blurb=Estas utilizano Solaris. ¿Te gustaría que Hudson cree un sistema de archivos ZFS?, \ + esto haría aprovechar mejor tu sistema. +No,\ thank\ you=No, gracias +Yes,\ please=Sí, por favor diff --git a/core/src/main/resources/hudson/os/solaris/ZFSInstaller/message_fr.properties b/core/src/main/resources/hudson/os/solaris/ZFSInstaller/message_fr.properties index c737a7e86ec5da8bb7f642e73760e180bc791609..49cd12ae4656f7ce0e387fb6b4b7faf523a8c59a 100644 --- a/core/src/main/resources/hudson/os/solaris/ZFSInstaller/message_fr.properties +++ b/core/src/main/resources/hudson/os/solaris/ZFSInstaller/message_fr.properties @@ -1,25 +1,25 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Eric Lefevre-Ardant -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -blurb=Vous êtes sur Solaris. Voulez-vous que Hudson crée un système de fichier ZFS afin que vous puissiez tirer parti de Solaris au maximum ? -Yes,\ please=Oui ! -No,\ thank\ you=Non, merci +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Eric Lefevre-Ardant +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +blurb=Vous êtes sur Solaris. Voulez-vous que Hudson crée un système de fichier ZFS afin que vous puissiez tirer parti de Solaris au maximum ? +Yes,\ please=Oui ! +No,\ thank\ you=Non, merci diff --git a/core/src/main/resources/hudson/os/solaris/ZFSInstaller/message_ja.properties b/core/src/main/resources/hudson/os/solaris/ZFSInstaller/message_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..ce451a03414905ac40f501c0cd2d6e4922cf046e --- /dev/null +++ b/core/src/main/resources/hudson/os/solaris/ZFSInstaller/message_ja.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabes +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +blurb=Solaris\u4E0A\u3067\u8D77\u52D5\u3057\u3066\u3044\u307E\u3059\u3002Solaris\u3092\u6700\u5927\u9650\u306B\u751F\u304B\u3059\u3088\u3046\u306B\u3001ZFS\u3092\u4F5C\u6210\u3057\u307E\u3059\u304B? +Yes,\ please=\u306F\u3044 +No,\ thank\ you=\u3044\u3044\u3048 diff --git a/core/src/main/resources/hudson/os/solaris/ZFSInstaller/message_pt_BR.properties b/core/src/main/resources/hudson/os/solaris/ZFSInstaller/message_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..accc0ac03a86f74643faad305ca34bf158f5924a --- /dev/null +++ b/core/src/main/resources/hudson/os/solaris/ZFSInstaller/message_pt_BR.properties @@ -0,0 +1,28 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Yes,\ please= +# You are running on Solaris. Would you like Hudson to create a ZFS file system for you \ +# so that you can get the most out of Solaris? +blurb=\ +# Estes usu\u00E1rios podem se logar no Hudson. Este \u00E9 um super conjunto desta lista, \ +No,\ thank\ you= diff --git a/core/src/main/resources/hudson/os/windows/ManagedWindowsServiceConnector/config.jelly b/core/src/main/resources/hudson/os/windows/ManagedWindowsServiceConnector/config.jelly new file mode 100644 index 0000000000000000000000000000000000000000..8516d25bd4152b0d7d19ba0df62390be30099254 --- /dev/null +++ b/core/src/main/resources/hudson/os/windows/ManagedWindowsServiceConnector/config.jelly @@ -0,0 +1,27 @@ + + + + + \ No newline at end of file diff --git a/core/src/main/resources/hudson/os/windows/ManagedWindowsServiceLauncher/config_da.properties b/core/src/main/resources/hudson/os/windows/ManagedWindowsServiceLauncher/config_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..40100494a962756d51fe4bb22a147fd62cf83367 --- /dev/null +++ b/core/src/main/resources/hudson/os/windows/ManagedWindowsServiceLauncher/config_da.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Password=Adgangskode +Administrator\ user\ name=Administrator brugernavn diff --git a/core/src/main/resources/hudson/os/windows/ManagedWindowsServiceLauncher/config_de.properties b/core/src/main/resources/hudson/os/windows/ManagedWindowsServiceLauncher/config_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..3081c2e1ba4befcda5410aa34a1cc70fb9afad2a --- /dev/null +++ b/core/src/main/resources/hudson/os/windows/ManagedWindowsServiceLauncher/config_de.properties @@ -0,0 +1,2 @@ +Administrator\ user\ name=Administrativer Benutzer +Password=Passwort diff --git a/core/src/main/resources/hudson/os/windows/ManagedWindowsServiceLauncher/config_es.properties b/core/src/main/resources/hudson/os/windows/ManagedWindowsServiceLauncher/config_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..a0f0be6441673ff992a49344f31feab9da15da86 --- /dev/null +++ b/core/src/main/resources/hudson/os/windows/ManagedWindowsServiceLauncher/config_es.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Administrator\ user\ name=Usuario administrador +Password=Contraseña diff --git a/core/src/main/resources/hudson/os/windows/ManagedWindowsServiceLauncher/config_fr.properties b/core/src/main/resources/hudson/os/windows/ManagedWindowsServiceLauncher/config_fr.properties index 7c9057cb222d3909481bf7acb055ce3d0aa6c649..f825063a5ea2ffbf50eb108e9ecdc32c371849a6 100644 --- a/core/src/main/resources/hudson/os/windows/ManagedWindowsServiceLauncher/config_fr.properties +++ b/core/src/main/resources/hudson/os/windows/ManagedWindowsServiceLauncher/config_fr.properties @@ -1,24 +1,24 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Eric Lefevre-Ardant -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Administrator\ user\ name=Nom de l''utilisateur administrateur -Password=Mot de passe +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Eric Lefevre-Ardant +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Administrator\ user\ name=Nom de l''utilisateur administrateur +Password=Mot de passe diff --git a/core/src/main/resources/hudson/os/windows/ManagedWindowsServiceLauncher/config_pt_BR.properties b/core/src/main/resources/hudson/os/windows/ManagedWindowsServiceLauncher/config_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..bce9fbac61a88a6f306da6e24e8cc9a46e41eaa3 --- /dev/null +++ b/core/src/main/resources/hudson/os/windows/ManagedWindowsServiceLauncher/config_pt_BR.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Password=Senha +Administrator\ user\ name= diff --git a/core/src/main/resources/hudson/os/windows/ManagedWindowsServiceLauncher/config_sv_SE.properties b/core/src/main/resources/hudson/os/windows/ManagedWindowsServiceLauncher/config_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..94cad0f9d38dc88894f2a456877216eb58f6881f --- /dev/null +++ b/core/src/main/resources/hudson/os/windows/ManagedWindowsServiceLauncher/config_sv_SE.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Administrator\ user\ name=Administrat\u00F6rens anv\u00E4ndarnamn +Password=L\u00F6senord diff --git a/core/src/main/resources/hudson/os/windows/ManagedWindowsServiceLauncher/help-userName_de.html b/core/src/main/resources/hudson/os/windows/ManagedWindowsServiceLauncher/help-userName_de.html new file mode 100644 index 0000000000000000000000000000000000000000..84697936d8b276ebb4986340a4fa987e8b554080 --- /dev/null +++ b/core/src/main/resources/hudson/os/windows/ManagedWindowsServiceLauncher/help-userName_de.html @@ -0,0 +1,8 @@ +
    + Geben Sie den Namen eines Windows-Benutzers an, der administrativen + Zugriff auf diesen Rechner hat, z.B. 'Administrator'. + Diese Information wird benötigt, um einen Prozeß entfernt starten zu können. +

    + Um einen Domain-Benutzer zu verwenden, geben Sie den Wert in der Form + 'DOMAIN\Administrator' an. +

    \ No newline at end of file diff --git a/core/src/main/resources/hudson/os/windows/ManagedWindowsServiceLauncher/help_da.properties b/core/src/main/resources/hudson/os/windows/ManagedWindowsServiceLauncher/help_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..c6d503cb935ff46d332f6d4401e2847f1aa043b4 --- /dev/null +++ b/core/src/main/resources/hudson/os/windows/ManagedWindowsServiceLauncher/help_da.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +blurb=\ diff --git a/core/src/main/resources/hudson/os/windows/ManagedWindowsServiceLauncher/help_de.properties b/core/src/main/resources/hudson/os/windows/ManagedWindowsServiceLauncher/help_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..a9fcffa97cf42af12c00ca9dcf655bb04757062f --- /dev/null +++ b/core/src/main/resources/hudson/os/windows/ManagedWindowsServiceLauncher/help_de.properties @@ -0,0 +1,4 @@ +blurb=\ + Startet einen Windows-Slave über einen \ + Fernwartungsmechanismus, der in Windows integriert ist. Geeignet für Windows-Slaves. \ + Slaves müssen per IP vom Master-Knoten aus erreichbar sein. diff --git a/core/src/main/resources/hudson/os/windows/ManagedWindowsServiceLauncher/help_es.properties b/core/src/main/resources/hudson/os/windows/ManagedWindowsServiceLauncher/help_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..df8b0692c4701e98735e50b303088dbe6a3db384 --- /dev/null +++ b/core/src/main/resources/hudson/os/windows/ManagedWindowsServiceLauncher/help_es.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +blurb=Arranca un nodo secundario windows usando la gestión remota nativa de Windows. \ + La direcctión IP de los nodos secundarios tiene que ser visible desde el nodo principal. + diff --git a/core/src/main/resources/hudson/os/windows/ManagedWindowsServiceLauncher/help_pt_BR.properties b/core/src/main/resources/hudson/os/windows/ManagedWindowsServiceLauncher/help_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..378a80e68df79e4141b167af6ae193803160f2a8 --- /dev/null +++ b/core/src/main/resources/hudson/os/windows/ManagedWindowsServiceLauncher/help_pt_BR.properties @@ -0,0 +1,27 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +# Starts a Windows slave by a remote management facility built into Windows. \ +# Suitable for managing Windows slaves. \ +# Slaves need to be IP reachable from the master. +blurb=\ +# Estes usu\u00E1rios podem se logar no Hudson. Este \u00E9 um super conjunto desta lista, \ diff --git a/core/src/main/resources/hudson/os/windows/Messages.properties b/core/src/main/resources/hudson/os/windows/Messages.properties index f6b3a0031456d60c7eaf94733fb85edacb16b52c..d29aa68017dc45a1de686bf5fba452baaf687282 100644 --- a/core/src/main/resources/hudson/os/windows/Messages.properties +++ b/core/src/main/resources/hudson/os/windows/Messages.properties @@ -33,3 +33,4 @@ ManagedWindowsServiceLauncher.ServiceDidntRespond=The service didn''t respond. P ManagedWindowsServiceLauncher.StartingService=Starting the service ManagedWindowsServiceLauncher.StoppingService=Stopping the service ManagedWindowsServiceLauncher.WaitingForService=Waiting for the service to become ready +ManagedWindowsServiceLauncher.AccessDenied=Access is denied. See http://wiki.hudson-ci.org/display/HUDSON/Windows+slaves+fail+to+start+via+DCOM for more information about how to resolve this. diff --git a/core/src/main/resources/hudson/os/windows/Messages_da.properties b/core/src/main/resources/hudson/os/windows/Messages_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..de3b22ed62b8fdb8195eb8deb903562ee7fe58e1 --- /dev/null +++ b/core/src/main/resources/hudson/os/windows/Messages_da.properties @@ -0,0 +1,36 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +ManagedWindowsServiceLauncher.StoppingService=Stopper servicen +ManagedWindowsServiceLauncher.ServiceDidntRespond=Servicen svarede ikke. M\u00e5ske startede den ikke? +ManagedWindowsServiceLauncher.CopyingSlaveXml=Kopierer hudson-slave.xml +ManagedWindowsServiceLauncher.ConnectingToPort=Forbinder til port {0} +ManagedWindowsServiceLauncher.DotNetRequired=.NET Framework 2.0 eller nyere er n\u00f8dvendig p\u00e5 denne computer for at kunne k\u00f8re Hudson som en Windows service +ManagedWindowsServiceLauncher.ConnectingTo=Forbinder til {0} +ManagedWindowsServiceLauncher.RegisteringService=Registrerer servicen +ManagedWindowsServiceLauncher.StartingService=Starter servicen +ManagedWindowsServiceLauncher.WaitingForService=Venter p\u00e5 at servicen bliver klar +ManagedWindowsServiceLauncher.AccessDenied=\ +Adgang er n\u00e6gtet. Se http://wiki.hudson-ci.org/display/HUDSON/Windows+slaves+fail+to+start+via+DCOM for information om hvordan du kan l\u00f8se dette problem. +ManagedWindowsServiceLauncher.CopyingSlaveExe=Kopierer hudson-slave.exe +ManagedWindowsServiceLauncher.InstallingSlaveService=Installerer Hudson slave servicen +ManagedWindowsServiceLauncher.DisplayName=Lad Hudson styre denne Windows slave som en Windows service diff --git a/core/src/main/resources/hudson/os/windows/Messages_de.properties b/core/src/main/resources/hudson/os/windows/Messages_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..45c1a5592a486eb1afc45583b4d9a58161a68688 --- /dev/null +++ b/core/src/main/resources/hudson/os/windows/Messages_de.properties @@ -0,0 +1,39 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +ManagedWindowsServiceLauncher.DisplayName=\ + Hudson soll auf diesem Windows-Slave als Windows-Dienst betrieben werden +ManagedWindowsServiceLauncher.DotNetRequired=\ + Das .NET Framework 2.0 (oder neuer) wird auf diesem Rechner benötigt, \ + um den Hudson-Slave als Windows-Dienst zu betreiben. +ManagedWindowsServiceLauncher.InstallingSlaveService=Installiere den Hudson-Slave-Dienst +ManagedWindowsServiceLauncher.ConnectingTo=Verbinde zu {0} +ManagedWindowsServiceLauncher.ConnectingToPort=Verbinde über Port {0} +ManagedWindowsServiceLauncher.CopyingSlaveExe=Kopiere hudson-slave.exe +ManagedWindowsServiceLauncher.CopyingSlaveXml=Kopiere hudson-slave.xml +ManagedWindowsServiceLauncher.RegisteringService=Registriere Dienst +ManagedWindowsServiceLauncher.ServiceDidntRespond=Der Dienst antwortete nicht. Ist der Startvorgang vielleicht fehlgeschlagen? +ManagedWindowsServiceLauncher.StartingService=Starte den Dienst +ManagedWindowsServiceLauncher.StoppingService=Stoppe den Dienst +ManagedWindowsServiceLauncher.WaitingForService=Warte auf Verfügbarkeit des Dienstes +ManagedWindowsServiceLauncher.AccessDenied=\ + Zugriff verweigert. Hinweise zur Problemlösung finden Sie unter http://wiki.hudson-ci.org/display/HUDSON/Windows+slaves+fail+to+start+via+DCOM. \ No newline at end of file diff --git a/core/src/main/resources/hudson/os/windows/Messages_es.properties b/core/src/main/resources/hudson/os/windows/Messages_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..e1ff6e48a89c2e61969ea6c04cec2efef16ad099 --- /dev/null +++ b/core/src/main/resources/hudson/os/windows/Messages_es.properties @@ -0,0 +1,36 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +ManagedWindowsServiceLauncher.DisplayName=\ + Permitir que Hudson-esclavo se arranque como un servicio windows +ManagedWindowsServiceLauncher.DotNetRequired=Se necesita tener instalado ''.NET Framework 2.0'' o posterior para poder ejecutar Hudson-esclavo como un servicio de Windows +ManagedWindowsServiceLauncher.InstallingSlaveService=Instalando el servicio Hudson-esclavo +ManagedWindowsServiceLauncher.ConnectingTo=Conectando con {0} +ManagedWindowsServiceLauncher.ConnectingToPort=Conectando al puerto {0} +ManagedWindowsServiceLauncher.CopyingSlaveExe=Copiando hudson-slave.exe +ManagedWindowsServiceLauncher.CopyingSlaveXml=Copiando hudson-slave.xml +ManagedWindowsServiceLauncher.RegisteringService=Registrando el servicio +ManagedWindowsServiceLauncher.ServiceDidntRespond=El servicio no responde. Es posible que el inicio del servicio fallara. +ManagedWindowsServiceLauncher.StartingService=Iniciando el servicio +ManagedWindowsServiceLauncher.StoppingService=Parando el servicio +ManagedWindowsServiceLauncher.WaitingForService=Esperando que el servicio esté listo. +ManagedWindowsServiceLauncher.AccessDenied=Acceso denegado. Echa un vistazo a http://wiki.hudson-ci.org/display/HUDSON/Windows+slaves+fail+to+start+via+DCOM para mas información diff --git a/core/src/main/resources/hudson/os/windows/Messages_ja.properties b/core/src/main/resources/hudson/os/windows/Messages_ja.properties index 7d12a5b5c85ad58827105b857823e8cb0ad58b27..eac050453583ceb578ee5b2d72984a1a34903813 100644 --- a/core/src/main/resources/hudson/os/windows/Messages_ja.properties +++ b/core/src/main/resources/hudson/os/windows/Messages_ja.properties @@ -1,6 +1,6 @@ # The MIT License # -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Seiji Sogabe +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Seiji Sogabe # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -19,15 +19,17 @@ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -ManagedWindowsServiceLauncher.DisplayName = Windows\u30B5\u30FC\u30D3\u30B9\u3068\u3057\u3066\u3053\u306EWindows\u30B9\u30EC\u30FC\u30D6\u3092\u5236\u5FA1 -ManagedWindowsServiceLauncher.DotNetRequired = Hudson\u306E\u30B9\u30EC\u30FC\u30D6\u3092Windows\u306E\u30B5\u30FC\u30D3\u30B9\u3068\u3057\u3066\u5B9F\u884C\u3059\u308B\u306B\u306F\u3001.NET Framework 2.0\u4EE5\u964D\u304C\u5FC5\u8981\u3067\u3059\u3002 -ManagedWindowsServiceLauncher.InstallingSlaveService = Hudson\u306E\u30B9\u30EC\u30FC\u30D6\u3092\u30B5\u30FC\u30D3\u30B9\u3068\u3057\u3066\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3057\u307E\u3059\u3002 -ManagedWindowsServiceLauncher.ConnectingTo = {0} \u306B\u63A5\u7D9A\u3057\u307E\u3059\u3002 -ManagedWindowsServiceLauncher.ConnectingToPort = \u30DD\u30FC\u30C8 {0} \u306B\u63A5\u7D9A\u3057\u307E\u3059\u3002 -ManagedWindowsServiceLauncher.CopyingSlaveExe = hudson-slave.exe\u3092\u30B3\u30D4\u30FC\u3057\u307E\u3059\u3002 -ManagedWindowsServiceLauncher.CopyingSlaveXml = hudson-slave.xml\u3092\u30B3\u30D4\u30FC\u3057\u307E\u3059\u3002 -ManagedWindowsServiceLauncher.RegisteringService = \u30B5\u30FC\u30D3\u30B9\u3092\u518D\u8D77\u52D5\u3057\u307E\u3059\u3002 -ManagedWindowsServiceLauncher.ServiceDidntRespond = \u30B5\u30FC\u30D3\u30B9\u304C\u53CD\u5FDC\u3057\u307E\u305B\u3093\u3002\u305F\u3076\u3093\u3001\u8D77\u52D5\u306B\u5931\u6557\u3057\u3066\u3044\u308B\u3088\u3046\u3067\u3059\u3002 -ManagedWindowsServiceLauncher.StartingService = \u30B5\u30FC\u30D3\u30B9\u3092\u958B\u59CB\u3057\u307E\u3059\u3002 -ManagedWindowsServiceLauncher.StoppingService = \u30B5\u30FC\u30D3\u30B9\u3092\u4E2D\u6B62\u3057\u307E\u3059\u3002 -ManagedWindowsServiceLauncher.WaitingForService = \u30B5\u30FC\u30D3\u30B9\u304C\u6E96\u5099\u3067\u304D\u308B\u307E\u3067\u5F85\u6A5F\u4E2D\u3067\u3059\u3002 +ManagedWindowsServiceLauncher.DisplayName= Windows\u30B5\u30FC\u30D3\u30B9\u3068\u3057\u3066\u3053\u306EWindows\u30B9\u30EC\u30FC\u30D6\u3092\u5236\u5FA1 +ManagedWindowsServiceLauncher.DotNetRequired= Hudson\u306E\u30B9\u30EC\u30FC\u30D6\u3092Windows\u306E\u30B5\u30FC\u30D3\u30B9\u3068\u3057\u3066\u5B9F\u884C\u3059\u308B\u306B\u306F\u3001.NET Framework 2.0\u4EE5\u964D\u304C\u5FC5\u8981\u3067\u3059\u3002 +ManagedWindowsServiceLauncher.InstallingSlaveService= Hudson\u306E\u30B9\u30EC\u30FC\u30D6\u3092\u30B5\u30FC\u30D3\u30B9\u3068\u3057\u3066\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3057\u307E\u3059\u3002 +ManagedWindowsServiceLauncher.ConnectingTo= {0} \u306B\u63A5\u7D9A\u3057\u307E\u3059\u3002 +ManagedWindowsServiceLauncher.ConnectingToPort= \u30DD\u30FC\u30C8 {0} \u306B\u63A5\u7D9A\u3057\u307E\u3059\u3002 +ManagedWindowsServiceLauncher.CopyingSlaveExe= hudson-slave.exe\u3092\u30B3\u30D4\u30FC\u3057\u307E\u3059\u3002 +ManagedWindowsServiceLauncher.CopyingSlaveXml= hudson-slave.xml\u3092\u30B3\u30D4\u30FC\u3057\u307E\u3059\u3002 +ManagedWindowsServiceLauncher.RegisteringService= \u30B5\u30FC\u30D3\u30B9\u3092\u518D\u8D77\u52D5\u3057\u307E\u3059\u3002 +ManagedWindowsServiceLauncher.ServiceDidntRespond= \u30B5\u30FC\u30D3\u30B9\u304C\u53CD\u5FDC\u3057\u307E\u305B\u3093\u3002\u305F\u3076\u3093\u3001\u8D77\u52D5\u306B\u5931\u6557\u3057\u3066\u3044\u308B\u3088\u3046\u3067\u3059\u3002 +ManagedWindowsServiceLauncher.StartingService= \u30B5\u30FC\u30D3\u30B9\u3092\u958B\u59CB\u3057\u307E\u3059\u3002 +ManagedWindowsServiceLauncher.StoppingService= \u30B5\u30FC\u30D3\u30B9\u3092\u4E2D\u6B62\u3057\u307E\u3059\u3002 +ManagedWindowsServiceLauncher.WaitingForService= \u30B5\u30FC\u30D3\u30B9\u304C\u6E96\u5099\u3067\u304D\u308B\u307E\u3067\u5F85\u6A5F\u4E2D\u3067\u3059\u3002 +ManagedWindowsServiceLauncher.AccessDenied=\ + \u30A2\u30AF\u30BB\u30B9\u306F\u62D2\u5426\u3055\u308C\u307E\u3057\u305F\u3002\u89E3\u6C7A\u65B9\u6CD5\u306E\u8A73\u7D30\u306B\u3064\u3044\u3066\u306F\u3001http://wiki.hudson-ci.org/display/HUDSON/Windows+slaves+fail+to+start+via+DCOM \u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044\u3002 diff --git a/core/src/main/resources/hudson/os/windows/Messages_pt_BR.properties b/core/src/main/resources/hudson/os/windows/Messages_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..2ffd7daef02ad0cbf81cfe66be406508f97179a6 --- /dev/null +++ b/core/src/main/resources/hudson/os/windows/Messages_pt_BR.properties @@ -0,0 +1,49 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +# Stopping the service +ManagedWindowsServiceLauncher.StoppingService= +# Copying hudson-slave.exe +ManagedWindowsServiceLauncher.CopyingSlaveExe= +# Installing the Hudson slave service +ManagedWindowsServiceLauncher.InstallingSlaveService= +# The service didn''t respond. Perphaps it failed to launch? +ManagedWindowsServiceLauncher.ServiceDidntRespond= +# \ +# Let Hudson control this Windows slave as a Windows service +ManagedWindowsServiceLauncher.DisplayName= +# .NET Framework 2.0 or later is required on this computer to run a Hudson slave as a Windows service +ManagedWindowsServiceLauncher.DotNetRequired= +# Connecting to {0} +ManagedWindowsServiceLauncher.ConnectingTo= +# Registering the service +ManagedWindowsServiceLauncher.RegisteringService= +# Copying hudson-slave.xml +ManagedWindowsServiceLauncher.CopyingSlaveXml= +# Connecting to port {0} +ManagedWindowsServiceLauncher.ConnectingToPort= +# Starting the service +ManagedWindowsServiceLauncher.StartingService= +# Waiting for the service to become ready +ManagedWindowsServiceLauncher.WaitingForService= +# Access is denied. See http://wiki.hudson-ci.org/display/HUDSON/Windows+slaves+fail+to+start+via+DCOM for more information about how to resolve this. +ManagedWindowsServiceLauncher.AccessDenied= diff --git a/core/src/main/resources/hudson/rss20.jelly b/core/src/main/resources/hudson/rss20.jelly index 92f3c0daef887c0b1175a9335bd4012e85c9100b..63e04ba85fde1c886e52d5a2f14bd0c500e864b5 100644 --- a/core/src/main/resources/hudson/rss20.jelly +++ b/core/src/main/resources/hudson/rss20.jelly @@ -22,7 +22,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --> - +<?xml version="1.0" encoding="UTF-8"?> @@ -48,4 +48,4 @@ THE SOFTWARE. - \ No newline at end of file + diff --git a/core/src/main/resources/hudson/scheduler/Messages_da.properties b/core/src/main/resources/hudson/scheduler/Messages_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..85a5b851ce923e3f61cc6befc62d7f24e43b4b28 --- /dev/null +++ b/core/src/main/resources/hudson/scheduler/Messages_da.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +BaseParser.OutOfRange={0} er en ugyldig v\u00e6rdi. V\u00e6rdien skal v\u00e6re imellem {1} og {2} +CronTabList.InvalidInput=Ugyldigt input: "{0}": {1} +BaseParser.StartEndReversed=Mener du {0}-{1}? +BaseParser.MustBePositive=trin skal v\u00e6re positivt, men fandt {0} diff --git a/core/src/main/resources/hudson/scheduler/Messages_es.properties b/core/src/main/resources/hudson/scheduler/Messages_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..06e568c0ed311721b7a31a111e5df9057e24ad39 --- /dev/null +++ b/core/src/main/resources/hudson/scheduler/Messages_es.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +BaseParser.StartEndReversed=¿Quieres decir {0}-{1}? +BaseParser.MustBePositive= {0} no es un valor válido, debe ser positivo +BaseParser.OutOfRange={0} es inválido, debe estar incluido entre {1} y {2} +CronTabList.InvalidInput=Entrada inválida: "{0}": {1} diff --git a/core/src/main/resources/hudson/scm/AbstractScmTagAction/inProgress_da.properties b/core/src/main/resources/hudson/scm/AbstractScmTagAction/inProgress_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..2626099ea5eade68eb08bb3e1aa07da842e1b05b --- /dev/null +++ b/core/src/main/resources/hudson/scm/AbstractScmTagAction/inProgress_da.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Tagging\ is\ in\ progress\:=Tagging er i gang diff --git a/core/src/main/resources/hudson/scm/AbstractScmTagAction/inProgress_es.properties b/core/src/main/resources/hudson/scm/AbstractScmTagAction/inProgress_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..082a83a76e1299be03f0429feecb973999f75b67 --- /dev/null +++ b/core/src/main/resources/hudson/scm/AbstractScmTagAction/inProgress_es.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Tagging\ is\ in\ progress\:=Etiquetado en proceso: + diff --git a/core/src/main/resources/hudson/scm/CVSChangeLogSet/digest.jelly b/core/src/main/resources/hudson/scm/CVSChangeLogSet/digest.jelly deleted file mode 100644 index f273ec245e592264223dd144c0b695abee13ce72..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/CVSChangeLogSet/digest.jelly +++ /dev/null @@ -1,47 +0,0 @@ - - - - - Displays the CVS change log digest. - - If specified, this is prepended in links to change details. - - - - - - ${%No changes.} - - - ${%Changes} -
      - -
    1. ${cs.msgAnnotated} (${%detail}) -
    2. -
      -
    -
    -
    -
    diff --git a/core/src/main/resources/hudson/scm/CVSChangeLogSet/digest_fr.properties b/core/src/main/resources/hudson/scm/CVSChangeLogSet/digest_fr.properties deleted file mode 100644 index 8b26b19073b4b5b39d4f4a8f89806a40b88481cc..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/CVSChangeLogSet/digest_fr.properties +++ /dev/null @@ -1,25 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Eric Lefevre-Ardant -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -No\ changes.=Aucun changement. -Changes=Changements -detail=détails diff --git a/core/src/main/resources/hudson/scm/CVSChangeLogSet/digest_ja.properties b/core/src/main/resources/hudson/scm/CVSChangeLogSet/digest_ja.properties deleted file mode 100644 index 72bb7a9b04cc1bbf2799d68bf33b65fd0cb704c3..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/CVSChangeLogSet/digest_ja.properties +++ /dev/null @@ -1,25 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe, id:cactusman -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Changes=\u5909\u66f4 -detail=\u8a73\u7d30 -No\ changes.=\u5909\u66f4\u70b9\u306f\u3042\u308a\u307e\u305b\u3093\u3002 \ No newline at end of file diff --git a/core/src/main/resources/hudson/scm/CVSChangeLogSet/index.jelly b/core/src/main/resources/hudson/scm/CVSChangeLogSet/index.jelly deleted file mode 100644 index 21e0efa457a990cfbbbbeb96936fce658b1292dc..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/CVSChangeLogSet/index.jelly +++ /dev/null @@ -1,67 +0,0 @@ - - - - -

    ${%Summary}

    -
      - -
    1. -
      -
    - - - - - - - - - - - - - - - - - -
    - -
    - ${cs.author}:
    - ${cs.msgAnnotated} - - - - (${browser.descriptor.displayName}) - -
    -
    - ${f.revision} - - ${f.name}
    -
    \ No newline at end of file diff --git a/core/src/main/resources/hudson/scm/CVSChangeLogSet/index_de.properties b/core/src/main/resources/hudson/scm/CVSChangeLogSet/index_de.properties deleted file mode 100644 index 53437f2d7e0ec4a273bb015bb1e529ee04065086..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/CVSChangeLogSet/index_de.properties +++ /dev/null @@ -1,23 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Summary=Zusammenfassung diff --git a/core/src/main/resources/hudson/scm/CVSChangeLogSet/index_fr.properties b/core/src/main/resources/hudson/scm/CVSChangeLogSet/index_fr.properties deleted file mode 100644 index 4eb0316c69edd6ab768d4850a764b333473745fa..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/CVSChangeLogSet/index_fr.properties +++ /dev/null @@ -1,23 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Eric Lefevre-Ardant -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Summary=Résumé diff --git a/core/src/main/resources/hudson/scm/CVSChangeLogSet/index_ja.properties b/core/src/main/resources/hudson/scm/CVSChangeLogSet/index_ja.properties deleted file mode 100644 index 1284097a431e78b5110592cf5d2b187b644d1739..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/CVSChangeLogSet/index_ja.properties +++ /dev/null @@ -1,23 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:cactusman -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Summary=\u8981\u7d04 \ No newline at end of file diff --git a/core/src/main/resources/hudson/scm/CVSChangeLogSet/index_nl.properties b/core/src/main/resources/hudson/scm/CVSChangeLogSet/index_nl.properties deleted file mode 100644 index 194886c6e3caab106c97695ede60604d28fd682a..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/CVSChangeLogSet/index_nl.properties +++ /dev/null @@ -1,23 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:sorokh -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Summary=Samenvatting diff --git a/core/src/main/resources/hudson/scm/CVSChangeLogSet/index_pt_BR.properties b/core/src/main/resources/hudson/scm/CVSChangeLogSet/index_pt_BR.properties deleted file mode 100644 index 66373912bc8b25e1de661ce1c8d7589f8bb756d8..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/CVSChangeLogSet/index_pt_BR.properties +++ /dev/null @@ -1,23 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Reginaldo L. Russinholi -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Summary=Sum\u00E1rio diff --git a/core/src/main/resources/hudson/scm/CVSChangeLogSet/index_ru.properties b/core/src/main/resources/hudson/scm/CVSChangeLogSet/index_ru.properties deleted file mode 100644 index 3cb4f00388eebc097c0c78b2457f9feb525f4aca..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/CVSChangeLogSet/index_ru.properties +++ /dev/null @@ -1,23 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Mike Salnikov -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Summary=\u0421\u0432\u043e\u0434\u043a\u0430 diff --git a/core/src/main/resources/hudson/scm/CVSChangeLogSet/index_tr.properties b/core/src/main/resources/hudson/scm/CVSChangeLogSet/index_tr.properties deleted file mode 100644 index 2fabc1e8e5e29aead918741479de4065ffa13efc..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/CVSChangeLogSet/index_tr.properties +++ /dev/null @@ -1,23 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Oguz Dag -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Summary=\u00d6zet diff --git a/core/src/main/resources/hudson/scm/CVSSCM/DescriptorImpl/enterPassword.jelly b/core/src/main/resources/hudson/scm/CVSSCM/DescriptorImpl/enterPassword.jelly deleted file mode 100644 index 290240e3119ea5a126f91d2ec4307f47060933e5..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/CVSSCM/DescriptorImpl/enterPassword.jelly +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - -

    Enter CVS password

    -

    - CVS stores passwords for :pserver CVSROOTs, per user. This page lets you add/replace - password to those entries. -

    - - - - - - - - - - - -
    -
    -
    \ No newline at end of file diff --git a/core/src/main/resources/hudson/scm/CVSSCM/DescriptorImpl/versionCheckError.jelly b/core/src/main/resources/hudson/scm/CVSSCM/DescriptorImpl/versionCheckError.jelly deleted file mode 100644 index c46abbdcda69545c08bdd595a5f90d9758e0b571..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/CVSSCM/DescriptorImpl/versionCheckError.jelly +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - -

    Failed to launch ${it.cvsExe}

    -

    - ${h.getWin32ErrorMessage(error)} -

    -

    -
    -
    -
    \ No newline at end of file diff --git a/core/src/main/resources/hudson/scm/CVSSCM/TagAction/tagForm.jelly b/core/src/main/resources/hudson/scm/CVSSCM/TagAction/tagForm.jelly deleted file mode 100644 index 61c386c85645bd632896bfb439096273766b8519..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/CVSSCM/TagAction/tagForm.jelly +++ /dev/null @@ -1,118 +0,0 @@ - - - - - - - -
    - - - ${%Choose the CVS tag name for this build}: - - - - - - - - - - - - - - - - - -
    -
    -
    -
    - - - - -

    Build #${it.build.number}

    - - - - -

    - ${%This build is already tagged as} - - - ${t} - -

    - - -

    - -

    - - -
    - - - -

    ${%Upstream tags}

    - - - - - - - - - - - -
    ${%Build}${%Tag}
    - ${up.key.name} - - - - ${tag?:'Not tagged'} -
    -
    -
    - - - -
    -
    -
    -
    \ No newline at end of file diff --git a/core/src/main/resources/hudson/scm/CVSSCM/TagAction/tagForm_de.properties b/core/src/main/resources/hudson/scm/CVSSCM/TagAction/tagForm_de.properties deleted file mode 100644 index 732a4e94a126160c21b9ceca2983f711bc68003e..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/CVSSCM/TagAction/tagForm_de.properties +++ /dev/null @@ -1,28 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Choose\ the\ CVS\ tag\ name\ for\ this\ build=Wählen Sie das CVS-Tag für diesen Build. -Tag=Tag -This\ build\ is\ already\ tagged\ as=Dieser Build ist bereits markiert ("getaggt") als -Create\ another\ tag=Neue Markierung (Tag) anlegen -Upstream\ tags=Vorgelagerte Tags -Build=Build diff --git a/core/src/main/resources/hudson/scm/CVSSCM/TagAction/tagForm_fr.properties b/core/src/main/resources/hudson/scm/CVSSCM/TagAction/tagForm_fr.properties deleted file mode 100644 index 77947655e6b18edcb1071b9142b2cd2e9793bd89..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/CVSSCM/TagAction/tagForm_fr.properties +++ /dev/null @@ -1,28 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Eric Lefevre-Ardant -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Choose\ the\ CVS\ tag\ name\ for\ this\ build=Choisissez le tag CVS pour ce build -Tag=Libellé (tag) -This\ build\ is\ already\ tagged\ as=Ce build est déjà taggué par -Create\ another\ tag=Créer un autre tag -Upstream\ tags=Tags amont -Build= diff --git a/core/src/main/resources/hudson/scm/CVSSCM/TagAction/tagForm_ja.properties b/core/src/main/resources/hudson/scm/CVSSCM/TagAction/tagForm_ja.properties deleted file mode 100644 index ff3b1897ac7c20cff19d5ccf8da4ed1794ab413e..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/CVSSCM/TagAction/tagForm_ja.properties +++ /dev/null @@ -1,28 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Choose\ the\ CVS\ tag\ name\ for\ this\ build= -Tag=\u30bf\u30b0 -This\ build\ is\ already\ tagged\ as= -Create\ another\ tag= -Upstream\ tags= -Build=\u30d3\u30eb\u30c9 diff --git a/core/src/main/resources/hudson/scm/CVSSCM/TagAction/tagForm_nl.properties b/core/src/main/resources/hudson/scm/CVSSCM/TagAction/tagForm_nl.properties deleted file mode 100644 index 100da9b6b11166babc96ed56b31a0619fc705c36..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/CVSSCM/TagAction/tagForm_nl.properties +++ /dev/null @@ -1,28 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:sorokh -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Choose\ the\ CVS\ tag\ name\ for\ this\ build=Kies het te gebruiken CVS label voor deze bouwpoging -Tag=Label -This\ build\ is\ already\ tagged\ as=Deze bouwpoging werd al gelabeld. -Create\ another\ tag=Cre\u00EBer een ander label -Upstream\ tags=Bovenliggende labels -Build=Bouwpoging diff --git a/core/src/main/resources/hudson/scm/CVSSCM/TagAction/tagForm_pt_BR.properties b/core/src/main/resources/hudson/scm/CVSSCM/TagAction/tagForm_pt_BR.properties deleted file mode 100644 index 70adec41ec624ca4cf390ba41771353ce3eea687..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/CVSSCM/TagAction/tagForm_pt_BR.properties +++ /dev/null @@ -1,28 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Reginaldo L. Russinholi -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Choose\ the\ CVS\ tag\ name\ for\ this\ build=Escolha o nome da marca\u00E7\u00E3o CVS para esta constru\u00E7\u00E3o -Tag=Marca\u00E7\u00E3o -This\ build\ is\ already\ tagged\ as=Esta constru\u00E7\u00E3o j\u00E1 est\u00E1 marcada como -Create\ another\ tag=Criar uma outra marca\u00E7\u00E3o -Upstream\ tags=Marca\u00E7\u00F5es pai -Build=Constru\u00E7\u00E3o diff --git a/core/src/main/resources/hudson/scm/CVSSCM/TagAction/tagForm_ru.properties b/core/src/main/resources/hudson/scm/CVSSCM/TagAction/tagForm_ru.properties deleted file mode 100644 index 0029b55cc3cbf5605db5c50dc971773787b4b288..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/CVSSCM/TagAction/tagForm_ru.properties +++ /dev/null @@ -1,28 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Mike Salnikov -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Choose\ the\ CVS\ tag\ name\ for\ this\ build=\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0438\u043c\u044f \u043c\u0435\u0442\u043a\u0438 \u0434\u043b\u044f \u044d\u0442\u043e\u0439 \u0441\u0431\u043e\u0440\u043a\u0438 -Tag=\u041c\u0435\u0442\u043a\u0430 -This\ build\ is\ already\ tagged\ as=\u042d\u0442\u0430 \u0441\u0431\u043e\u0440\u043a\u0430 \u0443\u0436\u0435 \u043f\u043e\u043c\u0435\u0447\u0435\u043d\u0430 \u043a\u0430\u043a -Create\ another\ tag=\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u043d\u043e\u0432\u0443\u044e \u043c\u0435\u0442\u043a\u0443 -Upstream\ tags=\u0412\u043e\u0441\u0445\u043e\u0434\u044f\u0449\u0438\u0435 \u043c\u0435\u0442\u043a\u0438 -Build=\u0421\u0431\u043e\u0440\u043a\u0430 diff --git a/core/src/main/resources/hudson/scm/CVSSCM/TagAction/tagForm_tr.properties b/core/src/main/resources/hudson/scm/CVSSCM/TagAction/tagForm_tr.properties deleted file mode 100644 index 2cd3504ad89de32451be5705a885109ff4e5b678..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/CVSSCM/TagAction/tagForm_tr.properties +++ /dev/null @@ -1,28 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Oguz Dag -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Choose\ the\ CVS\ tag\ name\ for\ this\ build=Bu yap\u0131land\u0131rma i\u00e7in tag ismi se\u00e7iniz -Tag= -This\ build\ is\ already\ tagged\ as=Bu yap\u0131land\u0131rma zaten \u015fu \u015fekilde tag''lendi, -Create\ another\ tag=Ba\u015fka bir tag olu\u015ftur -Upstream\ tags=Upstream tag''leri -Build=Yap\u0131land\u0131rma diff --git a/core/src/main/resources/hudson/scm/CVSSCM/config.jelly b/core/src/main/resources/hudson/scm/CVSSCM/config.jelly deleted file mode 100644 index 335644a29023c99f322d48bad8591cca85d856bf..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/CVSSCM/config.jelly +++ /dev/null @@ -1,55 +0,0 @@ - - - - - - - - - - - -
    - - -
    -
    - - - - - - - ${%legacyModeDescription} - - - - - - - - - -
    \ No newline at end of file diff --git a/core/src/main/resources/hudson/scm/CVSSCM/config.properties b/core/src/main/resources/hudson/scm/CVSSCM/config.properties deleted file mode 100644 index 94d0cd4752f7927d060f1eededbe5a9a5f349ca0..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/CVSSCM/config.properties +++ /dev/null @@ -1,24 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Modules=Module(s) -legacyModeDescription=(run CVS in a way compatible with older versions of Hudson <1.21) \ No newline at end of file diff --git a/core/src/main/resources/hudson/scm/CVSSCM/config_de.properties b/core/src/main/resources/hudson/scm/CVSSCM/config_de.properties deleted file mode 100644 index 8d5534795a3eb179099531a4c5c02cead6f38c2a..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/CVSSCM/config_de.properties +++ /dev/null @@ -1,28 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Modules=Module -Branch=Zweig -This\ is\ a\ tag,\ not\ a\ branch=Dies ist ein Tag, kein Zweig (branch). -Legacy\ mode=Legacy-Modus -Use\ update=Update-Kommando verwenden -legacyModeDescription=(Führt CVS in einem Modus aus, der mit älteren Hudson-Versionen <1.21 kompatibel ist.) diff --git a/core/src/main/resources/hudson/scm/CVSSCM/config_fr.properties b/core/src/main/resources/hudson/scm/CVSSCM/config_fr.properties deleted file mode 100644 index a9660d70ae7f945f62da6ed01222f84cbfedbc2a..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/CVSSCM/config_fr.properties +++ /dev/null @@ -1,29 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Eric Lefevre-Ardant -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Modules=Module(s) -Branch=Branche -This\ is\ a\ tag,\ not\ a\ branch=Ceci est un tag et non une branche -Legacy\ mode=Mode legacy -Use\ update=Utiliser update -legacyModeDescription=(exécute CVS de façon compatible avec les anciennes versions de Hudson <1.21) -Excluded\ Regions=Régions exclues diff --git a/core/src/main/resources/hudson/scm/CVSSCM/config_ja.properties b/core/src/main/resources/hudson/scm/CVSSCM/config_ja.properties deleted file mode 100644 index 1673d141aa34c7ef5d6b1d31471e9a61f6d2ddb8..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/CVSSCM/config_ja.properties +++ /dev/null @@ -1,29 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Modules=\u30E2\u30B8\u30E5\u30FC\u30EB -Branch=\u30D6\u30E9\u30F3\u30C1 -This\ is\ a\ tag,\ not\ a\ branch=\u3053\u308C\u306F\u30D6\u30E9\u30F3\u30C1\u3067\u306F\u306A\u304F\u3066\u30BF\u30B0 -Legacy\ mode=\u4E92\u63DB\u6027\u30E2\u30FC\u30C9 -Use\ update=cvs update\u3092\u5229\u7528 -legacyModeDescription=(1.21\u4EE5\u524D\u306EHudson\u3068\u4E92\u63DB\u6027\u306E\u3042\u308B\u52D5\u4F5C\u3092\u3057\u307E\u3059) -Excluded\ Regions=\u5BFE\u8C61\u5916\u3068\u3059\u308B\u7BC4\u56F2 \ No newline at end of file diff --git a/core/src/main/resources/hudson/scm/CVSSCM/config_nl.properties b/core/src/main/resources/hudson/scm/CVSSCM/config_nl.properties deleted file mode 100644 index 8b5e8dd7ac36a3b8ae1c8678c493c609f8dfacc5..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/CVSSCM/config_nl.properties +++ /dev/null @@ -1,27 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:sorokh -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Modules=Modules -Branch=Tak -This\ is\ a\ tag,\ not\ a\ branch=Dit is een label en geen vertakking. -Legacy\ mode="Legacy"-mode -Use\ update=Gebruik het "update"-commando diff --git a/core/src/main/resources/hudson/scm/CVSSCM/config_pt_BR.properties b/core/src/main/resources/hudson/scm/CVSSCM/config_pt_BR.properties deleted file mode 100644 index abec90fb6a3604c44d79ef0e09af769d03864462..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/CVSSCM/config_pt_BR.properties +++ /dev/null @@ -1,27 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Reginaldo L. Russinholi -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Modules=M\u00F3dulos -Branch= -This\ is\ a\ tag,\ not\ a\ branch=Isto \u00E9 uma tag, n\u00E3o um branch -Legacy\ mode=Modo legado -Use\ update=Usar atualiza\u00E7\u00E3o diff --git a/core/src/main/resources/hudson/scm/CVSSCM/config_ru.properties b/core/src/main/resources/hudson/scm/CVSSCM/config_ru.properties deleted file mode 100644 index 91a77d16c4289b4f669b66ae78ed30d476365efe..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/CVSSCM/config_ru.properties +++ /dev/null @@ -1,28 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Mike Salnikov -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Modules=\u041c\u043e\u0434\u0443\u043b\u0438 -Branch=\u0412\u0435\u0442\u043a\u0438 -This\ is\ a\ tag,\ not\ a\ branch=\u042d\u0442\u043e \u0442\u044d\u0433, \u0430 \u043d\u0435 \u0432\u0435\u0442\u043a\u0430 -Legacy\ mode="\u0422\u0440\u0430\u0434\u0438\u0446\u0438\u043e\u043d\u043d\u044b\u0439" \u0440\u0435\u0436\u0438\u043c -Use\ update=\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 (update) -legacyModeDescription=(\u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c CVS \u0432 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u043c \u0441\u043e \u0441\u0442\u0430\u0440\u044b\u043c\u0438 \u0432\u0435\u0440\u0441\u0438\u044f\u043c\u0438 Hudson (<1.21) \u0440\u0435\u0436\u0438\u043c\u043e\u043c) diff --git a/core/src/main/resources/hudson/scm/CVSSCM/config_tr.properties b/core/src/main/resources/hudson/scm/CVSSCM/config_tr.properties deleted file mode 100644 index 3bb1386142c9514cfdad12463597fd4ca0bc46f4..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/CVSSCM/config_tr.properties +++ /dev/null @@ -1,29 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Oguz Dag -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Modules=Mod\u00fcller -Branch= -This\ is\ a\ tag,\ not\ a\ branch=Bu bir (tag), (branch) de\u011fil -Legacy\ mode=Miras modu -Use\ update=G\u00fcncelleme \u00f6zelli\u011fini kullan -legacyModeDescription=(CVS'i Hudson'\u0131n 1.21 versiyonundan daha \u00f6nceki versiyonlar\u0131 ile uyumlu bir \u015fekilde \u00e7al\u0131st\u0131r) - diff --git a/core/src/main/resources/hudson/scm/CVSSCM/global.jelly b/core/src/main/resources/hudson/scm/CVSSCM/global.jelly deleted file mode 100644 index a77977571b2257eb210f37688fc7551bf9ae9c30..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/CVSSCM/global.jelly +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/core/src/main/resources/hudson/scm/CVSSCM/global_de.properties b/core/src/main/resources/hudson/scm/CVSSCM/global_de.properties deleted file mode 100644 index d21edea54da0001ddd96925222a42f60efa2226c..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/CVSSCM/global_de.properties +++ /dev/null @@ -1,26 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Check\ CVS\ version=Überprüfe CVS Version -cvs\ executable=CVS Befehl -.cvspass\ file=.cvspass Datei -Disable\ CVS\ compression=Deaktiviere CVS Kompression diff --git a/core/src/main/resources/hudson/scm/CVSSCM/global_fr.properties b/core/src/main/resources/hudson/scm/CVSSCM/global_fr.properties deleted file mode 100644 index 400a280e5d0abac53cdb57bdeb47641618c51fa2..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/CVSSCM/global_fr.properties +++ /dev/null @@ -1,26 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Eric Lefevre-Ardant -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Check\ CVS\ version=Vérifier la version de CVS -cvs\ executable=Exécutable cvs -.cvspass\ file=Fichier .cvspass -Disable\ CVS\ compression=Désactiver la compression CVS diff --git a/core/src/main/resources/hudson/scm/CVSSCM/global_ja.properties b/core/src/main/resources/hudson/scm/CVSSCM/global_ja.properties deleted file mode 100644 index 11edb1f4ee1adf43d0dd8d07ac6ba44a57de845e..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/CVSSCM/global_ja.properties +++ /dev/null @@ -1,26 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Check\ CVS\ version=CVS\u30d0\u30fc\u30b8\u30e7\u30f3\u306e\u78ba\u8a8d -cvs\ executable=CVS\u5b9f\u884c\u30d5\u30a1\u30a4\u30eb -.cvspass\ file=.cvspass\u30d5\u30a1\u30a4\u30eb -Disable\ CVS\ compression=CVS\u306e\u901a\u4fe1\u3092\u5727\u7e2e\u3057\u306a\u3044 diff --git a/core/src/main/resources/hudson/scm/CVSSCM/global_nl.properties b/core/src/main/resources/hudson/scm/CVSSCM/global_nl.properties deleted file mode 100644 index 2a40ab9f5fa345255616443a56605b63bd1b0347..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/CVSSCM/global_nl.properties +++ /dev/null @@ -1,26 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:sorokh -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Check\ CVS\ version=Controleer CVS versie -cvs\ executable=cvs programma -.cvspass\ file=.cvspass bestand -Disable\ CVS\ compression=Schakel CVS-compressie uit diff --git a/core/src/main/resources/hudson/scm/CVSSCM/global_pt_BR.properties b/core/src/main/resources/hudson/scm/CVSSCM/global_pt_BR.properties deleted file mode 100644 index 8df7bce91d735301a7bdb3d67453260d1f4fa588..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/CVSSCM/global_pt_BR.properties +++ /dev/null @@ -1,26 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Reginaldo L. Russinholi -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Check\ CVS\ version=Verificar vers\u00E3o do CVS -cvs\ executable=execut\u00E1vel do cvs -.cvspass\ file=arquivo .cvspass -Disable\ CVS\ compression=Desabilitar compress\u00E3o CVS diff --git a/core/src/main/resources/hudson/scm/CVSSCM/global_ru.properties b/core/src/main/resources/hudson/scm/CVSSCM/global_ru.properties deleted file mode 100644 index 2bd145a10a947bebc8fe9f49a2ca7b0100531b44..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/CVSSCM/global_ru.properties +++ /dev/null @@ -1,26 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Mike Salnikov -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Check\ CVS\ version=\u041f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435 \u0432\u0435\u0440\u0441\u0438\u044e CVS -cvs\ executable=\u0418\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u0439 \u0444\u0430\u0439\u043b CVS -.cvspass\ file=\u0424\u0430\u0439\u043b .cvspass -Disable\ CVS\ compression=\u041e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0441\u0436\u0430\u0442\u0438\u0435 CVS diff --git a/core/src/main/resources/hudson/scm/CVSSCM/global_tr.properties b/core/src/main/resources/hudson/scm/CVSSCM/global_tr.properties deleted file mode 100644 index 09c8febd0b6a58c87ca27d2be253e3416b2db741..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/CVSSCM/global_tr.properties +++ /dev/null @@ -1,26 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Oguz Dag -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Check\ CVS\ version=CVS versiyonunu kontrol et -cvs\ executable=\u00c7al\u0131\u015ft\u0131r\u0131labilir\ cvs\ dosyas\u0131 -.cvspass\ file=.cvspass dosyas\u0131 -Disable\ CVS\ compression=CVS\ s\u0131k\u0131\u015ft\u0131rmay\u0131\ devre\ d\u0131\u015f\u0131\ b\u0131rak diff --git a/core/src/main/resources/hudson/scm/EmptyChangeLogSet/digest.jelly b/core/src/main/resources/hudson/scm/EmptyChangeLogSet/digest.jelly new file mode 100644 index 0000000000000000000000000000000000000000..0294293c94c168e213d8a0f205359988b5aa7e9e --- /dev/null +++ b/core/src/main/resources/hudson/scm/EmptyChangeLogSet/digest.jelly @@ -0,0 +1,27 @@ + + + + ${%No changes.} + diff --git a/core/src/main/resources/hudson/scm/EmptyChangeLogSet/digest_da.properties b/core/src/main/resources/hudson/scm/EmptyChangeLogSet/digest_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..8059c411f9baa490339510b317aebeb62ef3356d --- /dev/null +++ b/core/src/main/resources/hudson/scm/EmptyChangeLogSet/digest_da.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +No\ changes.=Ingen \u00e6ndringer. diff --git a/core/src/main/resources/hudson/scm/CVSChangeLogSet/digest_de.properties b/core/src/main/resources/hudson/scm/EmptyChangeLogSet/digest_de.properties similarity index 100% rename from core/src/main/resources/hudson/scm/CVSChangeLogSet/digest_de.properties rename to core/src/main/resources/hudson/scm/EmptyChangeLogSet/digest_de.properties diff --git a/core/src/main/resources/hudson/scm/EmptyChangeLogSet/digest_es.properties b/core/src/main/resources/hudson/scm/EmptyChangeLogSet/digest_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..19b387588fb01f26a967d86912a1284d4d190b1c --- /dev/null +++ b/core/src/main/resources/hudson/scm/EmptyChangeLogSet/digest_es.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +No\ changes.=Sin cambios diff --git a/core/src/main/resources/hudson/scm/EmptyChangeLogSet/digest_fi.properties b/core/src/main/resources/hudson/scm/EmptyChangeLogSet/digest_fi.properties new file mode 100644 index 0000000000000000000000000000000000000000..9178a55fcc6a19bd03574dd509eda4d8d308965a --- /dev/null +++ b/core/src/main/resources/hudson/scm/EmptyChangeLogSet/digest_fi.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +No\ changes.=Ei muutoksia diff --git a/core/src/main/resources/hudson/scm/EmptyChangeLogSet/digest_fr.properties b/core/src/main/resources/hudson/scm/EmptyChangeLogSet/digest_fr.properties new file mode 100644 index 0000000000000000000000000000000000000000..938ac7f431b6ac15fcc50fe81fd7ed74d6204a29 --- /dev/null +++ b/core/src/main/resources/hudson/scm/EmptyChangeLogSet/digest_fr.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Eric Lefevre-Ardant +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +No\ changes.=Aucun changement. diff --git a/core/src/main/resources/hudson/scm/EmptyChangeLogSet/digest_ja.properties b/core/src/main/resources/hudson/scm/EmptyChangeLogSet/digest_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..66af0028a3ac48b930600015ac159c7da8f58586 --- /dev/null +++ b/core/src/main/resources/hudson/scm/EmptyChangeLogSet/digest_ja.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe, id:cactusman +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +No\ changes.=\u5909\u66f4\u70b9\u306f\u3042\u308a\u307e\u305b\u3093\u3002 diff --git a/core/src/main/resources/hudson/scm/CVSChangeLogSet/digest_nl.properties b/core/src/main/resources/hudson/scm/EmptyChangeLogSet/digest_nl.properties similarity index 100% rename from core/src/main/resources/hudson/scm/CVSChangeLogSet/digest_nl.properties rename to core/src/main/resources/hudson/scm/EmptyChangeLogSet/digest_nl.properties diff --git a/core/src/main/resources/hudson/scm/CVSChangeLogSet/digest_pt_BR.properties b/core/src/main/resources/hudson/scm/EmptyChangeLogSet/digest_pt_BR.properties similarity index 100% rename from core/src/main/resources/hudson/scm/CVSChangeLogSet/digest_pt_BR.properties rename to core/src/main/resources/hudson/scm/EmptyChangeLogSet/digest_pt_BR.properties diff --git a/core/src/main/resources/hudson/scm/CVSChangeLogSet/digest_ru.properties b/core/src/main/resources/hudson/scm/EmptyChangeLogSet/digest_ru.properties similarity index 100% rename from core/src/main/resources/hudson/scm/CVSChangeLogSet/digest_ru.properties rename to core/src/main/resources/hudson/scm/EmptyChangeLogSet/digest_ru.properties diff --git a/core/src/main/resources/hudson/scm/CVSChangeLogSet/digest_tr.properties b/core/src/main/resources/hudson/scm/EmptyChangeLogSet/digest_tr.properties similarity index 100% rename from core/src/main/resources/hudson/scm/CVSChangeLogSet/digest_tr.properties rename to core/src/main/resources/hudson/scm/EmptyChangeLogSet/digest_tr.properties diff --git a/core/src/main/resources/hudson/scm/EmptyChangeLogSet/index.jelly b/core/src/main/resources/hudson/scm/EmptyChangeLogSet/index.jelly new file mode 100644 index 0000000000000000000000000000000000000000..37db1a16456a4384fafec70e40d06be291eb4f42 --- /dev/null +++ b/core/src/main/resources/hudson/scm/EmptyChangeLogSet/index.jelly @@ -0,0 +1,33 @@ + + + + +

    + + +

    +
    \ No newline at end of file diff --git a/core/src/main/resources/hudson/scm/Messages.properties b/core/src/main/resources/hudson/scm/Messages.properties index 3a34103b804c6af9552190f832973d18f4caf567..5e6f146f1775e1ce605567b22f293c07c9c1a89e 100644 --- a/core/src/main/resources/hudson/scm/Messages.properties +++ b/core/src/main/resources/hudson/scm/Messages.properties @@ -25,36 +25,3 @@ SCM.Permissions.Title=SCM SCM.TagPermission.Description=\ This permission allows users to create a new tag in the source code repository \ for a given build. - -SubversionSCM.ClockOutOfSync=\ - WARNING: clock of the subversion server appears to be out of sync. This can result in inconsistent check out behavior. -SubversionSCM.pollChanges.remoteRevisionAt=\ - {0} is at revision {1} -SubversionSCM.pollChanges.changedFrom=\ - \ \ (changed from {0}) - -SubversionUpdateEventHandler.FetchExternal=\ - Fetching ''{0}'' at {1} into ''{2}'' -SubversionTagAction.DisplayName.HasNoTag=Tag this build -SubversionTagAction.DisplayName.HasATag=Subversion tag -SubversionTagAction.DisplayName.HasTags=Subversion tags -SubversionTagAction.Tooltip=Tagged - -CVSSCM.TagginXasY=Tagging {0} as {1} -CVSSCM.FailedToMarkForKeep=Failed to mark {0} for keep -CVSSCM.ExpandingWorkspaceArchive=expanding the workspace archive into {0} -CVSSCM.HeadIsNotBranch=Technically, HEAD is not a branch in CVS. Leave this field empty to build the trunk. -CVSSCM.InvalidCvsroot=Invalid CVSROOT string -CVSSCM.MissingCvsroot=CVSROOT is mandatory -CVSSCM.NoSuchJobExists=No such job exists: {0} -CVSSCM.NoValidTagNameGivenFor=No valid tag name given for {0} : {1} -CVSSCM.PasswordNotSet=It doesn''t look like this CVSROOT has its password set. -CVSSCM.TagContainsIllegalChar=Tag contains illegal ''{0}'' character -CVSSCM.TagIsEmpty=Tag is empty -CVSSCM.TagNeedsToStartWithAlphabet=Tag needs to start with alphabet -CVSSCM.TagThisBuild=Tag this build -CVSSCM.TaggingFailed=tagging failed -CVSSCM.TaggingWorkspace=tagging the workspace -CVSSCM.DisplayName2=CVS tags -CVSSCM.DisplayName1=CVS tag -CVSSCM.WorkspaceInconsistent=Workspace is inconsistent with configuration. Scheduling a new build: {0} diff --git a/core/src/main/resources/hudson/scm/Messages_da.properties b/core/src/main/resources/hudson/scm/Messages_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..72f096c7f976750c2a5a42811086acd3254d9416 --- /dev/null +++ b/core/src/main/resources/hudson/scm/Messages_da.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +SCM.TagPermission.Description=\ +Denne rettighed tillader brugerne at oprette et nyt ''tag'' i kildekodestyringssystemet, for et givet byg. +NullSCM.DisplayName=Ingen +SCM.Permissions.Title=Kildekodestyring (SCM) diff --git a/core/src/main/resources/hudson/scm/Messages_de.properties b/core/src/main/resources/hudson/scm/Messages_de.properties index b49a4a917eb4d024130111d615db27081b34e2c4..0a0c616a866db5b158f3671c710622c7170ee1c6 100644 --- a/core/src/main/resources/hudson/scm/Messages_de.properties +++ b/core/src/main/resources/hudson/scm/Messages_de.properties @@ -22,32 +22,5 @@ NullSCM.DisplayName=Keines SCM.Permissions.Title=SCM - -SubversionSCM.ClockOutOfSync=\ - WARNUNG: Die Uhr des Subversion-Servers scheint nicht synchronisiert zu sein. Dies kann zu inkonsistentem Verhalten beim Check-Out f\u00fchren. -SubversionSCM.pollChanges.remoteRevisionAt=\ - {0} liegt in Revision {1} vor -SubversionSCM.pollChanges.changedFrom=\ - \ \ (\u00c4nderungen zu Revision {0}) - -SubversionUpdateEventHandler.FetchExternal=\ - Hole ''{0}'' aus Revision {1} in Datei ''{2}'' -CVSSCM.TagginXasY=Markiere ("tagge") {0} als {1} -CVSSCM.FailedToMarkForKeep={0} konnte nicht markiert werden, um beibehalten zu werden ("failed to mark for keep"). -CVSSCM.ExpandingWorkspaceArchive=Entpacke das Archiv des Arbeitsbereichs nach {0} -CVSSCM.HeadIsNotBranch=Technisch gesprochen ist HEAD kein Zweig in CVS. Lassen Sie dieses Feld frei, um den Trunk zu bauen. -CVSSCM.InvalidCvsroot=Ung\u00fcltige CVSROOT-Angabe. -CVSSCM.MissingCvsroot=CVSROOT muss angegeben werden. -CVSSCM.NoSuchJobExists=Dieser Job existiert nicht: {0} -CVSSCM.NoValidTagNameGivenFor=Der Tag-Name {1} ist ung\u00fcltig f\u00fcr {0}. -CVSSCM.PasswordNotSet=Das Passwort f\u00fcr CVSROOT scheint nicht gesetzt zu sein. -CVSSCM.TagContainsIllegalChar=Der Tag-Name enth\u00e4lt ung\u00fcltiges Zeichen ''{0}''. -CVSSCM.TagIsEmpty=Der Tag-Name ist leer. -CVSSCM.TagNeedsToStartWithAlphabet=Der Tag-Name mu\u00df mit einem Buchstaben beginnen. -CVSSCM.TagThisBuild=Diesen Build markieren ("taggen"). -CVSSCM.TaggingFailed=Markierung ("tagging") ist fehlgeschlagen. -CVSSCM.TaggingWorkspace=Arbeitsbereich wird markiert ("getaggt"). -CVSSCM.DisplayName2=CVS-Tags -CVSSCM.DisplayName1=CVS-Tag -CVSSCM.WorkspaceInconsistent=Der Arbeitsbereich ist inkonsistent mit der aktuellen Konfiguration. Plane einen neuen Build: {0} - \ No newline at end of file +SCM.TagPermission.Description=\ + Dieses Recht erlaubt, einen Build im Source Code Repository mit einem Tag zu kennzeichnen. diff --git a/core/src/main/resources/hudson/scm/Messages_es.properties b/core/src/main/resources/hudson/scm/Messages_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..0b2311e57d8a9af0750754a00e73d71aa00d30bd --- /dev/null +++ b/core/src/main/resources/hudson/scm/Messages_es.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +NullSCM.DisplayName=Ninguno +SCM.Permissions.Title=Repositorio de software (SCM) +SCM.TagPermission.Description=\ + Este permiso permite a los usuarios crear nuevos tags en el repositorio de software. diff --git a/core/src/main/resources/hudson/scm/Messages_fr.properties b/core/src/main/resources/hudson/scm/Messages_fr.properties index 7b5b1fad2f299ef158d9f0bfe3186c6dd3d6bd45..8f3f855a75ef0eb7eb5782937cbf1e90cea4bb00 100644 --- a/core/src/main/resources/hudson/scm/Messages_fr.properties +++ b/core/src/main/resources/hudson/scm/Messages_fr.properties @@ -23,37 +23,5 @@ NullSCM.DisplayName=Aucune SCM.Permissions.Title=Gestion de version SCM.TagPermission.Description=\ - Cette option permet aux utilisateurs de créer un nouveau tag dans l''outil de gestion de code source \ - pour un build donné. - -SubversionSCM.ClockOutOfSync=\ - AVERTISSEMENT: l''horloge du serveur subversion semble désynchronisée. Cela peut provoquer des comportements incohérents lors de la récupération des fichiers. -SubversionSCM.pollChanges.remoteRevisionAt=\ - {0} est en révision {1} -SubversionSCM.pollChanges.changedFrom=\ - \ \ (a changé depuis la {0}) - -SubversionUpdateEventHandler.FetchExternal=\ - Récupération de ''{0}'' en rev {1} vers ''{2}'' -SubversionTagAction.DisplayName.HasNoTag=Tagguer ce build -SubversionTagAction.DisplayName.HasATag=Tag Subversion -SubversionTagAction.DisplayName.HasTags=Tags Subversion -SubversionTagAction.Tooltip=Taggué - -CVSSCM.TagginXasY=Application du tag {1} sur {0} -CVSSCM.FailedToMarkForKeep=Echec lors du marquage de {0} en vue de le conserver -CVSSCM.ExpandingWorkspaceArchive=décompressage de l''archive de répertoire de travail dans {0} -CVSSCM.HeadIsNotBranch=Techniquement, HEAD n''est pas une branche dans CVS. Laissez ce champ vide pour builder le tronc. -CVSSCM.InvalidCvsroot=String CVSROOT invalide -CVSSCM.MissingCvsroot=CVSROOT est obligatoire -CVSSCM.NoValidTagNameGivenFor=Nom de tag non valide pour {0} : {1} -CVSSCM.PasswordNotSet=Ce CVSROOT ne semble pas avoir de mot de passe spécifié. -CVSSCM.TagContainsIllegalChar=Ce tag contient des caractères illégaux ''{0}'' -CVSSCM.TagIsEmpty=Ce tag est vide -CVSSCM.TagNeedsToStartWithAlphabet=Le libellé du tag doit commencer avec un caractère alphabétique -CVSSCM.TagThisBuild=Tagguer ce build -CVSSCM.TaggingFailed=échec de l''application du tag -CVSSCM.TaggingWorkspace=application du tag sur le workspace -CVSSCM.DisplayName2=Tags CVS -CVSSCM.DisplayName1=Tag CVS -CVSSCM.WorkspaceInconsistent=Le répertoire de travail n''est pas cohérent avec la configuration. Un nouveau build est demandé: {0} + Cette option permet aux utilisateurs de cr\u00C3\u00A9er un nouveau tag dans l''outil de gestion de code source \ + pour un build donn\u00C3\u00A9. diff --git a/core/src/main/resources/hudson/scm/Messages_ja.properties b/core/src/main/resources/hudson/scm/Messages_ja.properties index eabfc2d89262453bd1a222677e8aa63e51bd76ab..b1498b324fe0191f04d620ce2bd688c4db92ac06 100644 --- a/core/src/main/resources/hudson/scm/Messages_ja.properties +++ b/core/src/main/resources/hudson/scm/Messages_ja.properties @@ -24,36 +24,3 @@ NullSCM.DisplayName=\u306A\u3057 SCM.Permissions.Title=SCM SCM.TagPermission.Description=\ \u3053\u306E\u30D1\u30FC\u30DF\u30C3\u30B7\u30E7\u30F3\u306F\u3001\u30D3\u30EB\u30C9\u304C\u4F7F\u7528\u3059\u308B\u30BD\u30FC\u30B9\u30B3\u30FC\u30C9\u30EA\u30DD\u30B8\u30C8\u30EA\u3078\u306E\u65B0\u898F\u30BF\u30B0\u306E\u4F5C\u6210\u3092\u8A31\u53EF\u3057\u307E\u3059\u3002 - -SubversionSCM.ClockOutOfSync=\ - \u8B66\u544A: Subversion\u30B5\u30FC\u30D0\u306E\u30AF\u30ED\u30C3\u30AF\u3068Hudson\u306E\u30AF\u30ED\u30C3\u30AF\u304C\u305A\u308C\u3066\u3044\u308B\u3088\u3046\u3067\u3059\u3002\u3053\u308C\u306B\u3088\u3063\u3066\u30C1\u30A7\u30C3\u30AF\u30A2\u30A6\u30C8\u52D5\u4F5C\u306B\u652F\u969C\u304C\u51FA\u308B\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002 -SubversionSCM.pollChanges.remoteRevisionAt=\ - {0}\u306F\u30EA\u30D3\u30B8\u30E7\u30F3{1} -SubversionSCM.pollChanges.changedFrom=\ - \ \ (\u524D\u56DE\u306F{0}) - -SubversionUpdateEventHandler.FetchExternal=\ - ''{0}''\u306E\u30EA\u30D3\u30B8\u30E7\u30F3{1}\u3092''{2}''\u3078\u53D6\u5F97\u4E2D -SubversionTagAction.DisplayName.HasNoTag=\u30BF\u30B0\u8A2D\u5B9A -SubversionTagAction.DisplayName.HasATag=\u30BF\u30B0\u53C2\u7167 -SubversionTagAction.DisplayName.HasTags=\u30BF\u30B0\u53C2\u7167 -SubversionTagAction.Tooltip=\u30BF\u30B0 - -CVSSCM.TagginXasY={0}\u3092{1}\u3068\u3057\u3066\u30BF\u30B0\u3092\u8A2D\u5B9A -CVSSCM.FailedToMarkForKeep={0}\u306E\u8A18\u9332\u306B\u5931\u6557\u3057\u307E\u3057\u305F -CVSSCM.ExpandingWorkspaceArchive=\u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9\u30A2\u30FC\u30AB\u30A4\u30D6\u3092{0}\u306B\u5C55\u958B\u4E2D -CVSSCM.HeadIsNotBranch=\u53B3\u5BC6\u306B\u8A00\u3046\u3068\u3001HEAD\u306FCVS\u306E\u30D6\u30E9\u30F3\u30C1\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002\u30C8\u30E9\u30F3\u30AF\u3092\u30D3\u30EB\u30C9\u3059\u308B\u305F\u3081\u306B\u3053\u306E\u9805\u76EE\u3092\u7A7A\u6B04\u306E\u307E\u307E\u306B\u3057\u3066\u304F\u3060\u3055\u3044\u3002 -CVSSCM.InvalidCvsroot=\u4E0D\u6B63\u306ACVSROOT\u3067\u3059 -CVSSCM.MissingCvsroot=CVSROOT\u306F\u5FC5\u9808\u3067\u3059 -CVSSCM.NoSuchJobExists=\u5B58\u5728\u3057\u306A\u3044\u30B8\u30E7\u30D6: {0} -CVSSCM.NoValidTagNameGivenFor={0}\u306B\u5BFE\u3059\u308B\u59A5\u5F53\u306A\u30BF\u30B0\u540D\u3067\u306F\u3042\u308A\u307E\u305B\u3093: {1} -CVSSCM.PasswordNotSet=\u3053\u306ECVSROOT\u306E\u30D1\u30B9\u30EF\u30FC\u30C9\u304C\u8A2D\u5B9A\u3055\u308C\u3066\u3044\u306A\u3044\u3088\u3046\u3067\u3059\u3002 -CVSSCM.TagContainsIllegalChar=\u30BF\u30B0\u306B\u4E0D\u6B63\u306A\u6587\u5B57 ''{0}''\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059 -CVSSCM.TagIsEmpty=\u30BF\u30B0\u304C\u672A\u8A2D\u5B9A\u3067\u3059 -CVSSCM.TagNeedsToStartWithAlphabet=\u30BF\u30B0\u306F\u82F1\u5B57\u3067\u59CB\u307E\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059 -CVSSCM.TagThisBuild=\u3053\u306E\u30D3\u30EB\u30C9\u306B\u30BF\u30B0\u3092\u8A2D\u5B9A -CVSSCM.TaggingFailed=\u30BF\u30B0\u306E\u8A2D\u5B9A\u306B\u5931\u6557 -CVSSCM.TaggingWorkspace=\u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9\u306B\u30BF\u30B0\u3092\u8A2D\u5B9A\u4E2D -CVSSCM.DisplayName2=CVS\u30BF\u30B0 -CVSSCM.DisplayName1=CVS\u30BF\u30B0 -CVSSCM.WorkspaceInconsistent=\u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9\u304C\u8A2D\u5B9A\u3068\u77DB\u76FE\u3057\u3066\u3044\u307E\u3059\u3002\u65B0\u898F\u30D3\u30EB\u30C9\u3092\u30B9\u30B1\u30B8\u30E5\u30FC\u30EA\u30F3\u30B0\u3057\u307E\u3059: {0} diff --git a/core/src/main/resources/hudson/scm/Messages_nl.properties b/core/src/main/resources/hudson/scm/Messages_nl.properties index 729c75439a9e61acfed073731c35f2af6450ad9e..6e3dc6d2de4f2bbcf1f6b590ebdb603f32e71e4e 100644 --- a/core/src/main/resources/hudson/scm/Messages_nl.properties +++ b/core/src/main/resources/hudson/scm/Messages_nl.properties @@ -22,30 +22,3 @@ NullSCM.DisplayName=Geen SCM.Permissions.Title=SCM - -SubversionSCM.ClockOutOfSync=\ - WAARSCHUWING: De klok van de subversion server is niet gesynchronizeerd. Dit kan resulteren in inconsistent gedrag bij het uitchecken. -SubversionSCM.pollChanges.remoteRevisionAt=\ - {0} heeft revisie {1} -SubversionSCM.pollChanges.changedFrom=\ - \ \ (veranderd van {0}) - -SubversionUpdateEventHandler.FetchExternal=\ - Ophalen van ''{0}'' met revisie {1} naar ''{2}'' -CVSSCM.TagginXasY=Label {0} als {1} -CVSSCM.FailedToMarkForKeep={0} kon niet gemarkeerd worden om te behouden -CVSSCM.ExpandingWorkspaceArchive=expanding the workspace archive into {0} -CVSSCM.HeadIsNotBranch=Technisch is HEAD geen vertakking in CVS. Laat dit veld leeg indien u vanaf de basis wilt bouwen. -CVSSCM.InvalidCvsroot=Ongeldige CVSROOT string -CVSSCM.MissingCvsroot=CVSROOT is verplicht -CVSSCM.NoValidTagNameGivenFor=Label naam is niet geldig voor {0} : {1} -CVSSCM.PasswordNotSet=Deze CVSROOT heeft blijkbaar geen paswoord ingesteld. -CVSSCM.TagContainsIllegalChar=Label bevat ongeldig teken ''{0}'' -CVSSCM.TagIsEmpty=Label is blanko -CVSSCM.TagNeedsToStartWithAlphabet=Label moet starten met een letter -CVSSCM.TagThisBuild=Label deze bouwpoging -CVSSCM.TaggingFailed=labelen gefaald -CVSSCM.TaggingWorkspace=tagging the workspace -CVSSCM.DisplayName2=CVS labels -CVSSCM.DisplayName1=CVS label -CVSSCM.WorkspaceInconsistent=Werkplaats is inconsistent met de configuratie. Een nieuwe bouwpoging wordt gepland: {0} \ No newline at end of file diff --git a/core/src/main/resources/hudson/scm/Messages_pt_BR.properties b/core/src/main/resources/hudson/scm/Messages_pt_BR.properties index 8471a97e09397217f092e2e55a95624d438612b8..10a981c402a49d9b6bb79d13bab380f2de09ba11 100644 --- a/core/src/main/resources/hudson/scm/Messages_pt_BR.properties +++ b/core/src/main/resources/hudson/scm/Messages_pt_BR.properties @@ -22,13 +22,7 @@ NullSCM.DisplayName=Nenhum SCM.Permissions.Title=SCM - -SubversionSCM.ClockOutOfSync=\ - ATEN\u00C7\u00C3O: rel\u00F3gio do servidor subversion parece estar fora de sincronismo. Isto pode resultar em check out inconsistente. -SubversionSCM.pollChanges.remoteRevisionAt=\ - {0} est\u00E1 na revis\u00E3o {1} -SubversionSCM.pollChanges.changedFrom=\ - \ \ (mudado de {0}) - -SubversionUpdateEventHandler.FetchExternal=\ - Baixando ''{0}'' de {1} para ''{2}'' \ No newline at end of file +# \ +# This permission allows users to create a new tag in the source code repository \ +# for a given build. +SCM.TagPermission.Description= diff --git a/core/src/main/resources/hudson/scm/Messages_ru.properties b/core/src/main/resources/hudson/scm/Messages_ru.properties index fe3f70105a76ba838d788c2feb444d464193af6c..a1ba94059b9e5efc14b3e7e0b32d3e61f7749298 100644 --- a/core/src/main/resources/hudson/scm/Messages_ru.properties +++ b/core/src/main/resources/hudson/scm/Messages_ru.properties @@ -20,15 +20,5 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -NullSCM.DisplayName=\u041d\u0435\u0442 -SCM.Permissions.Title=\u0421\u0438\u0441\u0442\u0435\u043c\u0430 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044f \u0432\u0435\u0440\u0441\u0438\u0439 - -SubversionSCM.ClockOutOfSync=\ - \u0412\u041d\u0418\u041c\u0410\u041d\u0418\u0415: \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u0438\u0435 \u0447\u0430\u0441\u043e\u0432 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435 subversion \u043f\u043e\u0445\u043e\u0436\u0435 \u043d\u0435 \u0441\u043e\u0433\u043b\u0430\u0441\u043e\u0432\u0430\u043d\u044b. \u042d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0432\u044b\u0437\u0432\u0430\u0442\u044c \u043d\u0435\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0435 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043f\u0440\u0438 checkout. -SubversionSCM.pollChanges.remoteRevisionAt=\ - {0} \u0432 \u0440\u0435\u0432\u0438\u0437\u0438\u0438 {1} -SubversionSCM.pollChanges.changedFrom=\ - \ \ (\u0438\u0437\u043c\u0435\u043d\u0438\u043b\u043e\u0441\u044c \u0441 {0}) - -SubversionUpdateEventHandler.FetchExternal=\ - \u041f\u043e\u043b\u0443\u0447\u0435\u043d\u043e ''{0}'' \u0432 {1} \u0432 ''{2}'' \ No newline at end of file +NullSCM.DisplayName=\u041D\u0435\u0442 +SCM.Permissions.Title=\u0421\u0438\u0441\u0442\u0435\u043C\u0430 \u043A\u043E\u043D\u0442\u0440\u043E\u043B\u044F \u0432\u0435\u0440\u0441\u0438\u0439 diff --git a/core/src/main/resources/hudson/scm/Messages_tr.properties b/core/src/main/resources/hudson/scm/Messages_tr.properties index 4024f25d7c7dee7e2b82f8c8f747e4cd8d0c6b0a..0b389380ace6e58ea41e07963a6d33fecdc974b7 100644 --- a/core/src/main/resources/hudson/scm/Messages_tr.properties +++ b/core/src/main/resources/hudson/scm/Messages_tr.properties @@ -22,13 +22,3 @@ NullSCM.DisplayName=Hi\u0231birisi SCM.Permissions.Title=SCM - -SubversionSCM.ClockOutOfSync=\ - UYARI: Subversion sunucusunun saati ile senkronizasyon sorunu var. Bu durum tutars\u0131z checkout davran\u0131\u015flar\u0131 olu\u015fmas\u0131na sebep olabilir. -SubversionSCM.pollChanges.remoteRevisionAt=\ - {0}, revizyon {1} \u00fczerinde -SubversionSCM.pollChanges.changedFrom=\ - \ \ ({0}''dan de\u011fi\u015fti) - -SubversionUpdateEventHandler.FetchExternal=\ - {1}''deki ''{0}'', ''{2}''ye al\u0131n\u0131yor \ No newline at end of file diff --git a/core/src/main/resources/hudson/scm/SCM/project-changes_da.properties b/core/src/main/resources/hudson/scm/SCM/project-changes_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..1df734da1d103b5f0d00c55d787c2a1e74a0936d --- /dev/null +++ b/core/src/main/resources/hudson/scm/SCM/project-changes_da.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +No\ changes\ in\ any\ of\ the\ builds.=Ingen \u00e6ndringer i nogen byg. +detail=detaljer +No\ builds.=Ingen byg. diff --git a/core/src/main/resources/hudson/scm/SCM/project-changes_de.properties b/core/src/main/resources/hudson/scm/SCM/project-changes_de.properties index 91f4c09a30c4999a35a11cf9275306bc8538d4db..32b293899263790bf025b328fe9f8b2729b7a511 100644 --- a/core/src/main/resources/hudson/scm/SCM/project-changes_de.properties +++ b/core/src/main/resources/hudson/scm/SCM/project-changes_de.properties @@ -22,3 +22,4 @@ No\ builds.=Keine Builds. No\ changes\ in\ any\ of\ the\ builds.=Keine Änderungen in den Builds. +detail=Details diff --git a/core/src/main/resources/hudson/scm/SCM/project-changes_es.properties b/core/src/main/resources/hudson/scm/SCM/project-changes_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..7592b31e52ed4530871ce0e8985c6aac5337a4a5 --- /dev/null +++ b/core/src/main/resources/hudson/scm/SCM/project-changes_es.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +No\ builds.=Sin ejecuciones. +detail=detalles +No\ changes\ in\ any\ of\ the\ builds.=No hay nuevos cambios en ninguna ejecución. diff --git a/core/src/main/resources/hudson/scm/SCM/project-changes_it.properties b/core/src/main/resources/hudson/scm/SCM/project-changes_it.properties new file mode 100644 index 0000000000000000000000000000000000000000..e14d50bbd8cee87d19d721efe0559bcd20625366 --- /dev/null +++ b/core/src/main/resources/hudson/scm/SCM/project-changes_it.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +detail=dettagli diff --git a/core/src/main/resources/hudson/scm/SCM/project-changes_ko.properties b/core/src/main/resources/hudson/scm/SCM/project-changes_ko.properties new file mode 100644 index 0000000000000000000000000000000000000000..70ffa6c796974ed49c0e472a6dda9e880a1d8f31 --- /dev/null +++ b/core/src/main/resources/hudson/scm/SCM/project-changes_ko.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +No\ changes\ in\ any\ of\ the\ builds.=\uC5B4\uB5A4 \uBE4C\uB4DC\uC5D0\uB3C4 \uBCC0\uACBD \uC0AC\uD56D\uC774 \uC5C6\uC2B5\uB2C8\uB2E4. diff --git a/core/src/main/resources/hudson/scm/SCM/project-changes_pt_BR.properties b/core/src/main/resources/hudson/scm/SCM/project-changes_pt_BR.properties index 4bf0133d1c14e858d6f4a88428b1231ffd1c4630..bea541f3ec2c41ecaf10df5d4460a1855c53d8e4 100644 --- a/core/src/main/resources/hudson/scm/SCM/project-changes_pt_BR.properties +++ b/core/src/main/resources/hudson/scm/SCM/project-changes_pt_BR.properties @@ -22,3 +22,4 @@ No\ builds.=Sem constru\u00E7\u00F5es. No\ changes\ in\ any\ of\ the\ builds.=Sem mudan\u00E7as em qualquer uma das constru\u00E7\u00F5es. +detail=detalhe diff --git a/core/src/main/resources/hudson/scm/SCM/project-changes_ru.properties b/core/src/main/resources/hudson/scm/SCM/project-changes_ru.properties index 9c7b6b8d885b7665b7c14ea88aac980139bb43e5..614507ad4ab5abb744e8de70b2e8e5906db60289 100644 --- a/core/src/main/resources/hudson/scm/SCM/project-changes_ru.properties +++ b/core/src/main/resources/hudson/scm/SCM/project-changes_ru.properties @@ -22,3 +22,4 @@ No\ builds.=\u041d\u0435\u0442 \u0441\u0431\u043e\u0440\u043e\u043a. No\ changes\ in\ any\ of\ the\ builds.=\u041d\u0435\u0442 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u043d\u0438 \u0432 \u043e\u0434\u043d\u043e\u0439 \u0441\u0431\u043e\u0440\u043a\u0435. +detail=\u043F\u043E\u0434\u0440\u043E\u0431\u043D\u0435\u0435 diff --git a/core/src/main/resources/hudson/scm/SCM/project-changes_sv_SE.properties b/core/src/main/resources/hudson/scm/SCM/project-changes_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..53ddbc9a4d0725d3efd32cf53b0078c4c44b785b --- /dev/null +++ b/core/src/main/resources/hudson/scm/SCM/project-changes_sv_SE.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +detail=detalj diff --git a/core/src/main/resources/hudson/scm/SCM/project-changes_zh_CN.properties b/core/src/main/resources/hudson/scm/SCM/project-changes_zh_CN.properties new file mode 100644 index 0000000000000000000000000000000000000000..fa0f98b1f6aa5ea5f2d65a3ae945dbb6c2b7749e --- /dev/null +++ b/core/src/main/resources/hudson/scm/SCM/project-changes_zh_CN.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +No\ changes\ in\ any\ of\ the\ builds.=\u6CA1\u6709\u4EFB\u4F55\u53D8\u66F4\u3002 diff --git a/core/src/main/resources/hudson/scm/SCM/project-changes_zh_TW.properties b/core/src/main/resources/hudson/scm/SCM/project-changes_zh_TW.properties new file mode 100644 index 0000000000000000000000000000000000000000..65e566b9fd14205ec4742fd6b77a8dde9cb77afd --- /dev/null +++ b/core/src/main/resources/hudson/scm/SCM/project-changes_zh_TW.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +detail=\u7D30\u7BC0 diff --git a/core/src/main/resources/hudson/scm/SubversionChangeLogSet/digest.jelly b/core/src/main/resources/hudson/scm/SubversionChangeLogSet/digest.jelly deleted file mode 100644 index ec0bb6f4a7924555cf395f061e0696cad85bf871..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/SubversionChangeLogSet/digest.jelly +++ /dev/null @@ -1,76 +0,0 @@ - - - - - Displays the Subversion change log digest. - - If specified, this is prepended in links to change details. - - - - - - - - - - - ${%Revision}: - ${r.value} -
    -
    - - ${%Revisions} -
      - -
    • ${r.key} : ${r.value}
    • -
      -
    -
    -
    - - - ${%No changes.} - - - ${%Changes} -
      - -
    1. - ${cs.msgAnnotated} - (${%detail} - - - - / - ${browser.descriptor.displayName} - - ) -
    2. -
      -
    -
    -
    -
    diff --git a/core/src/main/resources/hudson/scm/SubversionChangeLogSet/digest_de.properties b/core/src/main/resources/hudson/scm/SubversionChangeLogSet/digest_de.properties deleted file mode 100644 index 607c53d389fa5511023974b0432f238ea318ef1b..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/SubversionChangeLogSet/digest_de.properties +++ /dev/null @@ -1,23 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -No\ changes.=Keine Änderungen. diff --git a/core/src/main/resources/hudson/scm/SubversionChangeLogSet/digest_fr.properties b/core/src/main/resources/hudson/scm/SubversionChangeLogSet/digest_fr.properties deleted file mode 100644 index ebeac0155e35fa767855ff9e112638b536c6c9d8..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/SubversionChangeLogSet/digest_fr.properties +++ /dev/null @@ -1,27 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Eric Lefevre-Ardant -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -No\ changes.=Aucun changement. -Revision=Révision -Revisions=Révisions -Changes=Changements -detail=détails diff --git a/core/src/main/resources/hudson/scm/SubversionChangeLogSet/digest_ja.properties b/core/src/main/resources/hudson/scm/SubversionChangeLogSet/digest_ja.properties deleted file mode 100644 index 92a33eb40e640dfe08205526c19d9d04a355b123..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/SubversionChangeLogSet/digest_ja.properties +++ /dev/null @@ -1,27 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe, id:cactusman -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Revision=\u30ea\u30d3\u30b8\u30e7\u30f3 -Revisions=\u30ea\u30d3\u30b8\u30e7\u30f3 -Changes=\u5909\u66f4 -detail=\u8a73\u7d30 -No\ changes.=\u5909\u66f4\u70b9\u306f\u3042\u308a\u307e\u305b\u3093\u3002 \ No newline at end of file diff --git a/core/src/main/resources/hudson/scm/SubversionChangeLogSet/digest_nl.properties b/core/src/main/resources/hudson/scm/SubversionChangeLogSet/digest_nl.properties deleted file mode 100644 index bccc655f52d11f9660e92b4e89101f89bb0eb4be..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/SubversionChangeLogSet/digest_nl.properties +++ /dev/null @@ -1,23 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:sorokh -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -No\ changes.=Geen wijzigingen. diff --git a/core/src/main/resources/hudson/scm/SubversionChangeLogSet/digest_pt_BR.properties b/core/src/main/resources/hudson/scm/SubversionChangeLogSet/digest_pt_BR.properties deleted file mode 100644 index a65c0c3c7c6475f6d21e1e0a52461df3ac0edcfc..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/SubversionChangeLogSet/digest_pt_BR.properties +++ /dev/null @@ -1,23 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Reginaldo L. Russinholi -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -No\ changes.=Sem mudan\u00E7as. diff --git a/core/src/main/resources/hudson/scm/SubversionChangeLogSet/digest_ru.properties b/core/src/main/resources/hudson/scm/SubversionChangeLogSet/digest_ru.properties deleted file mode 100644 index b518bd231487802a3e1552873dc7833c7bedb297..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/SubversionChangeLogSet/digest_ru.properties +++ /dev/null @@ -1,23 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Mike Salnikov -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -No\ changes.=\u041d\u0435\u0442 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439. diff --git a/core/src/main/resources/hudson/scm/SubversionChangeLogSet/digest_tr.properties b/core/src/main/resources/hudson/scm/SubversionChangeLogSet/digest_tr.properties deleted file mode 100644 index 40ac076fb45ea1f7c8751faca3387597209e9817..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/SubversionChangeLogSet/digest_tr.properties +++ /dev/null @@ -1,23 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Oguz Dag -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -No\ changes.=Herhangi\ bir\ de\u011fi\u015fiklik\ yok. diff --git a/core/src/main/resources/hudson/scm/SubversionChangeLogSet/index.jelly b/core/src/main/resources/hudson/scm/SubversionChangeLogSet/index.jelly deleted file mode 100644 index b20a7aa3279756c6868051ce7fc6025159e6926a..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/SubversionChangeLogSet/index.jelly +++ /dev/null @@ -1,68 +0,0 @@ - - - - - - -

    ${%Summary}

    -
      - -
    1. -
      -
    - - - - - - - - - - - - - -
    - -
    - - ${%Revision} - ${cs.revision} - by ${cs.author}: -
    - ${cs.msgAnnotated} -
    -
    - ${p.value} - - - - (diff) - -
    -
    \ No newline at end of file diff --git a/core/src/main/resources/hudson/scm/SubversionChangeLogSet/index_de.properties b/core/src/main/resources/hudson/scm/SubversionChangeLogSet/index_de.properties deleted file mode 100644 index cf5279541a2642e7657550e6092d76856f1739e8..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/SubversionChangeLogSet/index_de.properties +++ /dev/null @@ -1,24 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Summary=Zusammenfassung -Revision=Revision diff --git a/core/src/main/resources/hudson/scm/SubversionChangeLogSet/index_fr.properties b/core/src/main/resources/hudson/scm/SubversionChangeLogSet/index_fr.properties deleted file mode 100644 index f1bb873c45ab3b964c6ebbbf2ed9b660cf3f7814..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/SubversionChangeLogSet/index_fr.properties +++ /dev/null @@ -1,24 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Eric Lefevre-Ardant -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Summary=Résumé -Revision=Modification diff --git a/core/src/main/resources/hudson/scm/SubversionChangeLogSet/index_ja.properties b/core/src/main/resources/hudson/scm/SubversionChangeLogSet/index_ja.properties deleted file mode 100644 index 354010d579cc66242e9f9a8fe39f4f6f894affa6..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/SubversionChangeLogSet/index_ja.properties +++ /dev/null @@ -1,24 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:cactusman -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Summary=\u8981\u7d04 -Revision=\u30ea\u30d3\u30b8\u30e7\u30f3 \ No newline at end of file diff --git a/core/src/main/resources/hudson/scm/SubversionChangeLogSet/index_nl.properties b/core/src/main/resources/hudson/scm/SubversionChangeLogSet/index_nl.properties deleted file mode 100644 index ab154d35c5e54c9ac1faf39d35836fa8fec91c35..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/SubversionChangeLogSet/index_nl.properties +++ /dev/null @@ -1,24 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:sorokh -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Summary=Samenvatting -Revision=Revisie diff --git a/core/src/main/resources/hudson/scm/SubversionChangeLogSet/index_pt_BR.properties b/core/src/main/resources/hudson/scm/SubversionChangeLogSet/index_pt_BR.properties deleted file mode 100644 index 483d5584007b496db25383c7ee6df40838fbec98..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/SubversionChangeLogSet/index_pt_BR.properties +++ /dev/null @@ -1,24 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Reginaldo L. Russinholi -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Summary=Sum\u00E1rio -Revision=Revis\u00E3o diff --git a/core/src/main/resources/hudson/scm/SubversionChangeLogSet/index_ru.properties b/core/src/main/resources/hudson/scm/SubversionChangeLogSet/index_ru.properties deleted file mode 100644 index b390fc08124c031e4c8117d9da438ca961159a20..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/SubversionChangeLogSet/index_ru.properties +++ /dev/null @@ -1,24 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Mike Salnikov -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Summary=\u0421\u0432\u043e\u0434\u043a\u0430 -Revision=\u0420\u0435\u0432\u0438\u0437\u0438\u044f diff --git a/core/src/main/resources/hudson/scm/SubversionChangeLogSet/index_tr.properties b/core/src/main/resources/hudson/scm/SubversionChangeLogSet/index_tr.properties deleted file mode 100644 index 4a56679b43c5ebe0c676683fb89b4ee497788171..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/SubversionChangeLogSet/index_tr.properties +++ /dev/null @@ -1,24 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Oguz Dag -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Summary=\u00d6zet -Revision=Revizyon diff --git a/core/src/main/resources/hudson/scm/SubversionSCM/DescriptorImpl/credentialOK.jelly b/core/src/main/resources/hudson/scm/SubversionSCM/DescriptorImpl/credentialOK.jelly deleted file mode 100644 index ac2cd4a9e5d0b0eb9801b80cb7ee320864999e3d..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/SubversionSCM/DescriptorImpl/credentialOK.jelly +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - - ${%Authentication was successful. Information is stored in Hudson now.} - - - \ No newline at end of file diff --git a/core/src/main/resources/hudson/scm/SubversionSCM/DescriptorImpl/credentialOK_fr.properties b/core/src/main/resources/hudson/scm/SubversionSCM/DescriptorImpl/credentialOK_fr.properties deleted file mode 100644 index b173ba83545e299006fdc4aa9d646b5be976b0f6..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/SubversionSCM/DescriptorImpl/credentialOK_fr.properties +++ /dev/null @@ -1,25 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Eric Lefevre-Ardant -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Subversion\ Authentication\ Successful=Authentification Subversion réussie -Authentication\ was\ successful.\ Information\ is\ stored\ in\ Hudson\ now.= \ - L''authentification est réussie. Stockage de l''information dans Hudson en cours. diff --git a/core/src/main/resources/hudson/scm/SubversionSCM/DescriptorImpl/credentialOK_ja.properties b/core/src/main/resources/hudson/scm/SubversionSCM/DescriptorImpl/credentialOK_ja.properties deleted file mode 100644 index 2f0d4413e69a190038e4305965ad039d0fd29b6e..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/SubversionSCM/DescriptorImpl/credentialOK_ja.properties +++ /dev/null @@ -1,25 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Subversion\ Authentication\ Successful=Subversion\u306E\u8A8D\u8A3C\u306E\u6210\u529F -Authentication\ was\ successful.\ Information\ is\ stored\ in\ Hudson now.=\ - \u8A8D\u8A3C\u304C\u6210\u529F\u3057\u307E\u3057\u305F\u3002\u60C5\u5831\u306FHudson\u306B\u4FDD\u5B58\u3055\u308C\u307E\u3059\u3002 \ No newline at end of file diff --git a/core/src/main/resources/hudson/scm/SubversionSCM/DescriptorImpl/enterCredential.jelly b/core/src/main/resources/hudson/scm/SubversionSCM/DescriptorImpl/enterCredential.jelly deleted file mode 100644 index c9af025996567388432d92241ed6c1f6ad6b9207..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/SubversionSCM/DescriptorImpl/enterCredential.jelly +++ /dev/null @@ -1,78 +0,0 @@ - - - - - - - -

    - - ${%Subversion Authentication} -

    -

    - ${description} -

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    \ No newline at end of file diff --git a/core/src/main/resources/hudson/scm/SubversionSCM/DescriptorImpl/enterCredential.properties b/core/src/main/resources/hudson/scm/SubversionSCM/DescriptorImpl/enterCredential.properties deleted file mode 100644 index f20bb0fd3c10699ffe1695f4800c62248afa4c5a..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/SubversionSCM/DescriptorImpl/enterCredential.properties +++ /dev/null @@ -1,26 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -description=\ - Enter the authentication information needed to connect to the Subversion repository.\ - This information will be stored in Hudson. - diff --git a/core/src/main/resources/hudson/scm/SubversionSCM/DescriptorImpl/enterCredential_fr.properties b/core/src/main/resources/hudson/scm/SubversionSCM/DescriptorImpl/enterCredential_fr.properties deleted file mode 100644 index aeb9ca51fa09e30cb96217d623cd13ca16d3d8db..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/SubversionSCM/DescriptorImpl/enterCredential_fr.properties +++ /dev/null @@ -1,37 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Eric Lefevre-Ardant -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Subversion\ Authentication=Authentification Subversion -Repository\ URL=URL du repository -Username/password\ authentication=Authentification par nom d''utilisateur/mot de passe -User\ name=Nom d''utilisateur -Password=Mot de passe -SSH\ public\ key\ authentication=Authentification par clé publique SSH -svn+ssh= -Pass\ phrase=Phrase à retenir -Private\ key=Clé privée -HTTPS\ client\ certificate=Certificat HTTPS client -PKCS12\ certificate=Certificat PKCS12 -OK= -description=\ - Entrez les informations d''authentification nécessaires pour connecter au repository Subversion. \ - Cette information sera stockée dans Hudson. diff --git a/core/src/main/resources/hudson/scm/SubversionSCM/DescriptorImpl/enterCredential_ja.properties b/core/src/main/resources/hudson/scm/SubversionSCM/DescriptorImpl/enterCredential_ja.properties deleted file mode 100644 index 6b47a1792daf8dcec0c4361bb72f115d5480a810..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/SubversionSCM/DescriptorImpl/enterCredential_ja.properties +++ /dev/null @@ -1,36 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Subversion\ Authentication=Subversion \u8A8D\u8A3C -description=\ - Subversion\u306E\u30EA\u30DD\u30B8\u30C8\u30EA\u306B\u63A5\u7D9A\u306B\u5FC5\u8981\u306A\u8A8D\u8A3C\u60C5\u5831\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044\u3002\ - \u3053\u306E\u60C5\u5831\u306FHudson\u304C\u4FDD\u5B58\u3057\u307E\u3059\u3002 -Repository\ URL=\u30EA\u30DD\u30B8\u30C8\u30EAURL -Username/password\ authentication=\u30E6\u30FC\u30B6\u30FC\u540D/\u30D1\u30B9\u30EF\u30FC\u30C9\u8A8D\u8A3C -User\ name=\u30E6\u30FC\u30B6\u30FC\u540D -Password=\u30D1\u30B9\u30EF\u30FC\u30C9 -SSH\ public\ key\ authentication=SSH\u516C\u958B\u9375\u8A8D\u8A3C -Pass\ phrase=\u30D1\u30B9\u30D5\u30EC\u30FC\u30BA -Private\ key=\u79D8\u5BC6\u9375 -HTTPS\ client\ certificate=HTTPS\u30AF\u30E9\u30A4\u30A2\u30F3\u30C8\u8A8D\u8A3C -PKCS12\ certificate=PKCS12\u8A3C\u660E\u66F8 -OK=\u5B9F\u884C diff --git a/core/src/main/resources/hudson/scm/SubversionSCM/DescriptorImpl/url-help.jelly b/core/src/main/resources/hudson/scm/SubversionSCM/DescriptorImpl/url-help.jelly deleted file mode 100644 index 2a2b2d46bb0c88ce0dfdb3d8319e3339ba837be1..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/SubversionSCM/DescriptorImpl/url-help.jelly +++ /dev/null @@ -1,36 +0,0 @@ - - - - -
    - ${%description.1} - ${%description.explicitRevision} -
    - ${%description.2(rootURL)} -
    - ${%description.3} -
    -
    -
    \ No newline at end of file diff --git a/core/src/main/resources/hudson/scm/SubversionSCM/DescriptorImpl/url-help.properties b/core/src/main/resources/hudson/scm/SubversionSCM/DescriptorImpl/url-help.properties deleted file mode 100644 index 577bc0c8c3a9c8147924b098431dc10b3c5cbb7d..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/SubversionSCM/DescriptorImpl/url-help.properties +++ /dev/null @@ -1,36 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -description.1=\ - Specify the subversion repository URL to check out, such as "http://svn.apache.org/repos/asf/ant/". -description.explicitRevision=\ - You can also add "@NNN" at the end of the URL to check out a specific revision number, if that''s desirable. -description.2=\ - When you enter URL, Hudson automatically checks if Hudson can connect to it. If access requires \ - authentication, it will ask you the necessary credential. If you already have a working \ - credential but would like to change it for other reasons, \ - click this link and specify different credential. -description.3=\ - During the build, revision number of the module that was checked out is available \ - through the environment variable SVN_REVISION, provided that you are only checking out \ - one module. If you have multiple modules checked out, use the \ - svnversion command. diff --git a/core/src/main/resources/hudson/scm/SubversionSCM/DescriptorImpl/url-help_fr.properties b/core/src/main/resources/hudson/scm/SubversionSCM/DescriptorImpl/url-help_fr.properties deleted file mode 100644 index 2b1e913bd3a3d4aad6e5418923458cc844b799d5..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/SubversionSCM/DescriptorImpl/url-help_fr.properties +++ /dev/null @@ -1,36 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Eric Lefevre-Ardant -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -description.1=\ - Spécifiez l''URL du repository Subversion à lire, par exemple "http://svn.apache.org/repos/asf/ant/". -description.explicitRevision=\ - Vous pouvez également ajouter "@NNN" à la fin de l''URL pour récupérer un numéro de révision spécifique, si vous le souhaitez. -description.2=\ - Quand vous entrez une URL, Hudson vérifie automatiquement s''il peut s''y connecter. Si l''accès nécessite \ - une authentification, il vous demandera les informations nécessaires. Si vous disposez déjà d''informations d''identification \ - qui marchent mais que vous voulez en changer, cliquez sur ce lien \ - et renseignez des valeurs différentes. -description.3=\ - Au cours du build, le numéro de révision du module qui a été récupéré est disponible par la variable \ - d''environnement SVN_REVISION, si vous n''avez récupéré qu''un seul module. Si vous avez \ - plusieurs modules, utilisez la \ - commande svnversion. diff --git a/core/src/main/resources/hudson/scm/SubversionSCM/DescriptorImpl/url-help_ja.properties b/core/src/main/resources/hudson/scm/SubversionSCM/DescriptorImpl/url-help_ja.properties deleted file mode 100644 index 0475b8c85795e37c6cccdb45eaf7452599e13c28..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/SubversionSCM/DescriptorImpl/url-help_ja.properties +++ /dev/null @@ -1,35 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -description.1=\ - \u30C1\u30A7\u30C3\u30AF\u30A2\u30A6\u30C8\u3059\u308BSubversion\u306E\u30EA\u30DD\u30B8\u30C8\u30EAURL\u3092\u3001"http://svn.apache.org/repos/asf/ant/"\u306E\u3088\u3046\u306B\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002 -description.explicitRevision=\ - \u5FC5\u8981\u3067\u3042\u308C\u3070\u3001URL\u306E\u6700\u5F8C\u306B"@NNN"\u3092\u3064\u3051\u3066\u7279\u5B9A\u306E\u30EA\u30D3\u30B8\u30E7\u30F3\u3092\u30C1\u30A7\u30C3\u30AF\u30A2\u30A6\u30C8\u3059\u308B\u3053\u3068\u3082\u3067\u304D\u307E\u3059\u3002 -description.2=\ - URL\u3092\u5165\u529B\u3059\u308B\u3068\u3001Hudson\u306F\u63A5\u7D9A\u3067\u304D\u308B\u304B\u81EA\u52D5\u7684\u306B\u30C1\u30A7\u30C3\u30AF\u3057\u307E\u3059\u3002\u8A8D\u8A3C\u304C\u5FC5\u8981\u306A\u5834\u5408\u3001\u8A8D\u8A3C\u306B\u5FC5\u8981\u306A\u4E8B\u9805\u3092\u78BA\u8A8D\u3057\u307E\u3059\u3002\ - \u3082\u3057\u3001\u3059\u3067\u306B\u8A8D\u8A3C\u6E08\u307F\u3067\u3082\u4F55\u3089\u304B\u306E\u7406\u7531\u3067\u5909\u66F4\u3057\u305F\u3044\u306E\u3067\u3042\u308C\u3070\u3001\ - \u3053\u306E\u30EA\u30F3\u30AF\u3092\u30AF\u30EA\u30C3\u30AF\u3057\u3066\u518D\u8A2D\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002 -description.3=\ - \u30D3\u30EB\u30C9\u4E2D\u306B\u306F\u30011\u3064\u306E\u30E2\u30B8\u30E5\u30FC\u30EB\u306E\u307F\u30C1\u30A7\u30C3\u30AF\u30A2\u30A6\u30C8\u3057\u3066\u3044\u308B\u306E\u3067\u3042\u308C\u3070\u3001\u74B0\u5883\u5909\u6570SVN_REVISION\u3092\u4F7F\u7528\u3059\u308B\u3068\u3001\ - \u30C1\u30A7\u30C3\u30AF\u30A2\u30A6\u30C8\u3057\u305F\u30E2\u30B8\u30E5\u30FC\u30EB\u306E\u30EA\u30D3\u30B8\u30E7\u30F3\u756A\u53F7\u3092\u4F7F\u7528\u3067\u304D\u307E\u3059\u3002\ - \u3082\u3057\u3001\u8907\u6570\u306E\u30E2\u30B8\u30E5\u30FC\u30EB\u3092\u30C1\u30A7\u30C3\u30AF\u30A2\u30A6\u30C8\u3057\u3066\u3044\u308B\u306E\u3067\u3042\u308C\u3070\u3001\ - Subversion\u306E\u30B3\u30DE\u30F3\u30C9\u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\u3002 diff --git a/core/src/main/resources/hudson/scm/SubversionSCM/config.jelly b/core/src/main/resources/hudson/scm/SubversionSCM/config.jelly deleted file mode 100644 index c8345ccbdfa13bb53db28f8f0e2b49fa64dee31d..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/SubversionSCM/config.jelly +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - - - - - - - - -
    - - -
    -
    -
    -
    -
    - - - - - - - - - - -
    \ No newline at end of file diff --git a/core/src/main/resources/hudson/scm/SubversionSCM/config.properties b/core/src/main/resources/hudson/scm/SubversionSCM/config.properties deleted file mode 100644 index 97a92a264a7991131d30f537c34edeb00e53d535..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/SubversionSCM/config.properties +++ /dev/null @@ -1,25 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Eric Lefevre-Ardant -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -updateDescription=\ - If checked, Hudson will use ''svn update'' whenever possible, making the build faster. \ - But this causes the artifacts from the previous build to remain when a new build starts. diff --git a/core/src/main/resources/hudson/scm/SubversionSCM/config_de.properties b/core/src/main/resources/hudson/scm/SubversionSCM/config_de.properties deleted file mode 100644 index 1836b23b13f0453c69adfb91c4d812ee1a84d640..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/SubversionSCM/config_de.properties +++ /dev/null @@ -1,33 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Modules=Module -Repository\ URL=Repository URL -Add\ more\ locations...=Weiteres Modul hinzufügen... -Delete=Löschen -Use\ update=Update-Kommando verwenden -Local\ module\ directory=Lokales Modulverzeichnis -optional=optional -updateDescription=\ - Wenn angewählt, versucht Hudson - wenn immer möglich - ''svn update'' auszuführen, um \ - den Build zu beschleunigen. Dieses bedeutet allerdings auch, dass Artefakte des \ - vorangegangenen Builds zu Beginn des neuen Builds nicht entfernt werden. diff --git a/core/src/main/resources/hudson/scm/SubversionSCM/config_fr.properties b/core/src/main/resources/hudson/scm/SubversionSCM/config_fr.properties deleted file mode 100644 index a03f86ce9a87665a49c4c0a9335ee81310aaa306..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/SubversionSCM/config_fr.properties +++ /dev/null @@ -1,34 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Eric Lefevre-Ardant -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Modules= -Repository\ URL=URL du repository -Local\ module\ directory=Répertoire local du module -optional=optionnel -Add\ more\ locations...=Ajoutez d''autres emplacements -Delete=Supprimer -Use\ update=Utiliser ''svn update'' -updateDescription=\ - Quand cette option est activée, Hudson utilisera ''svn update'' à chaque fois que cela est possible, \ - ce qui rend le build plus rapide. Attention, les artefacts du build précédent seront conservés au \ - démarrage d''un nouveau build. -Excluded\ Regions=Régions exclues diff --git a/core/src/main/resources/hudson/scm/SubversionSCM/config_ja.properties b/core/src/main/resources/hudson/scm/SubversionSCM/config_ja.properties deleted file mode 100644 index 2457d8bbf870f34dcb9b39ad3aff8eed572bf7e2..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/SubversionSCM/config_ja.properties +++ /dev/null @@ -1,33 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe, id:cactusman -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Modules=\u30E2\u30B8\u30E5\u30FC\u30EB -Repository\ URL=\u30EA\u30DD\u30B8\u30C8\u30EAURL -Local\ module\ directory=\u30ED\u30FC\u30AB\u30EB\u30E2\u30B8\u30E5\u30FC\u30EB\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA -optional=\u30AA\u30D7\u30B7\u30E7\u30F3 -Add\ more\ locations...=\u30ED\u30B1\u30FC\u30B7\u30E7\u30F3\u306E\u8FFD\u52A0 -Delete=\u524A\u9664 -Use\ update=\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u306E\u4F7F\u7528 -updateDescription=\ - \u30C1\u30A7\u30C3\u30AF\u3059\u308B\u3068\u3001Hudson\u306F\u300Csvn update\u300D\u3092\u5229\u7528\u3057\u3066\u30D3\u30EB\u30C9\u3092\u7D20\u65E9\u304F\u884C\u3044\u307E\u3059\u304C\u3001\ - \u4EE5\u524D\u306E\u30D3\u30EB\u30C9\u3067\u751F\u6210\u3055\u308C\u305F\u30D5\u30A1\u30A4\u30EB\u306F\u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9\u4E0A\u306B\u6B8B\u3063\u305F\u307E\u307E\u306B\u306A\u308A\u307E\u3059\u3002 -Excluded\ Regions=\u5BFE\u8C61\u5916\u3068\u3059\u308B\u7BC4\u56F2 \ No newline at end of file diff --git a/core/src/main/resources/hudson/scm/SubversionSCM/config_nl.properties b/core/src/main/resources/hudson/scm/SubversionSCM/config_nl.properties deleted file mode 100644 index 55d7d0767b27808b4381ac430d08dd0efe274bb5..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/SubversionSCM/config_nl.properties +++ /dev/null @@ -1,33 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:sorokh -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Modules=Modules -Repository\ URL= -Local\ module\ directory=Lokaal modulepad -optional=optioneel -Add\ more\ locations...=Voeg meer locaties toe -Delete=Verwijder -Use\ update=Gebruik de "update" optie -updateDescription=\ - Indien aangevinkt, zal Hudson 'svn update' gebruiken, waar mogelijk. Dit zal uw bouwpoging \ - sneller maken. Anderszijds zal dit er echter voor zorgen dat uw werkplaats niet opgeschoond \ - wordt voor het starten van een nieuwe bouwpoging. \ No newline at end of file diff --git a/core/src/main/resources/hudson/scm/SubversionSCM/config_pt_BR.properties b/core/src/main/resources/hudson/scm/SubversionSCM/config_pt_BR.properties deleted file mode 100644 index 16495ae627067de90c74f7499192ce49c5b0164e..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/SubversionSCM/config_pt_BR.properties +++ /dev/null @@ -1,29 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Reginaldo L. Russinholi -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Modules=M\u00F3dulos -Repository\ URL=URL do Reposit\u00F3rio -Local\ module\ directory=Diret\u00F3rio do m\u00F3dulo local -optional=opcional -Add\ more\ locations...=Adicinar mais locais... -Delete=Excluir -Use\ update=Usar atualiza\u00E7\u00E3o diff --git a/core/src/main/resources/hudson/scm/SubversionSCM/config_ru.properties b/core/src/main/resources/hudson/scm/SubversionSCM/config_ru.properties deleted file mode 100644 index d3def27394b5ede714a6c4bcc253e56fd1153b97..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/SubversionSCM/config_ru.properties +++ /dev/null @@ -1,32 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Mike Salnikov -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Modules=\u041c\u043e\u0434\u0443\u043b\u0438 -Repository\ URL=URL \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f -Add\ more\ locations...=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 -Delete=\u0423\u0434\u0430\u043b\u0438\u0442\u044c -Use\ update=\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 (update) -Local\ module\ directory=\u041b\u043e\u043a\u0430\u043b\u044c\u043d\u0430\u044f \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u0434\u043b\u044f \u043c\u043e\u0434\u0443\u043b\u044f -optional=\u043e\u043f\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e -updateDescription=\u0415\u0441\u043b\u0438 \u043e\u0442\u043c\u0435\u0447\u0435\u043d\u043e, Hudson \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c ''svn update'' \u0435\u0441\u043b\u0438 \u044d\u0442\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \ -\u0447\u0442\u043e \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u0442 \u043a \u0443\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u044e \u0441\u0431\u043e\u0440\u043a\u0438. \u041e\u0434\u043d\u0430\u043a\u043e \u044d\u0442\u043e \u0442\u0430\u043a\u0436\u0435 \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u044b, \u043e\u0441\u0442\u0430\u0432\u0448\u0438\u0435\u0441\u044f \u0441 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \ -\u0441\u0431\u043e\u0440\u043a\u0438, \u0442\u0430\u043a\u0436\u0435 \u043e\u0441\u0442\u0430\u043d\u0443\u0442\u0441\u044f \u0432 \u0441\u0431\u043e\u0440\u043e\u0447\u043d\u043e\u0439 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438. diff --git a/core/src/main/resources/hudson/scm/SubversionSCM/config_tr.properties b/core/src/main/resources/hudson/scm/SubversionSCM/config_tr.properties deleted file mode 100644 index e0f2ffe05b007ab0e5492bd5e7a7f6ad7681033b..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/SubversionSCM/config_tr.properties +++ /dev/null @@ -1,32 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Oguz Dag -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Modules=Mod\u00fcller -Repository\ URL=Repository URL''i -Local\ module\ directory=Yerel mod\u00fcl dizini -optional=opsiyonel -Add\ more\ locations...=Daha fazla lokasyon ekle -Delete=Sil -Use\ update=G\u00fcncelleme \u00f6zelli\u011fini kullan -updateDescription=E\u011fer se\u00e7ili ise, Hudson yap\u0131land\u0131rmay\u0131 h\u0131zland\u0131rabilmek ad\u0131na ''svn update''i kullanacakt\u0131r. \ -Fakat bu durum, \u00f6nceki yap\u0131land\u0131rmada olu\u015fturulan artefaktlar\u0131n, yeni yap\u0131land\u0131rma ba\u015flad\u0131\u011f\u0131nda dahi kalmas\u0131na yol a\u00e7ar. - diff --git a/core/src/main/resources/hudson/scm/SubversionTagAction/tagForm.jelly b/core/src/main/resources/hudson/scm/SubversionTagAction/tagForm.jelly deleted file mode 100644 index 251f3eb14c44148dbdb29c1936f556911f80a8b9..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/SubversionTagAction/tagForm.jelly +++ /dev/null @@ -1,107 +0,0 @@ - - - - - - -
      - -
    • ${t}
    • -
      -
    -
    -
    - - - - -

    Build #${it.build.number}

    - - - -

    - ${%This build is already tagged}: -

    - - - - - -
      - -
    • - ${m.key.url} - -
    • -
      -
    -
    -
    -
    - - -

    ${%Create more tags}

    -
    -
    - - - - - - - - - - - - - - - - - -
    ${%Module URL}${%Tag URL}
    - -
    - - - -
    -
    -
    -
    \ No newline at end of file diff --git a/core/src/main/resources/hudson/scm/SubversionTagAction/tagForm_de.properties b/core/src/main/resources/hudson/scm/SubversionTagAction/tagForm_de.properties deleted file mode 100644 index f2b33f78b476f2fd3ff4381fef09a0adb43534d6..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/SubversionTagAction/tagForm_de.properties +++ /dev/null @@ -1,26 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -This\ build\ is\ already\ tagged=Dieser Build ist bereits markiert ("getaggt") als -Module\ URL=Modul-URL -Tag\ URL=Tag-URL -Tag=Tag diff --git a/core/src/main/resources/hudson/scm/SubversionTagAction/tagForm_fr.properties b/core/src/main/resources/hudson/scm/SubversionTagAction/tagForm_fr.properties deleted file mode 100644 index 4b2728cb4f0970c8bebffce6f06f4f72bfec8b62..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/SubversionTagAction/tagForm_fr.properties +++ /dev/null @@ -1,27 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Eric Lefevre-Ardant -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -This\ build\ is\ already\ tagged=Ce build a déjà été taggé -Module\ URL=URL du module -Tag\ URL=URL du tag -Tag=Tag (libellé) -Create\ more\ tags=Créer plus de tags diff --git a/core/src/main/resources/hudson/scm/SubversionTagAction/tagForm_ja.properties b/core/src/main/resources/hudson/scm/SubversionTagAction/tagForm_ja.properties deleted file mode 100644 index 008545ef77aec52751040f30aaa834446c1b62c7..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/SubversionTagAction/tagForm_ja.properties +++ /dev/null @@ -1,27 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -This\ build\ is\ already\ tagged=\u3053\u306e\u30d3\u30eb\u30c9\u306f\u65e2\u306b\u30bf\u30b0\u304c\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u307e\u3059 -Create\ more\ tags=\u30bf\u30b0\u3092\u8ffd\u52a0 -Module\ URL=\u30e2\u30b8\u30e5\u30fc\u30eb\u306eURL -Tag\ URL=\u30bf\u30b0\u306eURL -Tag=\u30bf\u30b0\u3092\u8a2d\u5b9a diff --git a/core/src/main/resources/hudson/scm/SubversionTagAction/tagForm_nl.properties b/core/src/main/resources/hudson/scm/SubversionTagAction/tagForm_nl.properties deleted file mode 100644 index a30880d053a0bf085f379039741df8930ccdba2c..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/SubversionTagAction/tagForm_nl.properties +++ /dev/null @@ -1,26 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:sorokh -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -This\ build\ is\ already\ tagged=Deze bouwpoging werd al gelabeled -Module\ URL=Module URL -Tag\ URL=Label URL -Tag=Label diff --git a/core/src/main/resources/hudson/scm/SubversionTagAction/tagForm_pt_BR.properties b/core/src/main/resources/hudson/scm/SubversionTagAction/tagForm_pt_BR.properties deleted file mode 100644 index 066dd5d267c54092ea8f5ae56eca5eefc9349e32..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/SubversionTagAction/tagForm_pt_BR.properties +++ /dev/null @@ -1,26 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Reginaldo L. Russinholi -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -This\ build\ is\ already\ tagged=Esta constru\u00E7\u00E3o j\u00E1 est\u00E1 marcada -Module\ URL=URL do m\u00F3dulo -Tag\ URL=URL da marca\u00E7\u00E3o -Tag=Marca\u00E7\u00E3o diff --git a/core/src/main/resources/hudson/scm/SubversionTagAction/tagForm_ru.properties b/core/src/main/resources/hudson/scm/SubversionTagAction/tagForm_ru.properties deleted file mode 100644 index 18d0ceefd0dbf827dc98c56260443b1959b3e566..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/SubversionTagAction/tagForm_ru.properties +++ /dev/null @@ -1,26 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Mike Salnikov -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -This\ build\ is\ already\ tagged=\u042d\u0442\u0430 \u0441\u0431\u043e\u0440\u043a\u0430 \u0443\u0436\u0435 \u043f\u043e\u043c\u0435\u0447\u0435\u043d\u0430 -Module\ URL=URL \u043c\u043e\u0434\u0443\u043b\u044f -Tag\ URL=URL \u043c\u0435\u0442\u043a\u0438 -Tag=\u041c\u0435\u0442\u043a\u0430 diff --git a/core/src/main/resources/hudson/scm/SubversionTagAction/tagForm_tr.properties b/core/src/main/resources/hudson/scm/SubversionTagAction/tagForm_tr.properties deleted file mode 100644 index 65488ef7d0beb30848a423e63ea426e6db7cf243..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/SubversionTagAction/tagForm_tr.properties +++ /dev/null @@ -1,27 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Oguz Dag -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -This\ build\ is\ already\ tagged=Bu yap\u0131land\u0131rma daha \u00f6nceden tag''lenmi\u015ftir -Module\ URL=Mod\u00fcl URL''i -Tag\ URL=Tag URL''i -Tag=Tag -Create\ more\ tags=Daha fazla tag olu\u015ftur diff --git a/core/src/main/resources/hudson/scm/browsers/CollabNetSVN/config.jelly b/core/src/main/resources/hudson/scm/browsers/CollabNetSVN/config.jelly deleted file mode 100644 index 9fdcb2ea0064bb054565dc7b21fd5818d79d9ecf..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/browsers/CollabNetSVN/config.jelly +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/core/src/main/resources/hudson/scm/browsers/FishEyeCVS/config.jelly b/core/src/main/resources/hudson/scm/browsers/FishEyeCVS/config.jelly deleted file mode 100644 index a09effa8fedf3a18c0b79473e7bae3a2d105a2ce..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/browsers/FishEyeCVS/config.jelly +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/core/src/main/resources/hudson/scm/browsers/FishEyeSVN/config.jelly b/core/src/main/resources/hudson/scm/browsers/FishEyeSVN/config.jelly deleted file mode 100644 index bdae7656ae69d2047e88d0d7588be329fca2b754..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/browsers/FishEyeSVN/config.jelly +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/core/src/main/resources/hudson/scm/browsers/FishEyeSVN/config_fr.properties b/core/src/main/resources/hudson/scm/browsers/FishEyeSVN/config_fr.properties deleted file mode 100644 index f3d60f691c90014c14e546f0d51c04eedf98dbc3..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/browsers/FishEyeSVN/config_fr.properties +++ /dev/null @@ -1,24 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Eric Lefevre-Ardant -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -URL= -Root\ module=Module racine diff --git a/core/src/main/resources/hudson/scm/browsers/FishEyeSVN/config_ja.properties b/core/src/main/resources/hudson/scm/browsers/FishEyeSVN/config_ja.properties deleted file mode 100644 index a212211d770bdf50480d85511f2613290eb75162..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/browsers/FishEyeSVN/config_ja.properties +++ /dev/null @@ -1,24 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -URL=URL -Root\ module=\u30EB\u30FC\u30C8\u30E2\u30B8\u30E5\u30FC\u30EB \ No newline at end of file diff --git a/core/src/main/resources/hudson/scm/browsers/Sventon/config.jelly b/core/src/main/resources/hudson/scm/browsers/Sventon/config.jelly deleted file mode 100644 index b6bfac54a21ae69082470a1a081123400ff07962..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/browsers/Sventon/config.jelly +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/core/src/main/resources/hudson/scm/browsers/Sventon/config_fr.properties b/core/src/main/resources/hudson/scm/browsers/Sventon/config_fr.properties deleted file mode 100644 index 8308543c9cc2e9f39925bb4a17074b0c25abb9db..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/browsers/Sventon/config_fr.properties +++ /dev/null @@ -1,24 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Eric Lefevre-Ardant -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -URL= -Repository\ Instance=Nom de l''instance du repository diff --git a/core/src/main/resources/hudson/scm/browsers/Sventon/config_ja.properties b/core/src/main/resources/hudson/scm/browsers/Sventon/config_ja.properties deleted file mode 100644 index de0217b3fb17b96a26eeb7e4ff031abfb84199f9..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/browsers/Sventon/config_ja.properties +++ /dev/null @@ -1,24 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -URL=URL -Repository\ Instance=\u30EA\u30DD\u30B8\u30C8\u30EA\u30FB\u30A4\u30F3\u30B9\u30BF\u30F3\u30B9 \ No newline at end of file diff --git a/core/src/main/resources/hudson/scm/browsers/Sventon/config_nl.properties b/core/src/main/resources/hudson/scm/browsers/Sventon/config_nl.properties deleted file mode 100644 index 74626cb8467fd66f1b467ada9074517ab820b773..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/browsers/Sventon/config_nl.properties +++ /dev/null @@ -1,23 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Wim Rosseel -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. -URL=URL -Repository\ Instance=Naam repository-instantie diff --git a/core/src/main/resources/hudson/scm/browsers/Sventon2/config.jelly b/core/src/main/resources/hudson/scm/browsers/Sventon2/config.jelly deleted file mode 100644 index b6bfac54a21ae69082470a1a081123400ff07962..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/browsers/Sventon2/config.jelly +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/core/src/main/resources/hudson/scm/browsers/Sventon2/config_fr.properties b/core/src/main/resources/hudson/scm/browsers/Sventon2/config_fr.properties deleted file mode 100644 index 8308543c9cc2e9f39925bb4a17074b0c25abb9db..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/browsers/Sventon2/config_fr.properties +++ /dev/null @@ -1,24 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Eric Lefevre-Ardant -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -URL= -Repository\ Instance=Nom de l''instance du repository diff --git a/core/src/main/resources/hudson/scm/browsers/Sventon2/config_ja.properties b/core/src/main/resources/hudson/scm/browsers/Sventon2/config_ja.properties deleted file mode 100644 index de0217b3fb17b96a26eeb7e4ff031abfb84199f9..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/browsers/Sventon2/config_ja.properties +++ /dev/null @@ -1,24 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -URL=URL -Repository\ Instance=\u30EA\u30DD\u30B8\u30C8\u30EA\u30FB\u30A4\u30F3\u30B9\u30BF\u30F3\u30B9 \ No newline at end of file diff --git a/core/src/main/resources/hudson/scm/browsers/Sventon2/config_nl.properties b/core/src/main/resources/hudson/scm/browsers/Sventon2/config_nl.properties deleted file mode 100644 index 74626cb8467fd66f1b467ada9074517ab820b773..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/browsers/Sventon2/config_nl.properties +++ /dev/null @@ -1,23 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Wim Rosseel -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. -URL=URL -Repository\ Instance=Naam repository-instantie diff --git a/core/src/main/resources/hudson/scm/browsers/ViewCVS/config.jelly b/core/src/main/resources/hudson/scm/browsers/ViewCVS/config.jelly deleted file mode 100644 index 9839917782bc338d714bc66c01a9d648bcade67b..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/browsers/ViewCVS/config.jelly +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/core/src/main/resources/hudson/scm/browsers/ViewSVN/config.jelly b/core/src/main/resources/hudson/scm/browsers/ViewSVN/config.jelly deleted file mode 100644 index 48bb08c5b599a452cbcc58b63fcce17ed3df0348..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/browsers/ViewSVN/config.jelly +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/core/src/main/resources/hudson/scm/browsers/WebSVN/config.jelly b/core/src/main/resources/hudson/scm/browsers/WebSVN/config.jelly deleted file mode 100644 index 2b8fa145b90c007684778cba08eca3eea1438260..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/scm/browsers/WebSVN/config.jelly +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/core/src/main/resources/hudson/search/Search/search-failed.jelly b/core/src/main/resources/hudson/search/Search/search-failed.jelly index 378eef12de2b76ee9eaa57518d798f4cfa36d610..5bece9499a4c23510badb575d536735f78ab2773 100644 --- a/core/src/main/resources/hudson/search/Search/search-failed.jelly +++ b/core/src/main/resources/hudson/search/Search/search-failed.jelly @@ -1,7 +1,7 @@ +

    Search for '${h.escape(q)}'

    @@ -34,7 +35,7 @@ THE SOFTWARE.
    - Nothing seems to match. + ${%Nothing seems to match.}
    diff --git a/core/src/main/resources/hudson/search/Search/search-failed_da.properties b/core/src/main/resources/hudson/search/Search/search-failed_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..3eb617df449d39f35869bc563e148216b10b185b --- /dev/null +++ b/core/src/main/resources/hudson/search/Search/search-failed_da.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Nothing\ seems\ to\ match.=Intet ser ud til at matche. diff --git a/core/src/main/resources/hudson/search/Search/search-failed_de.properties b/core/src/main/resources/hudson/search/Search/search-failed_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..5c7cb74a7ff3c2786024953f19a3f3271606d7bf --- /dev/null +++ b/core/src/main/resources/hudson/search/Search/search-failed_de.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Nothing\ seems\ to\ match.=Keine Treffer gefunden. diff --git a/core/src/main/resources/hudson/search/Search/search-failed_es.properties b/core/src/main/resources/hudson/search/Search/search-failed_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..79884d550806a2b16a52bcaabd4183c80c4790e2 --- /dev/null +++ b/core/src/main/resources/hudson/search/Search/search-failed_es.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Nothing\ seems\ to\ match.=No hay coincidencias. diff --git a/core/src/main/resources/hudson/search/Search/search-failed_ja.properties b/core/src/main/resources/hudson/search/Search/search-failed_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..6c92eafa6f2b4871646c20513925d564d0172ba0 --- /dev/null +++ b/core/src/main/resources/hudson/search/Search/search-failed_ja.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Nothing\ seems\ to\ match.=\u5408\u81F4\u3059\u308B\u3082\u306E\u306F\u3042\u308A\u307E\u305B\u3093\u3002 diff --git a/core/src/main/resources/hudson/search/Search/search-failed_pt_BR.properties b/core/src/main/resources/hudson/search/Search/search-failed_pt_BR.properties index 794a8a5d73e2ea758b3ea54f2ef7089f051c4f78..4306b4bdbd49757e102b370a6f4f6c07869c8abf 100644 --- a/core/src/main/resources/hudson/search/Search/search-failed_pt_BR.properties +++ b/core/src/main/resources/hudson/search/Search/search-failed_pt_BR.properties @@ -20,4 +20,4 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Nothing\ seems\ to\ match.=Nada se enquadra. \ No newline at end of file +Nothing\ seems\ to\ match.=Nada se enquadra. diff --git a/core/src/main/resources/hudson/security/AuthorizationMatrixProperty/config.jelly b/core/src/main/resources/hudson/security/AuthorizationMatrixProperty/config.jelly index 63885b50375a98b13200bda3bf21c63b5f3a5e00..f0912593ab2bdd94507df35e1282d0a99eafa5c9 100644 --- a/core/src/main/resources/hudson/security/AuthorizationMatrixProperty/config.jelly +++ b/core/src/main/resources/hudson/security/AuthorizationMatrixProperty/config.jelly @@ -23,7 +23,7 @@ THE SOFTWARE. --> - + diff --git a/core/src/main/resources/hudson/security/AuthorizationMatrixProperty/config_da.properties b/core/src/main/resources/hudson/security/AuthorizationMatrixProperty/config_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..b51d973595bb613e8827e51b2913df341d06c9a7 --- /dev/null +++ b/core/src/main/resources/hudson/security/AuthorizationMatrixProperty/config_da.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Enable\ project-based\ security=Sl\u00e5 projektbaseret adgangskontrol til diff --git a/core/src/main/resources/hudson/security/AuthorizationMatrixProperty/config_de.properties b/core/src/main/resources/hudson/security/AuthorizationMatrixProperty/config_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..09962dfad54435fc639717a5fef932712c769b4b --- /dev/null +++ b/core/src/main/resources/hudson/security/AuthorizationMatrixProperty/config_de.properties @@ -0,0 +1 @@ +Enable\ project-based\ security=Projektbasierte Sicherheit aktivieren diff --git a/core/src/main/resources/hudson/security/AuthorizationMatrixProperty/config_es.properties b/core/src/main/resources/hudson/security/AuthorizationMatrixProperty/config_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..ff2d46965a95bd50bcbfe992bff18ce2c011ab2e --- /dev/null +++ b/core/src/main/resources/hudson/security/AuthorizationMatrixProperty/config_es.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Enable\ project-based\ security=Habilitar seguridad en el projecto diff --git a/core/src/main/resources/hudson/security/AuthorizationMatrixProperty/config_fr.properties b/core/src/main/resources/hudson/security/AuthorizationMatrixProperty/config_fr.properties index e738699c1c8a71002d77708176ef7eacaff0db9e..eaa01eb9fd320757961922aa220c8f6940d8bbca 100644 --- a/core/src/main/resources/hudson/security/AuthorizationMatrixProperty/config_fr.properties +++ b/core/src/main/resources/hudson/security/AuthorizationMatrixProperty/config_fr.properties @@ -20,4 +20,4 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Enable\ project-based\ security=Activer la sécurité basée projet +Enable\ project-based\ security=Activer la sécurité basée projet diff --git a/core/src/main/resources/hudson/security/AuthorizationMatrixProperty/config_ja.properties b/core/src/main/resources/hudson/security/AuthorizationMatrixProperty/config_ja.properties index 4deef0d80df6e3a8ee47d8528bb86fce9a9d2b36..3adb7b68701c83ccb2e3112efb90bdee4b04c69b 100644 --- a/core/src/main/resources/hudson/security/AuthorizationMatrixProperty/config_ja.properties +++ b/core/src/main/resources/hudson/security/AuthorizationMatrixProperty/config_ja.properties @@ -1,6 +1,6 @@ # The MIT License # -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -20,8 +20,4 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Enable\ project-based\ security=\u6a29\u9650\u8a2d\u5b9a(\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u5358\u4f4d)\u306e\u6709\u52b9\u5316 -User/group=\u30e6\u30fc\u30b6\u30fc/\u30b0\u30eb\u30fc\u30d7 -Anonymous=\u533f\u540d\u30e6\u30fc\u30b6\u30fc -User/group\ to\ add=\u8ffd\u52a0\u3059\u308b\u30e6\u30fc\u30b6\u30fc/\u30b0\u30eb\u30fc\u30d7 -Add=\u8ffd\u52a0 \ No newline at end of file +Enable\ project-based\ security=\u6A29\u9650\u8A2D\u5B9A(\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u5358\u4F4D)\u306E\u6709\u52B9\u5316 diff --git a/core/src/main/resources/hudson/security/AuthorizationMatrixProperty/config_pt_BR.properties b/core/src/main/resources/hudson/security/AuthorizationMatrixProperty/config_pt_BR.properties index 5d3742e955a0f1a1049a6220ac6f4890e1cc083f..a29ab957cc5ec55310f1d3e420b3fdbb14f689a8 100644 --- a/core/src/main/resources/hudson/security/AuthorizationMatrixProperty/config_pt_BR.properties +++ b/core/src/main/resources/hudson/security/AuthorizationMatrixProperty/config_pt_BR.properties @@ -21,7 +21,3 @@ # THE SOFTWARE. Enable\ project-based\ security=Habilitar seguran\u00E7a baseada em projeto -User/group=Usu\u00E1rio/grupo -Anonymous=An\u00F4nimo -User/group\ to\ add=Usu\u00E1rio/grupo para adicionar -Add=Adicionar \ No newline at end of file diff --git a/core/src/main/resources/hudson/security/AuthorizationMatrixProperty/config_tr.properties b/core/src/main/resources/hudson/security/AuthorizationMatrixProperty/config_tr.properties index 567f072ce7b18dfa9a8ab4951392a7563cfa5ff8..bcc98aa2a1b2d0884d12c8441dbc97fc51e965d1 100644 --- a/core/src/main/resources/hudson/security/AuthorizationMatrixProperty/config_tr.properties +++ b/core/src/main/resources/hudson/security/AuthorizationMatrixProperty/config_tr.properties @@ -20,4 +20,4 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Enable\ project-based\ security=Proje tabanl\u0131 g\u00fcvenlik ayarlar\u0131n\u0131 devreye al +Enable\ project-based\ security=Proje tabanl\u0131 g\u00fcvenlik ayarlar\u0131n\u0131 devreye al diff --git a/core/src/main/resources/hudson/security/AuthorizationMatrixProperty/config_zh_CN.properties b/core/src/main/resources/hudson/security/AuthorizationMatrixProperty/config_zh_CN.properties new file mode 100644 index 0000000000000000000000000000000000000000..d7d400a6186adab291d735a7b6b2e2a261c4d213 --- /dev/null +++ b/core/src/main/resources/hudson/security/AuthorizationMatrixProperty/config_zh_CN.properties @@ -0,0 +1 @@ +Enable\ project-based\ security=\u542f\u7528\u9879\u76ee\u5b89\u5168 diff --git a/core/src/main/resources/hudson/security/GlobalMatrixAuthorizationStrategy/config.jelly b/core/src/main/resources/hudson/security/GlobalMatrixAuthorizationStrategy/config.jelly index 958f020418a52c6b2b818367b5dcecd0580a1f65..5d026e57bc859ddd8b69c5146872dd3bae814337 100644 --- a/core/src/main/resources/hudson/security/GlobalMatrixAuthorizationStrategy/config.jelly +++ b/core/src/main/resources/hudson/security/GlobalMatrixAuthorizationStrategy/config.jelly @@ -23,7 +23,7 @@ THE SOFTWARE. --> - + @@ -99,11 +99,16 @@ THE SOFTWARE. -
    + + + +
    ${%User/group to add}: - + + [help] +
    diff --git a/core/src/main/resources/hudson/security/GlobalMatrixAuthorizationStrategy/config_da.properties b/core/src/main/resources/hudson/security/GlobalMatrixAuthorizationStrategy/config_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..2cc112ca3d1bb1063cd018ff83c4cbd4db36420e --- /dev/null +++ b/core/src/main/resources/hudson/security/GlobalMatrixAuthorizationStrategy/config_da.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Anonymous=Anonym +User/group\ to\ add=Brugergruppe der skal tilf\u00f8jes +Add=Tilf\u00f8j +User/group=Bruger/gruppe diff --git a/core/src/main/resources/hudson/security/GlobalMatrixAuthorizationStrategy/config_de.properties b/core/src/main/resources/hudson/security/GlobalMatrixAuthorizationStrategy/config_de.properties index 561a12b0480ec6e160976e9b2ed472ac100099bb..4ca61ddc956c10a67b55cbbfabb8d3890b7436fa 100644 --- a/core/src/main/resources/hudson/security/GlobalMatrixAuthorizationStrategy/config_de.properties +++ b/core/src/main/resources/hudson/security/GlobalMatrixAuthorizationStrategy/config_de.properties @@ -20,7 +20,7 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -User/group=Benutzergruppe +User/group=Benutzer/Gruppe Anonymous=Anonymous -User/group\ to\ add=Hinzuzufügende Benutzergruppe +User/group\ to\ add=Weitere Benutzer/Gruppe Add=Hinzufügen diff --git a/core/src/main/resources/hudson/security/GlobalMatrixAuthorizationStrategy/config_es.properties b/core/src/main/resources/hudson/security/GlobalMatrixAuthorizationStrategy/config_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..09fa21c0d13de9765e04a08d723aa72f878fd849 --- /dev/null +++ b/core/src/main/resources/hudson/security/GlobalMatrixAuthorizationStrategy/config_es.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +User/group=Usuario/Grupo +Anonymous=Anónimo +User/group\ to\ add=Usuario/Grupo para añadir +Add=Añadir diff --git a/core/src/main/resources/hudson/security/GlobalMatrixAuthorizationStrategy/config_zh_CN.properties b/core/src/main/resources/hudson/security/GlobalMatrixAuthorizationStrategy/config_zh_CN.properties new file mode 100644 index 0000000000000000000000000000000000000000..4b22efbbc3197914091267ae796250bd69be9ac8 --- /dev/null +++ b/core/src/main/resources/hudson/security/GlobalMatrixAuthorizationStrategy/config_zh_CN.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +User/group=\u7528\u6237/\u7ec4 +Anonymous=\u533f\u540d\u7528\u6237 +User/group\ to\ add=\u6dfb\u52a0\u7528\u6237/\u7ec4 +Add=\u6dfb\u52a0 diff --git a/core/src/main/resources/hudson/security/GlobalMatrixAuthorizationStrategy/config_zh_TW.properties b/core/src/main/resources/hudson/security/GlobalMatrixAuthorizationStrategy/config_zh_TW.properties new file mode 100644 index 0000000000000000000000000000000000000000..f5733ee16ced7af13ba785ea23d9652816471058 --- /dev/null +++ b/core/src/main/resources/hudson/security/GlobalMatrixAuthorizationStrategy/config_zh_TW.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Add=\u65B0\u589E diff --git a/core/src/main/resources/hudson/security/GlobalMatrixAuthorizationStrategy/help-user-group.html b/core/src/main/resources/hudson/security/GlobalMatrixAuthorizationStrategy/help-user-group.html new file mode 100644 index 0000000000000000000000000000000000000000..4f8cdbd92dee1c23165c9a9d025d5ac361cf680e --- /dev/null +++ b/core/src/main/resources/hudson/security/GlobalMatrixAuthorizationStrategy/help-user-group.html @@ -0,0 +1,12 @@ +
    + Note that adding permissions for LDAP groups requires a specific syntax. In the + default configuration all LDAP groups must be entered here in all capital letters + and with "ROLE_" added on the front. For example, a group called "devs" would be + entered here as "ROLE_DEVS". The prefix and case settings may be adjusted by + editing the WEB-INF/security/LDAPBindSecurityRealm.groovy file in your + Hudson deployment and restarting Hudson. + +

    + A special group "authenticated" is also available, which represents all + authenticated (logged in) users. +

    diff --git a/core/src/main/resources/hudson/security/GlobalMatrixAuthorizationStrategy/help-user-group_de.html b/core/src/main/resources/hudson/security/GlobalMatrixAuthorizationStrategy/help-user-group_de.html new file mode 100644 index 0000000000000000000000000000000000000000..ac9c1936f8a7d89b9222c69f38d6dadf7372e663 --- /dev/null +++ b/core/src/main/resources/hudson/security/GlobalMatrixAuthorizationStrategy/help-user-group_de.html @@ -0,0 +1,8 @@ +
    + Bitte beachten Sie, dass das Hinzufügen von Berechtigungen für LDAP-Gruppen + eine besondere Syntax erfordert. In den Standardeinstellungen müssen + LDAP-Gruppen immer komplett groß und mit einem "ROLE_" zu Beginn des Names + geschrieben werden. Dieser Prefix und die Groß- bzw. Kleinschrift kann durch + Bearbeitung der WEB-INF/security/LDAPBindSecurityRealm.groovy-Datei + und einem Neustart des Hudson angepasst werden. +
    diff --git a/core/src/main/resources/hudson/security/GlobalMatrixAuthorizationStrategy/help-user-group_ja.html b/core/src/main/resources/hudson/security/GlobalMatrixAuthorizationStrategy/help-user-group_ja.html new file mode 100644 index 0000000000000000000000000000000000000000..31781cd4bb736a4911036b5369b2168c6901b6a6 --- /dev/null +++ b/core/src/main/resources/hudson/security/GlobalMatrixAuthorizationStrategy/help-user-group_ja.html @@ -0,0 +1,8 @@ +
    + LDAPã®ã‚°ãƒ«ãƒ¼ãƒ—ã«ãƒ‘ーミッションを追加ã™ã‚‹ã«ã¯ã€ç‰¹åˆ¥ãªæ–‡æ³•ãŒå¿…è¦ã§ã‚ã‚‹ã“ã¨ã«æ³¨æ„ã—ã¦ãã ã•ã„。 + デフォルトã®è¨­å®šã§ã¯ã€ã™ã¹ã¦å¤§æ–‡å­—ã§"ROLE_"ã§å§‹ã¾ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚ + 例ãˆã°ã€"devs"ã¨ã„ã†ã‚°ãƒ«ãƒ¼ãƒ—ã§ã‚ã‚Œã°ã€"ROLE_DEVS"ã¨å…¥åŠ›ã—ã¾ã™ã€‚ +

    + 接頭辞ã§ã‚ã‚‹"ROLE_"ã¨å¤§æ–‡å­—ã§ã‚ã‚‹ã‹å°æ–‡å­—ã§ã‚ã‚‹ã‹ã‚’変更ã™ã‚‹ã«ã¯ã€Hudsonã®ã‚¢ãƒ¼ã‚«ã‚¤ãƒ–ã«å«ã¾ã‚Œã‚‹WEB-INF/security/LDAPBindSecurityRealm.groovyを編集ã—ã¦ã€ + å†èµ·å‹•ã—ã¾ã™ã€‚ +

    diff --git a/core/src/main/resources/hudson/security/GlobalMatrixAuthorizationStrategy/help-user-group_zh_CN.html b/core/src/main/resources/hudson/security/GlobalMatrixAuthorizationStrategy/help-user-group_zh_CN.html new file mode 100644 index 0000000000000000000000000000000000000000..574be20a90e8bd1282e579caa8e7ca680c7eb36e --- /dev/null +++ b/core/src/main/resources/hudson/security/GlobalMatrixAuthorizationStrategy/help-user-group_zh_CN.html @@ -0,0 +1,7 @@ +
    + 注æ„在添加LDAPæƒé™ç»„的时候需è¦ç”¨ç‰¹æ®Šè¯­æ³•.默认é…置中的所有LDAP组在这里输入的时候都è¦åŠ ä¸Šä¸€ä¸ªå‰ç¼€"ROLE_"并全部转为大写. + 例如,一个被å«åš"devs"的组在输入时应该是"ROLE_DEVS".è¦è°ƒæ•´è¿™ä¸ªå‰ç¼€ç­–略你需è¦ç¼–辑WEB-INF/security/LDAPBindSecurityRealm.groovy,这个文件在你Hudson的部属目录下,然åŽéœ€è¦é‡å¯Hudson. + +

    + 有一个特殊的组"authenticated"总是å¯ç”¨çš„,它代表所有已认è¯(已登录)用户. +

    diff --git a/core/src/main/resources/hudson/security/GlobalMatrixAuthorizationStrategy/help.html b/core/src/main/resources/hudson/security/GlobalMatrixAuthorizationStrategy/help.html new file mode 100644 index 0000000000000000000000000000000000000000..c34beb46b3b76d725cf970dd0a20cefea11fd1a7 --- /dev/null +++ b/core/src/main/resources/hudson/security/GlobalMatrixAuthorizationStrategy/help.html @@ -0,0 +1,19 @@ +
    + In this scheme, you can configure who can do what by using a big table. + +

    + Each column represents a permission. Hover the mouse over the permission names to get + more information about what they represent. + +

    + Each row represents a user or a group (often called 'role', depending on the security realm.) + This includes a special user 'anonymous', which represents unauthenticated users, as well + as 'authenticated', which represents all authenticated users (IOW, everyone except anonymous users.) + Use the text box below the table to add new users/groups/roles to the table, and click the + [x] icon to remove it from the table. + +

    + Permissions are additive. That is, if an user X is in group A, B, and C, then + the permissions that this user actually has are the union of all permissions given to + X, A, B, C, and anonymous. +

    diff --git a/core/src/main/resources/hudson/security/GlobalMatrixAuthorizationStrategy/help_de.html b/core/src/main/resources/hudson/security/GlobalMatrixAuthorizationStrategy/help_de.html new file mode 100644 index 0000000000000000000000000000000000000000..a651b716a8b1f1b9edb8acccea26056516a70dcd --- /dev/null +++ b/core/src/main/resources/hudson/security/GlobalMatrixAuthorizationStrategy/help_de.html @@ -0,0 +1,20 @@ +
    + In dieser Tabelle können Sie angeben, wer zu welchen Aktionen berechtigt ist. +

    + Jede Spalte entspricht einer Berechtigung. Fahren Sie mit der Maus über die + Namen der Berechtigungen, um mehr Informationen darüber zu erhalten, was sie + bedeuten. +

    + Jede Zeile entspricht einem Benutzer oder einer Benutzergruppe (je nach + Benutzerverzeichnis oft auch als "Rolle" bezeichnet). Die Zeilen beinhalten + auch die besonderen Benutzer 'anonymous' bzw. 'authenticated', welche + nichtangemeldete bzw. angemeldete Benutzer repräsentieren, + + Verwenden Sie das untenstehende Textfeld, um neue Benutzer/Gruppen/Rollen zur Tabelle + hinzuzufügen und klicken Sie auf das [x]-Symbol, um sie wieder von der + Tabelle zu entfernen. +

    + Berechtigungen sind additiv. Dies bedeutet, dass ein Benutzer X, der Mitglied + in den Gruppen A, B und C ist, die Vereinigungsmenge aller Berechtigungen + besitzt, die X, A, B, C und dem Benutzer 'anonymous' erteilt wurden. +

    \ No newline at end of file diff --git a/war/resources/help/security/global-matrix_fr.html b/core/src/main/resources/hudson/security/GlobalMatrixAuthorizationStrategy/help_fr.html similarity index 100% rename from war/resources/help/security/global-matrix_fr.html rename to core/src/main/resources/hudson/security/GlobalMatrixAuthorizationStrategy/help_fr.html diff --git a/war/resources/help/security/global-matrix_ja.html b/core/src/main/resources/hudson/security/GlobalMatrixAuthorizationStrategy/help_ja.html similarity index 100% rename from war/resources/help/security/global-matrix_ja.html rename to core/src/main/resources/hudson/security/GlobalMatrixAuthorizationStrategy/help_ja.html diff --git a/war/resources/help/security/global-matrix_pt_BR.html b/core/src/main/resources/hudson/security/GlobalMatrixAuthorizationStrategy/help_pt_BR.html similarity index 100% rename from war/resources/help/security/global-matrix_pt_BR.html rename to core/src/main/resources/hudson/security/GlobalMatrixAuthorizationStrategy/help_pt_BR.html diff --git a/war/resources/help/security/global-matrix_ru.html b/core/src/main/resources/hudson/security/GlobalMatrixAuthorizationStrategy/help_ru.html similarity index 100% rename from war/resources/help/security/global-matrix_ru.html rename to core/src/main/resources/hudson/security/GlobalMatrixAuthorizationStrategy/help_ru.html diff --git a/war/resources/help/security/global-matrix_tr.html b/core/src/main/resources/hudson/security/GlobalMatrixAuthorizationStrategy/help_tr.html similarity index 100% rename from war/resources/help/security/global-matrix_tr.html rename to core/src/main/resources/hudson/security/GlobalMatrixAuthorizationStrategy/help_tr.html diff --git a/core/src/main/resources/hudson/security/GlobalMatrixAuthorizationStrategy/help_zh_CN.html b/core/src/main/resources/hudson/security/GlobalMatrixAuthorizationStrategy/help_zh_CN.html new file mode 100644 index 0000000000000000000000000000000000000000..72cdd3584773774b5742dfe8666c95d4d85e1711 --- /dev/null +++ b/core/src/main/resources/hudson/security/GlobalMatrixAuthorizationStrategy/help_zh_CN.html @@ -0,0 +1,13 @@ +
    + 在这ç§æŽˆæƒæ¨¡åž‹ä¸­,ä½ å¯ä»¥é€šè¿‡ä¸€ä¸ªå¤§çš„表格æ¥é…置什么用户å¯ä»¥åšä»€ä¹ˆäº‹. + +

    + æ¯ä¸€åˆ—代表一个æƒé™.把鼠标移动到æƒé™å称上å¯ä»¥æŸ¥çœ‹æ›´è¯¦ç»†çš„æƒé™è¯´æ˜Žä¿¡æ¯. + +

    + æ¯ä¸€è¡Œä»£è¡¨ä¸€ä¸ªç”¨æˆ·æˆ–组(通常称为'角色',å–决于安全域.),这其中包å«ç‰¹æ®Šç”¨æˆ·'anonymous',其代表未登录用户,åŒæ ·è¿˜æœ‰'authenticated',其代表所有已认è¯çš„用户(也就是除了匿å用户的所有用户.) + å¯ä»¥ä½¿ç”¨è¡¨æ ¼ä¸‹æ–¹çš„输入框æ¥æ·»åŠ æ–°çš„用户/组/角色到表格中,并且å¯ä»¥ç‚¹å‡»[x]图标将其从表格中删除. + +

    + æƒé™æ˜¯è¿½åŠ çš„,这说明如果一个用户X在A,B,C三个组中,那么Xçš„æƒé™æ˜¯è”åˆäº†X,A,B,C和匿å用户的所有æƒé™. +

    diff --git a/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/Details/config_da.properties b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/Details/config_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..826404afd5a08396dbec1604aec53b619da2b7c5 --- /dev/null +++ b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/Details/config_da.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Password=Adgangskode +Confirm\ Password=Gentag Adgangskode diff --git a/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/Details/config_es.properties b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/Details/config_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..aeec3882c7988deae503e3752607b8d06014c0bf --- /dev/null +++ b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/Details/config_es.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Password=Contraseña +Confirm\ Password=Confirma la contraseña diff --git a/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/Details/config_sv_SE.properties b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/Details/config_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..6aa2898d694fdd616cac37da815481407ad34cee --- /dev/null +++ b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/Details/config_sv_SE.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Confirm\ Password=Bekr\u00E4fta l\u00F6senord +Password=L\u00F6senord diff --git a/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/Details/config_zh_CN.properties b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/Details/config_zh_CN.properties new file mode 100644 index 0000000000000000000000000000000000000000..02680d9dcd9e2653be07884adca900374b9b1215 --- /dev/null +++ b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/Details/config_zh_CN.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Confirm\ Password=\u786e\u8ba4\u5bc6\u7801 +Password=\u5bc6\u7801 diff --git a/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/Details/config_zh_TW.properties b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/Details/config_zh_TW.properties new file mode 100644 index 0000000000000000000000000000000000000000..32348420f115974dd292a870d1ff2f74fb2df9fc --- /dev/null +++ b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/Details/config_zh_TW.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Confirm\ Password=\u78BA\u8A8D\u5BC6\u78BC +Password=\u5BC6\u78BC diff --git a/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/_entryForm.jelly b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/_entryForm.jelly index 84722a8f14b133b70c7ea4108760bcb306a6effd..13afd1d37bae5eab983f7630cc55b16ff3861685 100644 --- a/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/_entryForm.jelly +++ b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/_entryForm.jelly @@ -1,7 +1,7 @@ + + + + + \ No newline at end of file diff --git a/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/firstUser_da.properties b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/firstUser_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..04ac43119ff0d05c7bcb203d2ea5e95b7cb006b1 --- /dev/null +++ b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/firstUser_da.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Create\ First\ Admin\ User=Opret Den F\u00f8rste Admin Bruger diff --git a/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/firstUser_de.properties b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/firstUser_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..aac0ccafa4b20dc80d647d8c661eb55f31ac4cee --- /dev/null +++ b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/firstUser_de.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Create\ First\ Admin\ User=Ersten Administrator anlegen diff --git a/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/firstUser_es.properties b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/firstUser_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..ed4bfe96866c89edc6913ef9a741efc762fb16d2 --- /dev/null +++ b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/firstUser_es.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Create\ First\ Admin\ User=Crear la primera cuenta de administrador diff --git a/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/firstUser_ja.properties b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/firstUser_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..4f55a66ebe7678785fa1e8e70e876c35a6f534d2 --- /dev/null +++ b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/firstUser_ja.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Create\ First\ Admin\ User=\u7ba1\u7406\u8005\u306e\u4f5c\u6210 \ No newline at end of file diff --git a/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/firstUser_pt_BR.properties b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/firstUser_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..95a4e37881969b9c75d6d1ba54a7307d1a089e9d --- /dev/null +++ b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/firstUser_pt_BR.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Create\ First\ Admin\ User= diff --git a/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/index.jelly b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/index.jelly index da56f0a687885f73a8f39ae7038c44af24a84c3e..77553dd1225726b47b4ad18f2ba785fc52325ca8 100644 --- a/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/index.jelly +++ b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/index.jelly @@ -37,12 +37,17 @@ THE SOFTWARE. - - ${user} - Setting + + ${user} + + Setting + + Delete + + - \ No newline at end of file + diff --git a/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/index.properties b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/index.properties index d591a184d44f66bd3b16512a0246fb05f63cb923..b82b47260ed93a9d133285476e47b3a395b3a943 100644 --- a/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/index.properties +++ b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/index.properties @@ -21,6 +21,6 @@ # THE SOFTWARE. blurb=\ -These users can log into Hudson. This is the super set of this list, \ +These users can log into Hudson. This is a sub set of this list, \ which also contains auto-created users who really just made some commits on some projects and have no \ direct Hudson access. diff --git a/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/index_da.properties b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/index_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..651ab34d185fd21889ad7b4c177f54982ba10b9b --- /dev/null +++ b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/index_da.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +blurb=Disse brugere kan logge p\u00e5 Hudson. Dette er en delm\u00e6ngde af denne liste +Name=Navn diff --git a/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/index_de.properties b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/index_de.properties index 819d0fec077fe826bb28894a25806cd869d9c8e1..821d430a7b998629124f18415ffd3b6388b5b38d 100644 --- a/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/index_de.properties +++ b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/index_de.properties @@ -21,8 +21,8 @@ # THE SOFTWARE. blurb=\ -Diese Benutzer können sich bei Hudson anmelden. Im Unterschied dazu existiert \ -auch noch jene Liste, die zusätzlich automatisch \ -angelegte Benutzer enthalten kann, die zwar Commits zu Projekten beigetragen \ -haben, aber sich nicht direkt bei Hudson anmelden dürfen. -Name=Name +Diese Benutzer können sich bei Hudson anmelden. Dies ist eine Untermenge \ +jener Liste, die zusätzlich automatisch \ +angelegte Benutzer enthalten kann. Diese Benutzer haben zwar Commits zu Projekten \ +beigetragen, dürfen sich aber nicht direkt bei Hudson anmelden. +Name=Name diff --git a/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/index_es.properties b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/index_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..f61f518be92d4c4e4a095743aa89936ba5b3057e --- /dev/null +++ b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/index_es.properties @@ -0,0 +1,27 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +blurb=\ + Estos usuarios pueden entrar en Hudson. Este es un subconjunto de esta list, \ + que tambien incluyen usuarios creados automáticamente porque hayan hecho ''commits'' a proyectos. \ + Los usuarios creados automáticamente no tienen acceso directo a Hudson. +Name=Nombre diff --git a/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/index_fr.properties b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/index_fr.properties index 83739147063043cb4b4845f7c979899d033c199b..5c49a031a742f3614d51fa352f21661c722aa35b 100644 --- a/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/index_fr.properties +++ b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/index_fr.properties @@ -20,8 +20,8 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -blurb=\ -Ces utilisateurs peuvent se logguer sur Hudson. C''est le groupe contenant cette liste, \ -qui contient également les utilisateus créés automatiquement qui ont simplement fait des commits sur certains \ -projets et n''ont pas d''accès direct à Hudson. -Name=Nom +blurb=\ +Ces utilisateurs peuvent se logguer sur Hudson. C''est le groupe contenant cette liste, \ +qui contient également les utilisateus créés automatiquement qui ont simplement fait des commits sur certains \ +projets et n''ont pas d''accès direct à Hudson. +Name=Nom diff --git a/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/index_ja.properties b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/index_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..ae2443f2874b2d4f4fdfed5c8a44297044ddbded --- /dev/null +++ b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/index_ja.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +blurb=\ +\u3053\u308C\u3089\u306E\u30E6\u30FC\u30B6\u306FHudson\u306B\u30ED\u30B0\u30A4\u30F3\u3059\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u3059\u3002\u3053\u308C\u306FHudson\u306B\u30A2\u30AF\u30BB\u30B9\u3057\u3066\u3044\u306A\u3044\u3051\u308C\u3069\u3082, \ +\u3044\u304F\u3064\u304B\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306B\u30B3\u30DF\u30C3\u30C8\u3059\u308B\u3068\u81EA\u52D5\u7684\u306B\u4F5C\u6210\u3055\u308C\u308B\u30E6\u30FC\u30B6\u3092\u542B\u3080\u3053\u306E\u30EA\u30B9\u30C8\u306E\u4E00\u90E8\u3067\u3059\u3002 +Name=\u540D\u524D \ No newline at end of file diff --git a/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/index_ko.properties b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/index_ko.properties new file mode 100644 index 0000000000000000000000000000000000000000..be744d404fc7de1c77ec6af19cf3e0e085dcb2e3 --- /dev/null +++ b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/index_ko.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Name=\uC774\uB984 +blurb=\uC774 \uC0AC\uC6A9\uC790\uB4E4\uC740 Hudson\uC5D0 \uB85C\uADF8\uC778\uD560 \uC218 \uC788\uC74C. \uC5B4\uB5A4 \uD504\uB85C\uC81D\uD2B8\uC5D0\uC11C \uC5B4\uB5A4 \uC801\uC6A9\uC744 \uB9C9 \uB9CC\uB4E4\uC5B4 \uB0B4\uACE0 Hudson\uC5D0 \uC811\uADFC\uD558\uC9C0 \uC54A\uC740 \uC790\uB3D9 \uC0DD\uC131\uB41C \uC0AC\uC6A9\uC790\uB3C4 \uD3EC\uD568\uD55C \uBAA9\uB85D\uC784. diff --git a/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/index_pt_BR.properties b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/index_pt_BR.properties index f7d959899c489ab3aa611ec17b7201347809164a..d3f0c58cdbaa0b20ba21dcfc8b74874403fd5327 100644 --- a/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/index_pt_BR.properties +++ b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/index_pt_BR.properties @@ -21,6 +21,5 @@ # THE SOFTWARE. blurb=\ -Estes usu\u00E1rios podem se logar no Hudson. Este \u00E9 um super conjunto desta lista, \ -que tamb\u00E9m cont\u00E9m usu\u00E1rios auto-criados que na verdade apenas fizeram algumas submiss\u00F5es em alguns projetos e n\u00E3o t\u00EAm \ -acesso direto ao Hudson. +Name= +Name= diff --git a/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/index_ru.properties b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/index_ru.properties new file mode 100644 index 0000000000000000000000000000000000000000..032fc142b38198a245804333593c48795b7ac375 --- /dev/null +++ b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/index_ru.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Name=\u0418\u043C\u044F +blurb=\u041F\u0435\u0440\u0435\u0447\u0438\u0441\u043B\u0435\u043D\u043D\u044B\u0435 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u0438 \u043C\u043E\u0433\u0443\u0442 \u0432\u0445\u043E\u0434\u0438\u0442\u044C \u0432 Hudson. \u0423\u043A\u0430\u0437\u0430\u043D\u043D\u044B\u0439 \u0441\u043F\u0438\u0441\u043E\u043A \u044F\u0432\u043B\u044F\u0435\u0442\u0441\u044F \u043F\u043E\u0434\u043C\u043D\u043E\u0436\u0435\u0441\u0442\u0432\u043E\u043C \u043F\u043E\u043B\u043D\u043E\u0433\u043E \u0441\u043F\u0438\u0441\u043A\u0430 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u0435\u0439, \u043A\u043E\u0442\u043E\u0440\u044B\u0439 \u0432 \u0434\u043E\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u0435 \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u0442 \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u0441\u043E\u0437\u0434\u0430\u043D\u043D\u044B\u0445 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u0435\u0439, \u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u0432\u043D\u043E\u0441\u0438\u043B\u0438 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F \u0432 \u043F\u0440\u043E\u0435\u043A\u0442\u044B (\u0434\u0435\u043B\u0430\u043B\u0438 commit \u0432 SCM), \u0438 \u043C\u043E\u0433\u0443\u0442 \u043D\u0435 \u0438\u043C\u0435\u0442\u044C \u0434\u043E\u0441\u0442\u0443\u043F\u0430 \u043A \u0434\u0430\u043D\u043D\u043E\u043C\u0443 \u044D\u043A\u0437\u0435\u043C\u043F\u043B\u044F\u0440\u0443 Hudson. diff --git a/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/index_sv_SE.properties b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/index_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..722de802225fe1dada9a126c64a89b893d6156d7 --- /dev/null +++ b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/index_sv_SE.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Name=Namn diff --git a/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/index_tr.properties b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/index_tr.properties index f0815d35adde1635fa38e936a498c919b7f235d1..662a01bbe34a6a597b720702f0b9263d082e8fe9 100644 --- a/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/index_tr.properties +++ b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/index_tr.properties @@ -20,8 +20,8 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -blurb=\ -Bu kullan\u0131c\u0131vlar Hudson'da oturum a\u00e7abilir. Bu liste, buradakinin bir \u00fcst k\u00fcmesidir, -ayn\u0131 zamanda baz\u0131 projelerde commit i\u015flemi yapan, fakat direk Hudson eri\u015fimi olmayan ve otomatik olarak yarat\u0131lan \ -kullan\u0131c\u0131lar\u0131 da i\u00e7erir -Name=\u0130sim +blurb=\ +Bu kullan\u0131c\u0131vlar Hudson'da oturum a\u00e7abilir. Bu liste, buradakinin bir \u00fcst k\u00fcmesidir, +ayn\u0131 zamanda baz\u0131 projelerde commit i\u015flemi yapan, fakat direk Hudson eri\u015fimi olmayan ve otomatik olarak yarat\u0131lan \ +kullan\u0131c\u0131lar\u0131 da i\u00e7erir +Name=\u0130sim diff --git a/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/index_zh_CN.properties b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/index_zh_CN.properties new file mode 100644 index 0000000000000000000000000000000000000000..522254bd0d3a89bc342df16720004f51272699e7 --- /dev/null +++ b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/index_zh_CN.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Name=\u540d\u79f0 diff --git a/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/index_zh_TW.properties b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/index_zh_TW.properties new file mode 100644 index 0000000000000000000000000000000000000000..23753688997af91b92522eed4f34c9b52c68ef98 --- /dev/null +++ b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/index_zh_TW.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Name=\u540D\u7A31 diff --git a/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/loginLink_cs.properties b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/loginLink_cs.properties new file mode 100644 index 0000000000000000000000000000000000000000..59e7a8f5940080b3aa28271bb32677309130b833 --- /dev/null +++ b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/loginLink_cs.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +sign\ up=Registrovat diff --git a/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/loginLink_da.properties b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/loginLink_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..3ce99566a2d0fcf29b3be0561fae5f8d49ae41a5 --- /dev/null +++ b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/loginLink_da.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +sign\ up=tilmelding diff --git a/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/loginLink_es.properties b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/loginLink_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..0aa3051ca1eda15fc7d2114c5387c19abf7acbc4 --- /dev/null +++ b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/loginLink_es.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +sign\ up=Registrarse diff --git a/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/loginLink_ko.properties b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/loginLink_ko.properties new file mode 100644 index 0000000000000000000000000000000000000000..a36d990f3a1120f09f9211f951c6f17929ec3e6d --- /dev/null +++ b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/loginLink_ko.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +sign\ up=\uAC00\uC785 diff --git a/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/loginLink_zh_CN.properties b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/loginLink_zh_CN.properties new file mode 100644 index 0000000000000000000000000000000000000000..7b062cc601878206dd5aa5a2951cdb2315d53a76 --- /dev/null +++ b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/loginLink_zh_CN.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +sign\ up=\u6ce8\u518c diff --git a/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/loginLink_zh_TW.properties b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/loginLink_zh_TW.properties new file mode 100644 index 0000000000000000000000000000000000000000..6dbe8bd2f4daa9c40c485aebd524e7135d995dd0 --- /dev/null +++ b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/loginLink_zh_TW.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +sign\ up=\u8A3B\u518A diff --git a/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/sidepanel_da.properties b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/sidepanel_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..7ce3970d7f2e6f88a625cdb95bab76ebcf0efb8e --- /dev/null +++ b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/sidepanel_da.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Back\ to\ Dashboard=Tilbage til oversigtssiden +Create\ User=Opret bruger diff --git a/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/sidepanel_de.properties b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/sidepanel_de.properties index a34400e0ba72b16a801b2eac93cdcd9a6ae6f99e..9e4d5a28ad249945aa7a936fa22668357256b6c2 100644 --- a/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/sidepanel_de.properties +++ b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/sidepanel_de.properties @@ -20,5 +20,5 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Back\ to\ Dashboard=Zurück zur Übersicht -Create\ User=Neuen Benutzer anlegen +Back\ to\ Dashboard=Zurück zur Übersicht +Create\ User=Neuen Benutzer anlegen diff --git a/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/sidepanel_es.properties b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/sidepanel_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..2d9bb2ef88251c7360ac05d09fbb4911b94f16a9 --- /dev/null +++ b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/sidepanel_es.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Back\ to\ Dashboard=Volver al Panel de control +Create\ User=Crear un usuario diff --git a/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/sidepanel_fr.properties b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/sidepanel_fr.properties index 3300eec50cde5bb55d72f5e349b2e67c417d54af..7c6ef7e5be3246a46946ad373053a9a3a04ec98b 100644 --- a/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/sidepanel_fr.properties +++ b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/sidepanel_fr.properties @@ -20,5 +20,5 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Back\ to\ Dashboard=Retour au tableau de bord -Create\ User=Créer un utilisateur +Back\ to\ Dashboard=Retour au tableau de bord +Create\ User=Créer un utilisateur diff --git a/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/sidepanel_ko.properties b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/sidepanel_ko.properties new file mode 100644 index 0000000000000000000000000000000000000000..fbf91bc90fd14bd4652be62dbc250489eeb5e294 --- /dev/null +++ b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/sidepanel_ko.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Back\ to\ Dashboard=\uB300\uC2DC\uBCF4\uB4DC\uB85C \uB3CC\uC544\uAC00\uAE30 +Create\ User=\uC0AC\uC6A9\uC790 \uC0DD\uC131 diff --git a/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/sidepanel_pt_BR.properties b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/sidepanel_pt_BR.properties index 6601405f32dc7c2073a527ef615faedf2232c576..932ea7f0aac6e88346a3e9dbcbd7f2cce18c2f53 100644 --- a/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/sidepanel_pt_BR.properties +++ b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/sidepanel_pt_BR.properties @@ -20,5 +20,5 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Back\ to\ Dashboard=Voltar ao Painel Principal -Create\ User=Criar Usu\u00E1rio +Back\ to\ Dashboard=Voltar ao Painel Principal +Create\ User=Criar Usu\u00E1rio diff --git a/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/sidepanel_ru.properties b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/sidepanel_ru.properties new file mode 100644 index 0000000000000000000000000000000000000000..1163060174d634a46d89ec2fc627037289d21b53 --- /dev/null +++ b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/sidepanel_ru.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Back\ to\ Dashboard=\u0414\u043E\u043C\u043E\u0439 +Create\ User=\u0421\u043E\u0437\u0434\u0430\u0442\u044C \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F diff --git a/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/sidepanel_sv_SE.properties b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/sidepanel_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..9ebf4bc868a463827698c050de9b7b8d726e707b --- /dev/null +++ b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/sidepanel_sv_SE.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Create\ User=Skapa anv\u00E4ndare diff --git a/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/sidepanel_tr.properties b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/sidepanel_tr.properties index 175eb8e7e50bce791711dc853834e1f50e6fd60c..c344d7661acd83e2cd3f1aea5d48482250371e3f 100644 --- a/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/sidepanel_tr.properties +++ b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/sidepanel_tr.properties @@ -20,5 +20,5 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Back\ to\ Dashboard=Kontrol Merkezi''ne D\u00f6n -Create\ User=Kullan\u0131c\u0131 olu\u015ftur +Back\ to\ Dashboard=Kontrol Merkezi''ne D\u00f6n +Create\ User=Kullan\u0131c\u0131 olu\u015ftur diff --git a/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/sidepanel_zh_CN.properties b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/sidepanel_zh_CN.properties new file mode 100644 index 0000000000000000000000000000000000000000..22e5779372abb2901e591d648979bb34af357c33 --- /dev/null +++ b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/sidepanel_zh_CN.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Create\ User=\u65b0\u5efa\u4f7f\u7528\u8005 diff --git a/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/sidepanel_zh_TW.properties b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/sidepanel_zh_TW.properties new file mode 100644 index 0000000000000000000000000000000000000000..9ef9dd8bb2b39ce28dfb153264ebc77d003af47d --- /dev/null +++ b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/sidepanel_zh_TW.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Create\ User=\u5EFA\u7ACB\u4F7F\u7528\u8005 diff --git a/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/signup_da.properties b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/signup_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..1be90a2f18d7fed898eab112a4d955d5bc599071 --- /dev/null +++ b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/signup_da.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Sign\ up=Tilmelding diff --git a/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/signup_de.properties b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/signup_de.properties index d641ede5fb763eaf2db806cd9854cde8b8b2b14b..4db660b0df5fb3f4ba9ead3fd2e6421cec0dcb66 100644 --- a/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/signup_de.properties +++ b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/signup_de.properties @@ -20,4 +20,4 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Sign\ up=Registrieren +Sign\ up=Registrieren diff --git a/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/signup_es.properties b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/signup_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..1e42e0bef975ad34314454cfc7e9d464a76a5699 --- /dev/null +++ b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/signup_es.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Sign\ up=Registrarse diff --git a/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/signup_fr.properties b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/signup_fr.properties index 4372d6085a32b6ac7a20b4331b2251ece99a5ac7..dd782ecce4a1b4702259c81c7aa3dcdbbe1530c0 100644 --- a/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/signup_fr.properties +++ b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/signup_fr.properties @@ -20,4 +20,4 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Sign\ up=S''inscrire +Sign\ up=S''inscrire diff --git a/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/signup_pt_BR.properties b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/signup_pt_BR.properties index 82dd4ffe8b766e8bac1da76e1d1d596387718811..a465fda0a3fe9d9e59ccdf368ed2366f6ddaf7ce 100644 --- a/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/signup_pt_BR.properties +++ b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/signup_pt_BR.properties @@ -20,4 +20,4 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Sign\ up=Inscriver +Sign\ up=Inscriver diff --git a/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/signup_tr.properties b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/signup_tr.properties index 648c30115526e77edc66bffba513b104d481484c..ac47548629278c6c4f7f1ab9fde3be8583907d97 100644 --- a/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/signup_tr.properties +++ b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/signup_tr.properties @@ -20,4 +20,4 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Sign\ up=Kay\u0131t ol +Sign\ up=Kay\u0131t ol diff --git a/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/signup_zh_CN.properties b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/signup_zh_CN.properties new file mode 100644 index 0000000000000000000000000000000000000000..907d5faa39196b6e2284e9854daddbec4e721d86 --- /dev/null +++ b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/signup_zh_CN.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Sign\ up=\u6ce8\u518c diff --git a/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/success.jelly b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/success.jelly index 230fb99093ed9550cdda1d2c8b4506eec28211ef..cdb26a913dd6cd124417305918b86c503bbde8b4 100644 --- a/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/success.jelly +++ b/core/src/main/resources/hudson/security/HudsonPrivateSecurityRealm/success.jelly @@ -1,7 +1,7 @@ -${%login} \ No newline at end of file + + + + + + ${%login} + diff --git a/core/src/main/resources/hudson/security/SecurityRealm/loginLink_cs.properties b/core/src/main/resources/hudson/security/SecurityRealm/loginLink_cs.properties new file mode 100644 index 0000000000000000000000000000000000000000..3e54b0a7c4338e4ead03c0f7cd03ee85ba8af67b --- /dev/null +++ b/core/src/main/resources/hudson/security/SecurityRealm/loginLink_cs.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +login=P\u0159ihl\u00E1sit diff --git a/core/src/main/resources/hudson/security/SecurityRealm/loginLink_da.properties b/core/src/main/resources/hudson/security/SecurityRealm/loginLink_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..35bb735e963ac88ffe8c4247a3b649d25e795d8c --- /dev/null +++ b/core/src/main/resources/hudson/security/SecurityRealm/loginLink_da.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +login=Log ind diff --git a/core/src/main/resources/hudson/security/SecurityRealm/loginLink_de.properties b/core/src/main/resources/hudson/security/SecurityRealm/loginLink_de.properties index 89ef8a591e828e8b5d820825159d9b5c0441ea1d..683673dd4ff8524b0db39df221200cc616150e8a 100644 --- a/core/src/main/resources/hudson/security/SecurityRealm/loginLink_de.properties +++ b/core/src/main/resources/hudson/security/SecurityRealm/loginLink_de.properties @@ -21,3 +21,4 @@ # THE SOFTWARE. login=Login + diff --git a/core/src/main/resources/hudson/security/SecurityRealm/loginLink_es.properties b/core/src/main/resources/hudson/security/SecurityRealm/loginLink_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..a64ad2d40791c7610d4b595ae650e3e007b071c1 --- /dev/null +++ b/core/src/main/resources/hudson/security/SecurityRealm/loginLink_es.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Jesse Glick +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +login=entrar diff --git a/core/src/main/resources/hudson/security/SecurityRealm/loginLink_fi.properties b/core/src/main/resources/hudson/security/SecurityRealm/loginLink_fi.properties new file mode 100644 index 0000000000000000000000000000000000000000..fe8dda29fc236c7336cf2c6a1f3e4f0c0e41902f --- /dev/null +++ b/core/src/main/resources/hudson/security/SecurityRealm/loginLink_fi.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +login=Kirjaudu sis\u00E4\u00E4n diff --git a/core/src/main/resources/hudson/security/SecurityRealm/loginLink_ko.properties b/core/src/main/resources/hudson/security/SecurityRealm/loginLink_ko.properties new file mode 100644 index 0000000000000000000000000000000000000000..234c0e5481b4a1835790a4f57e8390e0e13a132c --- /dev/null +++ b/core/src/main/resources/hudson/security/SecurityRealm/loginLink_ko.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +login=\uB85C\uADF8\uC778 diff --git a/core/src/main/resources/hudson/security/SecurityRealm/loginLink_nb_NO.properties b/core/src/main/resources/hudson/security/SecurityRealm/loginLink_nb_NO.properties new file mode 100644 index 0000000000000000000000000000000000000000..3346f44645131e1215bb9d8191c1eb155d30bfc8 --- /dev/null +++ b/core/src/main/resources/hudson/security/SecurityRealm/loginLink_nb_NO.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +login=logg inn diff --git a/core/src/main/resources/hudson/security/SecurityRealm/loginLink_pt_BR.properties b/core/src/main/resources/hudson/security/SecurityRealm/loginLink_pt_BR.properties index c673c477ac9a02983a9a4cb908065e3fc7ec0464..ca8751f4be035dd8150db84241aad0d04eb5492c 100644 --- a/core/src/main/resources/hudson/security/SecurityRealm/loginLink_pt_BR.properties +++ b/core/src/main/resources/hudson/security/SecurityRealm/loginLink_pt_BR.properties @@ -20,4 +20,4 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -login= +login=Entrar diff --git a/core/src/main/resources/hudson/security/SecurityRealm/loginLink_ru.properties b/core/src/main/resources/hudson/security/SecurityRealm/loginLink_ru.properties index a000f4996f0b599f3150cfa666d267e704f0e72d..e10679582a41022f39a36118705a0410578219db 100644 --- a/core/src/main/resources/hudson/security/SecurityRealm/loginLink_ru.properties +++ b/core/src/main/resources/hudson/security/SecurityRealm/loginLink_ru.properties @@ -20,4 +20,4 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -login=\u041b\u043e\u0433\u0438\u043d +login=\u0432\u043E\u0439\u0442\u0438 diff --git a/core/src/main/resources/hudson/security/SecurityRealm/loginLink_sv_SE.properties b/core/src/main/resources/hudson/security/SecurityRealm/loginLink_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..3cdd607d9f2a08e9a76a1e6ea1b8b36fe22abbda --- /dev/null +++ b/core/src/main/resources/hudson/security/SecurityRealm/loginLink_sv_SE.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +login=logga in diff --git a/core/src/main/resources/hudson/security/SecurityRealm/loginLink_zh_CN.properties b/core/src/main/resources/hudson/security/SecurityRealm/loginLink_zh_CN.properties new file mode 100644 index 0000000000000000000000000000000000000000..b4a696d3fffd75252fa7a5ba784fac782ac801f9 --- /dev/null +++ b/core/src/main/resources/hudson/security/SecurityRealm/loginLink_zh_CN.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +login=\u767b\u5f55 diff --git a/core/src/main/resources/hudson/security/SecurityRealm/loginLink_zh_TW.properties b/core/src/main/resources/hudson/security/SecurityRealm/loginLink_zh_TW.properties new file mode 100644 index 0000000000000000000000000000000000000000..13a822be40b3131140cf317fc652c297bcae6a70 --- /dev/null +++ b/core/src/main/resources/hudson/security/SecurityRealm/loginLink_zh_TW.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +login=\u767B\u5165 diff --git a/core/src/main/resources/hudson/security/csrf/DefaultCrumbIssuer/config.jelly b/core/src/main/resources/hudson/security/csrf/DefaultCrumbIssuer/config.jelly new file mode 100644 index 0000000000000000000000000000000000000000..9fa86ab4e804878be46e04bfa142d54eaff607b4 --- /dev/null +++ b/core/src/main/resources/hudson/security/csrf/DefaultCrumbIssuer/config.jelly @@ -0,0 +1,6 @@ + + + + + + diff --git a/core/src/main/resources/hudson/security/csrf/DefaultCrumbIssuer/help-excludeClientIPFromCrumb.html b/core/src/main/resources/hudson/security/csrf/DefaultCrumbIssuer/help-excludeClientIPFromCrumb.html new file mode 100644 index 0000000000000000000000000000000000000000..161236990b83f9106152e32db27f39b3b6298e1a --- /dev/null +++ b/core/src/main/resources/hudson/security/csrf/DefaultCrumbIssuer/help-excludeClientIPFromCrumb.html @@ -0,0 +1,7 @@ +
    + Some HTTP proxies filter out information that the default crumb issuer uses + to calculate the nonce value. If an HTTP proxy sits between your browser client + and your Hudson server and you receive a 403 response when submitting a form + to Hudson, checking this option may help. Using this option makes the nonce + value easier to forge. +
    \ No newline at end of file diff --git a/core/src/main/resources/hudson/security/csrf/Messages.properties b/core/src/main/resources/hudson/security/csrf/Messages.properties new file mode 100644 index 0000000000000000000000000000000000000000..1c5613c465ca92850c28150b8dfba9b492fba636 --- /dev/null +++ b/core/src/main/resources/hudson/security/csrf/Messages.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2008-2009, Yahoo! Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +DefaultCrumbIssuer.DisplayName=Default Crumb Issuer diff --git a/core/src/main/resources/hudson/security/csrf/Messages_da.properties b/core/src/main/resources/hudson/security/csrf/Messages_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..49cc0143e15082ec51b71f4fafe8d70b5885527b --- /dev/null +++ b/core/src/main/resources/hudson/security/csrf/Messages_da.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +DefaultCrumbIssuer.DisplayName=Standard krumme udsteder diff --git a/core/src/main/resources/hudson/security/csrf/Messages_de.properties b/core/src/main/resources/hudson/security/csrf/Messages_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..4a8257b2dce56b7b2e938b2be667c907dd4384aa --- /dev/null +++ b/core/src/main/resources/hudson/security/csrf/Messages_de.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2008-2009, Yahoo! Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +DefaultCrumbIssuer.DisplayName=Standard-Crumb-Generator diff --git a/core/src/main/resources/hudson/security/csrf/Messages_es.properties b/core/src/main/resources/hudson/security/csrf/Messages_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..567681ba856ea33190023eb64a88d6e9ab930d41 --- /dev/null +++ b/core/src/main/resources/hudson/security/csrf/Messages_es.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2008-2009, Yahoo! Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +DefaultCrumbIssuer.DisplayName=Generador de "Crumb" por defecto diff --git a/core/src/main/resources/hudson/security/csrf/Messages_pt_BR.properties b/core/src/main/resources/hudson/security/csrf/Messages_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..c68d76e4faf7a4f40cf157c66e953c0068bbedaa --- /dev/null +++ b/core/src/main/resources/hudson/security/csrf/Messages_pt_BR.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +# Default Crumb Issuer +DefaultCrumbIssuer.DisplayName= diff --git a/core/src/main/resources/hudson/slaves/AbstractCloudImpl/help-instanceCapStr.html b/core/src/main/resources/hudson/slaves/AbstractCloudImpl/help-instanceCapStr.html new file mode 100644 index 0000000000000000000000000000000000000000..6808d2b985271e98e0341c2114b40ea50138f8b6 --- /dev/null +++ b/core/src/main/resources/hudson/slaves/AbstractCloudImpl/help-instanceCapStr.html @@ -0,0 +1,13 @@ +
    + You can place the upward limit to the number of slaves that Hudson may launch from this cloud. + This is useful for avoiding surprises in the billing statement. + +

    + For example, if this field is 3, Hudson will only launch a new instance + as long as total number of instances you run on this cloud doesn't exceed this number. In this way, + even in the worst case of Hudson starting instances and forgetting about them, + you have an upper bound in the number of instances that are concurrently executed. + +

    + Leave this field empty to remove a cap. +

    \ No newline at end of file diff --git a/core/src/main/resources/hudson/slaves/CommandConnector/config.jelly b/core/src/main/resources/hudson/slaves/CommandConnector/config.jelly new file mode 100644 index 0000000000000000000000000000000000000000..1da8b8673fb8b21304b38a40e79fa2d23a997715 --- /dev/null +++ b/core/src/main/resources/hudson/slaves/CommandConnector/config.jelly @@ -0,0 +1,29 @@ + + + + + + + \ No newline at end of file diff --git a/core/src/main/resources/hudson/slaves/CommandLauncher/config_da.properties b/core/src/main/resources/hudson/slaves/CommandLauncher/config_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..841cac3361cfc46e102c664cfa010753aafe9d1b --- /dev/null +++ b/core/src/main/resources/hudson/slaves/CommandLauncher/config_da.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Launch\ command=Opstartskommando diff --git a/core/src/main/resources/hudson/slaves/CommandLauncher/config_de.properties b/core/src/main/resources/hudson/slaves/CommandLauncher/config_de.properties index 5dd4b37251f066ea18dea1f85fcdb4ea07bfde9c..80a74d2cc39cbd35c3d38c9ec85e3d1f5d42684d 100644 --- a/core/src/main/resources/hudson/slaves/CommandLauncher/config_de.properties +++ b/core/src/main/resources/hudson/slaves/CommandLauncher/config_de.properties @@ -20,4 +20,4 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Launch\ command=Startkommando +Launch\ command=Startkommando diff --git a/core/src/main/resources/hudson/slaves/CommandLauncher/config_es.properties b/core/src/main/resources/hudson/slaves/CommandLauncher/config_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..1976127bf0a9db99ddcda3c86bb9af8d2aaa16c6 --- /dev/null +++ b/core/src/main/resources/hudson/slaves/CommandLauncher/config_es.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Launch\ command=Comando para iniciar la ejecución diff --git a/core/src/main/resources/hudson/slaves/CommandLauncher/config_fr.properties b/core/src/main/resources/hudson/slaves/CommandLauncher/config_fr.properties index 9fc4cbf1073862f955c0ccf7aa694316d85b78a3..8a80348a9fb1e9711888b2c8fa5e1846aeceacd8 100644 --- a/core/src/main/resources/hudson/slaves/CommandLauncher/config_fr.properties +++ b/core/src/main/resources/hudson/slaves/CommandLauncher/config_fr.properties @@ -20,4 +20,4 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Launch\ command=commande de lancement +Launch\ command=Commande de lancement diff --git a/core/src/main/resources/hudson/slaves/CommandLauncher/config_pt_BR.properties b/core/src/main/resources/hudson/slaves/CommandLauncher/config_pt_BR.properties index ada0649b15207cc9262577fd74aa8e39e3c3da48..638ce120608337344367f83e59f555dede4ce2c5 100644 --- a/core/src/main/resources/hudson/slaves/CommandLauncher/config_pt_BR.properties +++ b/core/src/main/resources/hudson/slaves/CommandLauncher/config_pt_BR.properties @@ -20,4 +20,4 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Launch\ command=executar comando +Launch\ command=executar comando diff --git a/core/src/main/resources/hudson/slaves/CommandLauncher/config_sv_SE.properties b/core/src/main/resources/hudson/slaves/CommandLauncher/config_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..78f777b97d68393e224ac9c7e2f176d05435eb08 --- /dev/null +++ b/core/src/main/resources/hudson/slaves/CommandLauncher/config_sv_SE.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Launch\ command=Startkommando diff --git a/core/src/main/resources/hudson/slaves/CommandLauncher/config_tr.properties b/core/src/main/resources/hudson/slaves/CommandLauncher/config_tr.properties index 507e4bf44e0489a19fe16aa1fbcfc63a77300ef0..151ee806c409b187a5faffec8d00cae420feef39 100644 --- a/core/src/main/resources/hudson/slaves/CommandLauncher/config_tr.properties +++ b/core/src/main/resources/hudson/slaves/CommandLauncher/config_tr.properties @@ -20,4 +20,4 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Launch\ command=komutu \u00e7al\u0131\u015ft\u0131r +Launch\ command=komutu \u00e7al\u0131\u015ft\u0131r diff --git a/core/src/main/resources/hudson/slaves/CommandLauncher/help_da.properties b/core/src/main/resources/hudson/slaves/CommandLauncher/help_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..5fa4b6d3fcf7f914afcfa9435ec5fdcb85b81308 --- /dev/null +++ b/core/src/main/resources/hudson/slaves/CommandLauncher/help_da.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +blurb=Starter en ny slave ved at Hudson k\u00f8rer en kommando p\u00e5 master''en. \ +Brug dette n\u00e5r master''en er i stand til at fjernafvikle en proces p\u00e5 slaven, for eksempel igennem ssh/rsh. diff --git a/core/src/main/resources/hudson/slaves/CommandLauncher/help_de.properties b/core/src/main/resources/hudson/slaves/CommandLauncher/help_de.properties index bd88554271c74bedd2bf33f4e87958a9995af16b..14dea82661c4d7a30ebf218d1dedc96360a0f3a6 100644 --- a/core/src/main/resources/hudson/slaves/CommandLauncher/help_de.properties +++ b/core/src/main/resources/hudson/slaves/CommandLauncher/help_de.properties @@ -1,26 +1,26 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Seiji Sogabe -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -blurb=\ - Startet einen Slave, in dem Hudson vom Master aus einen Befehl auf dem Slave ausführt. \ - Verwenden Sie diese Option, wenn Hudson Befehle auf entfernten Slaves ausführen \ - kann, z.B. über ssr/srh. +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +blurb=\ + Startet einen Slave, in dem Hudson vom Master aus einen Befehl auf dem Slave ausführt. \ + Verwenden Sie diese Option, wenn Hudson Befehle auf entfernten Slaves ausführen \ + kann, z.B. über ssr/srh. diff --git a/core/src/main/resources/hudson/slaves/CommandLauncher/help_es.properties b/core/src/main/resources/hudson/slaves/CommandLauncher/help_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..e56b6a0ab49cf89bfe32a8449394e5eb139995dd --- /dev/null +++ b/core/src/main/resources/hudson/slaves/CommandLauncher/help_es.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +blurb=Arranca un nodo secundario ejecutando un commando desde el principal.\ + Utiliza esta opción cuando el nodo principal sea capaz de ejecutar comandos remotos en el secundario (ssh/rsh). + diff --git a/core/src/main/resources/hudson/slaves/CommandLauncher/help_pt_BR.properties b/core/src/main/resources/hudson/slaves/CommandLauncher/help_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..6218e59689b9cc7574ca62a05e342b0bfb067ec1 --- /dev/null +++ b/core/src/main/resources/hudson/slaves/CommandLauncher/help_pt_BR.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +# Starts a slave by having Hudson execute a command from the master. \ +# Use this when the master is capable of remotely executing a process on a slave, such as through ssh/rsh. +blurb=\ +# Estes usu\u00E1rios podem se logar no Hudson. Este \u00E9 um super conjunto desta lista, \ diff --git a/core/src/main/resources/hudson/slaves/ComputerLauncher/main.jelly b/core/src/main/resources/hudson/slaves/ComputerLauncher/main.jelly index 1c2c02fecea495cdd0f7907805e0546d2c697f6a..268d63eab95009f12c8f61b91f8b65731f925fbd 100644 --- a/core/src/main/resources/hudson/slaves/ComputerLauncher/main.jelly +++ b/core/src/main/resources/hudson/slaves/ComputerLauncher/main.jelly @@ -24,14 +24,26 @@ THE SOFTWARE. -

    - ${%description} - ${%See log for more details} -

    - -
    - - -
    + + +

    + ${%launchingDescription} + ${%See log for more details} +

    + +
    + + +
    +
    + + + +
    + + +
    +
    +
    -
    \ No newline at end of file + diff --git a/core/src/main/resources/hudson/slaves/ComputerLauncher/main.properties b/core/src/main/resources/hudson/slaves/ComputerLauncher/main.properties index 03e9ffb035196c28fa0bc2d19f5fb4c61582b3a9..a61615824690542c877bb4623e5c612c29833856 100644 --- a/core/src/main/resources/hudson/slaves/ComputerLauncher/main.properties +++ b/core/src/main/resources/hudson/slaves/ComputerLauncher/main.properties @@ -20,4 +20,4 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -description=This node is offline because Hudson failed to launch the slave agent on it. \ No newline at end of file +launchingDescription=This node is being launched. diff --git a/core/src/main/resources/hudson/slaves/ComputerLauncher/main_da.properties b/core/src/main/resources/hudson/slaves/ComputerLauncher/main_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..16c281121633f1d2bdb0e5925d13e727af4aed21 --- /dev/null +++ b/core/src/main/resources/hudson/slaves/ComputerLauncher/main_da.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Launch\ slave\ agent=Start slave agenter +launchingDescription=Denne node er ved at starte op +See\ log\ for\ more\ details=Se loggen for flere detaljer +Relaunch\ slave\ agent=Genstart slave agent diff --git a/core/src/main/resources/hudson/slaves/ComputerLauncher/main_de.properties b/core/src/main/resources/hudson/slaves/ComputerLauncher/main_de.properties index 7975db58d13e2f426544957a4ea92b7507cde1e2..508e03253e7e124251be9d8fa840721647825ad1 100644 --- a/core/src/main/resources/hudson/slaves/ComputerLauncher/main_de.properties +++ b/core/src/main/resources/hudson/slaves/ComputerLauncher/main_de.properties @@ -1,25 +1,26 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Seiji Sogabe, Eric Lefevre-Ardant -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -description=Dieser Knoten ist nicht verfügbar, weil Hudson den Slave nicht starten konnte. -See\ log\ for\ more\ details=Mehr dazu im Systemprotokoll -Launch\ slave\ agent=Slave-Agenten starten +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Seiji Sogabe, Eric Lefevre-Ardant +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +See\ log\ for\ more\ details=Mehr dazu im Systemprotokoll +Launch\ slave\ agent=Slave-Agenten starten +launchingDescription=Dieser Knoten ist offline, weil Hudson den dortigen Slave-Agenten nicht starten konnte. +Relaunch\ slave\ agent=Slave-Agenten neu starten diff --git a/core/src/main/resources/hudson/slaves/ComputerLauncher/main_es.properties b/core/src/main/resources/hudson/slaves/ComputerLauncher/main_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..c999de630b7855eae7f8442fb33de4074c38bbfe --- /dev/null +++ b/core/src/main/resources/hudson/slaves/ComputerLauncher/main_es.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +launchingDescription=Este nodo va a ser ejecutado. +See\ log\ for\ more\ details=Echa un vistazo al log para ver mas detalles +Launch\ slave\ agent=Lanzar agente esclavo +Relaunch\ slave\ agent=Relanzar agente esclavo diff --git a/core/src/main/resources/hudson/slaves/ComputerLauncher/main_fr.properties b/core/src/main/resources/hudson/slaves/ComputerLauncher/main_fr.properties index 3d30a43c0be735b42f3e0a5c5fa58a11fc283410..9607e04b059631b2c3797902c18ab34fb7eed93b 100644 --- a/core/src/main/resources/hudson/slaves/ComputerLauncher/main_fr.properties +++ b/core/src/main/resources/hudson/slaves/ComputerLauncher/main_fr.properties @@ -20,6 +20,5 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -description=Ce noeud est déconnecté parce que Hudson n''a pas réussi à lancer l''agent esclave dessus. See\ log\ for\ more\ details=Voir les logs pour plus de détails Launch\ slave\ agent=Lancer l''agent esclave diff --git a/core/src/main/resources/hudson/slaves/ComputerLauncher/main_ja.properties b/core/src/main/resources/hudson/slaves/ComputerLauncher/main_ja.properties index b6fe9e5c84f264f97aa2b01d5b2cd671bd49790b..7d1cb847a6bbf7accb271df9cf3066fb8359df54 100644 --- a/core/src/main/resources/hudson/slaves/ComputerLauncher/main_ja.properties +++ b/core/src/main/resources/hudson/slaves/ComputerLauncher/main_ja.properties @@ -1,6 +1,6 @@ # The MIT License # -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Seiji Sogabe +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Seiji Sogabe # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -20,6 +20,7 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -description=This node is offline because Hudson failed to launch the slave agent on it. See\ log\ for\ more\ details=\u8A73\u7D30\u306F\u30ED\u30B0\u3092\u53C2\u7167 Launch\ slave\ agent=\u30B9\u30EC\u30FC\u30D6\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8\u3092\u8D77\u52D5 +Relaunch\ slave\ agent=\u30B9\u30EC\u30FC\u30D6\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8\u3092\u518D\u8D77\u52D5 +launchingDescription=\u3053\u306E\u30CE\u30FC\u30C9\u306F\u8D77\u52D5\u6E08\u307F\u3067\u3059\u3002 diff --git a/core/src/main/resources/hudson/slaves/ComputerLauncher/main_pt_BR.properties b/core/src/main/resources/hudson/slaves/ComputerLauncher/main_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..135a2e1aba8dece092c30ba59f89155c0b29d3b8 --- /dev/null +++ b/core/src/main/resources/hudson/slaves/ComputerLauncher/main_pt_BR.properties @@ -0,0 +1,27 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Relaunch\ slave\ agent= +# This node is being launched. +launchingDescription= +Launch\ slave\ agent= +See\ log\ for\ more\ details= diff --git a/core/src/main/resources/hudson/slaves/ComputerLauncher/main_ru.properties b/core/src/main/resources/hudson/slaves/ComputerLauncher/main_ru.properties new file mode 100644 index 0000000000000000000000000000000000000000..90db7b8554da8501962c2f519f8e79b33a81ae1f --- /dev/null +++ b/core/src/main/resources/hudson/slaves/ComputerLauncher/main_ru.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Launch\ slave\ agent=\u0412\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0443\u0437\u0435\u043B diff --git a/core/src/main/resources/hudson/slaves/ComputerLauncher/main_sv_SE.properties b/core/src/main/resources/hudson/slaves/ComputerLauncher/main_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..fbcfe309f7acfea3985e22b94106c8050f298633 --- /dev/null +++ b/core/src/main/resources/hudson/slaves/ComputerLauncher/main_sv_SE.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Launch\ slave\ agent=Starta agent +See\ log\ for\ more\ details=Se loggen f\u00F6r mer information +description=Denna nod \u00E4r fr\u00E5nkopplad eftersom Hudson kunde inte starta agenten p\u00E5 noden. diff --git a/core/src/main/resources/hudson/slaves/DelegatingComputerLauncher/config.jelly b/core/src/main/resources/hudson/slaves/DelegatingComputerLauncher/config.jelly new file mode 100644 index 0000000000000000000000000000000000000000..605cf99d3b14ced4f7631fadfbe9bad033457062 --- /dev/null +++ b/core/src/main/resources/hudson/slaves/DelegatingComputerLauncher/config.jelly @@ -0,0 +1,28 @@ + + + + + \ No newline at end of file diff --git a/core/src/main/resources/hudson/slaves/DumbSlave/configure-entries.jelly b/core/src/main/resources/hudson/slaves/DumbSlave/configure-entries.jelly index 74aedc7a45a0c82e505194bb0175e6414b36bd79..2ad0f99bab32fa3e1f5405568d3c2016c405af4c 100644 --- a/core/src/main/resources/hudson/slaves/DumbSlave/configure-entries.jelly +++ b/core/src/main/resources/hudson/slaves/DumbSlave/configure-entries.jelly @@ -45,18 +45,19 @@ THE SOFTWARE. + - + - + - + diff --git a/core/src/main/resources/hudson/slaves/DumbSlave/configure-entries_da.properties b/core/src/main/resources/hudson/slaves/DumbSlave/configure-entries_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..6daaf7342a0a03ba0c4ff19c80eb52f3819f3dd3 --- /dev/null +++ b/core/src/main/resources/hudson/slaves/DumbSlave/configure-entries_da.properties @@ -0,0 +1,29 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Labels=Etiketter +Availability=Tilg\u00e6ngelihed +Node\ Properties=Nodeegenskaber +Launch\ method=Opstartsmetode +\#\ of\ executors=# afviklere +Remote\ FS\ root=Fjern FS rod +Description=Beskrivelse diff --git a/core/src/main/resources/hudson/slaves/DumbSlave/configure-entries_de.properties b/core/src/main/resources/hudson/slaves/DumbSlave/configure-entries_de.properties index 25d5caa300b95be0bc8729d3c5961834e6437ca6..ca962be23a2da53bb462d9d8ce7df7094fb4fea2 100644 --- a/core/src/main/resources/hudson/slaves/DumbSlave/configure-entries_de.properties +++ b/core/src/main/resources/hudson/slaves/DumbSlave/configure-entries_de.properties @@ -20,20 +20,10 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Master/Slave\ Support=Master/Slave Unterstützung -Master=Master -Name=Name -Description=Beschreibung -This\ Hudson\ server=Dieser Hudson-Server -\#\ of\ executors=Anzahl der Build-Prozessoren -Local\ FS\ root=Stammverzeichnis in lokalem Dateisystem -Slaves=Slaves -Name\ is\ mandatory=Der Name muss angegeben werden. -Number\ of\ executors\ is\ mandatory.=Die Anzahl der Build-Prozessoren muss angegeben werden. -Remote\ FS\ root=Stammverzeichnis in entferntem Dateisystem -Remote\ directory\ is\ mandatory.=Das entfernte Verzeichnis muss angegeben werden. -Labels=Labels -Usage=Auslastung -Launch\ method=Startmethode -Availability=Verfügbarkeit -Save=Übernehmen +Description=Beschreibung +\#\ of\ executors=Anzahl der Build-Prozessoren +Remote\ FS\ root=Stammverzeichnis in entferntem Dateisystem +Labels=Labels +Launch\ method=Startmethode +Availability=Verfügbarkeit +Node\ Properties=Eigenschaften des Knotens diff --git a/core/src/main/resources/hudson/slaves/DumbSlave/configure-entries_es.properties b/core/src/main/resources/hudson/slaves/DumbSlave/configure-entries_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..645045fbb007b5a899bb4d454752064129448e68 --- /dev/null +++ b/core/src/main/resources/hudson/slaves/DumbSlave/configure-entries_es.properties @@ -0,0 +1,30 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Description=Descripción +\#\ of\ executors=Número de ejecutores +Remote\ FS\ root=Directorio raiz remoto +Labels=Etiquetas +Launch\ method=Metodo de ejecución +Availability=Disponibilidad +Node\ Properties=Propiedades del nodo + diff --git a/core/src/main/resources/hudson/slaves/DumbSlave/configure-entries_fr.properties b/core/src/main/resources/hudson/slaves/DumbSlave/configure-entries_fr.properties index 60ad2fffc9dbce41af90d1fcbdf8fe0e583b65a1..dc536aa77bcf078d28a71d92218590655e3fce6b 100644 --- a/core/src/main/resources/hudson/slaves/DumbSlave/configure-entries_fr.properties +++ b/core/src/main/resources/hudson/slaves/DumbSlave/configure-entries_fr.properties @@ -20,10 +20,10 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Description= -\#\ of\ executors=Nb d''exécuteurs -Remote\ FS\ root=Répertoire de travail du système distant -Labels=Etiquettes -Launch\ method=Méthode de lancement -Availability=Disponibilité -Node\ Properties=Propriétés du noeud +Description= +\#\ of\ executors=Nb d''exécuteurs +Remote\ FS\ root=Répertoire de travail du système distant +Labels=\u00C9tiquettes +Launch\ method=Méthode de lancement +Availability=Disponibilité +Node\ Properties=Propri\u00E9t\u00E9s du n\u0153ud diff --git a/core/src/main/resources/hudson/slaves/DumbSlave/configure-entries_ja.properties b/core/src/main/resources/hudson/slaves/DumbSlave/configure-entries_ja.properties index 568f324006c4a98d8e312eb0e83e946bccbdd5d3..412c70b82f779007cb1e88eb43896e38e44ac080 100644 --- a/core/src/main/resources/hudson/slaves/DumbSlave/configure-entries_ja.properties +++ b/core/src/main/resources/hudson/slaves/DumbSlave/configure-entries_ja.properties @@ -1,6 +1,6 @@ # The MIT License # -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -20,19 +20,10 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Master/Slave\ Support=\u30DE\u30B9\u30BF\u30FB\u30B9\u30EC\u30FC\u30D6 -Master=\u30DE\u30B9\u30BF -Name=\u540D\u524D Description=\u8AAC\u660E -This\ Hudson\ server=\u3053\u306EHudson\u30B5\u30FC\u30D0\u30FC \#\ of\ executors=\u540C\u6642\u30D3\u30EB\u30C9\u6570 -Local\ FS\ root=\u30ED\u30FC\u30AB\u30EBFS\u30EB\u30FC\u30C8 -Slaves=\u30B9\u30EC\u30FC\u30D6\u7FA4 Remote\ FS\ root=\u30EA\u30E2\u30FC\u30C8FS\u30EB\u30FC\u30C8 Labels=\u30E9\u30D9\u30EB -Usage=\u7528\u9014 Launch\ method=\u8D77\u52D5\u65B9\u6CD5 Availability=\u53EF\u7528\u6027 -Save=\u4FDD\u5B58 -Number\ of\ executors\ is\ mandatory.=\u30A8\u30B0\u30BC\u30AD\u30E5\u30FC\u30BF\u30FC\u6570\u306F\u5FC5\u9808\u3067\u3059\u3002 Node\ Properties=\u30CE\u30FC\u30C9 \u30D7\u30ED\u30D1\u30C6\u30A3 diff --git a/core/src/main/resources/hudson/slaves/DumbSlave/configure-entries_pt_BR.properties b/core/src/main/resources/hudson/slaves/DumbSlave/configure-entries_pt_BR.properties index d606d768ea1230f1d99edd565bb084ab856e6a0a..a83aeba44398d034cad0dc1ef8b31e91315b1526 100644 --- a/core/src/main/resources/hudson/slaves/DumbSlave/configure-entries_pt_BR.properties +++ b/core/src/main/resources/hudson/slaves/DumbSlave/configure-entries_pt_BR.properties @@ -20,20 +20,10 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Master/Slave\ Support=Support Maître/Esclave -Master=Maître -Name=Nom -Description= -This\ Hudson\ server=Ce serveur Hudson -\#\ of\ executors=Nombre d''exécuteurs -Local\ FS\ root=Racine du système de fichiers local -Slaves=Esclaves -Name\ is\ mandatory=Le nom est obligatoire -Number\ of\ executors\ is\ mandatory.=Le nombre d''exécuteurs est obligatoire. -Remote\ FS\ root=Répertoire de travail du système distant -Remote\ directory\ is\ mandatory.=Le répertoire distant est obligatoire. -Labels=Etiquettes -Usage=Utilisation -Launch\ method=Méthode de lancement -Availability=Disponibilité -Save=Sauvegarder +Description= +\#\ of\ executors=Nombre d''exécuteurs +Remote\ FS\ root=Répertoire de travail du système distant +Labels=Etiquettes +Launch\ method=Méthode de lancement +Availability=Disponibilité +Node\ Properties= diff --git a/core/src/main/resources/hudson/slaves/DumbSlave/configure-entries_sv_SE.properties b/core/src/main/resources/hudson/slaves/DumbSlave/configure-entries_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..b66819e7b22a12d760373fdfa5528c75cf246763 --- /dev/null +++ b/core/src/main/resources/hudson/slaves/DumbSlave/configure-entries_sv_SE.properties @@ -0,0 +1,27 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Availability=Tillg\u00E4nglighet +Description=Beskrivning +Labels=Etiketter +Launch\ method=Startmetod +Node\ Properties=Nodegenskaper diff --git a/core/src/main/resources/hudson/slaves/DumbSlave/configure-entries_tr.properties b/core/src/main/resources/hudson/slaves/DumbSlave/configure-entries_tr.properties index b71c28949cdbf27d448c329ef07ac97345d45d76..c401b8e481eb535c74ff0206277d2019aabeada2 100644 --- a/core/src/main/resources/hudson/slaves/DumbSlave/configure-entries_tr.properties +++ b/core/src/main/resources/hudson/slaves/DumbSlave/configure-entries_tr.properties @@ -20,19 +20,19 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Usage= -Master/Slave\ Support= -Master= -Name= -Description= -This\ Hudson\ server= -\#\ of\ executors= -Local\ FS\ root= -Slaves= -Name\ is\ mandatory= -Number\ of\ executors\ is\ mandatory.= -Remote\ FS\ root= -Labels= -Launch\ method= -Availability= -Save= +Usage= +Master/Slave\ Support= +Master= +Name= +Description= +This\ Hudson\ server= +\#\ of\ executors= +Local\ FS\ root= +Slaves= +Name\ is\ mandatory= +Number\ of\ executors\ is\ mandatory.= +Remote\ FS\ root= +Labels= +Launch\ method= +Availability= +Save= diff --git a/core/src/main/resources/hudson/slaves/DumbSlave/newInstanceDetail_da.properties b/core/src/main/resources/hudson/slaves/DumbSlave/newInstanceDetail_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..01aeff2b8622b4632dc1e96c556041018196875d --- /dev/null +++ b/core/src/main/resources/hudson/slaves/DumbSlave/newInstanceDetail_da.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +detail=Tilf\u00f8jer en almindelig dum slave til Hudson. Disse slaver kaldes ''dumme'' da Hudson ikke \ +tilbyder et h\u00f8jere niveau af kontrol over disse slaver, s\u00e5som dynamisk provisionering. \ +V\u00e6lg denne type hvis ingen anden slavetype passer — for eksempel hvis du \ +tilf\u00f8jer en fysisk computer/ virtuel maskine bestyret udenfor Hudson, mv. diff --git a/core/src/main/resources/hudson/slaves/DumbSlave/newInstanceDetail_de.properties b/core/src/main/resources/hudson/slaves/DumbSlave/newInstanceDetail_de.properties index fc535ebdb76d11cec2ae904c326434074b362c04..c0245e11414ca883303e2fe3c02bf8544d931a9e 100644 --- a/core/src/main/resources/hudson/slaves/DumbSlave/newInstanceDetail_de.properties +++ b/core/src/main/resources/hudson/slaves/DumbSlave/newInstanceDetail_de.properties @@ -20,9 +20,4 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -detail=\ - Fügt einen einfachen, simplen Slave-Knoten hinzu. Der Knotentyp heißt "dumb" (=einfach, simpel), \ - da er über keine enge Integration mit Hudson verfügt, wie etwa dynamische \ - Aktualisierungen. Verwenden Sie diesen Knotentyp, wenn keine anderen Knotentypen \ - passsen — zum Beispiel wenn Sie einen real existierenden Rechner hinzufügen, \ - virtuelle Maschinen ergänzen, die ausserhalb von Hudson verwalten werden, usw. +detail=F\u00FCgt einen einfachen, simplen Slave-Knoten hinzu. Der Knotentyp hei\u00DFt "dumb" (=einfach, simpel), da er \u00FCber keine enge Integration mit Hudson verf\u00FCgt, wie etwa dynamische Aktualisierungen. Verwenden Sie diesen Knotentyp, wenn keine anderen Knotentypen passen — zum Beispiel wenn Sie einen real existierenden Rechner hinzuf\u00FCgen oder virtuelle Maschinen erg\u00E4nzen, die ausserhalb von Hudson verwaltet werden, usw. diff --git a/core/src/main/resources/hudson/slaves/DumbSlave/newInstanceDetail_es.properties b/core/src/main/resources/hudson/slaves/DumbSlave/newInstanceDetail_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..7e9b7d54d07374bd608d661ec1ca4dd5229e4baf --- /dev/null +++ b/core/src/main/resources/hudson/slaves/DumbSlave/newInstanceDetail_es.properties @@ -0,0 +1,28 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +detail=\ + Añadir un esclavo pasivo a Hudson. Es llamado ''pasivo'' porque Hudson no provee ningun tipo de \ + integración de alto nivel con estos esclavos, como pueda ser aprovisionamiento dinámico. \ + Selecciona este tipo si no hay ningún otro tipo mas adecuado. Por ejemplo cuando se añaden \ + maquinas físicas o virtuales gestionadas desde fuera de Hudson, etc. + diff --git a/core/src/main/resources/hudson/slaves/DumbSlave/newInstanceDetail_fr.properties b/core/src/main/resources/hudson/slaves/DumbSlave/newInstanceDetail_fr.properties index 734833a3af045f473131dc5531fa493ab25c85f3..19a01b129aa42717dce1aa8648bccdc596b599c2 100644 --- a/core/src/main/resources/hudson/slaves/DumbSlave/newInstanceDetail_fr.properties +++ b/core/src/main/resources/hudson/slaves/DumbSlave/newInstanceDetail_fr.properties @@ -21,7 +21,7 @@ # THE SOFTWARE. detail=\ - Ajoute un esclave simple à Hudson. Cet esclave est dit "passif" ("dumb") car Hudson ne fournit pas \ - d''intégration d''un niveau plus élevé pour ce type d''esclave, comme le provisioning dynamique. \ - Sélectionnez ce type si aucun autre type d''esclave ne s''applique — par exemple quand vous \ - ajoutez un ordinateur physique, une machine virtuelle gérée séparément d''Hudson, etc. + Ajoute un esclave simple à Hudson. Cet esclave est dit "passif" ("dumb") car Hudson ne fournit pas \ + d''intégration d''un niveau plus élevé pour ce type d''esclave, comme le provisioning dynamique. \ + Sélectionnez ce type si aucun autre type d''esclave ne s''applique — par exemple quand vous \ + ajoutez un ordinateur physique, une machine virtuelle gérée séparément d''Hudson, etc. diff --git a/core/src/main/resources/hudson/slaves/DumbSlave/newInstanceDetail_pt_BR.properties b/core/src/main/resources/hudson/slaves/DumbSlave/newInstanceDetail_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..6222a045726883f1e6640f5dd64cdcd4845ea41f --- /dev/null +++ b/core/src/main/resources/hudson/slaves/DumbSlave/newInstanceDetail_pt_BR.properties @@ -0,0 +1,28 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +# \ +# Adds a plain, dumb slave to Hudson. This is called "dumb" because Hudson doesn''t provide \ +# higher level of integration with these slaves, such as dynamic provisioning. \ +# Select this type if no other slave types apply — for example such as when you are adding \ +# a physical computer, virtual machines managed outside Hudson, etc. +detail=detalhe diff --git a/core/src/main/resources/hudson/slaves/EnvironmentVariablesNodeProperty/config.jelly b/core/src/main/resources/hudson/slaves/EnvironmentVariablesNodeProperty/config.jelly index 12c40517d2ed1e21c8bc4b8d2de1b43a9dff4706..74dbd1fae86544adf2941ccbd3399877802eaec8 100644 --- a/core/src/main/resources/hudson/slaves/EnvironmentVariablesNodeProperty/config.jelly +++ b/core/src/main/resources/hudson/slaves/EnvironmentVariablesNodeProperty/config.jelly @@ -1,46 +1,43 @@ - - - - - - - - - - - - -
    - -
    -
    -
    -
    -
    - -
    \ No newline at end of file + + + + + + + + + + + + +
    + +
    +
    +
    +
    +
    +
    diff --git a/core/src/main/resources/hudson/slaves/EnvironmentVariablesNodeProperty/config_da.properties b/core/src/main/resources/hudson/slaves/EnvironmentVariablesNodeProperty/config_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..c433ae0a8283f0b787d3f3b0789c1d4095603083 --- /dev/null +++ b/core/src/main/resources/hudson/slaves/EnvironmentVariablesNodeProperty/config_da.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +name=navn +value=v\u00e6rdi +List\ of\ key-value\ pairs=Liste af n\u00f8gle-v\u00e6rdi par diff --git a/core/src/main/resources/hudson/slaves/EnvironmentVariablesNodeProperty/config_de.properties b/core/src/main/resources/hudson/slaves/EnvironmentVariablesNodeProperty/config_de.properties index aaada297768456ee44adfefe5c6ad8a46e1df7be..b5a66fb4912a6d9bc65a7d1e03d691b3ae2758d5 100644 --- a/core/src/main/resources/hudson/slaves/EnvironmentVariablesNodeProperty/config_de.properties +++ b/core/src/main/resources/hudson/slaves/EnvironmentVariablesNodeProperty/config_de.properties @@ -1,25 +1,25 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Alan Harder, Eric Lefevre-Ardant -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -List\ of\ key-value\ pairs=Liste der Schlüssel/Wert-Paare -name=Name -value=Wert +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Alan Harder, Eric Lefevre-Ardant +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +List\ of\ key-value\ pairs=Liste der Schlüssel/Wert-Paare +name=Name +value=Wert diff --git a/core/src/main/resources/hudson/slaves/EnvironmentVariablesNodeProperty/config_es.properties b/core/src/main/resources/hudson/slaves/EnvironmentVariablesNodeProperty/config_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..a490ffc34e43802560013be904a59464b81e183f --- /dev/null +++ b/core/src/main/resources/hudson/slaves/EnvironmentVariablesNodeProperty/config_es.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +List\ of\ key-value\ pairs=Lista de nombre-valores +name=nombre +value=valor diff --git a/core/src/main/resources/hudson/slaves/EnvironmentVariablesNodeProperty/config_fi.properties b/core/src/main/resources/hudson/slaves/EnvironmentVariablesNodeProperty/config_fi.properties new file mode 100644 index 0000000000000000000000000000000000000000..95f1c7a0dcb99ead2f3e30411f640d7b0f8a8498 --- /dev/null +++ b/core/src/main/resources/hudson/slaves/EnvironmentVariablesNodeProperty/config_fi.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +List\ of\ key-value\ pairs=Lista avain-arvo pareja +name=nimi +value=arvo diff --git a/core/src/main/resources/hudson/slaves/EnvironmentVariablesNodeProperty/config_fr.properties b/core/src/main/resources/hudson/slaves/EnvironmentVariablesNodeProperty/config_fr.properties index 7d056376ce891619ade78a7ea6369ec190219558..1512c60d9f95ce1b3c1edadc1313470ca78313a6 100644 --- a/core/src/main/resources/hudson/slaves/EnvironmentVariablesNodeProperty/config_fr.properties +++ b/core/src/main/resources/hudson/slaves/EnvironmentVariablesNodeProperty/config_fr.properties @@ -1,25 +1,25 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Alan Harder, Eric Lefevre-Ardant -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -List\ of\ key-value\ pairs=Liste des paires clé-valeur -name=nom -value=valeur +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Alan Harder, Eric Lefevre-Ardant +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +List\ of\ key-value\ pairs=Liste des paires clé-valeur +name=nom +value=valeur diff --git a/core/src/main/resources/hudson/slaves/EnvironmentVariablesNodeProperty/config_nl.properties b/core/src/main/resources/hudson/slaves/EnvironmentVariablesNodeProperty/config_nl.properties new file mode 100644 index 0000000000000000000000000000000000000000..ccdff27ce16fc33c44a4f4723c658f5d928d98d9 --- /dev/null +++ b/core/src/main/resources/hudson/slaves/EnvironmentVariablesNodeProperty/config_nl.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +List\ of\ key-value\ pairs=Lijst van sleutel-waarde-paren +name=naam +value=waarde diff --git a/core/src/main/resources/hudson/slaves/EnvironmentVariablesNodeProperty/config_pt_BR.properties b/core/src/main/resources/hudson/slaves/EnvironmentVariablesNodeProperty/config_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..a6f9ccc6b39e76c98bc7096832e1d4db4e4d6add --- /dev/null +++ b/core/src/main/resources/hudson/slaves/EnvironmentVariablesNodeProperty/config_pt_BR.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +value= +name= +List\ of\ key-value\ pairs= diff --git a/core/src/main/resources/hudson/slaves/EnvironmentVariablesNodeProperty/config_ru.properties b/core/src/main/resources/hudson/slaves/EnvironmentVariablesNodeProperty/config_ru.properties new file mode 100644 index 0000000000000000000000000000000000000000..369f0bf0333ac8b8c292e913ac2e38ad6c16372d --- /dev/null +++ b/core/src/main/resources/hudson/slaves/EnvironmentVariablesNodeProperty/config_ru.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +List\ of\ key-value\ pairs=\u0421\u043F\u0438\u0441\u043E\u043A \u043F\u0430\u0440 "\u043A\u043B\u044E\u0447-\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435" +name=\u0438\u043C\u044F +value=\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 diff --git a/core/src/main/resources/hudson/slaves/EnvironmentVariablesNodeProperty/config_sv_SE.properties b/core/src/main/resources/hudson/slaves/EnvironmentVariablesNodeProperty/config_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..89f32c98c574f80e39ab8288e09cf511641a1676 --- /dev/null +++ b/core/src/main/resources/hudson/slaves/EnvironmentVariablesNodeProperty/config_sv_SE.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +List\ of\ key-value\ pairs=Lista p\u00E5 nyckel-v\u00E4rde par +name=namn +value=v\u00E4rde diff --git a/core/src/main/resources/hudson/slaves/EnvironmentVariablesNodeProperty/config_zh_CN.properties b/core/src/main/resources/hudson/slaves/EnvironmentVariablesNodeProperty/config_zh_CN.properties new file mode 100644 index 0000000000000000000000000000000000000000..513a253e2abea06babd4292138ebeabac97af95a --- /dev/null +++ b/core/src/main/resources/hudson/slaves/EnvironmentVariablesNodeProperty/config_zh_CN.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Alan Harder, Eric Lefevre-Ardant +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +List\ of\ key-value\ pairs=\u540d\u503c\u5bf9\u5217\u8868 +name=\u540d +value=\u503c diff --git a/core/src/main/resources/hudson/slaves/JNLPLauncher/config_da.properties b/core/src/main/resources/hudson/slaves/JNLPLauncher/config_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..f2cf84b65b9f9389c42e8a53a823b4563c1eac65 --- /dev/null +++ b/core/src/main/resources/hudson/slaves/JNLPLauncher/config_da.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +JVM\ options=JVM valg +Tunnel\ connection\ through=Forbind igennem tunnel diff --git a/core/src/main/resources/hudson/slaves/JNLPLauncher/config_de.properties b/core/src/main/resources/hudson/slaves/JNLPLauncher/config_de.properties index 2a15051940ad458c1c90e251eed87de4feb7fdeb..827bac5934798ea2fb6078caeff0fe582d6e6fe2 100644 --- a/core/src/main/resources/hudson/slaves/JNLPLauncher/config_de.properties +++ b/core/src/main/resources/hudson/slaves/JNLPLauncher/config_de.properties @@ -20,4 +20,5 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Tunnel\ connection\ through=Verbindung tunneln durch +Tunnel\ connection\ through=Verbindung tunneln durch +JVM\ options=JVM Optionen diff --git a/core/src/main/resources/hudson/slaves/JNLPLauncher/config_es.properties b/core/src/main/resources/hudson/slaves/JNLPLauncher/config_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..9f40b96f78f7b47df24bb8ce7eebeef1aacfe290 --- /dev/null +++ b/core/src/main/resources/hudson/slaves/JNLPLauncher/config_es.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Tunnel\ connection\ through=Establecer un túnel a traves de +JVM\ options=Opciones de la JVM diff --git a/core/src/main/resources/hudson/slaves/JNLPLauncher/config_fr.properties b/core/src/main/resources/hudson/slaves/JNLPLauncher/config_fr.properties index ee48546d36c477a17809a4c3a97ff77efde83098..65f7b0a5cab722a8581ce02723cf365695cb6a40 100644 --- a/core/src/main/resources/hudson/slaves/JNLPLauncher/config_fr.properties +++ b/core/src/main/resources/hudson/slaves/JNLPLauncher/config_fr.properties @@ -20,5 +20,5 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Tunnel\ connection\ through=Connexion par tunnel via +Tunnel\ connection\ through=Connexion par tunnel via JVM\ options=Options de la JVM diff --git a/core/src/main/resources/hudson/slaves/JNLPLauncher/config_ja.properties b/core/src/main/resources/hudson/slaves/JNLPLauncher/config_ja.properties index 00ed955058d1fb06f78c9074189a98d2c2f656b6..b733859a4f8bc3dfbe0b924602ecb3035e44ca09 100644 --- a/core/src/main/resources/hudson/slaves/JNLPLauncher/config_ja.properties +++ b/core/src/main/resources/hudson/slaves/JNLPLauncher/config_ja.properties @@ -21,3 +21,4 @@ # THE SOFTWARE. Tunnel\ connection\ through=\u30C8\u30F3\u30CD\u30EB\u63A5\u7D9A +JVM\ options=JVM\u30AA\u30D7\u30B7\u30E7\u30F3 diff --git a/core/src/main/resources/hudson/slaves/JNLPLauncher/config_pt_BR.properties b/core/src/main/resources/hudson/slaves/JNLPLauncher/config_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..28aab2e5e1d4c59941800b54306f85f46fbf9440 --- /dev/null +++ b/core/src/main/resources/hudson/slaves/JNLPLauncher/config_pt_BR.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Tunnel\ connection\ through= +JVM\ options= diff --git a/core/src/main/resources/hudson/slaves/JNLPLauncher/config_sv_SE.properties b/core/src/main/resources/hudson/slaves/JNLPLauncher/config_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..e8b32dfdedc1d0c584dd8049dff4b70578762beb --- /dev/null +++ b/core/src/main/resources/hudson/slaves/JNLPLauncher/config_sv_SE.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +JVM\ options=JVM alternativ diff --git a/core/src/main/resources/hudson/slaves/JNLPLauncher/help-vmargs_de.html b/core/src/main/resources/hudson/slaves/JNLPLauncher/help-vmargs_de.html new file mode 100644 index 0000000000000000000000000000000000000000..cba877b87d5bbf6f2d1dfde691588949c996dd19 --- /dev/null +++ b/core/src/main/resources/hudson/slaves/JNLPLauncher/help-vmargs_de.html @@ -0,0 +1,5 @@ +
    + Soll die Slave-JVM mit zusätzlichen VM-Argumenten gestartet werden, z.B. "-Xmx256m", + können Sie diese hier angeben. Eine Liste aller unterstützten Optionen finden Sie + hier. +
    \ No newline at end of file diff --git a/core/src/main/resources/hudson/slaves/JNLPLauncher/help-vmargs_ja.html b/core/src/main/resources/hudson/slaves/JNLPLauncher/help-vmargs_ja.html new file mode 100644 index 0000000000000000000000000000000000000000..b8304fde8aaeea56f38c91f61bf79517a1965524 --- /dev/null +++ b/core/src/main/resources/hudson/slaves/JNLPLauncher/help-vmargs_ja.html @@ -0,0 +1,4 @@ +
    + スレーブã®JVMã«"-Xmx256m"ã®ã‚ˆã†ãªã‚ªãƒ—ションをã¤ã‘ã¦èµ·å‹•ã™ã‚‹å¿…è¦ãŒã‚ã‚‹ãªã‚‰ã€ã“ã“ã§æŒ‡å®šã—ã¾ã™ã€‚ + 利用å¯èƒ½ãªã‚ªãƒ—ションã®ä¸€è¦§ã‚’å‚ç…§ã—ã¦ãã ã•ã„。 +
    \ No newline at end of file diff --git a/core/src/main/resources/hudson/slaves/JNLPLauncher/help_da.properties b/core/src/main/resources/hudson/slaves/JNLPLauncher/help_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..9a21976acd5d5bc58540cc5ff84d307d7180dd34 --- /dev/null +++ b/core/src/main/resources/hudson/slaves/JNLPLauncher/help_da.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +blurb=Starter en slave via et agentprogram gennem JNLP. \ +Slave opstarten bliver i dette tilf\u00e6lde initieret af slaven, \ +s\u00e5ledes beh\u00f8ver slaven i dette tilf\u00e6lde ikke at v\u00e6re IP tilg\u00e6ngelig fra master''en (f.eks. bag en firewall.) \ +Det er ogs\u00e5 her muligt at starte slaven uden GUI, for eksempel som en Windows service. diff --git a/core/src/main/resources/hudson/slaves/JNLPLauncher/help_de.properties b/core/src/main/resources/hudson/slaves/JNLPLauncher/help_de.properties index 2961d6e09cc3390b52c5d1282393a0a416e5821d..0481b8a47caa474674b1c03362a18ea7a63077a1 100644 --- a/core/src/main/resources/hudson/slaves/JNLPLauncher/help_de.properties +++ b/core/src/main/resources/hudson/slaves/JNLPLauncher/help_de.properties @@ -1,29 +1,29 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Seiji Sogabe -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -blurb=\ - Schaltet einen Slave ein, indem ein Agent über \ - JNLP gestartet wird. \ - Da der Start in diesem Fall vom Slave aus initiiert wird, muss der Slave nicht \ - per IP-Adresse von Master aus erreichbar sein (z.B. wenn der Slave hinter einer \ - Firewall liegt). Es ist weiterhin möglich, den Slave ohne Benutzeroberfläche \ - zu starten, z.B. als Windows Dienst. \ No newline at end of file +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +blurb=\ + Schaltet einen Slave ein, indem ein Agent über \ + JNLP gestartet wird. \ + Da der Start in diesem Fall vom Slave aus initiiert wird, muss der Slave nicht \ + per IP-Adresse von Master aus erreichbar sein (z.B. wenn der Slave hinter einer \ + Firewall liegt). Es ist weiterhin möglich, den Slave ohne Benutzeroberfläche \ + zu starten, z.B. als Windows Dienst. diff --git a/core/src/main/resources/hudson/slaves/JNLPLauncher/help_es.properties b/core/src/main/resources/hudson/slaves/JNLPLauncher/help_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..76bb39241adc9160114a1bfbb2b96e80eb0233f7 --- /dev/null +++ b/core/src/main/resources/hudson/slaves/JNLPLauncher/help_es.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +blurb=Arranca un esclavo ejecutando un programa agente usando JNLP.\ + De modo que el esclavo inicia la ejecución, por lo que los esclavos no necesitan una IP accesible desde el master. \ + Incluso es posible arrancar una ejecución sin GUI, como puede ser un servicio Windows. + diff --git a/core/src/main/resources/hudson/slaves/JNLPLauncher/help_pt_BR.properties b/core/src/main/resources/hudson/slaves/JNLPLauncher/help_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..f9e99ef728d0acbb51a8ab5ceadda53999bdfd80 --- /dev/null +++ b/core/src/main/resources/hudson/slaves/JNLPLauncher/help_pt_BR.properties @@ -0,0 +1,28 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +# Starts a slave by launching an agent program through JNLP. \ +# The launch in this case is initiated by the slave, \ +# thus slaves need not be IP reachable from the master (e.g. behind the firewall.) \ +# It is still possible to start a launch without GUI, for example as a Windows service. +blurb=\ +# Estes usu\u00E1rios podem se logar no Hudson. Este \u00E9 um super conjunto desta lista, \ diff --git a/core/src/main/resources/hudson/slaves/JNLPLauncher/main.jelly b/core/src/main/resources/hudson/slaves/JNLPLauncher/main.jelly index 3d8c37e30a996178f43bd8c0ccd7268df36074bf..a7f6d614d0a424149557bc33c8cd5fa5f1ae4fcf 100644 --- a/core/src/main/resources/hudson/slaves/JNLPLauncher/main.jelly +++ b/core/src/main/resources/hudson/slaves/JNLPLauncher/main.jelly @@ -35,7 +35,7 @@ THE SOFTWARE.

    ${%Connect slave to Hudson one of these ways:}

    -
      +
    + + + +

    ${%Connection was broken}

    +
    ${h.printThrowable(it.cause)}
    +
    diff --git a/core/src/main/resources/hudson/slaves/OfflineCause/ChannelTermination/cause_da.properties b/core/src/main/resources/hudson/slaves/OfflineCause/ChannelTermination/cause_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..cf8d4829ba8b4ed45a0cc6be7235860cadcef22a --- /dev/null +++ b/core/src/main/resources/hudson/slaves/OfflineCause/ChannelTermination/cause_da.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Connection\ was\ broken=Forbindelsen blev afbrudt diff --git a/core/src/main/resources/hudson/slaves/OfflineCause/ChannelTermination/cause_de.properties b/core/src/main/resources/hudson/slaves/OfflineCause/ChannelTermination/cause_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..8bbec34fbf1dcb328c18194be64509e47853d728 --- /dev/null +++ b/core/src/main/resources/hudson/slaves/OfflineCause/ChannelTermination/cause_de.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Seiji Sogabe, Simon Wiest +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Connection\ was\ broken=Verbindung abgebrochen \ No newline at end of file diff --git a/core/src/main/resources/hudson/slaves/OfflineCause/ChannelTermination/cause_es.properties b/core/src/main/resources/hudson/slaves/OfflineCause/ChannelTermination/cause_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..368d784caa897db98766700c93711e519e2ae251 --- /dev/null +++ b/core/src/main/resources/hudson/slaves/OfflineCause/ChannelTermination/cause_es.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Connection\ was\ broken=La conexión se ha cortado diff --git a/core/src/main/resources/hudson/slaves/OfflineCause/ChannelTermination/cause_ja.properties b/core/src/main/resources/hudson/slaves/OfflineCause/ChannelTermination/cause_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..ac6770fdff3b5a654744d098eaeebb37a39f8cc1 --- /dev/null +++ b/core/src/main/resources/hudson/slaves/OfflineCause/ChannelTermination/cause_ja.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Connection\ was\ broken=\u30B3\u30CD\u30AF\u30B7\u30E7\u30F3\u304C\u5207\u65AD\u3055\u308C\u307E\u3057\u305F\u3002 \ No newline at end of file diff --git a/core/src/main/resources/hudson/slaves/OfflineCause/ChannelTermination/cause_pt_BR.properties b/core/src/main/resources/hudson/slaves/OfflineCause/ChannelTermination/cause_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..b614d0b2c02bec4c80c43df8042a780dc4658f43 --- /dev/null +++ b/core/src/main/resources/hudson/slaves/OfflineCause/ChannelTermination/cause_pt_BR.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Connection\ was\ broken= diff --git a/core/src/main/resources/hudson/slaves/OfflineCause/ChannelTermination/cause_ru.properties b/core/src/main/resources/hudson/slaves/OfflineCause/ChannelTermination/cause_ru.properties new file mode 100644 index 0000000000000000000000000000000000000000..30a59b37ab8e419509351051b63ed903e5aa7cee --- /dev/null +++ b/core/src/main/resources/hudson/slaves/OfflineCause/ChannelTermination/cause_ru.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Connection\ was\ broken=\u0421\u043E\u0435\u0434\u0438\u043D\u0435\u043D\u0438\u0435 \u0431\u044B\u043B\u043E \u0440\u0430\u0437\u043E\u0440\u0432\u0430\u043D\u043E diff --git a/core/src/main/resources/hudson/slaves/OfflineCause/LaunchFailed/cause.jelly b/core/src/main/resources/hudson/slaves/OfflineCause/LaunchFailed/cause.jelly new file mode 100644 index 0000000000000000000000000000000000000000..166e9dce5b2dc2b970fe12c52a76eb4f560b1e1e --- /dev/null +++ b/core/src/main/resources/hudson/slaves/OfflineCause/LaunchFailed/cause.jelly @@ -0,0 +1,27 @@ + + + +

    ${it} ${%See log for more details}

    +
    diff --git a/core/src/main/resources/hudson/slaves/OfflineCause/LaunchFailed/cause_da.properties b/core/src/main/resources/hudson/slaves/OfflineCause/LaunchFailed/cause_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..d7dff3401bdd19f5a36ef0a71a264dc8496e13b6 --- /dev/null +++ b/core/src/main/resources/hudson/slaves/OfflineCause/LaunchFailed/cause_da.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +See\ log\ for\ more\ details=Se loggen for flere detaljer diff --git a/core/src/main/resources/hudson/slaves/OfflineCause/LaunchFailed/cause_de.properties b/core/src/main/resources/hudson/slaves/OfflineCause/LaunchFailed/cause_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..d9bfb36500684d6eb8c5a8d7aec63a6b934da598 --- /dev/null +++ b/core/src/main/resources/hudson/slaves/OfflineCause/LaunchFailed/cause_de.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Seiji Sogabe, Eric Lefevre-Ardant +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +See\ log\ for\ more\ details=Mehr dazu im Systemprotokoll diff --git a/core/src/main/resources/hudson/slaves/OfflineCause/LaunchFailed/cause_es.properties b/core/src/main/resources/hudson/slaves/OfflineCause/LaunchFailed/cause_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..ae5e605aafb279342fa5c4dd638e6773645f8c39 --- /dev/null +++ b/core/src/main/resources/hudson/slaves/OfflineCause/LaunchFailed/cause_es.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +See\ log\ for\ more\ details=Mira los ''logs'' para mas detalles diff --git a/core/src/main/resources/hudson/slaves/OfflineCause/LaunchFailed/cause_fr.properties b/core/src/main/resources/hudson/slaves/OfflineCause/LaunchFailed/cause_fr.properties new file mode 100644 index 0000000000000000000000000000000000000000..6faaa64d9742a63fff6ec0e0149a988d4366e16e --- /dev/null +++ b/core/src/main/resources/hudson/slaves/OfflineCause/LaunchFailed/cause_fr.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Seiji Sogabe, Eric Lefevre-Ardant +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +See\ log\ for\ more\ details=Voir les logs pour plus de détails diff --git a/core/src/main/resources/hudson/slaves/OfflineCause/LaunchFailed/cause_ja.properties b/core/src/main/resources/hudson/slaves/OfflineCause/LaunchFailed/cause_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..d13492bc139df56a6a96dd1820a8cc23746c8477 --- /dev/null +++ b/core/src/main/resources/hudson/slaves/OfflineCause/LaunchFailed/cause_ja.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +See\ log\ for\ more\ details=\u8A73\u7D30\u306F\u30ED\u30B0\u3092\u53C2\u7167 diff --git a/core/src/main/resources/hudson/slaves/OfflineCause/LaunchFailed/cause_pt_BR.properties b/core/src/main/resources/hudson/slaves/OfflineCause/LaunchFailed/cause_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..9daae5ec7d26513d23da16f04a009cf008780b5f --- /dev/null +++ b/core/src/main/resources/hudson/slaves/OfflineCause/LaunchFailed/cause_pt_BR.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +See\ log\ for\ more\ details= diff --git a/core/src/main/resources/hudson/slaves/OfflineCause/cause.jelly b/core/src/main/resources/hudson/slaves/OfflineCause/cause.jelly new file mode 100644 index 0000000000000000000000000000000000000000..461a5bae4cd860d7cc0867c73d1d27751dd56ee1 --- /dev/null +++ b/core/src/main/resources/hudson/slaves/OfflineCause/cause.jelly @@ -0,0 +1,27 @@ + + + +

    ${it}

    +
    diff --git a/core/src/main/resources/hudson/slaves/RetentionStrategy/Demand/config.jelly b/core/src/main/resources/hudson/slaves/RetentionStrategy/Demand/config.jelly index 2e7213a1fb9d32c9e54f46cd6ed10503973fa2f4..8ee51db5173e12e53b048019bf8bb419ce3db4b8 100644 --- a/core/src/main/resources/hudson/slaves/RetentionStrategy/Demand/config.jelly +++ b/core/src/main/resources/hudson/slaves/RetentionStrategy/Demand/config.jelly @@ -25,13 +25,13 @@ THE SOFTWARE. - + - + diff --git a/core/src/main/resources/hudson/slaves/RetentionStrategy/Demand/config_da.properties b/core/src/main/resources/hudson/slaves/RetentionStrategy/Demand/config_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..ddf65547a45467e5cc0070827353e6418f9f21cf --- /dev/null +++ b/core/src/main/resources/hudson/slaves/RetentionStrategy/Demand/config_da.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +In\ demand\ delay=Behov for +In\ demand\ delay\ is\ mandatory\ and\ must\ be\ a\ number.=Behov for forsinkelse er obligatorisk og skal v\u00e6re et tal. +Idle\ delay\ is\ mandatory\ and\ must\ be\ a\ number.=Tomgangsforsinkelse er obligatorisk og skal v\u00e6re et tal. +Idle\ delay=Tomgangsforsinkelse diff --git a/core/src/main/resources/hudson/slaves/RetentionStrategy/Demand/config_de.properties b/core/src/main/resources/hudson/slaves/RetentionStrategy/Demand/config_de.properties index b539d06f94406504b95e65e20c21af179ee41a5b..feba060fc263cc62afcc9318ddcbb06017b07281 100644 --- a/core/src/main/resources/hudson/slaves/RetentionStrategy/Demand/config_de.properties +++ b/core/src/main/resources/hudson/slaves/RetentionStrategy/Demand/config_de.properties @@ -20,7 +20,7 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -In\ demand\ delay=Anschaltverzögerung -In\ demand\ delay\ is\ mandatory.=Anschaltverzögerung muß angegeben werden. -Idle\ delay=Abschaltverzögerung -Idle\ delay\ is\ mandatory.=Abschaltverzögerung muß angegeben werden. +In\ demand\ delay=Anschaltverzögerung +In\ demand\ delay\ is\ mandatory\ and\ must\ be\ a\ number.=Anschaltverzögerung muß angegeben werden und eine Zahl sein. +Idle\ delay=Abschaltverzögerung +Idle\ delay\ is\ mandatory\ and\ must\ be\ a\ number.=Abschaltverzögerung muß angegeben werden und eine Zahl sein. diff --git a/core/src/main/resources/hudson/slaves/RetentionStrategy/Demand/config_es.properties b/core/src/main/resources/hudson/slaves/RetentionStrategy/Demand/config_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..b54ae0f15c159307577ce1d405f382022701893c --- /dev/null +++ b/core/src/main/resources/hudson/slaves/RetentionStrategy/Demand/config_es.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +In\ demand\ delay=Espera bajo demanda +In\ demand\ delay\ is\ mandatory\ and\ must\ be\ a\ number.=La espera bajo demanda es obligatoria y debe ser un numero +Idle\ delay=Espera cuando disponible +Idle\ delay\ is\ mandatory\ and\ must\ be\ a\ number.=La espera cuando disponible es obligatoria y debe ser un numero diff --git a/core/src/main/resources/hudson/slaves/RetentionStrategy/Demand/config_fr.properties b/core/src/main/resources/hudson/slaves/RetentionStrategy/Demand/config_fr.properties index 19f50f1d434a977223e9fd4c8b0ba25022c29a5e..1316cfb14e9b2f1ddb557d131b29955541b48593 100644 --- a/core/src/main/resources/hudson/slaves/RetentionStrategy/Demand/config_fr.properties +++ b/core/src/main/resources/hudson/slaves/RetentionStrategy/Demand/config_fr.properties @@ -20,7 +20,9 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -In\ demand\ delay=Délai d''attente lors d''une demande -In\ demand\ delay\ is\ mandatory.=Le délai d''attente suite à une demande est obligatoire. -Idle\ delay=Délai d''inactivité -Idle\ delay\ is\ mandatory.=Le délai d''inactivité est obligatoire. +In\ demand\ delay=Délai d''attente lors d''une demande +In\ demand\ delay\ is\ mandatory\ and\ must\ be\ a\ number.=Le d\u00E9lai d''''attende est obligatoire et doit \u00EAtre un nombre. +In\ demand\ delay\ is\ mandatory.=Le délai d''attente suite à une demande est obligatoire. +Idle\ delay=Délai d''inactivité +Idle\ delay\ is\ mandatory\ and\ must\ be\ a\ number.=Le d\u00E9lai d''''inactivit\u00E9 est obligatoire et doit \u00EAtre un nombre. +Idle\ delay\ is\ mandatory.=Le délai d''inactivité est obligatoire. diff --git a/core/src/main/resources/hudson/slaves/RetentionStrategy/Demand/config_ja.properties b/core/src/main/resources/hudson/slaves/RetentionStrategy/Demand/config_ja.properties index b46b21da3a18652bc68288ca864a856a347711bc..e1f97515f1d9a7c4f5d7374ca0e0ac9a0aa9eb86 100644 --- a/core/src/main/resources/hudson/slaves/RetentionStrategy/Demand/config_ja.properties +++ b/core/src/main/resources/hudson/slaves/RetentionStrategy/Demand/config_ja.properties @@ -1,6 +1,6 @@ # The MIT License # -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -20,7 +20,7 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -In\ demand\ delay=\u8981\u6c42\u6642\u306e\u9045\u5ef6\u6642\u9593 - -Idle\ delay=\u5f85\u6a5f\u6642\u306e\u306e\u9045\u5ef6\u6642\u9593 - +In\ demand\ delay=\u8981\u6C42\u6642\u306E\u9045\u5EF6\u6642\u9593 +Idle\ delay=\u5F85\u6A5F\u6642\u306E\u9045\u5EF6\u6642\u9593 +In\ demand\ delay\ is\ mandatory\ and\ must\ be\ a\ number.=\u8981\u6C42\u6642\u306E\u9045\u5EF6\u6642\u9593\u306F\u3001\u5FC5\u9808\u304B\u3064\u6570\u5024\u3067\u3059\u3002 +Idle\ delay\ is\ mandatory\ and\ must\ be\ a\ number.=\u5F85\u6A5F\u6642\u306E\u9045\u5EF6\u6642\u9593\u306F\u3001\u5FC5\u9808\u304B\u3064\u6570\u5024\u3067\u3059\u3002 diff --git a/core/src/main/resources/hudson/slaves/RetentionStrategy/Demand/config_pt_BR.properties b/core/src/main/resources/hudson/slaves/RetentionStrategy/Demand/config_pt_BR.properties index 79c472d4c6b73d5e9b758d6e214c2f74356202f6..15b05f6bce3a514cc584c1cdef1dac7ddaf54412 100644 --- a/core/src/main/resources/hudson/slaves/RetentionStrategy/Demand/config_pt_BR.properties +++ b/core/src/main/resources/hudson/slaves/RetentionStrategy/Demand/config_pt_BR.properties @@ -20,7 +20,7 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -In\ demand\ delay=Atraso em demanda -In\ demand\ delay\ is\ mandatory.=Atraso em demanda \u00E9 obrigat\u00F3rio. -Idle\ delay=Atraso de inatividade -Idle\ delay\ is\ mandatory.=Atraso de inatividade \u00E9 obrigat\u00F3rio. +In\ demand\ delay=Atraso em demanda +Idle\ delay=Atraso de inatividade +In\ demand\ delay\ is\ mandatory\ and\ must\ be\ a\ number.= +Idle\ delay\ is\ mandatory\ and\ must\ be\ a\ number.= diff --git a/core/src/main/resources/hudson/slaves/RetentionStrategy/Demand/config_sv_SE.properties b/core/src/main/resources/hudson/slaves/RetentionStrategy/Demand/config_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..44dacdf2ada1e419fb36c9a665ade5550fd173f5 --- /dev/null +++ b/core/src/main/resources/hudson/slaves/RetentionStrategy/Demand/config_sv_SE.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Idle\ delay=Inatkivf\u00F6rdr\u00F6jning +Idle\ delay\ is\ mandatory.=F\u00F6rdr\u00F6jning \u00E4r obligatoriskt +In\ demand\ delay=Efterfr\u00E5gningsf\u00F6rdr\u00F6jning +In\ demand\ delay\ is\ mandatory.=F\u00F6rdr\u00F6jning \u00E4r obligatoriskt diff --git a/core/src/main/resources/hudson/slaves/RetentionStrategy/Demand/config_tr.properties b/core/src/main/resources/hudson/slaves/RetentionStrategy/Demand/config_tr.properties index 1368fbd1b99bb25cbbc1d9eb526b9fb52f8c9ae8..da249e27721d0f56a075e9fe32900941916c2c50 100644 --- a/core/src/main/resources/hudson/slaves/RetentionStrategy/Demand/config_tr.properties +++ b/core/src/main/resources/hudson/slaves/RetentionStrategy/Demand/config_tr.properties @@ -20,7 +20,7 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -In\ demand\ delay= -In\ demand\ delay\ is\ mandatory.= -Idle\ delay= -Idle\ delay\ is\ mandatory.= +In\ demand\ delay= +In\ demand\ delay\ is\ mandatory.= +Idle\ delay= +Idle\ delay\ is\ mandatory.= diff --git a/core/src/main/resources/hudson/slaves/RetentionStrategy/Scheduled/config.jelly b/core/src/main/resources/hudson/slaves/RetentionStrategy/Scheduled/config.jelly index c684bd52be89179a3164b1b404176a9a29e781c1..8b65dbf128e6dd6f0c58400efc2c37fccc01da9e 100644 --- a/core/src/main/resources/hudson/slaves/RetentionStrategy/Scheduled/config.jelly +++ b/core/src/main/resources/hudson/slaves/RetentionStrategy/Scheduled/config.jelly @@ -24,10 +24,10 @@ THE SOFTWARE. - - + + - - + + - \ No newline at end of file + diff --git a/core/src/main/resources/hudson/slaves/RetentionStrategy/Scheduled/config_da.properties b/core/src/main/resources/hudson/slaves/RetentionStrategy/Scheduled/config_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..a88ffdb3706e612b1c1bf75f48faaaffc8a35543 --- /dev/null +++ b/core/src/main/resources/hudson/slaves/RetentionStrategy/Scheduled/config_da.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Shutdown\ Schedule=Nedlukningstidsplan +Startup\ Schedule=Opstartstidsplan diff --git a/core/src/main/resources/hudson/slaves/RetentionStrategy/Scheduled/config_de.properties b/core/src/main/resources/hudson/slaves/RetentionStrategy/Scheduled/config_de.properties index 02835149af9f55ba7d10d0dd83b3e598de3759ec..0a8d74393b3965c235d58b3a3edab4deeb3775a1 100644 --- a/core/src/main/resources/hudson/slaves/RetentionStrategy/Scheduled/config_de.properties +++ b/core/src/main/resources/hudson/slaves/RetentionStrategy/Scheduled/config_de.properties @@ -20,5 +20,5 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Startup\ Schedule=Anschaltzeitplan -Shutdown\ Schedule=Abschaltzeitplan +Startup\ Schedule=Anschaltzeitplan +Shutdown\ Schedule=Abschaltzeitplan diff --git a/core/src/main/resources/hudson/slaves/RetentionStrategy/Scheduled/config_es.properties b/core/src/main/resources/hudson/slaves/RetentionStrategy/Scheduled/config_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..5149904d5dafde3adf62b609d6f443402ba45887 --- /dev/null +++ b/core/src/main/resources/hudson/slaves/RetentionStrategy/Scheduled/config_es.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Startup\ Schedule=Arranque programado +Shutdown\ Schedule=Apagado programado diff --git a/core/src/main/resources/hudson/slaves/RetentionStrategy/Scheduled/config_fr.properties b/core/src/main/resources/hudson/slaves/RetentionStrategy/Scheduled/config_fr.properties index a62e994c0d97e8422f9680ac8573b86b058fb3f7..4ddc92cffb5e04ef297635814bb7ecc1bfd78f24 100644 --- a/core/src/main/resources/hudson/slaves/RetentionStrategy/Scheduled/config_fr.properties +++ b/core/src/main/resources/hudson/slaves/RetentionStrategy/Scheduled/config_fr.properties @@ -20,5 +20,5 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Startup\ Schedule=Heure de démarrage -Shutdown\ Schedule=Heure d''arrêt +Startup\ Schedule=Heure de démarrage +Shutdown\ Schedule=Heure d''arrêt diff --git a/core/src/main/resources/hudson/slaves/RetentionStrategy/Scheduled/config_ja.properties b/core/src/main/resources/hudson/slaves/RetentionStrategy/Scheduled/config_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..1aa99d158d00b0c394df160863e8f8f424b43a99 --- /dev/null +++ b/core/src/main/resources/hudson/slaves/RetentionStrategy/Scheduled/config_ja.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Startup\ Schedule=\u8D77\u52D5\u30B9\u30B1\u30B8\u30E5\u30FC\u30EB +Shutdown\ Schedule=\u505C\u6B62\u30B9\u30B1\u30B8\u30E5\u30FC\u30EB diff --git a/core/src/main/resources/hudson/slaves/RetentionStrategy/Scheduled/config_pt_BR.properties b/core/src/main/resources/hudson/slaves/RetentionStrategy/Scheduled/config_pt_BR.properties index 48b679930d98efe2a5cc3e6b8fc40916545cb050..96ff59d4ab5e13f0380c6fc2378fd1d7e6af3ec8 100644 --- a/core/src/main/resources/hudson/slaves/RetentionStrategy/Scheduled/config_pt_BR.properties +++ b/core/src/main/resources/hudson/slaves/RetentionStrategy/Scheduled/config_pt_BR.properties @@ -20,5 +20,5 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Startup\ Schedule=Agenda de Inicializa\u00E7\u00E3o -Shutdown\ Schedule=Agenda de Desligamento +Startup\ Schedule=Agenda de Inicializa\u00E7\u00E3o +Shutdown\ Schedule=Agenda de Desligamento diff --git a/core/src/main/resources/hudson/slaves/RetentionStrategy/Scheduled/config_tr.properties b/core/src/main/resources/hudson/slaves/RetentionStrategy/Scheduled/config_tr.properties index 6aba6f6915073ca2fb490a51face0561c3e23db2..7671772ab509b5135fae346fecd3cae576d8c4f6 100644 --- a/core/src/main/resources/hudson/slaves/RetentionStrategy/Scheduled/config_tr.properties +++ b/core/src/main/resources/hudson/slaves/RetentionStrategy/Scheduled/config_tr.properties @@ -20,5 +20,5 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Startup\ Schedule=Ac\u0131l\u0131\u015f Plan\u0131 -Shutdown\ Schedule=Kapan\u0131\u015f Plan\u0131 +Startup\ Schedule=Ac\u0131l\u0131\u015f Plan\u0131 +Shutdown\ Schedule=Kapan\u0131\u015f Plan\u0131 diff --git a/core/src/main/resources/hudson/slaves/SimpleScheduledRetentionStrategy/config.jelly b/core/src/main/resources/hudson/slaves/SimpleScheduledRetentionStrategy/config.jelly index 071f1f1f20124e15c53cfed32d8d972f47dcfc64..a5a45919e24bd93ea09b69feefff7b10bd510aa0 100644 --- a/core/src/main/resources/hudson/slaves/SimpleScheduledRetentionStrategy/config.jelly +++ b/core/src/main/resources/hudson/slaves/SimpleScheduledRetentionStrategy/config.jelly @@ -24,15 +24,15 @@ THE SOFTWARE. - - + - + description="${%uptime.description}"> + diff --git a/core/src/main/resources/hudson/slaves/SimpleScheduledRetentionStrategy/config.properties b/core/src/main/resources/hudson/slaves/SimpleScheduledRetentionStrategy/config.properties new file mode 100644 index 0000000000000000000000000000000000000000..214f224994ce54e83c6c8d44263c190c39159051 --- /dev/null +++ b/core/src/main/resources/hudson/slaves/SimpleScheduledRetentionStrategy/config.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +uptime.description=\ + The number of minutes to keep the node up for. If this is longer than the startup schedule, then the node will remain constantly on-line. diff --git a/core/src/main/resources/hudson/slaves/SimpleScheduledRetentionStrategy/config_da.properties b/core/src/main/resources/hudson/slaves/SimpleScheduledRetentionStrategy/config_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..e7e0e0e452585f2e1791d533b5223e230a674487 --- /dev/null +++ b/core/src/main/resources/hudson/slaves/SimpleScheduledRetentionStrategy/config_da.properties @@ -0,0 +1,27 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Scheduled\ Uptime\ is\ mandatory\ and\ must\ be\ a\ number.=Planlagt oppetid er obligatorisk og skal v\u00e6re et tal. +Scheduled\ Uptime=Planlagt oppetid +Keep\ on-line\ while\ jobs\ are\ running=Hold on-line n\u00e5r jobs k\u00f8rer +Startup\ Schedule=Opstartstidsplan +uptime.description=Antal minutter noden skal holdes oppe. Hvis dette er l\u00e6ngere end opstartstidsplanen vil noden altid v\u00e6re online. diff --git a/core/src/main/resources/hudson/slaves/SimpleScheduledRetentionStrategy/config_de.properties b/core/src/main/resources/hudson/slaves/SimpleScheduledRetentionStrategy/config_de.properties index fc5be0720c72869d0cb9f4a72d88dd54449dd08f..ed42c14fd546403a9b5caeb29c0c40ecddad2ac9 100644 --- a/core/src/main/resources/hudson/slaves/SimpleScheduledRetentionStrategy/config_de.properties +++ b/core/src/main/resources/hudson/slaves/SimpleScheduledRetentionStrategy/config_de.properties @@ -20,7 +20,7 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Startup\ Schedule=Anschaltzeitplan -Scheduled\ Uptime=Verfügbare Zeit -Scheduled\ Uptime\ is\ mandatory.=Verfügbare Zeit muss angegeben werden. -Keep\ on-line\ while\ jobs\ are\ running=Slave angeschaltet lassen, solange Jobs laufen. +Startup\ Schedule=Anschaltzeitplan +Scheduled\ Uptime=Verfügbare Zeit +Scheduled\ Uptime\ is\ mandatory\ and\ must\ be\ a\ number.=Verfügbare Zeit muss angegeben werden und eine Zahl sein. +Keep\ on-line\ while\ jobs\ are\ running=Slave angeschaltet lassen, solange Jobs laufen. diff --git a/core/src/main/resources/hudson/slaves/SimpleScheduledRetentionStrategy/config_es.properties b/core/src/main/resources/hudson/slaves/SimpleScheduledRetentionStrategy/config_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..54a97e1b5d1d41d0db33ca793866eb706fa86c55 --- /dev/null +++ b/core/src/main/resources/hudson/slaves/SimpleScheduledRetentionStrategy/config_es.properties @@ -0,0 +1,27 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Startup\ Schedule=Tiempo de inicio programado +Scheduled\ Uptime=Tiempo de ejecución programado +Scheduled\ Uptime\ is\ mandatory\ and\ must\ be\ a\ number.=El tiempo de ejecución programado es obligatorio y debe ser un número +Keep\ on-line\ while\ jobs\ are\ running=Mantener en línea mientras hayan tareas en ejecución +uptime.description=El número de minutos para mantener el nodo activo. Si es mayor que el tiempo programado para arrancar, el nodo estará permanentemente en línea diff --git a/core/src/main/resources/hudson/slaves/SimpleScheduledRetentionStrategy/config_fr.properties b/core/src/main/resources/hudson/slaves/SimpleScheduledRetentionStrategy/config_fr.properties index 9e6dfa52453d2e6b67711563ae8df28318788da1..97ea8a94af6421b8abec03ff7a37acab458b8bb3 100644 --- a/core/src/main/resources/hudson/slaves/SimpleScheduledRetentionStrategy/config_fr.properties +++ b/core/src/main/resources/hudson/slaves/SimpleScheduledRetentionStrategy/config_fr.properties @@ -20,7 +20,7 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Startup\ Schedule=Démarrage prévu -Scheduled\ Uptime=Durée du mode actif -Scheduled\ Uptime\ is\ mandatory.=La durée est obligatoire. -Keep\ on-line\ while\ jobs\ are\ running=Garder actif tant que des jobs sont en cours. +Startup\ Schedule=Démarrage prévu +Scheduled\ Uptime=Durée du mode actif +Scheduled\ Uptime\ is\ mandatory.=La durée est obligatoire. +Keep\ on-line\ while\ jobs\ are\ running=Garder actif tant que des jobs sont en cours. diff --git a/core/src/main/resources/hudson/slaves/SimpleScheduledRetentionStrategy/config_ja.properties b/core/src/main/resources/hudson/slaves/SimpleScheduledRetentionStrategy/config_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..28cb24e19eeddd5e3499133952184a29f7a85719 --- /dev/null +++ b/core/src/main/resources/hudson/slaves/SimpleScheduledRetentionStrategy/config_ja.properties @@ -0,0 +1,28 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Startup\ Schedule=\u8D77\u52D5\u30B9\u30B1\u30B8\u30E5\u30FC\u30EB +Scheduled\ Uptime=\u52D5\u4F5C\u53EF\u80FD\u6642\u9593 +Scheduled\ Uptime\ is\ mandatory\ and\ must\ be\ a\ number.=\u52D5\u4F5C\u53EF\u80FD\u6642\u9593\u306F\u3001\u5FC5\u9808\u304B\u3064\u6570\u5B57\u3067\u3059\u3002 +Keep\ on-line\ while\ jobs\ are\ running=\u30B8\u30E7\u30D6\u8D77\u52D5\u4E2D\u306F\u30AA\u30F3\u30E9\u30A4\u30F3\u3092\u7DAD\u6301 +uptime.description=\ + \u30CE\u30FC\u30C9\u3092\u30AA\u30F3\u30E9\u30A4\u30F3\u306E\u307E\u307E\u7DAD\u6301\u3059\u308B\u6642\u9593(\u5206)\u3067\u3059\u3002\u3053\u306E\u5024\u304C\u8D77\u52D5\u30B9\u30B1\u30B8\u30E5\u30FC\u30EB\u306E\u9593\u9694\u3088\u308A\u9577\u3051\u308C\u3070\u3001\u30CE\u30FC\u30C9\u306F\u5E38\u306B\u30AA\u30F3\u30E9\u30A4\u30F3\u306E\u307E\u307E\u306B\u306A\u308A\u307E\u3059\u3002\u3000 \ No newline at end of file diff --git a/core/src/main/resources/hudson/slaves/SimpleScheduledRetentionStrategy/config_pt_BR.properties b/core/src/main/resources/hudson/slaves/SimpleScheduledRetentionStrategy/config_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..7b1ea8bf363c2b5465239abb7935f15cf089b2d3 --- /dev/null +++ b/core/src/main/resources/hudson/slaves/SimpleScheduledRetentionStrategy/config_pt_BR.properties @@ -0,0 +1,29 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Scheduled\ Uptime= +Startup\ Schedule=Agenda de Inicializa\u00E7\u00E3o +# \ +# The number of minutes to keep the node up for. If this is longer than the startup schedule, then the node will remain constantly on-line. +uptime.description= +Keep\ on-line\ while\ jobs\ are\ running= +Scheduled\ Uptime\ is\ mandatory\ and\ must\ be\ a\ number.= diff --git a/core/src/main/resources/hudson/slaves/SlaveComputer/disconnect.jelly b/core/src/main/resources/hudson/slaves/SlaveComputer/disconnect.jelly index a1c2b02facf86096529e7c3b5ed54ff7423b7328..dd85e41359e6a12bdb495a9dc85086b87331da1e 100644 --- a/core/src/main/resources/hudson/slaves/SlaveComputer/disconnect.jelly +++ b/core/src/main/resources/hudson/slaves/SlaveComputer/disconnect.jelly @@ -27,10 +27,12 @@ THE SOFTWARE. -
    + ${%Are you sure about disconnecting?} +

    ${%blurb}

    +
    -
    \ No newline at end of file + diff --git a/core/src/main/resources/hudson/slaves/SlaveComputer/disconnect.properties b/core/src/main/resources/hudson/slaves/SlaveComputer/disconnect.properties new file mode 100644 index 0000000000000000000000000000000000000000..2bc6c93ea5a331d6bd9ac7c4936684fce099f93e --- /dev/null +++ b/core/src/main/resources/hudson/slaves/SlaveComputer/disconnect.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +blurb=You can optionally explain why you are taking this node offline, so that others can see why: diff --git a/core/src/main/resources/hudson/slaves/SlaveComputer/disconnect_da.properties b/core/src/main/resources/hudson/slaves/SlaveComputer/disconnect_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..92ce2f61ca544ff7bfd0040703d19d78b4907a1e --- /dev/null +++ b/core/src/main/resources/hudson/slaves/SlaveComputer/disconnect_da.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Yes=Ja +Are\ you\ sure\ about\ disconnecting?=Er du sikker p\u00e5 at du vil bryde forbindelsen? +blurb=Du kan beskrive hvorfor du tager noden offline, s\u00e5 andre let kan se hvorfor: +disconnect=bryd forbindelse diff --git a/core/src/main/resources/hudson/slaves/SlaveComputer/disconnect_de.properties b/core/src/main/resources/hudson/slaves/SlaveComputer/disconnect_de.properties index 6a3ee1d22bb1cea6077629c42635d6f8b2d4c18a..4956c0ef8ef88414b3e17ed0f93ab2734fffbb2e 100644 --- a/core/src/main/resources/hudson/slaves/SlaveComputer/disconnect_de.properties +++ b/core/src/main/resources/hudson/slaves/SlaveComputer/disconnect_de.properties @@ -20,6 +20,9 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -disconnect=Trennen -Are\ you\ sure\ about\ disconnecting?=Möchten Sie die Verbindung zum Slave wirklich trennen? -Yes=Ja +disconnect=Trennen +blurb=\ + Sie können optional kurz erklären, warum Sie den Knoten abschalten. Dieser Text ist \ + sichtbar für andere Benutzer: +Are\ you\ sure\ about\ disconnecting?=Möchten Sie die Verbindung zum Slave wirklich trennen? +Yes=Ja diff --git a/core/src/main/resources/hudson/slaves/SlaveComputer/disconnect_es.properties b/core/src/main/resources/hudson/slaves/SlaveComputer/disconnect_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..10cdeb3d1ec4464a0083451ff6f668b6ebf3ceb2 --- /dev/null +++ b/core/src/main/resources/hudson/slaves/SlaveComputer/disconnect_es.properties @@ -0,0 +1,27 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +blurb=Opcionalmente puedes explicar porqué pones este nodo fuera de línea: + +Yes=Sí +Are\ you\ sure\ about\ disconnecting?=¿Estás seguro de que quieres desconectar? +disconnect=desconectar diff --git a/core/src/main/resources/hudson/slaves/SlaveComputer/disconnect_fr.properties b/core/src/main/resources/hudson/slaves/SlaveComputer/disconnect_fr.properties index cfd60189201ca3ac437ae44b579da79e4ebff96e..cbed48f08445834399cc467096f9fd10a6df6ac4 100644 --- a/core/src/main/resources/hudson/slaves/SlaveComputer/disconnect_fr.properties +++ b/core/src/main/resources/hudson/slaves/SlaveComputer/disconnect_fr.properties @@ -20,6 +20,6 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -disconnect=déconnexion -Are\ you\ sure\ about\ disconnecting?=Etes-vous sûr de vouloir vous déconnecter? -Yes=Oui +disconnect=déconnexion +Are\ you\ sure\ about\ disconnecting?=Etes-vous sûr de vouloir vous déconnecter? +Yes=Oui diff --git a/core/src/main/resources/hudson/slaves/SlaveComputer/disconnect_ja.properties b/core/src/main/resources/hudson/slaves/SlaveComputer/disconnect_ja.properties index 0d61e07341e6f22e08aed2bd9daea59f9637057b..597ef9b4bee56a58872079d17ac99159336c810c 100644 --- a/core/src/main/resources/hudson/slaves/SlaveComputer/disconnect_ja.properties +++ b/core/src/main/resources/hudson/slaves/SlaveComputer/disconnect_ja.properties @@ -23,3 +23,4 @@ disconnect=\u5207\u65AD Are\ you\ sure\ about\ disconnecting?=\u5207\u65AD\u3057\u3066\u3088\u308D\u3057\u3044\u3067\u3059\u304B? Yes=\u5B9F\u884C +blurb=\u306A\u305C\u30AA\u30D5\u30E9\u30A4\u30F3\u304B\u308F\u304B\u308B\u3088\u3046\u306B\u3001\u8AAC\u660E\u3092\u8A18\u9332\u3059\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u3059\u3002 diff --git a/core/src/main/resources/hudson/slaves/SlaveComputer/disconnect_pt_BR.properties b/core/src/main/resources/hudson/slaves/SlaveComputer/disconnect_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..713db1c466c8fca69fc26e3d7cb8b01b6ca22629 --- /dev/null +++ b/core/src/main/resources/hudson/slaves/SlaveComputer/disconnect_pt_BR.properties @@ -0,0 +1,28 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Are\ you\ sure\ about\ disconnecting?= +disconnect= +Yes=Sim +# You can optionally explain why you are taking this node offline, so that others can see why: +blurb=\ +# Estes usu\u00E1rios podem se logar no Hudson. Este \u00E9 um super conjunto desta lista, \ diff --git a/core/src/main/resources/hudson/slaves/SlaveComputer/disconnect_ru.properties b/core/src/main/resources/hudson/slaves/SlaveComputer/disconnect_ru.properties new file mode 100644 index 0000000000000000000000000000000000000000..316910807ced1447f59388867024eb93bb39f50e --- /dev/null +++ b/core/src/main/resources/hudson/slaves/SlaveComputer/disconnect_ru.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Are\ you\ sure\ about\ disconnecting?=\u0412\u044B \u0443\u0432\u0435\u0440\u0435\u043D\u044B, \u0447\u0442\u043E \u0445\u043E\u0442\u0438\u0442\u0435 \u043E\u0442\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0434\u0430\u043D\u043D\u044B\u0439 \u0443\u0437\u0435\u043B? +Yes=\u0414\u0430 +blurb=\u0417\u0434\u0435\u0441\u044C \u0432\u044B \u043C\u043E\u0436\u0435\u0442\u0435 \u043E\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 \u043E \u043F\u0440\u0438\u0447\u0438\u043D\u0435 \u043E\u0442\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u044F \u0434\u0430\u043D\u043D\u043E\u0433\u043E \u0443\u0437\u043B\u0430. \u0422\u0430\u043A \u0447\u0442\u043E \u0434\u0440\u0443\u0433\u0438\u0435 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u0438 \u0441\u043C\u043E\u0433\u0443\u0442 \u0443\u0437\u043D\u0430\u0442\u044C \u043F\u0440\u0438\u0447\u0438\u043D\u0443 \u043E\u0442\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u044F: diff --git a/core/src/main/resources/hudson/slaves/SlaveComputer/log.jelly b/core/src/main/resources/hudson/slaves/SlaveComputer/log.jelly index 07acc7800e3494df1b09a7f73c2d1b64f33b6dd5..3a9b60fa0d4f2144a0f8b2e2486c461b5e820a9a 100644 --- a/core/src/main/resources/hudson/slaves/SlaveComputer/log.jelly +++ b/core/src/main/resources/hudson/slaves/SlaveComputer/log.jelly @@ -27,11 +27,11 @@ THE SOFTWARE. -
    
    +        
             
    - + diff --git a/core/src/main/resources/hudson/slaves/SlaveComputer/sidepanel2_da.properties b/core/src/main/resources/hudson/slaves/SlaveComputer/sidepanel2_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..6e4e3d4fda7e4eed9dfa0fcf1f77ed7f0188f613 --- /dev/null +++ b/core/src/main/resources/hudson/slaves/SlaveComputer/sidepanel2_da.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +System\ Information=Systeminformation +Disconnect=Bryd forbindelse +Log=Log diff --git a/core/src/main/resources/hudson/slaves/SlaveComputer/sidepanel2_de.properties b/core/src/main/resources/hudson/slaves/SlaveComputer/sidepanel2_de.properties index 4124740115808a589f2b8c8294d266cfec52b4e3..0a746b8c5732283b03bc446118fca3830a9290d8 100644 --- a/core/src/main/resources/hudson/slaves/SlaveComputer/sidepanel2_de.properties +++ b/core/src/main/resources/hudson/slaves/SlaveComputer/sidepanel2_de.properties @@ -20,6 +20,6 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Log=Log -System\ Information=Systeminformationen -Disconnect=Trennen +Log=Log +System\ Information=Systeminformationen +Disconnect=Trennen diff --git a/core/src/main/resources/hudson/slaves/SlaveComputer/sidepanel2_es.properties b/core/src/main/resources/hudson/slaves/SlaveComputer/sidepanel2_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..c53feb3e9c568e7e234625ce893286942843e725 --- /dev/null +++ b/core/src/main/resources/hudson/slaves/SlaveComputer/sidepanel2_es.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Log=Log +System\ Information=Información del sistema +Disconnect=Desconectar + diff --git a/core/src/main/resources/hudson/slaves/SlaveComputer/sidepanel2_fr.properties b/core/src/main/resources/hudson/slaves/SlaveComputer/sidepanel2_fr.properties index 54776f21222aad7ff6a5290a2661ca45f96a78b5..c54b54211a33d521341b0657b8716651373bff27 100644 --- a/core/src/main/resources/hudson/slaves/SlaveComputer/sidepanel2_fr.properties +++ b/core/src/main/resources/hudson/slaves/SlaveComputer/sidepanel2_fr.properties @@ -20,6 +20,6 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Log= -System\ Information=Informations sur le système -Disconnect=Déconnexion +Log= +System\ Information=Informations sur le système +Disconnect=Déconnexion diff --git a/core/src/main/resources/hudson/slaves/SlaveComputer/sidepanel2_pt_BR.properties b/core/src/main/resources/hudson/slaves/SlaveComputer/sidepanel2_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..4863539a2754cdbc71e8326e810124e2c2bd8897 --- /dev/null +++ b/core/src/main/resources/hudson/slaves/SlaveComputer/sidepanel2_pt_BR.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Disconnect= +System\ Information=Informa\u00E7\u00E3o de Sistema +Log= diff --git a/core/src/main/resources/hudson/slaves/SlaveComputer/sidepanel2_ru.properties b/core/src/main/resources/hudson/slaves/SlaveComputer/sidepanel2_ru.properties new file mode 100644 index 0000000000000000000000000000000000000000..7dcc769d78846ef483256e5e55dc2c6bc8f71103 --- /dev/null +++ b/core/src/main/resources/hudson/slaves/SlaveComputer/sidepanel2_ru.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Disconnect=\u041E\u0442\u043A\u043B\u044E\u0447\u0438\u0442\u044C +Log=\u041B\u043E\u0433\u0438 +System\ Information=\u0418\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F \u043E \u0441\u0438\u0441\u0442\u0435\u043C\u0435 diff --git a/core/src/main/resources/hudson/slaves/SlaveComputer/sidepanel2_sv_SE.properties b/core/src/main/resources/hudson/slaves/SlaveComputer/sidepanel2_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..2caf110e87d976fc4705b51eeea614ec42d11fe1 --- /dev/null +++ b/core/src/main/resources/hudson/slaves/SlaveComputer/sidepanel2_sv_SE.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Log=Logg +System\ Information=Systeminformation diff --git a/core/src/main/resources/hudson/slaves/SlaveComputer/slave-agent.jnlp.jelly b/core/src/main/resources/hudson/slaves/SlaveComputer/slave-agent.jnlp.jelly index c62f7c3c43ece6ed95e69a3c69636c26f2e022b5..e56001a2696355f13c23cb14447023d2acb515a1 100644 --- a/core/src/main/resources/hudson/slaves/SlaveComputer/slave-agent.jnlp.jelly +++ b/core/src/main/resources/hudson/slaves/SlaveComputer/slave-agent.jnlp.jelly @@ -38,7 +38,7 @@ THE SOFTWARE. Slave Agent for ${it.displayName} Hudson project - + diff --git a/core/src/main/resources/hudson/slaves/SlaveComputer/systemInfo_da.properties b/core/src/main/resources/hudson/slaves/SlaveComputer/systemInfo_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..4a100a376e73105eb8446b584e3038e8bdd2444d --- /dev/null +++ b/core/src/main/resources/hudson/slaves/SlaveComputer/systemInfo_da.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +System\ Information=Systeminformation +System\ Properties=Systemegenskaber +Environment\ Variables=Milj\u00f8variable +Thread\ Dump=Tr\u00e5ddump diff --git a/core/src/main/resources/hudson/slaves/SlaveComputer/systemInfo_de.properties b/core/src/main/resources/hudson/slaves/SlaveComputer/systemInfo_de.properties index 7c9f20d0642ce0ec91f0ba2e992e26b2f60d30cf..5765fa2ceee3a270495aeb9759eaed42b23bb759 100644 --- a/core/src/main/resources/hudson/slaves/SlaveComputer/systemInfo_de.properties +++ b/core/src/main/resources/hudson/slaves/SlaveComputer/systemInfo_de.properties @@ -20,7 +20,7 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -System\ Information=Systeminformationen -System\ Properties=Systemeigenschaften -Environment\ Variables=Umgebungsvariablen -Thread\ Dump=Thread Dump +System\ Information=Systeminformationen +System\ Properties=Systemeigenschaften +Environment\ Variables=Umgebungsvariablen +Thread\ Dump=Thread Dump diff --git a/core/src/main/resources/hudson/slaves/SlaveComputer/systemInfo_es.properties b/core/src/main/resources/hudson/slaves/SlaveComputer/systemInfo_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..a813437bf0658eba372f8073a8449bc8714aa08e --- /dev/null +++ b/core/src/main/resources/hudson/slaves/SlaveComputer/systemInfo_es.properties @@ -0,0 +1,27 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +System\ Information=Información del sistema +System\ Properties=Propiedades del sistema +Environment\ Variables=Variables de entorno +Thread\ Dump=Volcado the los "threads" + diff --git a/core/src/main/resources/hudson/slaves/SlaveComputer/systemInfo_fr.properties b/core/src/main/resources/hudson/slaves/SlaveComputer/systemInfo_fr.properties index 817b3162cac7dd8e68ab94319cd2e007592ac655..e268b8d90d5efd7ee2ca8c9219f3c2fe578ee4ca 100644 --- a/core/src/main/resources/hudson/slaves/SlaveComputer/systemInfo_fr.properties +++ b/core/src/main/resources/hudson/slaves/SlaveComputer/systemInfo_fr.properties @@ -20,7 +20,7 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -System\ Information=Informations sur le système -System\ Properties=Propriétés du système -Environment\ Variables=Variables d''environnement -Thread\ Dump=Dump du thread +System\ Information=Informations sur le système +System\ Properties=Propriétés du système +Environment\ Variables=Variables d''environnement +Thread\ Dump=Dump du thread diff --git a/core/src/main/resources/hudson/slaves/SlaveComputer/systemInfo_pt_BR.properties b/core/src/main/resources/hudson/slaves/SlaveComputer/systemInfo_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..2a764ccc2278fb7234e876f846bc864e136cb58a --- /dev/null +++ b/core/src/main/resources/hudson/slaves/SlaveComputer/systemInfo_pt_BR.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +System\ Information=Informa\u00E7\u00E3o de Sistema +System\ Properties=Propriedades do Sistema +Thread\ Dump=Limpar Threads +Environment\ Variables=Vari\u00E1veis de Ambiente diff --git a/core/src/main/resources/hudson/slaves/SlaveComputer/systemInfo_sv_SE.properties b/core/src/main/resources/hudson/slaves/SlaveComputer/systemInfo_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..79ece9aa39560f8824e791f64f005b04e27381d9 --- /dev/null +++ b/core/src/main/resources/hudson/slaves/SlaveComputer/systemInfo_sv_SE.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Environment\ Variables=Milj\u00F6variabler +System\ Properties=Systemegenskaper +Thread\ Dump=Tr\u00E5dutskrift diff --git a/core/src/main/resources/hudson/slaves/SlaveComputer/threadDump.jelly b/core/src/main/resources/hudson/slaves/SlaveComputer/threadDump.jelly new file mode 100644 index 0000000000000000000000000000000000000000..1931f5619775b6a935652728ac871df27f14763d --- /dev/null +++ b/core/src/main/resources/hudson/slaves/SlaveComputer/threadDump.jelly @@ -0,0 +1,44 @@ + + + + + + + + + +

    ${%Thread Dump}

    + +

    ${t.key}

    +
    ${t.value}
    +
    +
    +
    +
    +
    \ No newline at end of file diff --git a/core/src/main/resources/hudson/slaves/SlaveComputer/threadDump.properties b/core/src/main/resources/hudson/slaves/SlaveComputer/threadDump.properties new file mode 100644 index 0000000000000000000000000000000000000000..dd6270c82a199c697ade3fb2182ff405befcc8a5 --- /dev/null +++ b/core/src/main/resources/hudson/slaves/SlaveComputer/threadDump.properties @@ -0,0 +1,22 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNEC + +title={0} Thread Dump \ No newline at end of file diff --git a/core/src/main/resources/hudson/slaves/SlaveComputer/threadDump_da.properties b/core/src/main/resources/hudson/slaves/SlaveComputer/threadDump_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..3f530a0108073d11209fc370f3f1d3671d43acd9 --- /dev/null +++ b/core/src/main/resources/hudson/slaves/SlaveComputer/threadDump_da.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +title={0} Tr\u00e5ddump +Thread\ Dump=Tr\u00e5ddump diff --git a/core/src/main/resources/hudson/slaves/SlaveComputer/threadDump_de.properties b/core/src/main/resources/hudson/slaves/SlaveComputer/threadDump_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..6dc1884ce59426e72f0c73f655c1f6b4acd8e3d9 --- /dev/null +++ b/core/src/main/resources/hudson/slaves/SlaveComputer/threadDump_de.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNEC + +title={0} Thread Dump +Thread\ Dump=Thread Dump diff --git a/core/src/main/resources/hudson/slaves/SlaveComputer/threadDump_es.properties b/core/src/main/resources/hudson/slaves/SlaveComputer/threadDump_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..420baa6d71c01a62da160fa11a481b8102a112f1 --- /dev/null +++ b/core/src/main/resources/hudson/slaves/SlaveComputer/threadDump_es.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNEC + +title={0} Volcado de los hilos (Thread) +Thread\ Dump=Volcado de threads + diff --git a/core/src/main/resources/hudson/slaves/SlaveComputer/threadDump_ja.properties b/core/src/main/resources/hudson/slaves/SlaveComputer/threadDump_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..ca3e27f5de82844721418ba26a313ce7a26421d2 --- /dev/null +++ b/core/src/main/resources/hudson/slaves/SlaveComputer/threadDump_ja.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNEC + +title={0} \u30B9\u30EC\u30C3\u30C9\u30C0\u30F3\u30D7 +Thread\ Dump=\u30B9\u30EC\u30C3\u30C9\u30C0\u30F3\u30D7 diff --git a/core/src/main/resources/hudson/slaves/SlaveComputer/threadDump_pt_BR.properties b/core/src/main/resources/hudson/slaves/SlaveComputer/threadDump_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..9f370e4966f82afe7501620446e48b293aca3f45 --- /dev/null +++ b/core/src/main/resources/hudson/slaves/SlaveComputer/threadDump_pt_BR.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Thread\ Dump=Limpar Threads +# {0} Thread Dump +title= diff --git a/core/src/main/resources/hudson/tasks/Ant/AntInstallation/config.jelly b/core/src/main/resources/hudson/tasks/Ant/AntInstallation/config.jelly new file mode 100644 index 0000000000000000000000000000000000000000..6bbc6b1710fae1eff1683b2a4b21b7925939df1f --- /dev/null +++ b/core/src/main/resources/hudson/tasks/Ant/AntInstallation/config.jelly @@ -0,0 +1,35 @@ + + + + + + + + + + + diff --git a/core/src/main/resources/hudson/tasks/Ant/AntInstallation/config_da.properties b/core/src/main/resources/hudson/tasks/Ant/AntInstallation/config_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..03a148422b18e1455627f2af8e0b878e6833ba15 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/Ant/AntInstallation/config_da.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Name=Navn diff --git a/core/src/main/resources/hudson/tasks/Ant/AntInstallation/config_de.properties b/core/src/main/resources/hudson/tasks/Ant/AntInstallation/config_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..e1f5e60ff0c7c746114973db7af002fca93142b0 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/Ant/AntInstallation/config_de.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Name=Name diff --git a/core/src/main/resources/hudson/tasks/Ant/AntInstallation/config_es.properties b/core/src/main/resources/hudson/tasks/Ant/AntInstallation/config_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..4ad9e470e326b080373db8b67a7c695ec1784501 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/Ant/AntInstallation/config_es.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Name=Nombre diff --git a/core/src/main/resources/hudson/tasks/Ant/AntInstallation/config_fr.properties b/core/src/main/resources/hudson/tasks/Ant/AntInstallation/config_fr.properties new file mode 100644 index 0000000000000000000000000000000000000000..5fc25fc139a2af52714af9910980cea4b969a882 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/Ant/AntInstallation/config_fr.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Name=Nom diff --git a/core/src/main/resources/hudson/tasks/Ant/AntInstallation/config_ja.properties b/core/src/main/resources/hudson/tasks/Ant/AntInstallation/config_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..9b141b0023b25b6907f6383bb976181ecbf6c8dd --- /dev/null +++ b/core/src/main/resources/hudson/tasks/Ant/AntInstallation/config_ja.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Name=\u540D\u524D diff --git a/core/src/main/resources/hudson/tasks/Ant/AntInstallation/config_nl.properties b/core/src/main/resources/hudson/tasks/Ant/AntInstallation/config_nl.properties new file mode 100644 index 0000000000000000000000000000000000000000..d15409d6cf7e340e8b9ed923a401f0db6e6b2d6f --- /dev/null +++ b/core/src/main/resources/hudson/tasks/Ant/AntInstallation/config_nl.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Name=Naam diff --git a/core/src/main/resources/hudson/tasks/Ant/AntInstallation/config_pt_BR.properties b/core/src/main/resources/hudson/tasks/Ant/AntInstallation/config_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..d9ff37731ec0b5df4a119e0a4191eb14a0b0d051 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/Ant/AntInstallation/config_pt_BR.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Name= diff --git a/core/src/main/resources/hudson/tasks/Ant/AntInstallation/config_ru.properties b/core/src/main/resources/hudson/tasks/Ant/AntInstallation/config_ru.properties new file mode 100644 index 0000000000000000000000000000000000000000..2be8aec78f8a263627f05fab7e8912c627ba8a29 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/Ant/AntInstallation/config_ru.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Name=\u0438\u043C\u044F +name=\u0438\u043C\u044F diff --git a/core/src/main/resources/hudson/tasks/Ant/global_fr.properties b/core/src/main/resources/hudson/tasks/Ant/AntInstallation/global_fr.properties similarity index 100% rename from core/src/main/resources/hudson/tasks/Ant/global_fr.properties rename to core/src/main/resources/hudson/tasks/Ant/AntInstallation/global_fr.properties diff --git a/core/src/main/resources/hudson/tasks/Ant/AntInstallation/global_ja.properties b/core/src/main/resources/hudson/tasks/Ant/AntInstallation/global_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..03fd86f3db3be09e3d0abcc9a85cb8427f79e572 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/Ant/AntInstallation/global_ja.properties @@ -0,0 +1,27 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Ant\ installation=\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u6E08\u307FAnt +List\ of\ Ant\ installations\ on\ this\ system=Hudson\u3067\u5229\u7528\u3059\u308B\u3001\u3053\u306E\u30B7\u30B9\u30C6\u30E0\u306B\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3055\u308C\u305FAnt\u306E\u4E00\u89A7\u3067\u3059 +name=\u540D\u524D +Add\ Ant=Ant\u8FFD\u52A0 +Delete\ Ant=Ant\u524A\u9664 \ No newline at end of file diff --git a/core/src/main/resources/hudson/tasks/Ant/global_nl.properties b/core/src/main/resources/hudson/tasks/Ant/AntInstallation/global_nl.properties similarity index 100% rename from core/src/main/resources/hudson/tasks/Ant/global_nl.properties rename to core/src/main/resources/hudson/tasks/Ant/AntInstallation/global_nl.properties diff --git a/core/src/main/resources/hudson/tasks/Ant/global_pt_BR.properties b/core/src/main/resources/hudson/tasks/Ant/AntInstallation/global_pt_BR.properties similarity index 100% rename from core/src/main/resources/hudson/tasks/Ant/global_pt_BR.properties rename to core/src/main/resources/hudson/tasks/Ant/AntInstallation/global_pt_BR.properties diff --git a/core/src/main/resources/hudson/tasks/Ant/global_ru.properties b/core/src/main/resources/hudson/tasks/Ant/AntInstallation/global_ru.properties similarity index 100% rename from core/src/main/resources/hudson/tasks/Ant/global_ru.properties rename to core/src/main/resources/hudson/tasks/Ant/AntInstallation/global_ru.properties diff --git a/core/src/main/resources/hudson/tasks/Ant/global_tr.properties b/core/src/main/resources/hudson/tasks/Ant/AntInstallation/global_tr.properties similarity index 100% rename from core/src/main/resources/hudson/tasks/Ant/global_tr.properties rename to core/src/main/resources/hudson/tasks/Ant/AntInstallation/global_tr.properties diff --git a/core/src/main/resources/hudson/tasks/Ant/config_da.properties b/core/src/main/resources/hudson/tasks/Ant/config_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..80cf993c0b6dc10cee943a95d6187468af52409d --- /dev/null +++ b/core/src/main/resources/hudson/tasks/Ant/config_da.properties @@ -0,0 +1,28 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Default=Standard +Build\ File=Byggefil +Properties=Egenskaber +Targets=M\u00e5l +Ant\ Version=Ant version +Java\ Options=Java tilvalg diff --git a/core/src/main/resources/hudson/tasks/Ant/config_es.properties b/core/src/main/resources/hudson/tasks/Ant/config_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..dde0b6c116cfac976581b3f2968b25dcfc2ee442 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/Ant/config_es.properties @@ -0,0 +1,29 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Ant\ Version=Versión de Ant +Default=Por defecto +Targets=Destinos +Build\ File=Fichero Ant +Properties=Propiedades +Java\ Options=Opciones de java + diff --git a/core/src/main/resources/hudson/tasks/Ant/config_ja.properties b/core/src/main/resources/hudson/tasks/Ant/config_ja.properties index 52d00967f3347a177b92c79399feb8ab7f32297e..8a750ebfacff790f34a29536df23087487d024bb 100644 --- a/core/src/main/resources/hudson/tasks/Ant/config_ja.properties +++ b/core/src/main/resources/hudson/tasks/Ant/config_ja.properties @@ -20,9 +20,9 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Ant\ Version=\u4f7f\u7528\u3059\u308bAnt -Default=\u30c7\u30a3\u30d5\u30a9\u30eb\u30c8 -Targets=\u30bf\u30fc\u30b2\u30c3\u30c8 -Build\ File=\u30d3\u30eb\u30c9\u30d5\u30a1\u30a4\u30eb -Properties=\u30d7\u30ed\u30d1\u30c6\u30a3 -Java\ Options=Java\u30aa\u30d7\u30b7\u30e7\u30f3 +Ant\ Version=\u4F7F\u7528\u3059\u308BAnt +Default=\u30C7\u30D5\u30A9\u30EB\u30C8 +Targets=\u30BF\u30FC\u30B2\u30C3\u30C8 +Build\ File=\u30D3\u30EB\u30C9\u30D5\u30A1\u30A4\u30EB +Properties=\u30D7\u30ED\u30D1\u30C6\u30A3 +Java\ Options=Java\u30AA\u30D7\u30B7\u30E7\u30F3 diff --git a/core/src/main/resources/hudson/tasks/Ant/global.jelly b/core/src/main/resources/hudson/tasks/Ant/global.jelly deleted file mode 100644 index dbb507e595bec938e3743d67ee01b674d959738c..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/tasks/Ant/global.jelly +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - - - - - - - - - - - -
    - -
    -
    -
    -
    -
    -
    -
    \ No newline at end of file diff --git a/core/src/main/resources/hudson/tasks/Ant/global_de.properties b/core/src/main/resources/hudson/tasks/Ant/global_de.properties deleted file mode 100644 index bdb68199449777c45e0072c86193def0b5392085..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/tasks/Ant/global_de.properties +++ /dev/null @@ -1,25 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Ant\ installation=Ant Installationen -List\ of\ Ant\ installations\ on\ this\ system=Installierte Ant-Versionen auf diesem System -name=Name diff --git a/core/src/main/resources/hudson/tasks/Ant/global_ja.properties b/core/src/main/resources/hudson/tasks/Ant/global_ja.properties deleted file mode 100644 index c7cbc59c2c9bf3e913560cdb721bea14ad609e1c..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/tasks/Ant/global_ja.properties +++ /dev/null @@ -1,25 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Ant\ installation=\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u6e08\u307fAnt -List\ of\ Ant\ installations\ on\ this\ system=Hudson\u3067\u5229\u7528\u3059\u308b\u3001\u3053\u306e\u30b7\u30b9\u30c6\u30e0\u306b\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3055\u308c\u305fAnt\u306e\u4e00\u89a7\u3067\u3059 -name=\u540d\u524d diff --git a/core/src/main/resources/hudson/tasks/ArtifactArchiver/config_da.properties b/core/src/main/resources/hudson/tasks/ArtifactArchiver/config_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..e85518dbb4876b15ad20859125957fb745751807 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/ArtifactArchiver/config_da.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Files\ to\ archive=Filer der skal arkiveres +lastBuildOnly=Slet gamle artifakter fra f\u00f8r det seneste succesfulde/stabile byg, for at spare diskplads +Excludes=Ekskluderer diff --git a/core/src/main/resources/hudson/tasks/ArtifactArchiver/config_de.properties b/core/src/main/resources/hudson/tasks/ArtifactArchiver/config_de.properties index bb727d8e3113f6ef39e12eb46497710a415bc5d7..1bed9bd3272e888f2d9bd1401f6915ee0ec3b631 100644 --- a/core/src/main/resources/hudson/tasks/ArtifactArchiver/config_de.properties +++ b/core/src/main/resources/hudson/tasks/ArtifactArchiver/config_de.properties @@ -20,6 +20,6 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Files\ to\ archive=Dateien, die archiviert werden sollen -Excludes=Ausschlüsse -lastBuildOnly=Nur letzten erfolgreichen Build archivieren (spart Festplattenplatz). +Files\ to\ archive=Dateien, die archiviert werden sollen +Excludes=Ausschlüsse +lastBuildOnly=Nur letzten erfolgreichen/stabilen Build archivieren (spart Festplattenplatz). diff --git a/core/src/main/resources/hudson/tasks/ArtifactArchiver/config_es.properties b/core/src/main/resources/hudson/tasks/ArtifactArchiver/config_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..31f15215bbc30e90243379e508a51459a0513cda --- /dev/null +++ b/core/src/main/resources/hudson/tasks/ArtifactArchiver/config_es.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +lastBuildOnly=Descartar todos los artefactos excepto el último estable y sin errores, para evitar llenar el disco. +Excludes=Excluir +Files\ to\ archive=Ficheros para guardar diff --git a/core/src/main/resources/hudson/tasks/ArtifactArchiver/config_fr.properties b/core/src/main/resources/hudson/tasks/ArtifactArchiver/config_fr.properties index c06c765e76ff7d6c14bc9ab9eed762555a2fe170..4d38f2e1a226acda90909c583c7c226947601d05 100644 --- a/core/src/main/resources/hudson/tasks/ArtifactArchiver/config_fr.properties +++ b/core/src/main/resources/hudson/tasks/ArtifactArchiver/config_fr.properties @@ -20,6 +20,6 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Files\ to\ archive=Fichiers à archiver -Excludes=Excluant -lastBuildOnly=Supprime tous les artefacts, à l''exception du dernier artefact stable ou construit avec succès, afin de gagner de l''espace disque +Files\ to\ archive=Fichiers à archiver +Excludes=Excluant +lastBuildOnly=Supprime tous les artefacts, à l''exception du dernier artefact stable ou construit avec succès, afin de gagner de l''espace disque diff --git a/core/src/main/resources/hudson/tasks/ArtifactArchiver/config_pt_BR.properties b/core/src/main/resources/hudson/tasks/ArtifactArchiver/config_pt_BR.properties index 44291c0a40f490df1da9ad03650a512c7c6a8299..ef77128086f08ab769458e216e142ab6fcdbd131 100644 --- a/core/src/main/resources/hudson/tasks/ArtifactArchiver/config_pt_BR.properties +++ b/core/src/main/resources/hudson/tasks/ArtifactArchiver/config_pt_BR.properties @@ -20,4 +20,6 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -lastBuildOnly=Discartar todos menos o \u00FAltim artefato conclu\u00EDdo com sucesso para economizar espa\u00E7o em disco \ No newline at end of file +lastBuildOnly=Discartar todos menos o \u00FAltim artefato conclu\u00EDdo com sucesso para economizar espa\u00E7o em discoFiles\ to\ archive= +Excludes= +Files\ to\ archive= diff --git a/core/src/main/resources/hudson/tasks/ArtifactArchiver/config_tr.properties b/core/src/main/resources/hudson/tasks/ArtifactArchiver/config_tr.properties index 478d3ee6631a51df12541eaa4c9a3c51a0926ee2..c031903f81d34e3de81fbac99dfdec0f5e3f6b03 100644 --- a/core/src/main/resources/hudson/tasks/ArtifactArchiver/config_tr.properties +++ b/core/src/main/resources/hudson/tasks/ArtifactArchiver/config_tr.properties @@ -20,7 +20,7 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Files\ to\ archive=Ar\u015fivlenecek dosyalar -Excludes=Harici tutulanlar -lastBuildOnly=Disk \u00fczerinde yer kazanmak ad\u0131na, sonuncu ba\u015far\u0131l\u0131 artefaktlar\u0131n d\u0131\u015f\u0131ndakileri sil - +Files\ to\ archive=Ar\u015fivlenecek dosyalar +Excludes=Harici tutulanlar +lastBuildOnly=Disk \u00fczerinde yer kazanmak ad\u0131na, sonuncu ba\u015far\u0131l\u0131 artefaktlar\u0131n d\u0131\u015f\u0131ndakileri sil + diff --git a/core/src/main/resources/hudson/tasks/ArtifactArchiver/help-artifacts.html b/core/src/main/resources/hudson/tasks/ArtifactArchiver/help-artifacts.html index 3bc04d5d9ca757b60105caeba23f6bdd6f294ed7..8bdf091c7537742eebd9a2d4cc2143d5d404560c 100644 --- a/core/src/main/resources/hudson/tasks/ArtifactArchiver/help-artifacts.html +++ b/core/src/main/resources/hudson/tasks/ArtifactArchiver/help-artifacts.html @@ -1,6 +1,6 @@
    Can use wildcards like 'module/dist/**/*.zip'. - See + See the @includes of Ant fileset for the exact format. The base directory is the workspace.
    \ No newline at end of file diff --git a/core/src/main/resources/hudson/tasks/ArtifactArchiver/help-artifacts_de.html b/core/src/main/resources/hudson/tasks/ArtifactArchiver/help-artifacts_de.html index 318961fd9fe34c16fd72a9a9f06a482cfb43bee3..1771c4626783c115f2c93ae3e4708ff900658215 100644 --- a/core/src/main/resources/hudson/tasks/ArtifactArchiver/help-artifacts_de.html +++ b/core/src/main/resources/hudson/tasks/ArtifactArchiver/help-artifacts_de.html @@ -1,6 +1,6 @@
    Sie können Platzhalterzeichen verwenden wie z.B. 'module/dist/**/*.zip'. Das unterstützte Format entspricht der Angabe des - includes-Attributes eines Ant FileSets. + includes-Attributes eines Ant FileSets. Das Basisverzeichnis ist der Arbeitsbereich.
    \ No newline at end of file diff --git a/core/src/main/resources/hudson/tasks/ArtifactArchiver/help-artifacts_fr.html b/core/src/main/resources/hudson/tasks/ArtifactArchiver/help-artifacts_fr.html index 9ff3f51ea7d19a48f8f592dc7a994423dc3a2217..457f405288c7936af99a790f523985f4f00f04c2 100644 --- a/core/src/main/resources/hudson/tasks/ArtifactArchiver/help-artifacts_fr.html +++ b/core/src/main/resources/hudson/tasks/ArtifactArchiver/help-artifacts_fr.html @@ -1,6 +1,6 @@ 
    Vous pouvez utilisez ici des wildcards du type 'module/dist/**/*.zip'. - Voir + Voir les @includes d'un fileset Ant pour le format exact. Le répertoire de base est le workspace.
    \ No newline at end of file diff --git a/core/src/main/resources/hudson/tasks/ArtifactArchiver/help-artifacts_nl.html b/core/src/main/resources/hudson/tasks/ArtifactArchiver/help-artifacts_nl.html index d15e34e31bc6eee6b1c0275586f442711bd49a44..3df950bce29d97728bb02e6b933a6248bc3c0ddd 100644 --- a/core/src/main/resources/hudson/tasks/ArtifactArchiver/help-artifacts_nl.html +++ b/core/src/main/resources/hudson/tasks/ArtifactArchiver/help-artifacts_nl.html @@ -1,6 +1,6 @@
    U kunt jokercharacter gebruiken, vb. 'module/dist/**/*.zip'. - Zie + Zie de @includes in een Ant 'fileset' voor meer informatie over het exacte formaat. De basisfolder is de werkplaats. diff --git a/core/src/main/resources/hudson/tasks/ArtifactArchiver/help-artifacts_pt_BR.html b/core/src/main/resources/hudson/tasks/ArtifactArchiver/help-artifacts_pt_BR.html new file mode 100644 index 0000000000000000000000000000000000000000..54229737667aa0557d5e9f85a67890671cb3564c --- /dev/null +++ b/core/src/main/resources/hudson/tasks/ArtifactArchiver/help-artifacts_pt_BR.html @@ -0,0 +1,6 @@ +
    + Pode usar coringas como 'module/dist/**/*.zip'. + Veja + o @includes do fileset do Ant para o formato exato. + O diret�rio base � o workspace. +
    \ No newline at end of file diff --git a/core/src/main/resources/hudson/tasks/ArtifactArchiver/help-artifacts_pt_br.html b/core/src/main/resources/hudson/tasks/ArtifactArchiver/help-artifacts_pt_br.html deleted file mode 100644 index efccb77cacad89ae805af66cda7bfdf644768d09..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/tasks/ArtifactArchiver/help-artifacts_pt_br.html +++ /dev/null @@ -1,6 +0,0 @@ -
    - Pode usar coringas como 'module/dist/**/*.zip'. - Veja - o @includes do fileset do Ant para o formato exato. - O diretório base é o workspace. -
    \ No newline at end of file diff --git a/core/src/main/resources/hudson/tasks/ArtifactArchiver/help-artifacts_ru.html b/core/src/main/resources/hudson/tasks/ArtifactArchiver/help-artifacts_ru.html index e6ab31a65aa55ed16021289c461f622a779eaf12..6ed78424d67786a2ccff8f30e036234cb13c6c40 100644 --- a/core/src/main/resources/hudson/tasks/ArtifactArchiver/help-artifacts_ru.html +++ b/core/src/main/resources/hudson/tasks/ArtifactArchiver/help-artifacts_ru.html @@ -1,6 +1,6 @@ 
    Возможно иÑпользование маÑок вида 'module/dist/**/*.zip'. - Смотрите + Смотрите @includes из Ant Ð´Ð»Ñ Ð¿Ð¾Ð»Ð½Ð¾Ð¹ документации о ÑинтакÑиÑе. Текущей Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸ÐµÑ ÑвлÑетÑÑ ÑÐ±Ð¾Ñ€Ð¾Ñ‡Ð½Ð°Ñ Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ.
    \ No newline at end of file diff --git a/core/src/main/resources/hudson/tasks/ArtifactArchiver/help-artifacts_tr.html b/core/src/main/resources/hudson/tasks/ArtifactArchiver/help-artifacts_tr.html index ac4b9371fddb1a5add1e7bed2aa566a442eb50c2..6372ca6a24c73e5244629d2e89e5df5c7865c146 100644 --- a/core/src/main/resources/hudson/tasks/ArtifactArchiver/help-artifacts_tr.html +++ b/core/src/main/resources/hudson/tasks/ArtifactArchiver/help-artifacts_tr.html @@ -1,6 +1,6 @@
    'module/dist/**/*.zip' gibi joker kalıpları kullanabilirsiniz. - Yardım için, + Yardım için, the @includes of Ant fileset linkine bakın. Temel dizin çalışma alanıdır.
    \ No newline at end of file diff --git a/core/src/main/resources/hudson/tasks/ArtifactArchiver/help-excludes.html b/core/src/main/resources/hudson/tasks/ArtifactArchiver/help-excludes.html index 37fad8cdd2852004eed5635c60c4b9800455ff31..058c7b2e4105e24d41cc32f0f682f948d804d529 100644 --- a/core/src/main/resources/hudson/tasks/ArtifactArchiver/help-excludes.html +++ b/core/src/main/resources/hudson/tasks/ArtifactArchiver/help-excludes.html @@ -1,5 +1,5 @@
    - Optionally specify the 'excludes' pattern, + Optionally specify the 'excludes' pattern, such as "foo/bar/**/*". A file that matches this mask will not be archived even if it matches the mask specified in 'files to archive' section.
    \ No newline at end of file diff --git a/core/src/main/resources/hudson/tasks/ArtifactArchiver/help-excludes_de.html b/core/src/main/resources/hudson/tasks/ArtifactArchiver/help-excludes_de.html index cf0c6912c9e3dff88a4e4a57333ad37c31dae1f3..b9c73ffd7d41228b4e713bfb175d1b3f3356503a 100644 --- a/core/src/main/resources/hudson/tasks/ArtifactArchiver/help-excludes_de.html +++ b/core/src/main/resources/hudson/tasks/ArtifactArchiver/help-excludes_de.html @@ -1,5 +1,5 @@
    - Optional: Geben Sie ein + Optional: Geben Sie ein Ausschlußmuster an, z.B. "foo/bar/**/*". Eine Datei, welche dieses Muster erfüllt, wird nicht archiviert - selbst wenn sie das Muster erfüllt, das unter "Zu archivierende Dateien" angegeben wurde. diff --git a/core/src/main/resources/hudson/tasks/ArtifactArchiver/help-excludes_fr.html b/core/src/main/resources/hudson/tasks/ArtifactArchiver/help-excludes_fr.html index 98d869b2fc7d608938c16420b30c5b28d6d65a97..3d997775b17241427a4eb6641384f36d553ea85d 100644 --- a/core/src/main/resources/hudson/tasks/ArtifactArchiver/help-excludes_fr.html +++ b/core/src/main/resources/hudson/tasks/ArtifactArchiver/help-excludes_fr.html @@ -1,5 +1,5 @@ 
    - Spécifie un pattern d'exclusion optionel, du type "foo/bar/**/*". + Spécifie un pattern d'exclusion optionel, du type "foo/bar/**/*". Un fichier qui correspond à ce pattern ne sera pas archivé, même s'il correspond au masque spécifié dans la section 'fichiers à archiver'.
    \ No newline at end of file diff --git a/core/src/main/resources/hudson/tasks/ArtifactArchiver/help-excludes_nl.html b/core/src/main/resources/hudson/tasks/ArtifactArchiver/help-excludes_nl.html index 01f8d771818f4e268f651f4d38b9b90768067138..6ca10cdbb372b79171a359c4a653abe8c9703f81 100644 --- a/core/src/main/resources/hudson/tasks/ArtifactArchiver/help-excludes_nl.html +++ b/core/src/main/resources/hudson/tasks/ArtifactArchiver/help-excludes_nl.html @@ -1,5 +1,5 @@
    - Optioneel kunt u een + Optioneel kunt u een uitsluitingspatroon zoals 'foo/bar/**/*' opgeven. Een bestand dat voldoet aan dit patroon zal niet mee gearchiveerd worden. Dit zelfs wanneer het bestand voldoet aan het patroon opgegeven in de sectie 'Te archiveren bestanden'. diff --git a/core/src/main/resources/hudson/tasks/ArtifactArchiver/help-excludes_pt_BR.html b/core/src/main/resources/hudson/tasks/ArtifactArchiver/help-excludes_pt_BR.html new file mode 100644 index 0000000000000000000000000000000000000000..0cbbbcd78ed27bc4104a8330db36a02b903b28ef --- /dev/null +++ b/core/src/main/resources/hudson/tasks/ArtifactArchiver/help-excludes_pt_BR.html @@ -0,0 +1,5 @@ +
    + Opcionalmente especifique o padr�o de 'exclus�o', + tal como "foo/bar/**/*". Um arquivo que se enquadre nesta m�scara n�o ser� arquivado mesmo se ele se enquadrar + na m�scara especificada na se��o 'arquivos para arquivar'. +
    \ No newline at end of file diff --git a/core/src/main/resources/hudson/tasks/ArtifactArchiver/help-excludes_pt_br.html b/core/src/main/resources/hudson/tasks/ArtifactArchiver/help-excludes_pt_br.html deleted file mode 100644 index 71c82e9a92084ecba3e8938718d67e735a24224d..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/tasks/ArtifactArchiver/help-excludes_pt_br.html +++ /dev/null @@ -1,5 +0,0 @@ -
    - Opcionalmente especifique o padrão de 'exclusão', - tal como "foo/bar/**/*". Um arquivo que se enquadre nesta máscara não será arquivado mesmo se ele se enquadrar - na máscara especificada na seção 'arquivos para arquivar'. -
    \ No newline at end of file diff --git a/core/src/main/resources/hudson/tasks/ArtifactArchiver/help-excludes_ru.html b/core/src/main/resources/hudson/tasks/ArtifactArchiver/help-excludes_ru.html index 20c4b63aba34d4b5a039d875a5f40992a8602ff2..42b359d1b81a4515d3a611048480c1845b667616 100644 --- a/core/src/main/resources/hudson/tasks/ArtifactArchiver/help-excludes_ru.html +++ b/core/src/main/resources/hudson/tasks/ArtifactArchiver/help-excludes_ru.html @@ -1,5 +1,5 @@ 
    - Опционально укажите шаблон 'иÑключений' + Опционально укажите шаблон 'иÑключений' в виде "foo/bar/**/*". Файл, ÑоответÑтвующий Ñтой маÑке заархивирован не будет, даже еÑли он ÑоответÑтвует маÑке, указанной в поле "Файлы Ð´Ð»Ñ Ð°Ñ€Ñ…Ð¸Ð²Ð°Ñ†Ð¸Ð¸".
    \ No newline at end of file diff --git a/core/src/main/resources/hudson/tasks/ArtifactArchiver/help-excludes_tr.html b/core/src/main/resources/hudson/tasks/ArtifactArchiver/help-excludes_tr.html index 3c10b38ce07793107d17931aa6be7ffea77b784d..82852bac7a9042a0ebc09cdc4a996b6f657bdfb4 100644 --- a/core/src/main/resources/hudson/tasks/ArtifactArchiver/help-excludes_tr.html +++ b/core/src/main/resources/hudson/tasks/ArtifactArchiver/help-excludes_tr.html @@ -1,6 +1,6 @@
    Opsiyonel olarak, "foo/bar/**/*" gibi - bir 'excludes' kalıbı + bir 'excludes' kalıbı tanımlayabilirsiniz. Bu kalıp ile eşleşen dosyalar, 'arşivlenecek dosyalar' kısmında belirtilse dahi, arşivlenmeyecektir.
    \ No newline at end of file diff --git a/core/src/main/resources/hudson/tasks/ArtifactArchiver/help-latestOnly_de.html b/core/src/main/resources/hudson/tasks/ArtifactArchiver/help-latestOnly_de.html new file mode 100644 index 0000000000000000000000000000000000000000..f989e674a19aed619c6751cdab093bf6169f641a --- /dev/null +++ b/core/src/main/resources/hudson/tasks/ArtifactArchiver/help-latestOnly_de.html @@ -0,0 +1,20 @@ +
    +

    + Ist diese Option gewählt, verwirft Hudson die meisten Artefakte aus + älteren Builds. Artefakte des letzten stabilen Builds (soweit vorhanden) + werden behalten, ebenso wie die des letzten instabilen und fehlgeschlagenen + Builds, sofern diese neuer sind. +

    +

    + Diese Option spart Festplattenplatz, ermöglicht aber trotzdem zuverlässige + Permalinks, z.B. auf + .../lastStableBuild/artifact/... oder + .../lastSuccessfulBuild/artifact/... oder + .../lastCompletedBuild/artifact/.... +

    +

    + (Da der neueste Build noch läuft, geht Hudson konservativerweise davon aus, + daß dieser fehlschlagen könnte. Daher behält Hudson mindestens einen älteren Build + zurück.) +

    +
    diff --git a/core/src/main/resources/hudson/tasks/ArtifactArchiver/help_de.html b/core/src/main/resources/hudson/tasks/ArtifactArchiver/help_de.html index 15547eec915939779744f6e0b6e0648bff440663..100aeab194c4ec0f2cac315ee3fd1c12d6c1dbf0 100644 --- a/core/src/main/resources/hudson/tasks/ArtifactArchiver/help_de.html +++ b/core/src/main/resources/hudson/tasks/ArtifactArchiver/help_de.html @@ -1,10 +1,10 @@ -
    - Archiviert die Build-Artefakte (zum Beispiel ZIP- oder JAR-Dateien), so dass - diese zu einem späteren Zeitpunkt heruntergeladen werden können. - Archivierte Dateien sind über die Hudson Web-Oberfläche erreichbar. -
    - Normalerweise bewahrt Hudson die Artefakte eines Builds so lange auf wie die - Protokolldatei des Builds existiert. Sollten Sie alte Artefakte hingegen nicht mehr - benötigen und lieber Speicherplatz sparen wollen, so können Sie die Artefakte - löschen. +
    + Archiviert die Build-Artefakte (zum Beispiel ZIP- oder JAR-Dateien), so dass + diese zu einem späteren Zeitpunkt heruntergeladen werden können. + Archivierte Dateien sind über die Hudson Web-Oberfläche erreichbar. +
    + Normalerweise bewahrt Hudson die Artefakte eines Builds so lange auf wie die + Protokolldatei des Builds existiert. Sollten Sie alte Artefakte hingegen nicht mehr + benötigen und lieber Speicherplatz sparen wollen, so können Sie die Artefakte + löschen.
    \ No newline at end of file diff --git a/core/src/main/resources/hudson/tasks/BatchFile/config.jelly b/core/src/main/resources/hudson/tasks/BatchFile/config.jelly index 7d3b0ea743a2c1ba748db13b08d4630289efd3ee..a5f747511b414f5e13d8c31b9d6929cdb300bab3 100644 --- a/core/src/main/resources/hudson/tasks/BatchFile/config.jelly +++ b/core/src/main/resources/hudson/tasks/BatchFile/config.jelly @@ -1,7 +1,7 @@ - + - + description="${%description('http://ant.apache.org/manual/Types/fileset.html')}"> + - + + - \ No newline at end of file + diff --git a/core/src/main/resources/hudson/tasks/Fingerprinter/config.properties b/core/src/main/resources/hudson/tasks/Fingerprinter/config.properties index 4b57c31ededb4b819c26d52f2bed0cb25a7e24fe..d7bfa29ae668bc3c6f89bd1d06f5f5df02ca21fc 100644 --- a/core/src/main/resources/hudson/tasks/Fingerprinter/config.properties +++ b/core/src/main/resources/hudson/tasks/Fingerprinter/config.properties @@ -1,6 +1,6 @@ # The MIT License # -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Eric Lefevre-Ardant +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Eric Lefevre-Ardant # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -21,6 +21,5 @@ # THE SOFTWARE. description=Can use wildcards like ''module/dist/**/*.zip''. \ - See \ - the @includes of Ant fileset for the exact format. \ - The base directory is the workspace. + See the @includes of Ant fileset for the exact format. \ + The base directory is the workspace. diff --git a/core/src/main/resources/hudson/tasks/Fingerprinter/config_da.properties b/core/src/main/resources/hudson/tasks/Fingerprinter/config_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..94541e033037501fa75049bf073b98147d8cd3e8 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/Fingerprinter/config_da.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Keep\ the\ build\ logs\ of\ dependencies=Behold byggelogs for afh\u00e6ngigheder +Files\ to\ fingerprint=Filer der skal tages filfingeraftryk af +Fingerprint\ all\ archived\ artifacts=Tag filfingeraftryk af alle arkiverede artifakter +description=Du kan bruge wildcards som ''module/dist/**/*.zip''. \ diff --git a/core/src/main/resources/hudson/tasks/Fingerprinter/config_de.properties b/core/src/main/resources/hudson/tasks/Fingerprinter/config_de.properties index d869496f2e42e48037ae747513d55758816e8dcf..bf64438aa4b2b5342989cd78588828a93d17b228 100644 --- a/core/src/main/resources/hudson/tasks/Fingerprinter/config_de.properties +++ b/core/src/main/resources/hudson/tasks/Fingerprinter/config_de.properties @@ -1,6 +1,6 @@ # The MIT License # -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -20,11 +20,11 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Files\ to\ fingerprint=Dateien, von denen Fingerabdrücke erzeugt werden sollen -description=\ - Es sind reguläre Ausdrücke wie z.B. ''module/dist/**/*.zip'' erlaubt. \ - Das genaue Format können Sie \ - der Spezifikation für @includes eines Ant-Filesets entnehmen. \ - Das Ausgangsverzeichnis ist der Arbeitsbereich. -Fingerprint\ all\ archived\ artifacts=Erzeuge Fingerabdrücke von allen archivierten Artefakten -Keep\ the\ build\ logs\ of\ dependencies=Behalte die Build-Protokolle aller Abhängigkeiten. +Files\ to\ fingerprint=Dateien, von denen Fingerabdr\u00FCcke erzeugt werden sollen +description=\ + Es sind regul\u00E4re Ausdr\u00FCcke wie z.B. ''module/dist/**/*.zip'' erlaubt. \ + Das genaue Format k\u00F6nnen Sie der \ + Spezifikation f\u00FCr @includes eines Ant-Filesets entnehmen. \ + Das Ausgangsverzeichnis ist der Arbeitsbereich. +Fingerprint\ all\ archived\ artifacts=Erzeuge Fingerabdr\u00FCcke von allen archivierten Artefakten +Keep\ the\ build\ logs\ of\ dependencies=Behalte die Build-Protokolle aller Abh\u00E4ngigkeiten. diff --git a/core/src/main/resources/hudson/tasks/Fingerprinter/config_es.properties b/core/src/main/resources/hudson/tasks/Fingerprinter/config_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..1441e395578cebb582abeece9b0b8af8147fe662 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/Fingerprinter/config_es.properties @@ -0,0 +1,29 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Eric Lefevre-Ardant +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +description=Se pueden usar comodines como ''module/dist/**/*.zip''. \ + Echa un vistazo al \ + atributo @includes de la etiqueta fileset de Ant para conocer el formato exacto. \ + El directorio base es el workspace. +Files\ to\ fingerprint=Almacenar la firma de los ficheros: +Keep\ the\ build\ logs\ of\ dependencies=\u00BFConservar los ''logs'' de dependencias de las ejecuciones? +Fingerprint\ all\ archived\ artifacts=Almacenar la firmar de todos los ficheros generados diff --git a/core/src/main/resources/hudson/tasks/Fingerprinter/config_fr.properties b/core/src/main/resources/hudson/tasks/Fingerprinter/config_fr.properties index 78e31e229e6707b53ff4dda8a42616b950a6a0ab..8e13eaa848e1c15ca7afa535c0b5a3051479ea91 100644 --- a/core/src/main/resources/hudson/tasks/Fingerprinter/config_fr.properties +++ b/core/src/main/resources/hudson/tasks/Fingerprinter/config_fr.properties @@ -1,6 +1,6 @@ # The MIT License # -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Eric Lefevre-Ardant +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Eric Lefevre-Ardant # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -20,10 +20,9 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Files\ to\ fingerprint=Fichiers à marquer d''une empreinte numérique -description=Les wildcards du type ''module/dist/**/*.zip'' sont autorisés. \ - Voir le format exact des \ - @includes des filesets Ants. \ - Le répertoire de base est le répertoire de travail (workspace). -Fingerprint\ all\ archived\ artifacts=Marquer d''une empreinte numérique tous les artefacts archivés -Keep\ the\ build\ logs\ of\ dependencies=Conserver les logs de build des dépendances +Files\ to\ fingerprint=Fichiers \u00E0 marquer d''une empreinte num\u00E9rique +description=Les wildcards du type ''module/dist/**/*.zip'' sont autoris\u00E9s. \ + Voir le format exact des @includes des filesets Ants. \ + Le r\u00E9pertoire de base est le r\u00E9pertoire de travail (workspace). +Fingerprint\ all\ archived\ artifacts=Marquer d''une empreinte num\u00E9rique tous les artefacts archiv\u00E9s +Keep\ the\ build\ logs\ of\ dependencies=Conserver les logs de build des d\u00E9pendances diff --git a/core/src/main/resources/hudson/tasks/Fingerprinter/config_ja.properties b/core/src/main/resources/hudson/tasks/Fingerprinter/config_ja.properties index 9e503f0712a2afea8c5186c0fbbe3cd89db8b347..a9a8bb33801f5cc6d70dbad7a46829bf36f0850b 100644 --- a/core/src/main/resources/hudson/tasks/Fingerprinter/config_ja.properties +++ b/core/src/main/resources/hudson/tasks/Fingerprinter/config_ja.properties @@ -1,6 +1,6 @@ # The MIT License # -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -21,6 +21,6 @@ # THE SOFTWARE. Files\ to\ fingerprint=\u8a18\u9332\u3059\u308b\u30d5\u30a1\u30a4\u30eb -description=\u8a18\u9332\u3057\u305f\u3044\u30d5\u30a1\u30a4\u30eb\u306e\u30d1\u30bf\u30fc\u30f3\u3092Ant fileset includes\u5c5e\u6027\u306e\u66f8\u5f0f\u3067\uff08\u30d9\u30fc\u30b9\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306f\u30ef\u30fc\u30af\u30b9\u30da\u30fc\u30b9\u30eb\u30fc\u30c8\uff09\u3002\u4f8b\uff1amodule/dist/**/*.zip +description=\u8a18\u9332\u3057\u305f\u3044\u30d5\u30a1\u30a4\u30eb\u306e\u30d1\u30bf\u30fc\u30f3\u3092Ant fileset includes\u5c5e\u6027\u306e\u66f8\u5f0f\u3067\uff08\u30d9\u30fc\u30b9\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306f\u30ef\u30fc\u30af\u30b9\u30da\u30fc\u30b9\u30eb\u30fc\u30c8\uff09\u3002\u4f8b\uff1amodule/dist/**/*.zip Fingerprint\ all\ archived\ artifacts=\u4fdd\u5b58\u3055\u308c\u305f\u6210\u679c\u7269\u306e\u6307\u7d0b\u3092\u8a18\u9332 Keep\ the\ build\ logs\ of\ dependencies=\u4f9d\u5b58\u3057\u3066\u3044\u308b\u4e0a\u6d41\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u30d3\u30eb\u30c9\u3092\u4fdd\u5b58 diff --git a/core/src/main/resources/hudson/tasks/Fingerprinter/config_nl.properties b/core/src/main/resources/hudson/tasks/Fingerprinter/config_nl.properties index 7db927265a962639324bdd0190fd05e5e0e45027..91bc5013c6a46152d7466d05bca3347591366c85 100644 --- a/core/src/main/resources/hudson/tasks/Fingerprinter/config_nl.properties +++ b/core/src/main/resources/hudson/tasks/Fingerprinter/config_nl.properties @@ -1,6 +1,6 @@ # The MIT License # -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:sorokh +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:sorokh # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -22,7 +22,6 @@ description= \ Je kunt jokerkarakters zoals in 'module/dist/**/*.zip' gebruiken. \ - Zie \ - de @includes mogelijkheid van Ant bestandsbundels voor het correcte \ + Zie de @includes mogelijkheid van Ant bestandsbundels voor het correcte \ formaat. \ - De basisfolder is de werkplaats. \ No newline at end of file + De basisfolder is de werkplaats. diff --git a/core/src/main/resources/hudson/tasks/Fingerprinter/config_pt_BR.properties b/core/src/main/resources/hudson/tasks/Fingerprinter/config_pt_BR.properties index 698d1006380ac8352abf5fccd7abb20ca36c345f..5da68bc776c6535e9d074807296ffbc39015db90 100644 --- a/core/src/main/resources/hudson/tasks/Fingerprinter/config_pt_BR.properties +++ b/core/src/main/resources/hudson/tasks/Fingerprinter/config_pt_BR.properties @@ -1,6 +1,6 @@ # The MIT License # -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Reginaldo L. Russinholi +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Reginaldo L. Russinholi # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -21,6 +21,8 @@ # THE SOFTWARE. description=Pode usar caracteres coringas como em ''module/dist/**/*.zip''. \ - Veja \ - o Fileset @includes do Ant para o formato exato. \ - O diret\u00F3rio base \u00E9 o workspace. + Veja o Fileset @includes do Ant para o formato exato. \ + O diret\u00F3rio base \u00E9 o workspace. +Keep\ the\ build\ logs\ of\ dependencies=Manter os 'logs' de construção das dependências +Files\ to\ fingerprint=Arquivos para gerar assinatura +Fingerprint\ all\ archived\ artifacts=Criar assinatura para todos os artefatos arquivados diff --git a/core/src/main/resources/hudson/tasks/Fingerprinter/config_ru.properties b/core/src/main/resources/hudson/tasks/Fingerprinter/config_ru.properties index 6e926cf7507f2058a3072e6c6ed5a81a0b2cf7f4..14350bb59ad477aba6fadb6b504d72a3948a5cc5 100644 --- a/core/src/main/resources/hudson/tasks/Fingerprinter/config_ru.properties +++ b/core/src/main/resources/hudson/tasks/Fingerprinter/config_ru.properties @@ -1,6 +1,6 @@ # The MIT License # -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Mike Salnikov +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Mike Salnikov # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -22,9 +22,9 @@ Files\ to\ fingerprint=\u0424\u0430\u0439\u043b\u044b \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043e\u0442\u043f\u0435\u0447\u0430\u0442\u043a\u043e\u0432 description=\u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0448\u0430\u0431\u043b\u043e\u043d\u044b, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, ''module/dist/**/*.zip''. \ - \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435 \ + \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435 \ @includes \u0434\u043b\u044f \u043d\u0430\u0431\u043e\u0440\u043e\u0432 \u0444\u0430\u0439\u043b\u043e\u0432 Ant. \ - \u0411\u0430\u0437\u043e\u0432\u043e\u0439 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0435\u0439 \u0434\u043b\u044f \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0440\u0430\u0431\u043e\u0447\u0430\u044f \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f. + \u0411\u0430\u0437\u043e\u0432\u043e\u0439 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0435\u0439 \u0434\u043b\u044f \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0440\u0430\u0431\u043e\u0447\u0430\u044f \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f. Fingerprint\ all\ archived\ artifacts=\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u043e\u0442\u043f\u0435\u0447\u0430\u0442\u043a\u0438 \u0432\u0441\u0435\u0445 \u0430\u0440\u0445\u0438\u0432\u0438\u0440\u0443\u0435\u043c\u044b\u0445 \u043e\u0442\u043f\u0435\u0447\u0430\u0442\u043a\u043e\u0432 Keep\ the\ build\ logs\ of\ dependencies=\u0421\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c \u0436\u0443\u0440\u043d\u0430\u043b \u0441\u0431\u043e\u0440\u043a\u0438 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439 diff --git a/core/src/main/resources/hudson/tasks/Fingerprinter/config_tr.properties b/core/src/main/resources/hudson/tasks/Fingerprinter/config_tr.properties index a4cc373b415eea3e296409edddcbdce13def2f64..b3c61c4098e7e5efbce25737b4399a7adf7058c5 100644 --- a/core/src/main/resources/hudson/tasks/Fingerprinter/config_tr.properties +++ b/core/src/main/resources/hudson/tasks/Fingerprinter/config_tr.properties @@ -1,6 +1,6 @@ # The MIT License # -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Oguz Dag +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Oguz Dag # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -20,7 +20,7 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Files\ to\ fingerprint=Parmakizi kaydedilecek dosyalar -description=a\u00e7\u0131klama -Fingerprint\ all\ archived\ artifacts=T\u00fcm ar\u015fivlenmi\u015f artefaktlar\u0131n parmakizini kaydet -Keep\ the\ build\ logs\ of\ dependencies=Ba\u011f\u0131ml\u0131l\u0131klar\u0131n yap\u0131land\u0131rma loglar\u0131n\u0131 sakla +Files\ to\ fingerprint=Parmakizi kaydedilecek dosyalar +#description=a\u00e7\u0131klama +Fingerprint\ all\ archived\ artifacts=T\u00fcm ar\u015fivlenmi\u015f artefaktlar\u0131n parmakizini kaydet +Keep\ the\ build\ logs\ of\ dependencies=Ba\u011f\u0131ml\u0131l\u0131klar\u0131n yap\u0131land\u0131rma loglar\u0131n\u0131 sakla diff --git a/core/src/main/resources/hudson/tasks/JavadocArchiver/config.jelly b/core/src/main/resources/hudson/tasks/JavadocArchiver/config.jelly index 99be43db49b1c9cb87c618f98578efcf4e27547b..ba777ec44eadbd5f386439d2464e784c3edb6697 100644 --- a/core/src/main/resources/hudson/tasks/JavadocArchiver/config.jelly +++ b/core/src/main/resources/hudson/tasks/JavadocArchiver/config.jelly @@ -26,7 +26,7 @@ THE SOFTWARE. + checkUrl="'descriptorByName/JavadocArchiver/check?value='+encodeURIComponent(this.value)"/> diff --git a/core/src/main/resources/hudson/tasks/JavadocArchiver/config_da.properties b/core/src/main/resources/hudson/tasks/JavadocArchiver/config_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..291b846cf816247eaafa6544d1a8a188ec5f44a8 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/JavadocArchiver/config_da.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Javadoc\ directory=Javadoc direktorie +description=Direktorie relativt til roden af arbejdsomr\u00e5det, s\u00e5som ''mitprojekt/byg/javadoc'' +Retain\ Javadoc\ for\ each\ successful\ build=Gem Javadoc for hvert succesfuldt byg diff --git a/core/src/main/resources/hudson/tasks/JavadocArchiver/config_de.properties b/core/src/main/resources/hudson/tasks/JavadocArchiver/config_de.properties index db1e9c2492f012f97eab3c4892db364d1d22b0c8..35b3037f6e199ad7d7ffd4e10b37a7e030c8dfac 100644 --- a/core/src/main/resources/hudson/tasks/JavadocArchiver/config_de.properties +++ b/core/src/main/resources/hudson/tasks/JavadocArchiver/config_de.properties @@ -20,6 +20,6 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Javadoc\ directory=Javadoc-Verzeichnis -description=Javadoc-Verzeichnis, relativ zum Arbeitsbereich, z.B. 'myproject/build/javadoc'. -Retain\ javadoc\ for\ each\ successful\ build=Javadocs für alle erfolgreichen Builds aufbewahren. +Javadoc\ directory=Javadoc-Verzeichnis +description=Javadoc-Verzeichnis, relativ zum Arbeitsbereich, z.B. 'myproject/build/javadoc'. +Retain\ Javadoc\ for\ each\ successful\ build=Javadocs für alle erfolgreichen Builds aufbewahren. diff --git a/core/src/main/resources/hudson/tasks/JavadocArchiver/config_es.properties b/core/src/main/resources/hudson/tasks/JavadocArchiver/config_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..0540d8746fa3dd4d0b779c173e9c23700ecda02b --- /dev/null +++ b/core/src/main/resources/hudson/tasks/JavadocArchiver/config_es.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +description=Directorio relativo al ''workspace'' del proyecto, ejemplo: ''myproject/build/javadoc'' +Javadoc\ directory=Directorio para los javadoc +Retain\ Javadoc\ for\ each\ successful\ build=Conservar los javadoc para todas las ejecuciones correctas diff --git a/core/src/main/resources/hudson/tasks/JavadocArchiver/config_fr.properties b/core/src/main/resources/hudson/tasks/JavadocArchiver/config_fr.properties index 4894aa196a4c9ffcfaca423e4c6beb74abfc5d48..9eb7380c34b4b9312aba8ca85ff061c79def5d54 100644 --- a/core/src/main/resources/hudson/tasks/JavadocArchiver/config_fr.properties +++ b/core/src/main/resources/hudson/tasks/JavadocArchiver/config_fr.properties @@ -20,6 +20,6 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Javadoc\ directory=Répertoire des javadocs -description=Répertoire relatif à la racine du répertoire de travail, par exemple ''myproject/build/javadoc'' +Javadoc\ directory=Répertoire des javadocs +description=Répertoire relatif à la racine du répertoire de travail, par exemple ''myproject/build/javadoc'' Retain\ Javadoc\ for\ each\ successful\ build=Conserve les javadocs à chaque build qui passe avec succès diff --git a/core/src/main/resources/hudson/tasks/JavadocArchiver/config_ja.properties b/core/src/main/resources/hudson/tasks/JavadocArchiver/config_ja.properties index cd99ab3e15d88f51cb1ef9e0696e6403718ac8eb..b1bff1f5469b4bcc7c0f0af0bad91a5b3ea362c6 100644 --- a/core/src/main/resources/hudson/tasks/JavadocArchiver/config_ja.properties +++ b/core/src/main/resources/hudson/tasks/JavadocArchiver/config_ja.properties @@ -20,6 +20,6 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Javadoc\ directory=Javadoc\u30c7\u30a3\u30ec\u30af\u30c8\u30ea -description=Javadoc\u304c\u51fa\u529b\u3055\u308c\u308b\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092\u30ef\u30fc\u30af\u30b9\u30da\u30fc\u30b9\u304b\u3089\u306e\u76f8\u5bfe\u30d1\u30b9\u3067\u3002\u4f8b\uff1amyproject/build/javadoc -Retain\ javadoc\ for\ each\ successful\ build=\u6210\u529f\u3057\u305f\u30d3\u30eb\u30c9\u3054\u3068\u306bJavadoc\u3092\u4fdd\u5b58 \ No newline at end of file +Javadoc\ directory=Javadoc\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA +description=Javadoc\u304C\u51FA\u529B\u3055\u308C\u308B\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3092\u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9\u304B\u3089\u306E\u76F8\u5BFE\u30D1\u30B9\u3067\u3002\u4F8B\uFF1Amyproject/build/javadoc +Retain\ Javadoc\ for\ each\ successful\ build=\u6210\u529F\u3057\u305F\u30D3\u30EB\u30C9\u3054\u3068\u306BJavadoc\u3092\u4FDD\u5B58 diff --git a/core/src/main/resources/hudson/tasks/JavadocArchiver/config_pt_BR.properties b/core/src/main/resources/hudson/tasks/JavadocArchiver/config_pt_BR.properties index aee67c25550b7e5fba99a3095da71d9066e6261e..08ca6f3f86c1883bba49bc84a083beb3b6b3bcf3 100644 --- a/core/src/main/resources/hudson/tasks/JavadocArchiver/config_pt_BR.properties +++ b/core/src/main/resources/hudson/tasks/JavadocArchiver/config_pt_BR.properties @@ -20,5 +20,6 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -description=Diret\u00F3rio relativo \u00E0 raiz do workspace, tal como 'meuprojeto/construcao/javadoc' -keepAll=Manter sa\u00EDda de javadoc para todas as constru\u00E7\u00F5es de sucesso \ No newline at end of file +description=Diret\u00F3rio relativo \u00E0 raiz do workspace, tal como 'meuprojeto/construcao/javadoc' +Retain\ Javadoc\ for\ each\ successful\ build= +Javadoc\ directory= diff --git a/core/src/main/resources/hudson/tasks/JavadocArchiver/config_tr.properties b/core/src/main/resources/hudson/tasks/JavadocArchiver/config_tr.properties index 1ca3bb5e51a7e4e2d4dad7b59616f029148bd3db..813cd96a7f44361ea604cda4909724693585c562 100644 --- a/core/src/main/resources/hudson/tasks/JavadocArchiver/config_tr.properties +++ b/core/src/main/resources/hudson/tasks/JavadocArchiver/config_tr.properties @@ -20,6 +20,6 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Javadoc\ directory=Javadoc dizini -description=a\u00e7\u0131klama -Retain\ javadoc\ for\ each\ successful\ build=Her ba\u015far\u0131l\u0131 yap\u0131land\u0131rma i\u00e7in javadoc tut +Javadoc\ directory=Javadoc dizini +description=a\u00e7\u0131klama +Retain\ javadoc\ for\ each\ successful\ build=Her ba\u015far\u0131l\u0131 yap\u0131land\u0131rma i\u00e7in javadoc tut diff --git a/core/src/main/resources/hudson/tasks/LogRotator/config.jelly b/core/src/main/resources/hudson/tasks/LogRotator/config.jelly index dedcbff5f6e531b3e58b28c779d1720cf7f1a925..3194d47512a5264e70db9d2af9455ff8ab4d75d9 100644 --- a/core/src/main/resources/hudson/tasks/LogRotator/config.jelly +++ b/core/src/main/resources/hudson/tasks/LogRotator/config.jelly @@ -25,12 +25,24 @@ THE SOFTWARE. - + - + - \ No newline at end of file + + + + + + + + + diff --git a/core/src/main/resources/hudson/tasks/LogRotator/config_da.properties b/core/src/main/resources/hudson/tasks/LogRotator/config_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..ba9c7e5c0ad164ae692a28a530074d8ce148f1b0 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/LogRotator/config_da.properties @@ -0,0 +1,32 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Max\ \#\ of\ builds\ to\ keep\ with\ artifacts=Maks. # byg for hvilket der skal gemmes artifakter +if\ not\ empty,\ artifacts\ from\ builds\ older\ than\ this\ number\ of\ days\ will\ be\ deleted,\ but\ the\ logs,\ history,\ reports,\ etc\ for\ the\ build\ will\ be\ kept=\ +hvis udfyldt vil artifakter fra byg \u00e6ldre end dette antal dage blive slettet, men byggelogs, historik, rapporter, osv. for bygget vil blive gemt +Days\ to\ keep\ artifacts=Dage artifakter skal gemmes +Max\ \#\ of\ builds\ to\ keep=Maks. # byg der skal gemmes +if\ not\ empty,\ only\ up\ to\ this\ number\ of\ build\ records\ are\ kept=\ +hvis udfyldt vil kun dette antal byg blive gemt +Days\ to\ keep\ builds=Dage byg skal gemmes +if\ not\ empty,\ build\ records\ are\ only\ kept\ up\ to\ this\ number\ of\ days=hvis udfyldt vil byggelogs kun blive gemt i dette antal dage +if\ not\ empty,\ only\ up\ to\ this\ number\ of\ builds\ have\ their\ artifacts\ retained=hvis udfyldt vil artifakter kun blive gemt for dette antal byg diff --git a/core/src/main/resources/hudson/tasks/LogRotator/config_de.properties b/core/src/main/resources/hudson/tasks/LogRotator/config_de.properties index 6b0a18892475afcf6aa2c5ccd7c7ade2a6ec6b31..8630c7710a1079cf63a6920aa902ed2af0858b33 100644 --- a/core/src/main/resources/hudson/tasks/LogRotator/config_de.properties +++ b/core/src/main/resources/hudson/tasks/LogRotator/config_de.properties @@ -21,6 +21,17 @@ # THE SOFTWARE. Days\ to\ keep\ builds=Anzahl der Tage, die Builds aufbewahrt werden -if\ not\ empty,\ build\ records\ are\ only\ kept\ up\ to\ this\ number\ of\ days=Nicht-leere Builds werden nur bis zu dieser Anzahl an Tagen aufbewahrt. +if\ not\ empty,\ build\ records\ are\ only\ kept\ up\ to\ this\ number\ of\ days=\ + (Optional) Builds werden nur bis zu diesem Alter in Tagen aufbewahrt. + Max\ \#\ of\ builds\ to\ keep=Maximale Anzahl an Builds, die aufbewahrt werden -if\ not\ empty,\ only\ up\ to\ this\ number\ of\ build\ records\ are\ kept=Nicht-leere Builds werden nur bis zu dieser Anzahl aufbewahrt. +if\ not\ empty,\ only\ up\ to\ this\ number\ of\ build\ records\ are\ kept=\ + (Optional) Builds werden nur bis zu diesem Alter in Builds aufbewahrt. + +Days\ to\ keep\ artifacts=Anzahl der Tage, die Artefakte aufbewahrt werden +if\ not\ empty,\ artifacts\ from\ builds\ older\ than\ this\ number\ of\ days\ will\ be\ deleted,\ but\ the\ logs,\ history,\ reports,\ etc\ for\ the\ build\ will\ be\ kept=\ + (Optional) Artefakte werden nur bis zu diesem Alter in Tagen aufbewahrt. Protokolle, Verlaufsdaten, Berichte usw. eines Builds werden jedoch weiter behalten. + +Max\ #\ of\ builds\ to\ keep\ with\ artifacts=Maximale Anzahl an Builds mit Artefakten, die aufbewahrt werden +if\ not\ empty,\ only\ up\ to\ this\ number\ of\ builds\ have\ their\ artifacts\ retained=\ + (Optional) Artefakte werden nur bis zu diesem Alter in Builds aufbewahrt. Protokolle, Verlaufsdaten, Berichte usw. eines Builds werden jedoch weiter behalten. diff --git a/core/src/main/resources/hudson/tasks/LogRotator/config_es.properties b/core/src/main/resources/hudson/tasks/LogRotator/config_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..dfec0d762525405a156da1fc5586597818a7b1b4 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/LogRotator/config_es.properties @@ -0,0 +1,32 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Days\ to\ keep\ builds=Numero de dias para mantener ejecuciones de proyectos +if\ not\ empty,\ build\ records\ are\ only\ kept\ up\ to\ this\ number\ of\ days=si no está vacío, sólo se mantendrán las ejecuciones con una edad inferior a este número de días +Max\ \#\ of\ builds\ to\ keep=Número máximo de ejecuciones para guardar +if\ not\ empty,\ only\ up\ to\ this\ number\ of\ build\ records\ are\ kept=si no está vacío, sólo se guardarán un número de ejecuciones inferior a este valor + +Max\ \#\ of\ builds\ to\ keep\ with\ artifacts=Número máximo de ejecuciones con artefactos a guardar. +Days\ to\ keep\ artifacts=Número máximo de días para conservar los artefactos. +if\ not\ empty,\ only\ up\ to\ this\ number\ of\ builds\ have\ their\ artifacts\ retained=si no está vacío, sólo las ejecuciones inferiores a este número guardarán artefactos + +if\ not\ empty,\ artifacts\ from\ builds\ older\ than\ this\ number\ of\ days\ will\ be\ deleted,\ but\ the\ logs,\ history,\ reports,\ etc\ for\ the\ build\ will\ be\ kept=si no está vacío, los artefactos de las ejecuciones más viejas que este número de días serán borrados, pero se mantendrán los logs, historia, informes, etc. diff --git a/core/src/main/resources/hudson/tasks/LogRotator/config_it.properties b/core/src/main/resources/hudson/tasks/LogRotator/config_it.properties new file mode 100644 index 0000000000000000000000000000000000000000..211f3cf836a97dcf9c5428df9fe28645776c7546 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/LogRotator/config_it.properties @@ -0,0 +1,27 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Days\ to\ keep\ artifacts=Giorni per cui mantenere gli artifact +Days\ to\ keep\ builds=Giorni per cui mantenere build +Max\ #\ of\ builds\ to\ keep=Massimo # di build da mantenere +if\ not\ empty,\ build\ records\ are\ only\ kept\ up\ to\ this\ number\ of\ days=Se non \u00E8 vuoto, le registrazione delle build vengono mantenute solo fino al numero di giorni indicato +if\ not\ empty,\ only\ up\ to\ this\ number\ of\ build\ records\ are\ kept=Se non \u00E8 vuoto, le build vengono mantenute solo fino al numero indicato diff --git a/core/src/main/resources/hudson/tasks/LogRotator/config_ja.properties b/core/src/main/resources/hudson/tasks/LogRotator/config_ja.properties index 09d9fa741aeb1a1843c852109b641bfe02b28007..801849f03fc74ea35811359855831cb83f5e4898 100644 --- a/core/src/main/resources/hudson/tasks/LogRotator/config_ja.properties +++ b/core/src/main/resources/hudson/tasks/LogRotator/config_ja.properties @@ -1,6 +1,6 @@ # The MIT License # -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -20,9 +20,15 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Days\ to\ keep\ builds=\u30d3\u30eb\u30c9\u306e\u4fdd\u5b58\u65e5\u6570 +Days\ to\ keep\ builds=\u30D3\u30EB\u30C9\u306E\u4FDD\u5B58\u65E5\u6570 if\ not\ empty,\ build\ records\ are\ only\ kept\ up\ to\ this\ number\ of\ days=\ -\u7a7a\u6b04\u3067\u306a\u3051\u308c\u3070\u3001\u30d3\u30eb\u30c9\u306e\u8a18\u9332\u306f\u3053\u306e\u65e5\u6570\u3060\u3051\u4fdd\u5b58\u3055\u308c\u307e\u3059 -Max\ \#\ of\ builds\ to\ keep=\u30d3\u30eb\u30c9\u306e\u4fdd\u5b58\u6700\u5927\u6570 + \u30D3\u30EB\u30C9\u306E\u8A18\u9332\u3092\u3053\u306E\u65E5\u6570\u3060\u3051\u4FDD\u5B58\u3057\u307E\u3059 +Max\ \#\ of\ builds\ to\ keep=\u30D3\u30EB\u30C9\u306E\u4FDD\u5B58\u6700\u5927\u6570 if\ not\ empty,\ only\ up\ to\ this\ number\ of\ build\ records\ are\ kept=\ -\u7a7a\u6b04\u3067\u306a\u3051\u308c\u3070\u3001\u30d3\u30eb\u30c9\u306e\u8a18\u9332\u306f\u3053\u306e\u6570\u3060\u3051\u4fdd\u5b58\u3055\u308c\u307e\u3059 + \u30D3\u30EB\u30C9\u306E\u8A18\u9332\u3092\u3053\u306E\u6570\u3060\u3051\u4FDD\u5B58\u3057\u307E\u3059 +Days\ to\ keep\ artifacts=\u6210\u679C\u7269\u306E\u4FDD\u5B58\u65E5\u6570 +if\ not\ empty,\ artifacts\ from\ builds\ older\ than\ this\ number\ of\ days\ will\ be\ deleted,\ but\ the\ logs,\ history,\ reports,\ etc\ for\ the\ build\ will\ be\ kept=\ + \u3053\u306E\u65E5\u6570\u3088\u308A\u53E4\u3044\u30D3\u30EB\u30C9\u306E\u6210\u679C\u7269\u306F\u524A\u9664\u3055\u308C\u307E\u3059\u304C\u3001\u305D\u306E\u30D3\u30EB\u30C9\u306E\u30ED\u30B0\u3001\u5909\u66F4\u5C65\u6B74\u3001\u30EC\u30DD\u30FC\u30C8\u306A\u3069\u306F\u4FDD\u5B58\u3055\u308C\u307E\u3059\u3002 +Max\ \#\ of\ builds\ to\ keep\ with\ artifacts=\u6210\u679C\u7269\u306E\u4FDD\u5B58\u6700\u5927\u30D3\u30EB\u30C9\u6570 +if\ not\ empty,\ only\ up\ to\ this\ number\ of\ builds\ have\ their\ artifacts\ retained=\ + \u3053\u306E\u30D3\u30EB\u30C9\u6570\u5206\u306E\u6210\u679C\u7269\u3092\u4FDD\u5B58\u3057\u307E\u3059 \ No newline at end of file diff --git a/core/src/main/resources/hudson/tasks/LogRotator/config_pt_BR.properties b/core/src/main/resources/hudson/tasks/LogRotator/config_pt_BR.properties index 3c86daa72bfc0dbd1b9b3de12de8c4d03a54a604..e882a0d5e3c2b83b21aaddeeb4bc2c136ef0a8f9 100644 --- a/core/src/main/resources/hudson/tasks/LogRotator/config_pt_BR.properties +++ b/core/src/main/resources/hudson/tasks/LogRotator/config_pt_BR.properties @@ -24,3 +24,7 @@ Days\ to\ keep\ builds=Dias para manter as contru\u00E7\u00F5es if\ not\ empty,\ build\ records\ are\ only\ kept\ up\ to\ this\ number\ of\ days=se n\u00E3o estiver vazio, registros de constru\u00E7\u00E3o s\u00E3o apenas mantidos para este n\u00FAmero de dias Max\ \#\ of\ builds\ to\ keep=# m\u00E1ximo de constru\u00E7\u00F5es para manter if\ not\ empty,\ only\ up\ to\ this\ number\ of\ build\ records\ are\ kept=se n\u00E3o estiver vazio, apenas at\u00E9 este n\u00FAmero de registros de constru\u00E7\u00E3o s\u00E3o mantidos +Days\ to\ keep\ artifacts= +Max\ \#\ of\ builds\ to\ keep\ with\ artifacts= +if\ not\ empty,\ artifacts\ from\ builds\ older\ than\ this\ number\ of\ days\ will\ be\ deleted,\ but\ the\ logs,\ history,\ reports,\ etc\ for\ the\ build\ will\ be\ kept= +if\ not\ empty,\ only\ up\ to\ this\ number\ of\ builds\ have\ their\ artifacts\ retained= diff --git a/core/src/main/resources/hudson/tasks/Mailer/UserProperty/config_da.properties b/core/src/main/resources/hudson/tasks/Mailer/UserProperty/config_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..9eecf8faab9f80f3c79311795a95ce97bf58c940 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/Mailer/UserProperty/config_da.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +description=Din e-mail adresse, s\u00e5som knupouls@gmail.com +E-mail\ address=E-mail adresse diff --git a/core/src/main/resources/hudson/tasks/Mailer/UserProperty/config_es.properties b/core/src/main/resources/hudson/tasks/Mailer/UserProperty/config_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..fc65f8332963a10228fb23cce1e1755be03d1749 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/Mailer/UserProperty/config_es.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +description=Tu dirección de correo. Ejemplo: joe.chin@sun.com +E-mail\ address=Direccion de correo diff --git a/core/src/main/resources/hudson/tasks/Mailer/UserProperty/config_ja.properties b/core/src/main/resources/hudson/tasks/Mailer/UserProperty/config_ja.properties index 883df7cc761f1efda58e874bb521a9585c2af4bc..ffee7ea01c9dd3551a4ac7dac6e94f15eda26aa0 100644 --- a/core/src/main/resources/hudson/tasks/Mailer/UserProperty/config_ja.properties +++ b/core/src/main/resources/hudson/tasks/Mailer/UserProperty/config_ja.properties @@ -20,5 +20,5 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -E-mail\ address=\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9 -description=\u8aac\u660e +E-mail\ address=\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9 +description=joe.chin@sun.com\u306E\u3088\u3046\u306A\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9 diff --git a/core/src/main/resources/hudson/tasks/Mailer/UserProperty/config_sv_SE.properties b/core/src/main/resources/hudson/tasks/Mailer/UserProperty/config_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..2a93dcdcafbf1b2528fba4f48dd6a325b7553712 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/Mailer/UserProperty/config_sv_SE.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +E-mail\ address=E-postadress +description=Din e-postadress, t.ex. joe.chin@sun.com diff --git a/core/src/main/resources/hudson/tasks/Mailer/UserProperty/config_zh_CN.properties b/core/src/main/resources/hudson/tasks/Mailer/UserProperty/config_zh_CN.properties new file mode 100644 index 0000000000000000000000000000000000000000..9964925678b5ef94cd6a96b2c7ee6bcce0e2a2b5 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/Mailer/UserProperty/config_zh_CN.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +E-mail\ address=\u90ae\u4ef6\u5730\u5740 diff --git a/core/src/main/resources/hudson/tasks/Mailer/UserProperty/config_zh_TW.properties b/core/src/main/resources/hudson/tasks/Mailer/UserProperty/config_zh_TW.properties new file mode 100644 index 0000000000000000000000000000000000000000..abf4e848fb689170e97c29efe62a44f0acca0cda --- /dev/null +++ b/core/src/main/resources/hudson/tasks/Mailer/UserProperty/config_zh_TW.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +E-mail\ address=\u96FB\u5B50\u4FE1\u7BB1 diff --git a/core/src/main/resources/hudson/tasks/Mailer/config.jelly b/core/src/main/resources/hudson/tasks/Mailer/config.jelly index 84a7ab8a785c8bda6c7abc9464e1376124c25a0f..ca806221b57b32dcc743b8ba25a5e00bd237d237 100644 --- a/core/src/main/resources/hudson/tasks/Mailer/config.jelly +++ b/core/src/main/resources/hudson/tasks/Mailer/config.jelly @@ -23,10 +23,8 @@ THE SOFTWARE. --> - - + + @@ -37,4 +35,4 @@ THE SOFTWARE. /> - \ No newline at end of file + diff --git a/core/src/main/resources/hudson/tasks/Mailer/config.properties b/core/src/main/resources/hudson/tasks/Mailer/config.properties index 54c9a054114e055010f4fd7a01d75108d2896522..8abb553fa4282c3a42976c74201675e65a2fa041 100644 --- a/core/src/main/resources/hudson/tasks/Mailer/config.properties +++ b/core/src/main/resources/hudson/tasks/Mailer/config.properties @@ -1,6 +1,6 @@ # The MIT License # -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -20,4 +20,6 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -description=Whitespace-separated list of recipient addresses. E-mail will be sent when a build fails. +description=Whitespace-separated list of recipient addresses. May reference build \ + parameters like $PARAM. \ + E-mail will be sent when a build fails, becomes unstable or returns to stable. diff --git a/core/src/main/resources/hudson/tasks/Mailer/config_da.properties b/core/src/main/resources/hudson/tasks/Mailer/config_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..857e62d0be41680894843979a5e70197ea52c03e --- /dev/null +++ b/core/src/main/resources/hudson/tasks/Mailer/config_da.properties @@ -0,0 +1,27 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Send\ e-mail\ for\ every\ unstable\ build=Send e-mail for hvert ustabilt byg +Recipients=Modtagere +description=Mellemrumssepereret liste af modtageradresser. Kan benytte byggeparametre \ +s\u00e5ledes $PARAM. E-mail sendes n\u00e5r bygget fejler, bliver ustabilt eller bliver stabilt igen +Send\ separate\ e-mails\ to\ individuals\ who\ broke\ the\ build=Send seperat E-mail til de individuelle brugere der kn\u00e6kkede bygget diff --git a/core/src/main/resources/hudson/tasks/Mailer/config_es.properties b/core/src/main/resources/hudson/tasks/Mailer/config_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..5d494aecff674a94742f2675cf90da295a4ca6d8 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/Mailer/config_es.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +description=Lista de destinatarios separadas por un espacio en blanco. El correo será enviando siempre que una ejecución falle. +Send\ separate\ e-mails\ to\ individuals\ who\ broke\ the\ build=Enviar correos individualizados a las personas que rompan el proyecto +Send\ e-mail\ for\ every\ unstable\ build=Enviar correo para todos las ejecuciones con resultado inestable +Recipients=Destinatarios diff --git a/core/src/main/resources/hudson/tasks/Mailer/global.jelly b/core/src/main/resources/hudson/tasks/Mailer/global.jelly index db7003eb4061447e6b11e96d2e3f8c19eb4278e0..c5a95c18d6339b86c2f0fcf747f54e613acde5d8 100644 --- a/core/src/main/resources/hudson/tasks/Mailer/global.jelly +++ b/core/src/main/resources/hudson/tasks/Mailer/global.jelly @@ -24,53 +24,38 @@ THE SOFTWARE. - - - - - + + - - + + - - + + - - + + - - - + + - - + + - - + + - - + + + + + + - \ No newline at end of file + diff --git a/core/src/main/resources/hudson/tasks/Mailer/global_da.properties b/core/src/main/resources/hudson/tasks/Mailer/global_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..86ebc66d4ee8c4760f08547bcfb55056fcba8587 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/Mailer/global_da.properties @@ -0,0 +1,34 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Password=Adgangskode +E-mail\ Notification=E-mail p\u00e5mindelser +Default\ user\ e-mail\ suffix=Standard e-mail endelse +Use\ SSL=Brug SSL +SMTP\ Port=SMTP Port +Use\ SMTP\ Authentication=Benyt SMTP Authentificering +SMTP\ server=SMTP Server +User\ Name=Brugernavn +System\ Admin\ E-mail\ Address=Systemadministratorens E-mail adresse +Charset=Karakters\u00e6t +Test\ configuration\ by\ sending\ e-mail\ to\ System\ Admin\ Address=Test konfigurationen ved at sende en e-mail til systemadministratorens adresse +Hudson\ URL=Hudson URL diff --git a/core/src/main/resources/hudson/tasks/Mailer/global_es.properties b/core/src/main/resources/hudson/tasks/Mailer/global_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..a628bd98344699fe158e44bc1ad174221699be4a --- /dev/null +++ b/core/src/main/resources/hudson/tasks/Mailer/global_es.properties @@ -0,0 +1,34 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +E-mail\ Notification=Notificación por correo electrónico +SMTP\ server=Servidor de correo saliente (SMTP) +Default\ user\ e-mail\ suffix=sufijo de email por defecto +System\ Admin\ E-mail\ Address=Dirección del administrador +Hudson\ URL=Dirección web de Hudson +Use\ SMTP\ Authentication=Usar autenticación SMTP +User\ Name=Nombre de usuario +Password=Contraseña +Use\ SSL=Usar seguridad SSL +SMTP\ Port=Puerto de SMTP +Test\ configuration\ by\ sending\ e-mail\ to\ System\ Admin\ Address=Probar la configuración enviando un correo a la dirección del administrador +Charset=Juego de caracteres diff --git a/core/src/main/resources/hudson/tasks/Mailer/global_fr.properties b/core/src/main/resources/hudson/tasks/Mailer/global_fr.properties index 14fd79bde685368db9b982718bdac6297ec431a1..2b16bf501066dbb22f16af6f5c400666e2b9cf55 100644 --- a/core/src/main/resources/hudson/tasks/Mailer/global_fr.properties +++ b/core/src/main/resources/hudson/tasks/Mailer/global_fr.properties @@ -23,6 +23,7 @@ E-mail\ Notification=Notification par email Test\ configuration\ by\ sending\ e-mail\ to\ System\ Admin\ Address=Tester la configuration en envoyant un email à l''administrateur système. SMTP\ server=Serveur SMTP +Charset=Jeu de caract\u00E8res Default\ user\ e-mail\ suffix=Suffixe par défaut des emails des utilisateurs System\ Admin\ E-mail\ Address=Adresse email de l''administrateur système Hudson\ URL=URL de Hudson diff --git a/core/src/main/resources/hudson/tasks/Mailer/global_ja.properties b/core/src/main/resources/hudson/tasks/Mailer/global_ja.properties index 73ddedb04d5429d0c50bddfbfc72d03d2f5fc14d..62765baf5db15814bcc2bd6ce670e3802b5f9397 100644 --- a/core/src/main/resources/hudson/tasks/Mailer/global_ja.properties +++ b/core/src/main/resources/hudson/tasks/Mailer/global_ja.properties @@ -30,4 +30,5 @@ Use\ SMTP\ Authentication=SMTP\u8a8d\u8a3c User\ Name=\u30e6\u30fc\u30b6\u30fc\u540d Password=\u30d1\u30b9\u30ef\u30fc\u30c9 Use\ SSL=SSL -SMTP\ Port=SMTP\u30dd\u30fc\u30c8 \ No newline at end of file +SMTP\ Port=SMTP\u30dd\u30fc\u30c8 +Charset=\u6587\u5b57\u30bb\u30c3\u30c8 \ No newline at end of file diff --git a/core/src/main/resources/hudson/tasks/Mailer/global_nl.properties b/core/src/main/resources/hudson/tasks/Mailer/global_nl.properties index adb04d57d3266020844eb1a3f71de73bf5cf71cc..ed5084129d6a396c1038b3ca2cc9c4391fd313a5 100644 --- a/core/src/main/resources/hudson/tasks/Mailer/global_nl.properties +++ b/core/src/main/resources/hudson/tasks/Mailer/global_nl.properties @@ -22,10 +22,12 @@ E-mail\ Notification=E-mail Test\ configuration\ by\ sending\ e-mail\ to\ System\ Admin\ Address=Test configuratie door een e-mail te versturen naar de systeemadministrator +SMTP\ Port=SMTP Poort SMTP\ server=SMTP server Default\ user\ e-mail\ suffix=Standaard e-mail suffix System\ Admin\ E-mail\ Address=E-mail systeemadministrator Hudson\ URL=Hudson URL User\ Name=Naam gebruiker Password=Paswoord +Use\ SMTP\ Authentication=Gebruik SMTP Authenticatie Use\ SSL=Gebruik SSL diff --git a/core/src/main/resources/hudson/tasks/Mailer/global_pt_BR.properties b/core/src/main/resources/hudson/tasks/Mailer/global_pt_BR.properties index 9de388913612ea630399832e230d953acdb71279..6b1af8c8c9369754168a5aaf8ed135518b5f2b22 100644 --- a/core/src/main/resources/hudson/tasks/Mailer/global_pt_BR.properties +++ b/core/src/main/resources/hudson/tasks/Mailer/global_pt_BR.properties @@ -29,3 +29,6 @@ Hudson\ URL=URL do Hudson User\ Name=Nome do Usu\u00E1rio Password=Senha Use\ SSL=Usar SSL +SMTP\ Port= +Use\ SMTP\ Authentication= +Charset= diff --git a/core/src/main/resources/hudson/tasks/Mailer/global_ru.properties b/core/src/main/resources/hudson/tasks/Mailer/global_ru.properties index d3b14a7ae7da1f9d2d7088ba1734afe7caa27b2b..eabf822d02e320d81ee4c865d08e09cf61438951 100644 --- a/core/src/main/resources/hudson/tasks/Mailer/global_ru.properties +++ b/core/src/main/resources/hudson/tasks/Mailer/global_ru.properties @@ -22,6 +22,7 @@ E-mail\ Notification=\u0423\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0435 \u043f\u043e\u0447\u0442\u043e\u0439 Test\ configuration\ by\ sending\ e-mail\ to\ System\ Admin\ Address=\u041f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u043e\u0439 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0443 +SMTP\ Port=\u041F\u043E\u0440\u0442 SMTP SMTP\ server=\u0421\u0435\u0440\u0432\u0435\u0440 SMTP Default\ user\ e-mail\ suffix=\u0421\u0443\u0444\u0444\u0438\u043a\u0441 \u0430\u0434\u0440\u0435\u0441\u0430 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e System\ Admin\ E-mail\ Address=\u0410\u0434\u0440\u0435\u0441 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430 @@ -29,4 +30,4 @@ Hudson\ URL=Hudson URL User\ Name=\u0418\u043c\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f Password=\u041f\u0430\u0440\u043e\u043b\u044c Use\ SSL=\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c SSL -Use\ SMTP\ Authentication=\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044e \u0434\u043b\u044f SMTP \ No newline at end of file +Use\ SMTP\ Authentication=\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044e \u0434\u043b\u044f SMTP diff --git a/core/src/main/resources/hudson/tasks/Mailer/global_zh_CN.properties b/core/src/main/resources/hudson/tasks/Mailer/global_zh_CN.properties new file mode 100644 index 0000000000000000000000000000000000000000..b3656ddff1a31037a750cf30fc1baa69cd643e1e --- /dev/null +++ b/core/src/main/resources/hudson/tasks/Mailer/global_zh_CN.properties @@ -0,0 +1,33 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +E-mail\ Notification=\u90ae\u4ef6\u901a\u77e5 +Test\ configuration\ by\ sending\ e-mail\ to\ System\ Admin\ Address=\u7528\u7cfb\u7edf\u7ba1\u7406\u5458\u6d4b\u8bd5\u90ae\u4ef6\u914d\u7f6e +SMTP\ server=SMTP\u670d\u52a1\u5668 +Default\ user\ e-mail\ suffix=\u7528\u6237\u9ed8\u8ba4\u90ae\u4ef6\u540e\u7f00 +System\ Admin\ E-mail\ Address=\u7cfb\u7edf\u7ba1\u7406\u5458\u90ae\u4ef6\u5730\u5740 +Hudson\ URL=Hudson URL +User\ Name=\u7528\u6237\u540d +Password=\u5bc6\u7801 +Use\ SSL=\u4f7f\u7528SSL\u534f\u8bae +Use\ SMTP\ Authentication=\u4f7f\u7528SMTP\u8ba4\u8bc1 +SMTP\ Port=SMTP\u7aef\u53e3 diff --git a/core/src/main/resources/hudson/tasks/Mailer/global_zh_TW.properties b/core/src/main/resources/hudson/tasks/Mailer/global_zh_TW.properties new file mode 100644 index 0000000000000000000000000000000000000000..0403fbcbb6c6475f69fdd2559062f27617c9f83e --- /dev/null +++ b/core/src/main/resources/hudson/tasks/Mailer/global_zh_TW.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Password=\u5BC6\u78BC +User\ Name=\u4F7F\u7528\u8005\u540D\u5B57 diff --git a/war/resources/help/tasks/mailer/admin-address.html b/core/src/main/resources/hudson/tasks/Mailer/help-adminAddress.html similarity index 100% rename from war/resources/help/tasks/mailer/admin-address.html rename to core/src/main/resources/hudson/tasks/Mailer/help-adminAddress.html diff --git a/war/resources/help/tasks/mailer/admin-address_de.html b/core/src/main/resources/hudson/tasks/Mailer/help-adminAddress_de.html similarity index 100% rename from war/resources/help/tasks/mailer/admin-address_de.html rename to core/src/main/resources/hudson/tasks/Mailer/help-adminAddress_de.html diff --git a/war/resources/help/tasks/mailer/admin-address_fr.html b/core/src/main/resources/hudson/tasks/Mailer/help-adminAddress_fr.html similarity index 100% rename from war/resources/help/tasks/mailer/admin-address_fr.html rename to core/src/main/resources/hudson/tasks/Mailer/help-adminAddress_fr.html diff --git a/war/resources/help/tasks/mailer/admin-address_ja.html b/core/src/main/resources/hudson/tasks/Mailer/help-adminAddress_ja.html similarity index 100% rename from war/resources/help/tasks/mailer/admin-address_ja.html rename to core/src/main/resources/hudson/tasks/Mailer/help-adminAddress_ja.html diff --git a/war/resources/help/tasks/mailer/admin-address_nl.html b/core/src/main/resources/hudson/tasks/Mailer/help-adminAddress_nl.html similarity index 100% rename from war/resources/help/tasks/mailer/admin-address_nl.html rename to core/src/main/resources/hudson/tasks/Mailer/help-adminAddress_nl.html diff --git a/core/src/main/resources/hudson/tasks/Mailer/help-adminAddress_pt_BR.html b/core/src/main/resources/hudson/tasks/Mailer/help-adminAddress_pt_BR.html new file mode 100644 index 0000000000000000000000000000000000000000..d723ff2bed4ec04c46aacd213733f249de422176 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/Mailer/help-adminAddress_pt_BR.html @@ -0,0 +1,5 @@ +
    + E-mails de notificação do Hudson para os proprietários do projeto serão enviados + com este endereço no remetente. Pode ser apenas + "foo@acme.org" ou poderia ser algo como "Servidor Hudson <foo@acme.org>" +
    \ No newline at end of file diff --git a/war/resources/help/tasks/mailer/admin-address_ru.html b/core/src/main/resources/hudson/tasks/Mailer/help-adminAddress_ru.html similarity index 100% rename from war/resources/help/tasks/mailer/admin-address_ru.html rename to core/src/main/resources/hudson/tasks/Mailer/help-adminAddress_ru.html diff --git a/war/resources/help/tasks/mailer/admin-address_tr.html b/core/src/main/resources/hudson/tasks/Mailer/help-adminAddress_tr.html similarity index 100% rename from war/resources/help/tasks/mailer/admin-address_tr.html rename to core/src/main/resources/hudson/tasks/Mailer/help-adminAddress_tr.html diff --git a/core/src/main/resources/hudson/tasks/Mailer/help-adminAddress_zh_CN.html b/core/src/main/resources/hudson/tasks/Mailer/help-adminAddress_zh_CN.html new file mode 100644 index 0000000000000000000000000000000000000000..426763aa38b99fd9bd7b6938d7556c1a466d1aed --- /dev/null +++ b/core/src/main/resources/hudson/tasks/Mailer/help-adminAddress_zh_CN.html @@ -0,0 +1,3 @@ +
    + Hudson将用这个地å€å‘é€é€šçŸ¥é‚®ä»¶ç»™é¡¹ç›®æ‹¥æœ‰è€….这里å¯ä»¥å¡«å†™"foo@acme.org"或者åƒ"Hudson Daemon <foo@acme.org>"å½¢å¼çš„内容. +
    \ No newline at end of file diff --git a/war/resources/help/tasks/mailer/default-suffix.html b/core/src/main/resources/hudson/tasks/Mailer/help-defaultSuffix.html similarity index 100% rename from war/resources/help/tasks/mailer/default-suffix.html rename to core/src/main/resources/hudson/tasks/Mailer/help-defaultSuffix.html diff --git a/war/resources/help/tasks/mailer/default-suffix_de.html b/core/src/main/resources/hudson/tasks/Mailer/help-defaultSuffix_de.html similarity index 100% rename from war/resources/help/tasks/mailer/default-suffix_de.html rename to core/src/main/resources/hudson/tasks/Mailer/help-defaultSuffix_de.html diff --git a/war/resources/help/tasks/mailer/default-suffix_fr.html b/core/src/main/resources/hudson/tasks/Mailer/help-defaultSuffix_fr.html similarity index 100% rename from war/resources/help/tasks/mailer/default-suffix_fr.html rename to core/src/main/resources/hudson/tasks/Mailer/help-defaultSuffix_fr.html diff --git a/war/resources/help/tasks/mailer/default-suffix_ja.html b/core/src/main/resources/hudson/tasks/Mailer/help-defaultSuffix_ja.html similarity index 100% rename from war/resources/help/tasks/mailer/default-suffix_ja.html rename to core/src/main/resources/hudson/tasks/Mailer/help-defaultSuffix_ja.html diff --git a/war/resources/help/tasks/mailer/default-suffix_nl.html b/core/src/main/resources/hudson/tasks/Mailer/help-defaultSuffix_nl.html similarity index 100% rename from war/resources/help/tasks/mailer/default-suffix_nl.html rename to core/src/main/resources/hudson/tasks/Mailer/help-defaultSuffix_nl.html diff --git a/core/src/main/resources/hudson/tasks/Mailer/help-defaultSuffix_pt_BR.html b/core/src/main/resources/hudson/tasks/Mailer/help-defaultSuffix_pt_BR.html new file mode 100644 index 0000000000000000000000000000000000000000..c94b80d70c99c3b5e4c55604c98115662f155b34 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/Mailer/help-defaultSuffix_pt_BR.html @@ -0,0 +1,6 @@ +
    + Se os endereços de e-mails de usuários puderem ser computados automaticamente simplesmente adicionando um sufixo, + então especifique este sufixo. Caso contrário deixe-o em branco. Note que os usuários podem sempre sobrescrever + o endereço de e-mail seletivamente. Por exemplo, se este campo contiver @acme.org, + então o usuário foo por padrão terá o endereço de e-mail foo@acme.org +
    \ No newline at end of file diff --git a/war/resources/help/tasks/mailer/default-suffix_ru.html b/core/src/main/resources/hudson/tasks/Mailer/help-defaultSuffix_ru.html similarity index 100% rename from war/resources/help/tasks/mailer/default-suffix_ru.html rename to core/src/main/resources/hudson/tasks/Mailer/help-defaultSuffix_ru.html diff --git a/war/resources/help/tasks/mailer/default-suffix_tr.html b/core/src/main/resources/hudson/tasks/Mailer/help-defaultSuffix_tr.html similarity index 100% rename from war/resources/help/tasks/mailer/default-suffix_tr.html rename to core/src/main/resources/hudson/tasks/Mailer/help-defaultSuffix_tr.html diff --git a/core/src/main/resources/hudson/tasks/Mailer/help-defaultSuffix_zh_CN.html b/core/src/main/resources/hudson/tasks/Mailer/help-defaultSuffix_zh_CN.html new file mode 100644 index 0000000000000000000000000000000000000000..7f9fd08b7243887f05c90193f31928fbf1eba169 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/Mailer/help-defaultSuffix_zh_CN.html @@ -0,0 +1,4 @@ +
    + 如果用户邮件能够自动的指定åŽç¼€,那么在此处填写åŽç¼€.å¦åˆ™ä¸ç”¨å¡«å†™.注æ„,用户å¯ä»¥é€‰æ‹©æ€§çš„覆盖邮件地å€. + 例如,如果这里设定了@acme.org,那么用户foo的默认邮件地å€ä¸ºfoo@acme.org +
    \ No newline at end of file diff --git a/war/resources/help/tasks/mailer/smtp-port.html b/core/src/main/resources/hudson/tasks/Mailer/help-smtpPort.html similarity index 100% rename from war/resources/help/tasks/mailer/smtp-port.html rename to core/src/main/resources/hudson/tasks/Mailer/help-smtpPort.html diff --git a/core/src/main/resources/hudson/tasks/Mailer/help-smtpPort_de.html b/core/src/main/resources/hudson/tasks/Mailer/help-smtpPort_de.html new file mode 100644 index 0000000000000000000000000000000000000000..33b5dbf9d1737f5838a17ab9fa7a7d3d85a9d3a9 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/Mailer/help-smtpPort_de.html @@ -0,0 +1,4 @@ +
    + Portnummer des Mail-Servers. Lassen Sie das Feld frei, um den Standardport + des Protokolls zu verwenden. +
    \ No newline at end of file diff --git a/core/src/main/resources/hudson/tasks/Mailer/help-smtpPort_fr.html b/core/src/main/resources/hudson/tasks/Mailer/help-smtpPort_fr.html new file mode 100644 index 0000000000000000000000000000000000000000..a9873d7386d56a97fe1fc4eba4d135da82f901b0 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/Mailer/help-smtpPort_fr.html @@ -0,0 +1,3 @@ +
    + Le numéro de port du serveur mail. Laissez vide pour utiliser le numéro de port par défaut du protocole. +
    \ No newline at end of file diff --git a/war/resources/help/tasks/mailer/smtp-port_ja.html b/core/src/main/resources/hudson/tasks/Mailer/help-smtpPort_ja.html similarity index 100% rename from war/resources/help/tasks/mailer/smtp-port_ja.html rename to core/src/main/resources/hudson/tasks/Mailer/help-smtpPort_ja.html diff --git a/war/resources/help/tasks/mailer/smtp-port_nl.html b/core/src/main/resources/hudson/tasks/Mailer/help-smtpPort_nl.html similarity index 100% rename from war/resources/help/tasks/mailer/smtp-port_nl.html rename to core/src/main/resources/hudson/tasks/Mailer/help-smtpPort_nl.html diff --git a/war/resources/help/tasks/mailer/smtp-port_tr.html b/core/src/main/resources/hudson/tasks/Mailer/help-smtpPort_tr.html similarity index 100% rename from war/resources/help/tasks/mailer/smtp-port_tr.html rename to core/src/main/resources/hudson/tasks/Mailer/help-smtpPort_tr.html diff --git a/core/src/main/resources/hudson/tasks/Mailer/help-smtpPort_zh_CN.html b/core/src/main/resources/hudson/tasks/Mailer/help-smtpPort_zh_CN.html new file mode 100644 index 0000000000000000000000000000000000000000..fb89914a9717fccee706add15c70b390a9d10fad --- /dev/null +++ b/core/src/main/resources/hudson/tasks/Mailer/help-smtpPort_zh_CN.html @@ -0,0 +1,3 @@ +
    + 邮件æœåŠ¡å™¨ç«¯å£å·.ä¸å¡«å†™æ­¤é¡¹å°†ä½¿ç”¨å议默认端å£. +
    \ No newline at end of file diff --git a/war/resources/help/tasks/mailer/smtp-server.html b/core/src/main/resources/hudson/tasks/Mailer/help-smtpServer.html similarity index 100% rename from war/resources/help/tasks/mailer/smtp-server.html rename to core/src/main/resources/hudson/tasks/Mailer/help-smtpServer.html diff --git a/war/resources/help/tasks/mailer/smtp-server_de.html b/core/src/main/resources/hudson/tasks/Mailer/help-smtpServer_de.html similarity index 100% rename from war/resources/help/tasks/mailer/smtp-server_de.html rename to core/src/main/resources/hudson/tasks/Mailer/help-smtpServer_de.html diff --git a/war/resources/help/tasks/mailer/smtp-server_fr.html b/core/src/main/resources/hudson/tasks/Mailer/help-smtpServer_fr.html similarity index 100% rename from war/resources/help/tasks/mailer/smtp-server_fr.html rename to core/src/main/resources/hudson/tasks/Mailer/help-smtpServer_fr.html diff --git a/war/resources/help/tasks/mailer/smtp-server_ja.html b/core/src/main/resources/hudson/tasks/Mailer/help-smtpServer_ja.html similarity index 100% rename from war/resources/help/tasks/mailer/smtp-server_ja.html rename to core/src/main/resources/hudson/tasks/Mailer/help-smtpServer_ja.html diff --git a/war/resources/help/tasks/mailer/smtp-server_nl.html b/core/src/main/resources/hudson/tasks/Mailer/help-smtpServer_nl.html similarity index 100% rename from war/resources/help/tasks/mailer/smtp-server_nl.html rename to core/src/main/resources/hudson/tasks/Mailer/help-smtpServer_nl.html diff --git a/core/src/main/resources/hudson/tasks/Mailer/help-smtpServer_pt_BR.html b/core/src/main/resources/hudson/tasks/Mailer/help-smtpServer_pt_BR.html new file mode 100644 index 0000000000000000000000000000000000000000..344e9a602c134f9e7a5deb54d149564fa8252cfc --- /dev/null +++ b/core/src/main/resources/hudson/tasks/Mailer/help-smtpServer_pt_BR.html @@ -0,0 +1,10 @@ +
    + Nome do servidor de SMTP. Deixe em branco para usar o servidor padrão + (que normalmente está executando em localhost). + +

    + O Hudson usa o JavaMail para envier e-mails, e o JavaMail permite + que configurações adicionais sejam passadas como propriedades do sistema para o contêiner. + Veja + esta documentação para possíveis valores e efeitos. +

    \ No newline at end of file diff --git a/war/resources/help/tasks/mailer/smtp-server_ru.html b/core/src/main/resources/hudson/tasks/Mailer/help-smtpServer_ru.html similarity index 100% rename from war/resources/help/tasks/mailer/smtp-server_ru.html rename to core/src/main/resources/hudson/tasks/Mailer/help-smtpServer_ru.html diff --git a/war/resources/help/tasks/mailer/smtp-server_tr.html b/core/src/main/resources/hudson/tasks/Mailer/help-smtpServer_tr.html similarity index 100% rename from war/resources/help/tasks/mailer/smtp-server_tr.html rename to core/src/main/resources/hudson/tasks/Mailer/help-smtpServer_tr.html diff --git a/core/src/main/resources/hudson/tasks/Mailer/help-smtpServer_zh_CN.html b/core/src/main/resources/hudson/tasks/Mailer/help-smtpServer_zh_CN.html new file mode 100644 index 0000000000000000000000000000000000000000..f43ee9e789c01eac25c81be43ac4c5d0403dd676 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/Mailer/help-smtpServer_zh_CN.html @@ -0,0 +1,9 @@ +
    + 邮件æœåŠ¡å™¨çš„å称.ä¸å¡«æ­¤é¡¹åˆ™ä½¿ç”¨é»˜è®¤æœåŠ¡å™¨ + (默认æœåŠ¡å™¨é€šå¸¸æ˜¯è¿è¡Œåœ¨æœ¬åœ°) + +

    + Hudson使用JavaMailå‘é€e-mail,JavaMailå…许使用容器系统å‚数进行附加设置. + 请å‚阅 + 这个文档查找å¯ç”¨åˆ°çš„值. +

    \ No newline at end of file diff --git a/war/resources/help/tasks/mailer/url.html b/core/src/main/resources/hudson/tasks/Mailer/help-url.html similarity index 100% rename from war/resources/help/tasks/mailer/url.html rename to core/src/main/resources/hudson/tasks/Mailer/help-url.html diff --git a/war/resources/help/tasks/mailer/url_de.html b/core/src/main/resources/hudson/tasks/Mailer/help-url_de.html similarity index 100% rename from war/resources/help/tasks/mailer/url_de.html rename to core/src/main/resources/hudson/tasks/Mailer/help-url_de.html diff --git a/war/resources/help/tasks/mailer/url_fr.html b/core/src/main/resources/hudson/tasks/Mailer/help-url_fr.html similarity index 100% rename from war/resources/help/tasks/mailer/url_fr.html rename to core/src/main/resources/hudson/tasks/Mailer/help-url_fr.html diff --git a/war/resources/help/tasks/mailer/url_ja.html b/core/src/main/resources/hudson/tasks/Mailer/help-url_ja.html similarity index 100% rename from war/resources/help/tasks/mailer/url_ja.html rename to core/src/main/resources/hudson/tasks/Mailer/help-url_ja.html diff --git a/war/resources/help/tasks/mailer/url_nl.html b/core/src/main/resources/hudson/tasks/Mailer/help-url_nl.html similarity index 100% rename from war/resources/help/tasks/mailer/url_nl.html rename to core/src/main/resources/hudson/tasks/Mailer/help-url_nl.html diff --git a/core/src/main/resources/hudson/tasks/Mailer/help-url_pt_BR.html b/core/src/main/resources/hudson/tasks/Mailer/help-url_pt_BR.html new file mode 100644 index 0000000000000000000000000000000000000000..370345b0ba16234539e06567379e1a71f7821230 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/Mailer/help-url_pt_BR.html @@ -0,0 +1,9 @@ +
    + Opcionalmente especifique o endereço HTTP da instalação do Hudson, tal + como http://seuhost.seudominio/hudson/. Este valor é usado para + por links nos e-mails gerados pelo Hudson. + +

    + Isto é necessário porque o Hudson não pode confiavelmente detectar tal URL + de dentre dele mesmo. +

    \ No newline at end of file diff --git a/war/resources/help/tasks/mailer/url_ru.html b/core/src/main/resources/hudson/tasks/Mailer/help-url_ru.html similarity index 100% rename from war/resources/help/tasks/mailer/url_ru.html rename to core/src/main/resources/hudson/tasks/Mailer/help-url_ru.html diff --git a/war/resources/help/tasks/mailer/url_tr.html b/core/src/main/resources/hudson/tasks/Mailer/help-url_tr.html similarity index 100% rename from war/resources/help/tasks/mailer/url_tr.html rename to core/src/main/resources/hudson/tasks/Mailer/help-url_tr.html diff --git a/core/src/main/resources/hudson/tasks/Mailer/help-url_zh_CN.html b/core/src/main/resources/hudson/tasks/Mailer/help-url_zh_CN.html new file mode 100644 index 0000000000000000000000000000000000000000..dbd641a2e8105dd7403b575fb60ed98c343cb203 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/Mailer/help-url_zh_CN.html @@ -0,0 +1,7 @@ +
    + 此项是å¯é€‰çš„,指定安装Hudsonçš„HTTP地å€,例如http://yourhost.yourdomain/hudson/. + 这个值用æ¥åœ¨é‚®ä»¶ä¸­ç”Ÿäº§Hudson链接. + +

    + 此项是有必è¦çš„,因为Hudson无法探测到自己的URL地å€. +

    \ No newline at end of file diff --git a/war/resources/help/tasks/mailer/smtp-use-ssl.html b/core/src/main/resources/hudson/tasks/Mailer/help-useSsl.html similarity index 100% rename from war/resources/help/tasks/mailer/smtp-use-ssl.html rename to core/src/main/resources/hudson/tasks/Mailer/help-useSsl.html diff --git a/war/resources/help/tasks/mailer/smtp-use-ssl_de.html b/core/src/main/resources/hudson/tasks/Mailer/help-useSsl_de.html similarity index 100% rename from war/resources/help/tasks/mailer/smtp-use-ssl_de.html rename to core/src/main/resources/hudson/tasks/Mailer/help-useSsl_de.html diff --git a/war/resources/help/tasks/mailer/smtp-use-ssl_fr.html b/core/src/main/resources/hudson/tasks/Mailer/help-useSsl_fr.html similarity index 100% rename from war/resources/help/tasks/mailer/smtp-use-ssl_fr.html rename to core/src/main/resources/hudson/tasks/Mailer/help-useSsl_fr.html diff --git a/war/resources/help/tasks/mailer/smtp-use-ssl_ja.html b/core/src/main/resources/hudson/tasks/Mailer/help-useSsl_ja.html similarity index 100% rename from war/resources/help/tasks/mailer/smtp-use-ssl_ja.html rename to core/src/main/resources/hudson/tasks/Mailer/help-useSsl_ja.html diff --git a/war/resources/help/tasks/mailer/smtp-use-ssl_nl.html b/core/src/main/resources/hudson/tasks/Mailer/help-useSsl_nl.html similarity index 100% rename from war/resources/help/tasks/mailer/smtp-use-ssl_nl.html rename to core/src/main/resources/hudson/tasks/Mailer/help-useSsl_nl.html diff --git a/core/src/main/resources/hudson/tasks/Mailer/help-useSsl_pt_BR.html b/core/src/main/resources/hudson/tasks/Mailer/help-useSsl_pt_BR.html new file mode 100644 index 0000000000000000000000000000000000000000..68aee6b0794cfce46fc9036c6de006f8fe6a112b --- /dev/null +++ b/core/src/main/resources/hudson/tasks/Mailer/help-useSsl_pt_BR.html @@ -0,0 +1,8 @@ +
    + Se para usar ou não SSL para conectar-se ao servidor de SMTP. O padrão aponta para porta 465. + +

    + Outras configurações avançadas podem ser feitas configurando as propriedades dos sistema. + Veja + esta documentação para possíveis valores e efeitos. +

    \ No newline at end of file diff --git a/war/resources/help/tasks/mailer/smtp-use-ssl_ru.html b/core/src/main/resources/hudson/tasks/Mailer/help-useSsl_ru.html similarity index 100% rename from war/resources/help/tasks/mailer/smtp-use-ssl_ru.html rename to core/src/main/resources/hudson/tasks/Mailer/help-useSsl_ru.html diff --git a/war/resources/help/tasks/mailer/smtp-use-ssl_tr.html b/core/src/main/resources/hudson/tasks/Mailer/help-useSsl_tr.html similarity index 100% rename from war/resources/help/tasks/mailer/smtp-use-ssl_tr.html rename to core/src/main/resources/hudson/tasks/Mailer/help-useSsl_tr.html diff --git a/core/src/main/resources/hudson/tasks/Mailer/help-useSsl_zh_CN.html b/core/src/main/resources/hudson/tasks/Mailer/help-useSsl_zh_CN.html new file mode 100644 index 0000000000000000000000000000000000000000..9fd7a1d6e9f0836c1746c8c827a743737c3c3c5c --- /dev/null +++ b/core/src/main/resources/hudson/tasks/Mailer/help-useSsl_zh_CN.html @@ -0,0 +1,7 @@ +
    + 如论SMTPæœåŠ¡å™¨æ˜¯å¦ä½¿ç”¨SSL连接.默认端å£éƒ½æ˜¯465. + +

    + 更高级的é…ç½®å¯ä»¥é€šè¿‡è®¾ç½®ç³»ç»Ÿå‚æ•°æ¥å®Œæˆ. + å‚考这个文档了解更多信æ¯. +

    \ No newline at end of file diff --git a/core/src/main/resources/hudson/tasks/Maven/MavenInstallation/config.jelly b/core/src/main/resources/hudson/tasks/Maven/MavenInstallation/config.jelly new file mode 100644 index 0000000000000000000000000000000000000000..e631af52752ba6206166e3c18d496445bb0e4067 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/Maven/MavenInstallation/config.jelly @@ -0,0 +1,36 @@ + + + + + + + + + + + + diff --git a/core/src/main/resources/hudson/tasks/Maven/MavenInstallation/config_da.properties b/core/src/main/resources/hudson/tasks/Maven/MavenInstallation/config_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..03a148422b18e1455627f2af8e0b878e6833ba15 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/Maven/MavenInstallation/config_da.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Name=Navn diff --git a/core/src/main/resources/hudson/tasks/Maven/MavenInstallation/config_de.properties b/core/src/main/resources/hudson/tasks/Maven/MavenInstallation/config_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..e1f5e60ff0c7c746114973db7af002fca93142b0 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/Maven/MavenInstallation/config_de.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Name=Name diff --git a/core/src/main/resources/hudson/tasks/Maven/MavenInstallation/config_es.properties b/core/src/main/resources/hudson/tasks/Maven/MavenInstallation/config_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..4ad9e470e326b080373db8b67a7c695ec1784501 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/Maven/MavenInstallation/config_es.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Name=Nombre diff --git a/core/src/main/resources/hudson/tasks/Maven/MavenInstallation/config_fr.properties b/core/src/main/resources/hudson/tasks/Maven/MavenInstallation/config_fr.properties new file mode 100644 index 0000000000000000000000000000000000000000..4324b5b872323554731aa5e25cf7f48cc338d6a5 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/Maven/MavenInstallation/config_fr.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Eric Lefevre-Ardant +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Maven= +Maven\ installation=Installations de Maven +List\ of\ Maven\ installations\ on\ this\ system.\ Both\ maven\ 1\ and\ 2\ are\ supported.=Liste des installations de Maven sur ce système. Maven 1 et Maven 2 sont supportés tous les deux. +Name=Nom diff --git a/core/src/main/resources/hudson/tasks/Maven/MavenInstallation/config_ja.properties b/core/src/main/resources/hudson/tasks/Maven/MavenInstallation/config_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..49bb19585598fc0efc79083f0a71d60fe3f1a0fb --- /dev/null +++ b/core/src/main/resources/hudson/tasks/Maven/MavenInstallation/config_ja.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Name=\u540D\u524D + diff --git a/core/src/main/resources/hudson/tasks/Maven/MavenInstallation/config_nl.properties b/core/src/main/resources/hudson/tasks/Maven/MavenInstallation/config_nl.properties new file mode 100644 index 0000000000000000000000000000000000000000..eebda7ebe3301de106d6c764e19954f0ff1bd49c --- /dev/null +++ b/core/src/main/resources/hudson/tasks/Maven/MavenInstallation/config_nl.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:sorokh +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Maven=Maven +Maven\ installation=Maven installaties +List\ of\ Maven\ installations\ on\ this\ system.\ Both\ maven\ 1\ and\ 2\ are\ supported.=Lijst van ge\u00EFnstalleerde Maven versies op dit systeem. Zowel Maven 1 als 2 worden ondersteund. +Name=Naam diff --git a/core/src/main/resources/hudson/tasks/Maven/MavenInstallation/config_pt_BR.properties b/core/src/main/resources/hudson/tasks/Maven/MavenInstallation/config_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..e93e562f907a2290fd1086394896602d0ef3dd8f --- /dev/null +++ b/core/src/main/resources/hudson/tasks/Maven/MavenInstallation/config_pt_BR.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Reginaldo L. Russinholi +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Name=Nome diff --git a/core/src/main/resources/hudson/tasks/Maven/MavenInstallation/config_ru.properties b/core/src/main/resources/hudson/tasks/Maven/MavenInstallation/config_ru.properties new file mode 100644 index 0000000000000000000000000000000000000000..e98e02cd0af671b84810a7c23e70e0c2c2464db6 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/Maven/MavenInstallation/config_ru.properties @@ -0,0 +1,27 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Mike Salnikov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Maven=Maven +Maven\ installation=\u0418\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0446\u0438\u044f Maven +List\ of\ Maven\ installations\ on\ this\ system.\ Both\ maven\ 1\ and\ 2\ are\ supported.=\u0421\u043f\u0438\u0441\u043e\u043a \u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0446\u0438\u0439 Maven \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0435. \u041e\u0431\u0430 - Maven 1 \u0438 2 \u043f\u043e\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442\u0441\u044f. +Name=\u0438\u043C\u044F +name=\u0438\u043C\u044F diff --git a/core/src/main/resources/hudson/tasks/Maven/MavenInstallation/config_tr.properties b/core/src/main/resources/hudson/tasks/Maven/MavenInstallation/config_tr.properties new file mode 100644 index 0000000000000000000000000000000000000000..1f970d532e4753a0e254c213207921790be45d40 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/Maven/MavenInstallation/config_tr.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Oguz Dag +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Maven=Maven +Maven\ installation=Maven kurulumu +List\ of\ Maven\ installations\ on\ this\ system.\ Both\ maven\ 1\ and\ 2\ are\ supported.=Sistemde\ bulunan\ Maven\ kurulumlar\u0131n\u0131n\ listesi.\ Maven\ 1\ ve\ 2\ desteklenmektedir. +Name=isim diff --git a/core/src/main/resources/hudson/tasks/Maven/MavenInstallation/config_zh_TW.properties b/core/src/main/resources/hudson/tasks/Maven/MavenInstallation/config_zh_TW.properties new file mode 100644 index 0000000000000000000000000000000000000000..23753688997af91b92522eed4f34c9b52c68ef98 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/Maven/MavenInstallation/config_zh_TW.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Name=\u540D\u7A31 diff --git a/core/src/main/resources/hudson/tasks/Maven/config.jelly b/core/src/main/resources/hudson/tasks/Maven/config.jelly index d83fb68ba1525fd35ddc252d5ba2ad5859316b8e..5229ab396c78032d303f9afd57844a9371fa9b0a 100644 --- a/core/src/main/resources/hudson/tasks/Maven/config.jelly +++ b/core/src/main/resources/hudson/tasks/Maven/config.jelly @@ -37,14 +37,17 @@ THE SOFTWARE.
    - + - + + + + \ No newline at end of file diff --git a/core/src/main/resources/hudson/tasks/Maven/config_da.properties b/core/src/main/resources/hudson/tasks/Maven/config_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..8f43b4b23ebe38c71d396bd1f987c1faa8c610ed --- /dev/null +++ b/core/src/main/resources/hudson/tasks/Maven/config_da.properties @@ -0,0 +1,29 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Goals=M\u00e5l +JVM\ Options=JVM Tilvalg +Default=Standard +Maven\ Version=Maven version +Properties=Egenskaber +Use\ private\ Maven\ repository=Benyt et privat Mavenarkiv +POM=POM diff --git a/core/src/main/resources/hudson/tasks/Maven/config_de.properties b/core/src/main/resources/hudson/tasks/Maven/config_de.properties index 742f3762442f8688a8c7e866779db22ea2c3c3fc..331c887901e16ba0d8332d19ea5b51c6c5c4850c 100644 --- a/core/src/main/resources/hudson/tasks/Maven/config_de.properties +++ b/core/src/main/resources/hudson/tasks/Maven/config_de.properties @@ -23,3 +23,7 @@ Maven\ Version=Maven Version Default=Standard Goals=Goals +POM=POM +Properties=Eigenschaften ("properties") +JVM\ Options=JVM-Optionen +Use\ private\ Maven\ repository=Privates Maven-Repository verwenden diff --git a/core/src/main/resources/hudson/tasks/Maven/config_es.properties b/core/src/main/resources/hudson/tasks/Maven/config_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..43d6322fc2e07bb0a2da55e74788e1db2b7c7413 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/Maven/config_es.properties @@ -0,0 +1,30 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Maven\ Version=Version de Maven +Default=Por defecto +Goals=Goles +POM=POM +Properties=Propiedades +JVM\ Options=Opciones java +Use\ private\ Maven\ repository=Utilizar un repositorio maven privado + diff --git a/core/src/main/resources/hudson/tasks/Maven/config_fr.properties b/core/src/main/resources/hudson/tasks/Maven/config_fr.properties index 34bdba711e10d100054e28810d9c88a4ed3b1ef4..7f8c32211220985cf08b2f2dc9633d2dd83e0b64 100644 --- a/core/src/main/resources/hudson/tasks/Maven/config_fr.properties +++ b/core/src/main/resources/hudson/tasks/Maven/config_fr.properties @@ -26,3 +26,4 @@ Goals=Cibles Maven POM= Properties=Propriétés JVM\ Options=Options de la JVM +Use\ private\ Maven\ repository=Utiliser un repository Maven priv\u00E9 diff --git a/core/src/main/resources/hudson/tasks/Maven/config_ja.properties b/core/src/main/resources/hudson/tasks/Maven/config_ja.properties index c902efe88e353006b9a6a802774b5a0a41048255..fc29f05e83b7b4a1aaf0b49d0ba48f2b1fc12004 100644 --- a/core/src/main/resources/hudson/tasks/Maven/config_ja.properties +++ b/core/src/main/resources/hudson/tasks/Maven/config_ja.properties @@ -25,3 +25,4 @@ Default=\u30C7\u30D5\u30A9\u30EB\u30C8 Goals=\u30B4\u30FC\u30EB Properties=\u30D7\u30ED\u30D1\u30C6\u30A3 JVM\ Options=JVM\u30AA\u30D7\u30B7\u30E7\u30F3 +Use\ private\ Maven\ repository=\u5C02\u7528\u306E\u30EA\u30DD\u30B8\u30C8\u30EA\u3092\u4F7F\u7528 diff --git a/core/src/main/resources/hudson/tasks/Maven/config_pt_BR.properties b/core/src/main/resources/hudson/tasks/Maven/config_pt_BR.properties index c4b791844f3610da3ee27617afb79ee00c40e497..54165227f056a9807aa398e88a71d391f8cd3109 100644 --- a/core/src/main/resources/hudson/tasks/Maven/config_pt_BR.properties +++ b/core/src/main/resources/hudson/tasks/Maven/config_pt_BR.properties @@ -23,3 +23,7 @@ Maven\ Version=Vers\u00E3o do Maven Default=Padr\u00E3o Goals=Objetivos +POM= +Properties=Propriedades +Use\ private\ Maven\ repository= +JVM\ Options= diff --git a/core/src/main/resources/hudson/tasks/Maven/global.jelly b/core/src/main/resources/hudson/tasks/Maven/global.jelly deleted file mode 100644 index 2e8b9bf8322ccf6c8a73659934def37f574ba2d4..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/tasks/Maven/global.jelly +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - - - - - - - - - - -
    - -
    -
    -
    -
    -
    -
    -
    \ No newline at end of file diff --git a/core/src/main/resources/hudson/tasks/Maven/global_de.properties b/core/src/main/resources/hudson/tasks/Maven/global_de.properties deleted file mode 100644 index a4031dac0dab78a3af705b83df8435cfbbd87637..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/tasks/Maven/global_de.properties +++ /dev/null @@ -1,26 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Maven=Maven -Maven\ installation=Maven Installationen -List\ of\ Maven\ installations\ on\ this\ system.\ Both\ maven\ 1\ and\ 2\ are\ supported.=Installierte Maven-Versionen auf diesem System. Maven 1 und 2 werden unterstützt. -name=Name diff --git a/core/src/main/resources/hudson/tasks/Maven/global_fr.properties b/core/src/main/resources/hudson/tasks/Maven/global_fr.properties deleted file mode 100644 index f07710e94bcd2492169c363e87b535bd2fc8232d..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/tasks/Maven/global_fr.properties +++ /dev/null @@ -1,26 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Eric Lefevre-Ardant -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Maven= -Maven\ installation=Installations de Maven -List\ of\ Maven\ installations\ on\ this\ system.\ Both\ maven\ 1\ and\ 2\ are\ supported.=Liste des installations de Maven sur ce système. Maven 1 et Maven 2 sont supportés tous les deux. -name=Nom diff --git a/core/src/main/resources/hudson/tasks/Maven/global_ja.properties b/core/src/main/resources/hudson/tasks/Maven/global_ja.properties deleted file mode 100644 index c65922cc86d9302366fa99a8c98afef4d40261b8..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/tasks/Maven/global_ja.properties +++ /dev/null @@ -1,27 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Maven=Maven -Maven\ installation=\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u6e08\u307fMaven -List\ of\ Maven\ installations\ on\ this\ system.\ Both\ maven\ 1\ and\ 2\ are\ supported.=\ - Hudson\u3067\u5229\u7528\u3059\u308b\u3001\u3053\u306e\u30b7\u30b9\u30c6\u30e0\u306b\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3055\u308c\u305fMaven\u306e\u4e00\u89a7\u3067\u3059\u3002Maven1\u3068Maven2\u306e\u4e21\u65b9\u304c\u4f7f\u3048\u307e\u3059\u3002 -name=\u540d\u524d diff --git a/core/src/main/resources/hudson/tasks/Maven/global_nl.properties b/core/src/main/resources/hudson/tasks/Maven/global_nl.properties deleted file mode 100644 index c3b535ae7d82b99c98a74d3185b5fbe6e9542b54..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/tasks/Maven/global_nl.properties +++ /dev/null @@ -1,26 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:sorokh -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Maven=Maven -Maven\ installation=Maven installaties -List\ of\ Maven\ installations\ on\ this\ system.\ Both\ maven\ 1\ and\ 2\ are\ supported.=Lijst van ge\u00EFnstalleerde Maven versies op dit systeem. Zowel Maven 1 als 2 worden ondersteund. -name=naam diff --git a/core/src/main/resources/hudson/tasks/Maven/global_pt_BR.properties b/core/src/main/resources/hudson/tasks/Maven/global_pt_BR.properties deleted file mode 100644 index 0f7d96733ec8da4f7a48ef5b0fa225fe315bcd0c..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/tasks/Maven/global_pt_BR.properties +++ /dev/null @@ -1,26 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Reginaldo L. Russinholi -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Maven= -Maven\ installation=Instala\u00E7\u00E3o do Maven -List\ of\ Maven\ installations\ on\ this\ system.\ Both\ maven\ 1\ and\ 2\ are\ supported.=Lista de instala\u00E7\u00F5es do Maven neste sistema. Ambos maven 1 e 2 s\u00E3o suportados. -name=nome diff --git a/core/src/main/resources/hudson/tasks/Maven/global_ru.properties b/core/src/main/resources/hudson/tasks/Maven/global_ru.properties deleted file mode 100644 index 0a1148524585f8b9b81c68bbf8fa59c25fda4923..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/tasks/Maven/global_ru.properties +++ /dev/null @@ -1,26 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Mike Salnikov -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Maven=Maven -Maven\ installation=\u0418\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0446\u0438\u044f Maven -List\ of\ Maven\ installations\ on\ this\ system.\ Both\ maven\ 1\ and\ 2\ are\ supported.=\u0421\u043f\u0438\u0441\u043e\u043a \u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0446\u0438\u0439 Maven \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0435. \u041e\u0431\u0430 - Maven 1 \u0438 2 \u043f\u043e\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442\u0441\u044f. -name=\u0418\u043c\u044f diff --git a/core/src/main/resources/hudson/tasks/Maven/global_tr.properties b/core/src/main/resources/hudson/tasks/Maven/global_tr.properties deleted file mode 100644 index 4551d0a3b9f922b947625abe70d17c66e7d62d9e..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/tasks/Maven/global_tr.properties +++ /dev/null @@ -1,26 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Oguz Dag -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Maven=Maven -Maven\ installation=Maven kurulumu -List\ of\ Maven\ installations\ on\ this\ system.\ Both\ maven\ 1\ and\ 2\ are\ supported.=Sistemde\ bulunan\ Maven\ kurulumlar\u0131n\u0131n\ listesi.\ Maven\ 1\ ve\ 2\ desteklenmektedir. -name=isim diff --git a/core/src/main/resources/hudson/tasks/Messages.properties b/core/src/main/resources/hudson/tasks/Messages.properties index 1cb82eb4e0f2284955afd71074d4b2984e456e1a..1e8b17801f2168a72061f44882fa10851344aef3 100644 --- a/core/src/main/resources/hudson/tasks/Messages.properties +++ b/core/src/main/resources/hudson/tasks/Messages.properties @@ -61,6 +61,8 @@ Fingerprinter.NoArchiving=Build artifacts are supposed to be fingerprinted, but Fingerprinter.NoWorkspace=Unable to record fingerprints because there''s no workspace Fingerprinter.Recording=Recording fingerprints +InstallFromApache=Install from Apache + JavadocArchiver.DisplayName=Publish Javadoc JavadocArchiver.DisplayName.Generic=Document JavadocArchiver.DisplayName.Javadoc=Javadoc @@ -70,13 +72,26 @@ JavadocArchiver.UnableToCopy=Unable to copy Javadoc from {0} to {1} MailSender.ListEmpty=An attempt to send an e-mail to empty list of recipients, ignored. MailSender.NoAddress=Failed to send e-mail to {0} because no e-mail address is known, and no default e-mail domain is configured +MailSender.BackToNormal.Normal=normal +MailSender.BackToNormal.Stable=stable +MailSender.BackToNormalMail.Subject=Hudson build is back to {0} : +MailSender.UnstableMail.Subject=Hudson build is unstable: +MailSender.UnstableMail.ToUnStable.Subject=Hudson build became unstable: +MailSender.UnstableMail.StillUnstable.Subject=Hudson build is still unstable: +MailSender.FailureMail.Subject=Build failed in Hudson: +MailSender.FailureMail.Changes=Changes: +MailSender.FailureMail.FailedToAccessBuildLog=Failed to access build log +MailSender.Link=See <{0}{1}> Mailer.DisplayName=E-mail Notification +Mailer.Unknown.Host.Name=Unknown host name: +Mailer.Suffix.Error=This field should be ''@'' followed by a domain name. +Mailer.Address.Not.Configured=address not configured yet +Mailer.Localhost.Error=Please set a valid host name, instead of localhost Mailer.UserProperty.DisplayName=E-mail Maven.DisplayName=Invoke top-level Maven targets Maven.ExecFailed=command execution failed -Maven.MavenHomeRequired=MAVEN_HOME is required Maven.NotMavenDirectory={0} doesn''t look like a Maven directory Maven.NoExecutable=Couldn''t find any executable in {0} Maven.NotADirectory={0} is not a directory diff --git a/core/src/main/resources/hudson/tasks/Messages_da.properties b/core/src/main/resources/hudson/tasks/Messages_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..3359649ada1c16dbb5d1b2dc686ac5ceda0ce733 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/Messages_da.properties @@ -0,0 +1,88 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +BuildTrigger.DisplayName=Byg andre projekter +JavadocArchiver.Publishing=Publicerer Javadoc +ArtifactArchiver.ARCHIVING_ARTIFACTS=Arkiverer artifakter +Maven.NotMavenDirectory={0} ligner ikke et Maven direktorie +Fingerprinter.NoArchiving=Der b\u00f8r opsamles filfingeraftryk p\u00e5 Byggeartifakter, men byggeartifakter er ikke sl\u00e5et til +Ant.NotADirectory={0} er ikke et direktorie +Fingerprinter.FailedFor=Kunne ikke opsamle filfingeraftryk for {0} +Mailer.Address.Not.Configured=Adresse ikke konfigureret +JavadocArchiver.DisplayName=Publicer Javadoc +Mailer.UserProperty.DisplayName=E-mail +Maven.ExecFailed=Kommando eksekvering fejlede +BuildTrigger.InQueue={0} er allerede i k\u00f8en +MailSender.UnstableMail.Subject=Hudson bygget er ustabilt: +ArtifactArchiver.NoIncludes=\ +Ingen artifakter vil blive arkiveret. \n\ +Du har formentlig glemt at s\u00e6tte film\u00f8nsteret, g\u00e5 til konfigurationen og specificer dette.\n\ +Hvis du virkelig mener at du vil arkivere alle filer i arbejdsomr\u00e5det, benyt da "**" +CommandInterpreter.UnableToDelete=Kan ikke slette skriptfilen {0} +Ant.GlobalConfigNeeded=M\u00e5ske mangler du at konfigurere hvor dine Ant installationer er? +InstallFromApache=Installer fra Apache +MailSender.UnstableMail.ToUnStable.Subject=Hudson bygget er blevet ustabilt: +MailSender.ListEmpty=Fors\u00f8g p\u00e5 at sende mail til en tom modtagerliste ignoreret. +Ant.ProjectConfigNeeded=M\u00e5ske mangler du at konfigurere jobbet til at v\u00e6lge en af dine Ant installationer? +ArtifactArchiver.DisplayName=Arkiver artifakterne +Ant.NotAntDirectory={0} ligner ikke et Ant direktorie +Fingerprinter.DigestFailed=Kunne ikke beregne filfingeraftryk for {0} +CommandInterpreter.UnableToProduceScript=Ude af stand til at lave en skriptfil +MailSender.BackToNormalMail.Subject=Hudson bygget er tilbage til {0} : +Shell.DisplayName=K\u00f8r skalkommando +BuildTrigger.NotBuildable={0} kan ikke bygges +Mailer.DisplayName=E-mail p\u00e5mindelse +JavadocArchiver.DisplayName.Generic=Dokument +Ant.ExecFailed=Kommandoeksekvering fejlede +Ant.DisplayName=K\u00f8r Ant +MailSender.BackToNormal.Normal=normal +MailSender.UnstableMail.StillUnstable.Subject=Hudson bygget er stadig ustabilt: +MailSender.Link=Se <{0}{1}> +BuildTrigger.Triggering=Starter et nyt byg af {0} +Maven.DisplayName=K\u00f8r top-niveau Maven m\u00e5l +ArtifactArchiver.NoMatchFound=Ingen artifakter matcher film\u00f8nsteret "{0}". Konfigurationsfejl? +Mailer.Suffix.Error=Dette felt b\u00f8r v\u00e6re ''@'' efterfulgt af et dom\u00e6nenavn +Fingerprinter.Aborted=Afbrudt +Mailer.Localhost.Error=Venligst inds\u00e6t et gyldigt v\u00e6rtsnavn, istedet for localhost +Fingerprinter.DisplayName=Tag filfingeraftryk af filer for at spore brugen af disse +Mailer.Unknown.Host.Name=Ukendt v\u00e6rtsnavn: +JavadocArchiver.DisplayName.Javadoc=Javadoc +MailSender.FailureMail.Changes=\u00c6ndringer +MailSender.FailureMail.FailedToAccessBuildLog=Kunne ikke tilg\u00e5 byggeloggen +Ant.ExecutableNotFound=Kan ikke finde en eksekverbar fra den valgte Ant installation "{0}" +BatchFile.DisplayName=K\u00f8r Windows batch kommando +JavadocArchiver.UnableToCopy=Ude af stand til at kopiere Javadoc fra {0} til {1} +JavadocArchiver.NoMatchFound=Ingen Javadoc fundet i {0}: {1} +Maven.NoExecutable=Kunne ikke finde en eksekverbar i {0} +BuildTrigger.NoSuchProject=Intet s\u00e5kaldt projekt ''{0}''. Mente du ''{1}''? +MailSender.BackToNormal.Stable=Stabil +MailSender.NoAddress=Kunne ikke sende en e-mail til {0}, da e-mail adressen ikke er kendt og intet standard e-mail dom\u00e6ne er konfigureret +Fingerprinter.Action.DisplayName=Se Filfingeraftryk +ArtifactArchiver.FailedToArchive=Fejlede under arkivering af artifakter: {0} +Maven.NotADirectory={0} er ikke et direktorie +BuildTrigger.Disabled={0} er sl\u00e5et fra, starter ikke +Fingerprinter.Recording=Opsamler filfingeraftryk +CommandInterpreter.CommandFailed=Kommandoeksekvering fejlede +Fingerprinter.NoWorkspace=Ude af stand til at opsamle filfingeraftryk, da der ikke er et arbejdsomr\u00e5de +Fingerprinter.Failed=Kunne ikke opsamle filfingeraftryk +MailSender.FailureMail.Subject=Byg fejlet i Hudson: +ArtifactArchiver.DeletingOld=Sletter gamle artifakter fra {0} diff --git a/core/src/main/resources/hudson/tasks/Messages_de.properties b/core/src/main/resources/hudson/tasks/Messages_de.properties index c1f831862655e610bcaa93f1e4f07a22df2e4010..09d74f00278b886945af1a4ef2dc17c868df2c00 100644 --- a/core/src/main/resources/hudson/tasks/Messages_de.properties +++ b/core/src/main/resources/hudson/tasks/Messages_de.properties @@ -22,34 +22,36 @@ Ant.DisplayName=Ant aufrufen Ant.ExecFailed=Befehlsausführung fehlgeschlagen. +Ant.ExecutableNotFound=Die ausführbaren Programme der Ant-Installation "{0}" konnten nicht gefunden werden. Ant.GlobalConfigNeeded=Eventuell müssen Sie noch Ihre Ant-Installationen konfigurieren. Ant.NotADirectory={0} ist kein Verzeichnis Ant.NotAntDirectory={0} sieht nicht wie ein Ant-Verzeichnis aus. Ant.ProjectConfigNeeded=Eventuell müssen Sie für den Job noch eine Ihrer Ant-Installationen auswählen. -ArtifactArchiver.DeletingOld=Lösche alte Artefakte von {0} +ArtifactArchiver.ARCHIVING_ARTIFACTS=Archiviere Artefakte +ArtifactArchiver.DeletingOld=L\u00F6sche alte Artefakte von {0} ArtifactArchiver.DisplayName=Artefakte archivieren ArtifactArchiver.FailedToArchive=Artefakte konnten nicht archiviert werden: {0} ArtifactArchiver.NoIncludes=\ -Es sind kein Artefakte zur Archivierung konfiguriert.\n\ +Es sind keine Artefakte zur Archivierung konfiguriert.\n\ Überprüfen Sie, ob in den Einstellungen ein Dateisuchmuster angegeben ist.\n\ Wenn Sie alle Dateien archivieren möchten, geben Sie "**" an. ArtifactArchiver.NoMatchFound=Keine Artefakte gefunden, die mit dem Dateisuchmuster "{0}" übereinstimmen. Ein Konfigurationsfehler? BatchFile.DisplayName=Windows Batch Datei ausführen -BuildTrigger.Disabled={0} is deaktiviert. Keine Auslösung des Builds. +BuildTrigger.Disabled={0} ist deaktiviert. Keine Auslösung des Builds. BuildTrigger.DisplayName=Weitere Projekte bauen BuildTrigger.InQueue={0} ist bereits geplant. BuildTrigger.NoSuchProject=Kein Projekt ''{0}'' gefunden. Meinten Sie ''{1}''? BuildTrigger.NotBuildable={0} kann nicht gebaut werden. -BuildTrigger.Triggering=Löse einen neuen Build von {0} aus +BuildTrigger.Triggering=L\u00F6se einen neuen Build von {0} aus -CommandInterpreter.CommandFailed=Befehlsausführung fehlgeschlagen +CommandInterpreter.CommandFailed=Befehlsausf\u00FChrung fehlgeschlagen CommandInterpreter.UnableToDelete=Kann Skriptdatei {0} nicht löschen CommandInterpreter.UnableToProduceScript=Kann keine Skriptdatei erstellen -Fingerprinter.Aborted=Aborted +Fingerprinter.Aborted=Abgebrochen Fingerprinter.Action.DisplayName=Fingerabdrücke ansehen Fingerprinter.DigestFailed=Berechnung der Prüfsumme für {0} fehlgeschlagen Fingerprinter.DisplayName=Fingerabdrücke von Dateien aufzeichnen, um deren Verwendung zu verfolgen @@ -59,6 +61,8 @@ Fingerprinter.NoArchiving=Die Fingerabdr Fingerprinter.NoWorkspace=Fingerabdrücke können nicht aufgezeichnet werden, weil der Arbeitsbereich fehlt. Fingerprinter.Recording=Zeichne Fingerabrücke auf +InstallFromApache=Installiere von Apache + JavadocArchiver.DisplayName=Javadoc veröffentlichen JavadocArchiver.DisplayName.Generic=Dokumentation JavadocArchiver.DisplayName.Javadoc=Javadocs @@ -68,19 +72,28 @@ JavadocArchiver.UnableToCopy=Kann Javadocs nicht von {0} nach {1} kopieren MailSender.ListEmpty=Der Versuch wurde ignoriert, eine E-Mail an eine leere Liste von Empfängern zu verschicken. MailSender.NoAddress=Es konnte keine E-Mail an {0} geschickt werden, weil die E-Mail-Adresse unbekannt ist und kein Standardwert für die E-Mail-Domain eingestellt ist. +MailSender.BackToNormal.Normal=normal +MailSender.BackToNormal.Stable=stabil +MailSender.BackToNormalMail.Subject=Hudson-Build ist wieder {0}: +MailSender.UnstableMail.Subject=Hudson-Build ist instabil: +MailSender.UnstableMail.ToUnStable.Subject=Hudson-Build ist instabil geworden: +MailSender.UnstableMail.StillUnstable.Subject=Hudson-Build ist immer noch instabil: +MailSender.FailureMail.Subject=Hudson-Build fehlgeschlagen: +MailSender.FailureMail.Changes=Änderungen: +MailSender.FailureMail.FailedToAccessBuildLog=Zugriff auf Build-Protokoll fehlgeschlagen +MailSender.Link=Siehe <{0}{1}> Mailer.DisplayName=E-Mail-Benachrichtigung Mailer.UserProperty.DisplayName=E-Mail +Mailer.Unknown.Host.Name=Unbekannter Host: +Mailer.Suffix.Error=Der Inhalt dieses Feldes sollte ''@'', gefolgt von einem Domain-Namen, sein. +Mailer.Address.Not.Configured=Adresse nicht konfiguriert +Mailer.Localhost.Error=Bitte verwenden Sie einen konkreten Hostnamen anstelle von ''localhost''. Maven.DisplayName=Maven Goals aufrufen Maven.ExecFailed=Befehlsausführung fehlgeschlagen -Maven.MavenHomeRequired=MAVEN_HOME muß gesetzt sein Maven.NotMavenDirectory={0} sieht nicht wie ein Maven-Verzeichnis aus. Maven.NoExecutable=Konnte keine ausführbare Datei in {0} finden Maven.NotADirectory={0} ist kein Verzeichnis Shell.DisplayName=Shell ausführen - - - - diff --git a/core/src/main/resources/hudson/tasks/Messages_es.properties b/core/src/main/resources/hudson/tasks/Messages_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..9e0c433a62cdf9c52d93be7d1daea9cb5867a39e --- /dev/null +++ b/core/src/main/resources/hudson/tasks/Messages_es.properties @@ -0,0 +1,101 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Jene Jasper +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Ant.DisplayName=Ejecutar Ant +Ant.ExecFailed=Falló la ejecución del comando +Ant.ExecutableNotFound=No se encuentra el archivo ejecutable para la instalación de ant seleccionada "{0}" +Ant.GlobalConfigNeeded= Posiblemente tengas que configurar dónde se encuentra tu instalación de ''ant'' +Ant.NotADirectory={0} no es un directorio +Ant.NotAntDirectory={0} no parece un directorio de ''ant'' +Ant.ProjectConfigNeeded= Es posible que tengas que configurar la tarea para que utilice una de tus instalaciones de ''ant'' + +ArtifactArchiver.ARCHIVING_ARTIFACTS=Guardando archivos +ArtifactArchiver.DeletingOld=Borrando archivos antiguos de {0} +ArtifactArchiver.DisplayName=Guardar los archivos generados +ArtifactArchiver.FailedToArchive=Error al guardar los archivos generados: {0} +ArtifactArchiver.NoIncludes=\ + No hay archivos configurados para guardar.\n\ + Es probable que olvidaras configurar el patrón.\n\ + Si lo que quieres es guardar todos los ficheros del espacio de trabajo, utiliza "**" +ArtifactArchiver.NoMatchFound=No se encontraron archivos que cumplan el patrón "{0}". Comprueba la configuración + +BatchFile.DisplayName=Ejecutar un comando de Windows + +BuildTrigger.Disabled={0} está desactivado. Ejecución omitida +BuildTrigger.DisplayName=Ejecutar otros proyectos +BuildTrigger.InQueue={0} ya está en la cola +BuildTrigger.NoSuchProject=No existe el proyecto ''{0}''. Quizas te refieras a ''{1}'' +BuildTrigger.NotBuildable={0} no es ejecutable +BuildTrigger.Triggering=Lanzando una nueva ejecución de {0} + +CommandInterpreter.CommandFailed=la ejecución del comando ha fallado +CommandInterpreter.UnableToDelete=Imposible borrar el fichero de script {0} +CommandInterpreter.UnableToProduceScript=Imposible de crear un fichero de script + +Fingerprinter.Aborted=Abortado +Fingerprinter.Action.DisplayName=Ver firmas +Fingerprinter.DigestFailed=Imposible de calcular la firma para {0} +Fingerprinter.DisplayName=Almacenar firma de ficheros para poder hacer seguimiento +Fingerprinter.Failed=Imposible de grabar firmas +Fingerprinter.FailedFor=fallo al grabar la firma de {0} +Fingerprinter.NoArchiving=Se supone que la produccion de artefactos debe ser firmada pero no está configurada la opción de guardar artefactos. +Fingerprinter.NoWorkspace=No se pueden guardar firmas porque no hay o no se ha creado el espacio de trabajo +Fingerprinter.Recording=Almacenando firmas + +InstallFromApache=Instalar desde Apache + +JavadocArchiver.DisplayName=Publicar Javadoc +JavadocArchiver.DisplayName.Generic=Documento +JavadocArchiver.DisplayName.Javadoc=Javadoc +JavadocArchiver.NoMatchFound=No se encontraron javadocs en {0}: {1} +JavadocArchiver.Publishing=Publicando Javadoc +JavadocArchiver.UnableToCopy=Imposible copiar javadocs desde {0} a {1} + +MailSender.ListEmpty=Ignorado un intento de envio de correos a una lista de destinatarios vacía. +MailSender.NoAddress=Falló el envio de correo a {0} porque ninguna dirección de correo es conocida, y no se ha configurado ningún dominio por defecto. +MailSender.BackToNormal.Normal=Normal +MailSender.BackToNormal.Stable=Estable +MailSender.BackToNormalMail.Subject=El estado de Hudson ha vuelto a {0} : +MailSender.UnstableMail.Subject=El resultado de la ejecución es inestable: +MailSender.UnstableMail.ToUnStable.Subject=El estado de Hudson es inestable: +MailSender.UnstableMail.StillUnstable.Subject=El estado de Hudson continúa siendo inestable: +MailSender.FailureMail.Subject=La ejecución en Hudson ha fallado: +MailSender.FailureMail.Changes=Cambios: +MailSender.FailureMail.FailedToAccessBuildLog=Error al acceder al "log" de ejecución +MailSender.Link=Echa un vistazo a <{0}{1}> + +Mailer.DisplayName=Notificación por correo +Mailer.UserProperty.DisplayName=E-mail + +Maven.DisplayName=Ejecutar tareas ''maven'' de nivel superior +Maven.ExecFailed=falló la ejecución del comando +Maven.NotMavenDirectory={0} no parece un directorio ''maven'' +Maven.NoExecutable=No hay ningún fichero ejecutable en {0} +Maven.NotADirectory={0} no es un directorio + +Shell.DisplayName=Ejecutar linea de comandos (shell) + +Mailer.Unknown.Host.Name=Nombre de Host desconocido: +Mailer.Suffix.Error=Este campo deberia ser el símbolo "@" seguido de un nombre de dominio. +Mailer.Address.Not.Configured=Dirección no configurada todavía +Mailer.Localhost.Error=Escriba un nombre de servidor correcto en lugar de "localhost" + diff --git a/core/src/main/resources/hudson/tasks/Messages_fr.properties b/core/src/main/resources/hudson/tasks/Messages_fr.properties index 04199176888548ec368d20fe4be55388498fb406..39acf37cb0f84b352af83c80fb476ff34d80782d 100644 --- a/core/src/main/resources/hudson/tasks/Messages_fr.properties +++ b/core/src/main/resources/hudson/tasks/Messages_fr.properties @@ -21,63 +21,62 @@ # THE SOFTWARE. Ant.DisplayName=Appeler Ant -Ant.ExecFailed=L''exécution de la commande a échoué. -Ant.ExecutableNotFound=Impossible de trouver l''exécutable correspondant à l''installation de Ant choisie "{0}" -Ant.GlobalConfigNeeded=Avez-vous configuré l''endroit où se trouvent les installations de Ant? -Ant.NotADirectory={0} n''est pas un répertoire -Ant.NotAntDirectory={0} ne semble pas être un répertoire Ant -Ant.ProjectConfigNeeded=Avez-vous configuré le job de façon à choisir une de vos installations de Ant? +Ant.ExecFailed=L''ex\u00E9cution de la commande a \u00E9chou\u00E9. +Ant.ExecutableNotFound=Impossible de trouver l''ex\u00E9cutable correspondant \u00E0 l''installation de Ant choisie "{0}" +Ant.GlobalConfigNeeded=Avez-vous configur\u00E9 l''endroit o\u00F9 se trouvent les installations de Ant? +Ant.NotADirectory={0} n''est pas un r\u00E9pertoire +Ant.NotAntDirectory={0} ne semble pas \u00EAtre un r\u00E9pertoire Ant +Ant.ProjectConfigNeeded=Avez-vous configur\u00E9 le job de fa\u00E7on \u00E0 choisir une de vos installations de Ant? ArtifactArchiver.DeletingOld=Suppression des anciens artefacts de {0} ArtifactArchiver.DisplayName=Archiver des artefacts ArtifactArchiver.FailedToArchive=Echec lors de l''archivage des artefacts: {0} ArtifactArchiver.NoIncludes=\ -Aucun artefact n''est configuré pour l''archivage.\n\ -Vous avez probablement oublié de positionner le pattern pour les noms des fichiers; merci de retourner à la configuration et de le spécifier.\n\ -Si vous souhaitez réellement archiver tous les fichiers dans le workspace, indiquez "**". +Aucun artefact n''est configur\u00E9 pour l''archivage.\n\ +Vous avez probablement oubli\u00E9 de positionner le pattern pour les noms des fichiers; merci de retourner \u00E0 la configuration et de le sp\u00E9cifier.\n\ +Si vous souhaitez r\u00E9ellement archiver tous les fichiers dans le workspace, indiquez "**". ArtifactArchiver.NoMatchFound=Aucun artefact ne correspond au pattern "{0}". Erreur de configuration? -BatchFile.DisplayName=Exécuter une ligne de commande batch Windows +BatchFile.DisplayName=Ex\u00E9cuter une ligne de commande batch Windows -BuildTrigger.Disabled={0} est désactivé. Lancement non fait. +BuildTrigger.Disabled={0} est d\u00E9sactiv\u00E9. Lancement non fait. BuildTrigger.DisplayName=Construire d''autres projets (projets en aval) -BuildTrigger.InQueue={0} est déjà en file d''attente +BuildTrigger.InQueue={0} est d\u00E9j\u00E0 en file d''attente BuildTrigger.NoSuchProject=Pas de projet ''{0}''. Vouliez-vous dire ''{1}''? -BuildTrigger.NotBuildable={0} ne peut pas être construit +BuildTrigger.NotBuildable={0} ne peut pas \u00EAtre construit BuildTrigger.Triggering=Lancement d''un nouveau build de {0} -CommandInterpreter.CommandFailed=L''exécution de la commande a échoué. +CommandInterpreter.CommandFailed=L''ex\u00E9cution de la commande a \u00E9chou\u00E9. CommandInterpreter.UnableToDelete=Impossible de supprimer le fichier de script {0} CommandInterpreter.UnableToProduceScript=Impossible de produire un fichier de script -Fingerprinter.Aborted=Annulé -Fingerprinter.Action.DisplayName=Voir les empreintes numériques -Fingerprinter.DigestFailed=Impossible de calculer le résumé pour {0} -Fingerprinter.DisplayName=Enregistrer les empreintes numériques des fichiers pour en suivre l''utilisation -Fingerprinter.Failed=Impossible d''enregistrer les empreintes numériques -Fingerprinter.FailedFor=Impossible d''enregistrer les empreintes numériques pour {0} -Fingerprinter.NoArchiving=Les artefacts du build sont supposés recevoir une empreinte numérique, mais l''archivage n''a pas été activé -Fingerprinter.NoWorkspace=Impossible d''enregistrer les empreintes numériques, parce qu''il n''y a pas de répertoire de travail -Fingerprinter.Recording=Enregistrement des empreintes numériques +Fingerprinter.Aborted=Annul\u00E9 +Fingerprinter.Action.DisplayName=Voir les empreintes num\u00E9riques +Fingerprinter.DigestFailed=Impossible de calculer le r\u00E9sum\u00E9 pour {0} +Fingerprinter.DisplayName=Enregistrer les empreintes num\u00E9riques des fichiers pour en suivre l''utilisation +Fingerprinter.Failed=Impossible d''enregistrer les empreintes num\u00E9riques +Fingerprinter.FailedFor=Impossible d''enregistrer les empreintes num\u00E9riques pour {0} +Fingerprinter.NoArchiving=Les artefacts du build sont suppos\u00E9s recevoir une empreinte num\u00E9rique, mais l''archivage n''a pas \u00E9t\u00E9 activ\u00E9 +Fingerprinter.NoWorkspace=Impossible d''enregistrer les empreintes num\u00E9riques, parce qu''il n''y a pas de r\u00E9pertoire de travail +Fingerprinter.Recording=Enregistrement des empreintes num\u00E9riques JavadocArchiver.DisplayName=Publier les Javadocs JavadocArchiver.DisplayName.Generic=Documentation du code JavadocArchiver.DisplayName.Javadoc=Javadoc -JavadocArchiver.NoMatchFound=Pas de javadoc trouvé dans {0}: {1} +JavadocArchiver.NoMatchFound=Pas de javadoc trouv\u00E9 dans {0}: {1} JavadocArchiver.Publishing=Publication des Javadocs JavadocArchiver.UnableToCopy=Impossible de copier les Javadocs de {0} vers {1} -MailSender.ListEmpty=Tentative d''envoi d''email vers une liste de destinataires vide. Tentative ignorée. -MailSender.NoAddress=Impossible d''envoyer un e-mail vers {0} parce qu''aucune adresse email n''est spécifiée et aucun domaine email n''est configuré +MailSender.ListEmpty=Tentative d''envoi d''email vers une liste de destinataires vide. Tentative ignor\u00E9e. +MailSender.NoAddress=Impossible d''envoyer un e-mail vers {0} parce qu''aucune adresse email n''est sp\u00E9cifi\u00E9e et aucun domaine email n''est configur\u00E9 Mailer.DisplayName=Notifier par email Mailer.UserProperty.DisplayName=Email Maven.DisplayName=Invoquer les cibles Maven de haut niveau -Maven.ExecFailed=L''exécution de la commande a échoué. -Maven.MavenHomeRequired=MAVEN_HOME est obligatoire -Maven.NotMavenDirectory={0} ne semble pas être un répertoire Maven -Maven.NoExecutable=Impossible de trouver un exécutable dans {0} -Maven.NotADirectory={0} n''est pas un répertoire +Maven.ExecFailed=L''ex\u00E9cution de la commande a \u00E9chou\u00E9. +Maven.NotMavenDirectory={0} ne semble pas \u00EAtre un r\u00E9pertoire Maven +Maven.NoExecutable=Impossible de trouver un ex\u00E9cutable dans {0} +Maven.NotADirectory={0} n''est pas un r\u00E9pertoire -Shell.DisplayName=Exécuter un script shell +Shell.DisplayName=Ex\u00E9cuter un script shell diff --git a/core/src/main/resources/hudson/tasks/Messages_ja.properties b/core/src/main/resources/hudson/tasks/Messages_ja.properties index 5874d455d9244498af7f6dc2e18517f2f07a9f08..b40bed489651a18eea338408566d84379ec2b34c 100644 --- a/core/src/main/resources/hudson/tasks/Messages_ja.properties +++ b/core/src/main/resources/hudson/tasks/Messages_ja.properties @@ -20,63 +20,79 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Ant.DisplayName=Ant\u306E\u547C\u3073\u51FA\u3057 -Ant.ExecFailed=\u30B3\u30DE\u30F3\u30C9\u306E\u5B9F\u884C\u306B\u5931\u6557\u3057\u307E\u3057\u305F -Ant.ExecutableNotFound=\u9078\u629E\u3057\u305FAnt "{0}"\u306B\u306F\u5B9F\u884C\u5F62\u5F0F\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093 -Ant.GlobalConfigNeeded=Ant\u306E\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3055\u308C\u305F\u4F4D\u7F6E\u3092\u8A2D\u5B9A\u3059\u308B\u5FC5\u8981\u304C\u3042\u308B\u306E\u3067\u306F\uFF1F -Ant.NotADirectory={0}\u306F\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3067\u306F\u3042\u308A\u307E\u305B\u3093 -Ant.NotAntDirectory={0}\u306B\u306FAnt\u304C\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3055\u308C\u3066\u3044\u306A\u3044\u3088\u3046\u3067\u3059 -Ant.ProjectConfigNeeded=\u3069\u306EAnt\u3092\u4F7F\u3046\u304B\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3067\u8A2D\u5B9A\u3059\u308B\u5FC5\u8981\u304C\u3042\u308B\u306E\u3067\u306F\uFF1F +Ant.DisplayName=Ant\u306e\u547c\u3073\u51fa\u3057 +Ant.ExecFailed=\u30b3\u30de\u30f3\u30c9\u306e\u5b9f\u884c\u306b\u5931\u6557\u3057\u307e\u3057\u305f +Ant.ExecutableNotFound=\u9078\u629e\u3057\u305fAnt "{0}"\u306b\u306f\u5b9f\u884c\u5f62\u5f0f\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093 +Ant.GlobalConfigNeeded=Ant\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3055\u308c\u305f\u4f4d\u7f6e\u3092\u8a2d\u5b9a\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\u306e\u3067\u306f\uff1f +Ant.NotADirectory={0}\u306f\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3067\u306f\u3042\u308a\u307e\u305b\u3093 +Ant.NotAntDirectory={0}\u306b\u306fAnt\u304c\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3055\u308c\u3066\u3044\u306a\u3044\u3088\u3046\u3067\u3059 +Ant.ProjectConfigNeeded=\u3069\u306eAnt\u3092\u4f7f\u3046\u304b\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3067\u8a2d\u5b9a\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\u306e\u3067\u306f\uff1f -ArtifactArchiver.DeletingOld=\u53E4\u3044\u6210\u679C\u7269\u3092\u524A\u9664\u4E2D -ArtifactArchiver.DisplayName=\u6210\u679C\u7269\u3092\u4FDD\u5B58 -ArtifactArchiver.FailedToArchive=\u6210\u679C\u7269\u306E\u4FDD\u5B58\u306E\u5931\u6557\u3057\u307E\u3057\u305F -ArtifactArchiver.NoIncludes=\u4FDD\u5B58\u3059\u308B\u6210\u679C\u7269\u304C\u4F55\u3082\u6307\u5B9A\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002\n\ -\u6050\u3089\u304F\u30D5\u30A1\u30A4\u30EB\u30D1\u30BF\u30FC\u30F3\u306E\u6307\u5B9A\u3092\u5FD8\u308C\u305F\u306E\u3067\u3057\u3087\u3046\u3002\u8A2D\u5B9A\u30DA\u30FC\u30B8\u306B\u623B\u3063\u3066\u30D1\u30BF\u30FC\u30F3\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\n\ -\u3082\u3057\u672C\u5F53\u306B\u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9\u306E\u5168\u3066\u306E\u30D5\u30A1\u30A4\u30EB\u3092\u4FDD\u5B58\u3059\u308B\u3064\u3082\u308A\u306A\u3089\u3001"**"\u3068\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002 -ArtifactArchiver.NoMatchFound=\u6307\u5B9A\u3055\u308C\u305F\u30D5\u30A1\u30A4\u30EB\u30D1\u30BF\u30FC\u30F3\u300C{0}\u300D\u306B\u5408\u81F4\u3059\u308B\u30D5\u30A1\u30A4\u30EB\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u8A2D\u5B9A\u30DF\u30B9\uFF1F +ArtifactArchiver.ARCHIVING_ARTIFACTS=\u6210\u679c\u7269\u3092\u4fdd\u5b58\u4e2d +ArtifactArchiver.DeletingOld=\u53e4\u3044\u6210\u679c\u7269\u3092\u524a\u9664\u4e2d +ArtifactArchiver.DisplayName=\u6210\u679c\u7269\u3092\u4fdd\u5b58 +ArtifactArchiver.FailedToArchive=\u6210\u679c\u7269\u306e\u4fdd\u5b58\u306e\u5931\u6557\u3057\u307e\u3057\u305f +ArtifactArchiver.NoIncludes=\u4fdd\u5b58\u3059\u308b\u6210\u679c\u7269\u304c\u4f55\u3082\u6307\u5b9a\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002\n\ +\u6050\u3089\u304f\u30d5\u30a1\u30a4\u30eb\u30d1\u30bf\u30fc\u30f3\u306e\u6307\u5b9a\u3092\u5fd8\u308c\u305f\u306e\u3067\u3057\u3087\u3046\u3002\u8a2d\u5b9a\u30da\u30fc\u30b8\u306b\u623b\u3063\u3066\u30d1\u30bf\u30fc\u30f3\u3092\u6307\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044\n\ +\u3082\u3057\u672c\u5f53\u306b\u30ef\u30fc\u30af\u30b9\u30da\u30fc\u30b9\u306e\u5168\u3066\u306e\u30d5\u30a1\u30a4\u30eb\u3092\u4fdd\u5b58\u3059\u308b\u3064\u3082\u308a\u306a\u3089\u3001"**"\u3068\u6307\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044\u3002 +ArtifactArchiver.NoMatchFound=\u6307\u5b9a\u3055\u308c\u305f\u30d5\u30a1\u30a4\u30eb\u30d1\u30bf\u30fc\u30f3\u300c{0}\u300d\u306b\u5408\u81f4\u3059\u308b\u30d5\u30a1\u30a4\u30eb\u304c\u3042\u308a\u307e\u305b\u3093\u3002\u8a2d\u5b9a\u30df\u30b9\uff1f -BatchFile.DisplayName=Windows\u30D0\u30C3\u30C1\u30B3\u30DE\u30F3\u30C9\u306E\u5B9F\u884C +BatchFile.DisplayName=Windows\u30d0\u30c3\u30c1\u30b3\u30de\u30f3\u30c9\u306e\u5b9f\u884c -BuildTrigger.Disabled={0} \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u30B9\u30AD\u30C3\u30D7\u3057\u307E\u3059\u3002 -BuildTrigger.DisplayName=\u4ED6\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u30D3\u30EB\u30C9 -BuildTrigger.InQueue={0} \u306F\u65E2\u306B\u30D3\u30EB\u30C9\u30AD\u30E5\u30FC\u306B\u3042\u308A\u307E\u3059 -BuildTrigger.NoSuchProject=''{0}''\u3068\u3044\u3046\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306F\u3042\u308A\u307E\u305B\u3093\u3002''{1}''\u306E\u3053\u3068\u3067\u3059\u304B? -BuildTrigger.NotBuildable={0} \u306F\u30D3\u30EB\u30C9\u53EF\u80FD\u3067\u306F\u3042\u308A\u307E\u305B\u3093 -BuildTrigger.Triggering={0} \u306E\u65B0\u898F\u30D3\u30EB\u30C9\u3092\u5B9F\u884C\u3057\u307E\u3059 +BuildTrigger.Disabled={0} \u306f\u4f7f\u7528\u3067\u304d\u307e\u305b\u3093\u3002\u30b9\u30ad\u30c3\u30d7\u3057\u307e\u3059\u3002 +BuildTrigger.DisplayName=\u4ed6\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u30d3\u30eb\u30c9 +BuildTrigger.InQueue={0} \u306f\u65e2\u306b\u30d3\u30eb\u30c9\u30ad\u30e5\u30fc\u306b\u3042\u308a\u307e\u3059 +BuildTrigger.NoSuchProject=''{0}''\u3068\u3044\u3046\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306f\u3042\u308a\u307e\u305b\u3093\u3002''{1}''\u306e\u3053\u3068\u3067\u3059\u304b? +BuildTrigger.NotBuildable={0} \u306f\u30d3\u30eb\u30c9\u53ef\u80fd\u3067\u306f\u3042\u308a\u307e\u305b\u3093 +BuildTrigger.Triggering={0} \u306e\u65b0\u898f\u30d3\u30eb\u30c9\u3092\u5b9f\u884c\u3057\u307e\u3059 -CommandInterpreter.CommandFailed=\u30B3\u30DE\u30F3\u30C9\u306E\u5B9F\u884C\u306B\u5931\u6557\u3057\u307E\u3057\u305F -CommandInterpreter.UnableToDelete=\u30B9\u30AF\u30EA\u30D7\u30C8\u30D5\u30A1\u30A4\u30EB {0} \u3092\u524A\u9664\u3067\u304D\u307E\u305B\u3093 -CommandInterpreter.UnableToProduceScript=\u30B9\u30AF\u30EA\u30D7\u30C8\u30D5\u30A1\u30A4\u30EB\u3092\u751F\u6210\u3067\u304D\u307E\u305B\u3093 +CommandInterpreter.CommandFailed=\u30b3\u30de\u30f3\u30c9\u306e\u5b9f\u884c\u306b\u5931\u6557\u3057\u307e\u3057\u305f +CommandInterpreter.UnableToDelete=\u30b9\u30af\u30ea\u30d7\u30c8\u30d5\u30a1\u30a4\u30eb {0} \u3092\u524a\u9664\u3067\u304d\u307e\u305b\u3093 +CommandInterpreter.UnableToProduceScript=\u30b9\u30af\u30ea\u30d7\u30c8\u30d5\u30a1\u30a4\u30eb\u3092\u751f\u6210\u3067\u304d\u307e\u305b\u3093 -Fingerprinter.Aborted=\u4E2D\u6B62 -Fingerprinter.Action.DisplayName=\u6307\u7D0B\u3092\u898B\u308B -Fingerprinter.DigestFailed={0} \u306E\u30C0\u30A4\u30B8\u30A7\u30B9\u30C8\u3092\u8A08\u7B97\u3067\u304D\u307E\u305B\u3093 -Fingerprinter.DisplayName=\u30D5\u30A1\u30A4\u30EB\u6307\u7D0B\u3092\u8A18\u9332\u3057\u3066\u30D5\u30A1\u30A4\u30EB\u306E\u5229\u7528\u72B6\u6CC1\u3092\u8FFD\u8DE1 -Fingerprinter.Failed=\u30D5\u30A1\u30A4\u30EB\u6307\u7D0B\u306E\u8A18\u9332\u306B\u5931\u6557\u3057\u307E\u3057\u305F -Fingerprinter.FailedFor={0} \u306E\u30D5\u30A1\u30A4\u30EB\u6307\u7D0B\u306E\u8A18\u9332\u306B\u5931\u6557\u3057\u307E\u3057\u305F -Fingerprinter.NoArchiving=\u6210\u679C\u7269\u306E\u30D5\u30A1\u30A4\u30EB\u6307\u7D0B\u3092\u8A18\u9332\u3059\u308B\u3053\u3068\u306B\u306A\u3063\u3066\u3044\u307E\u3059\u304C\u3001\u6210\u679C\u7269\u306E\u4FDD\u5B58\u304C\u8A2D\u5B9A\u3055\u308C\u3066\u3044\u307E\u305B\u3093 -Fingerprinter.NoWorkspace=\u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9\u304C\u306A\u3044\u306E\u3067\u3001\u30D5\u30A1\u30A4\u30EB\u6307\u7D0B\u3092\u8A18\u9332\u3067\u304D\u307E\u305B\u3093 -Fingerprinter.Recording=\u30D5\u30A1\u30A4\u30EB\u6307\u7D0B\u306E\u8A18\u9332 +Fingerprinter.Aborted=\u4e2d\u6b62 +Fingerprinter.Action.DisplayName=\u6307\u7d0b\u3092\u898b\u308b +Fingerprinter.DigestFailed={0} \u306e\u30c0\u30a4\u30b8\u30a7\u30b9\u30c8\u3092\u8a08\u7b97\u3067\u304d\u307e\u305b\u3093 +Fingerprinter.DisplayName=\u30d5\u30a1\u30a4\u30eb\u6307\u7d0b\u3092\u8a18\u9332\u3057\u3066\u30d5\u30a1\u30a4\u30eb\u306e\u5229\u7528\u72b6\u6cc1\u3092\u8ffd\u8de1 +Fingerprinter.Failed=\u30d5\u30a1\u30a4\u30eb\u6307\u7d0b\u306e\u8a18\u9332\u306b\u5931\u6557\u3057\u307e\u3057\u305f +Fingerprinter.FailedFor={0} \u306e\u30d5\u30a1\u30a4\u30eb\u6307\u7d0b\u306e\u8a18\u9332\u306b\u5931\u6557\u3057\u307e\u3057\u305f +Fingerprinter.NoArchiving=\u6210\u679c\u7269\u306e\u30d5\u30a1\u30a4\u30eb\u6307\u7d0b\u3092\u8a18\u9332\u3059\u308b\u3053\u3068\u306b\u306a\u3063\u3066\u3044\u307e\u3059\u304c\u3001\u6210\u679c\u7269\u306e\u4fdd\u5b58\u304c\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u307e\u305b\u3093 +Fingerprinter.NoWorkspace=\u30ef\u30fc\u30af\u30b9\u30da\u30fc\u30b9\u304c\u306a\u3044\u306e\u3067\u3001\u30d5\u30a1\u30a4\u30eb\u6307\u7d0b\u3092\u8a18\u9332\u3067\u304d\u307e\u305b\u3093 +Fingerprinter.Recording=\u30d5\u30a1\u30a4\u30eb\u6307\u7d0b\u306e\u8a18\u9332 -JavadocArchiver.DisplayName=Javadoc\u306E\u4FDD\u5B58 -JavadocArchiver.DisplayName.Generic=\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8 +InstallFromApache=Apache\u304b\u3089\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb + +JavadocArchiver.DisplayName=Javadoc\u306e\u4fdd\u5b58 +JavadocArchiver.DisplayName.Generic=\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8 JavadocArchiver.DisplayName.Javadoc=Javadoc -JavadocArchiver.NoMatchFound={0} \u306BJavadoc\u304C\u3042\u308A\u307E\u305B\u3093: {1} -JavadocArchiver.Publishing=Javadoc\u306E\u4FDD\u5B58 -JavadocArchiver.UnableToCopy=Javadoc\u3092{0}\u304B\u3089{1}\u306B\u30B3\u30D4\u30FC\u3067\u304D\u307E\u305B\u3093 +JavadocArchiver.NoMatchFound={0} \u306bJavadoc\u304c\u3042\u308a\u307e\u305b\u3093: {1} +JavadocArchiver.Publishing=Javadoc\u306e\u4fdd\u5b58 +JavadocArchiver.UnableToCopy=Javadoc\u3092{0}\u304b\u3089{1}\u306b\u30b3\u30d4\u30fc\u3067\u304d\u307e\u305b\u3093 -MailSender.ListEmpty=\u53D7\u4FE1\u8005\u3092\u6307\u5B9A\u305B\u305A\u306B\u30E1\u30FC\u30EB\u3092\u9001\u4FE1\u3057\u3088\u3046\u3068\u3057\u3066\u3044\u307E\u3059\u306E\u3067\u3001\u7121\u8996\u3057\u307E\u3059\u3002 -MailSender.NoAddress=\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u304C\u4E0D\u660E\u3067\u3001\u30C7\u30D5\u30A9\u30EB\u30C8\u306E\u30C9\u30E1\u30A4\u30F3\u3082\u8A2D\u5B9A\u3055\u308C\u3066\u3044\u306A\u3044\u306E\u3067\u3001{0}\u5B9B\u306E\u30E1\u30FC\u30EB\u9001\u4FE1\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002 +MailSender.ListEmpty=\u53d7\u4fe1\u8005\u3092\u6307\u5b9a\u305b\u305a\u306b\u30e1\u30fc\u30eb\u3092\u9001\u4fe1\u3057\u3088\u3046\u3068\u3057\u3066\u3044\u307e\u3059\u306e\u3067\u3001\u7121\u8996\u3057\u307e\u3059\u3002 +MailSender.NoAddress=\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u304c\u4e0d\u660e\u3067\u3001\u30c7\u30d5\u30a9\u30eb\u30c8\u306e\u30c9\u30e1\u30a4\u30f3\u3082\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u306a\u3044\u306e\u3067\u3001{0}\u5b9b\u306e\u30e1\u30fc\u30eb\u9001\u4fe1\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 +MailSender.BackToNormal.Normal=\u6b63\u5e38 +MailSender.BackToNormal.Stable=\u5b89\u5b9a +MailSender.BackToNormalMail.Subject=Hudson\u306e\u30d3\u30eb\u30c9\u304c{0}\u306b\u623b\u308a\u307e\u3057\u305f: +MailSender.UnstableMail.Subject=Hudson\u306e\u30d3\u30eb\u30c9\u304c\u4e0d\u5b89\u5b9a\u3067\u3059: +MailSender.UnstableMail.ToUnStable.Subject=Hudson\u306e\u30d3\u30eb\u30c9\u304c\u4e0d\u5b89\u5b9a\u306b\u306a\u308a\u307e\u3057\u305f: +MailSender.UnstableMail.StillUnstable.Subject=Hudson\u306e\u30d3\u30eb\u30c9\u306f\u307e\u3060\u4e0d\u5b89\u5b9a\u306e\u307e\u307e\u3067\u3059: +MailSender.FailureMail.Subject=Hudson\u306e\u30d3\u30eb\u30c9\u304c\u5931\u6557\u3057\u307e\u3057\u305f: +MailSender.FailureMail.Changes=\u5909\u66f4\u5c65\u6b74: +MailSender.FailureMail.FailedToAccessBuildLog=\u30d3\u30eb\u30c9\u30ed\u30b0\u306e\u53d6\u5f97\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 +MailSender.Link=<{0}{1}>\u3092\u78ba\u8a8d\u3057\u3066\u304f\u3060\u3055\u3044\u3002 -Mailer.DisplayName=E-mail\u901A\u77E5 +Mailer.DisplayName=E-mail\u901a\u77e5 +Mailer.Unknown.Host.Name=\u4e0d\u660e\u306a\u30db\u30b9\u30c8\u540d\u3067\u3059\u3002: +Mailer.Suffix.Error=\u3053\u306e\u30d5\u30a3\u30fc\u30eb\u30c9\u306b\u306f@\u306b\u3064\u3065\u3051\u3066\u30c9\u30e1\u30a4\u30f3\u540d\u3092\u8a2d\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044\u3002 +Mailer.Address.Not.Configured=\u307e\u3060\u30a2\u30c9\u30ec\u30b9\u304c\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002 +Mailer.Localhost.Error=localhost\u306e\u4ee3\u308f\u308a\u306b\u59a5\u5f53\u306a\u30db\u30b9\u30c8\u540d\u3092\u8a2d\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044\u3002 Mailer.UserProperty.DisplayName=E-mail -Maven.DisplayName=Maven\u306E\u547C\u3073\u51FA\u3057 -Maven.ExecFailed=\u30B3\u30DE\u30F3\u30C9\u306E\u5B9F\u884C\u306B\u5931\u6557\u3057\u307E\u3057\u305F -Maven.MavenHomeRequired=MAVEN_HOME\u304C\u5FC5\u8981\u3067\u3059 -Maven.NotMavenDirectory={0}\u306B\u306FMaven\u304C\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3055\u308C\u3066\u3044\u306A\u3044\u3088\u3046\u3067\u3059 -Maven.NoExecutable={0} \u306B\u5B9F\u884C\u5F62\u5F0F\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093 -Maven.NotADirectory={0}\u306F\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3067\u306F\u3042\u308A\u307E\u305B\u3093 +Maven.DisplayName=Maven\u306e\u547c\u3073\u51fa\u3057 +Maven.ExecFailed=\u30b3\u30de\u30f3\u30c9\u306e\u5b9f\u884c\u306b\u5931\u6557\u3057\u307e\u3057\u305f +Maven.NotMavenDirectory={0}\u306b\u306fMaven\u304c\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3055\u308c\u3066\u3044\u306a\u3044\u3088\u3046\u3067\u3059 +Maven.NoExecutable={0} \u306b\u5b9f\u884c\u5f62\u5f0f\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093 +Maven.NotADirectory={0}\u306f\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3067\u306f\u3042\u308a\u307e\u305b\u3093 -Shell.DisplayName=\u30B7\u30A7\u30EB\u306E\u5B9F\u884C +Shell.DisplayName=\u30b7\u30a7\u30eb\u306e\u5b9f\u884c diff --git a/core/src/main/resources/hudson/tasks/Messages_nl.properties b/core/src/main/resources/hudson/tasks/Messages_nl.properties index a9cbfd8d3cb18e3df855d4bcdbe59b208484f7ac..84bf0236f752481346d18b42e296c20d2171b8d9 100644 --- a/core/src/main/resources/hudson/tasks/Messages_nl.properties +++ b/core/src/main/resources/hudson/tasks/Messages_nl.properties @@ -73,7 +73,6 @@ Mailer.UserProperty.DisplayName=E-mail Maven.DisplayName=Voer top-niveau Maven taken uit Maven.ExecFailed=uitvoer commando is gefaald -Maven.MavenHomeRequired=MAVEN_HOME is verplicht Maven.NotMavenDirectory={0} is geen Maven folder Maven.NoExecutable=Kon geen uitvoerbaar bestand vinde in {0} Maven.NotADirectory={0} is geen folder diff --git a/core/src/main/resources/hudson/tasks/Messages_pt_BR.properties b/core/src/main/resources/hudson/tasks/Messages_pt_BR.properties index 1be5ec46baf20690c9f53cbaad74df88a421a7d6..566f1e4e0b1ea7ae3a76f654af7c96f25745355e 100644 --- a/core/src/main/resources/hudson/tasks/Messages_pt_BR.properties +++ b/core/src/main/resources/hudson/tasks/Messages_pt_BR.properties @@ -73,9 +73,44 @@ Mailer.UserProperty.DisplayName=E-mail Maven.DisplayName=Invocar alvos Maven de alto n\u00EDvel Maven.ExecFailed=execu\u00E7\u00E3o de comando falhou -Maven.MavenHomeRequired=MAVEN_HOME \u00E9 requerido Maven.NotMavenDirectory={0} n\u00E3o parece ser um diret\u00F3rio Maven Maven.NoExecutable=N\u00E3o pode encontrar nehum execut\u00E1vel em {0} Maven.NotADirectory={0} n\u00E3o \u00E9 um diret\u00F3rio Shell.DisplayName=Executar shell +# Changes: +MailSender.FailureMail.Changes= +# Failed to access build log +MailSender.FailureMail.FailedToAccessBuildLog= +# Cannot find executable from the choosen Ant installation "{0}" +Ant.ExecutableNotFound= +# Archiving artifacts +ArtifactArchiver.ARCHIVING_ARTIFACTS= +# Install from Apache +InstallFromApache= +# Hudson build became unstable: +MailSender.UnstableMail.ToUnStable.Subject= +# normal +MailSender.BackToNormal.Normal= +# Hudson build is still unstable: +MailSender.UnstableMail.StillUnstable.Subject= +# No javadoc found in {0}: {1} +JavadocArchiver.NoMatchFound= +# See <{0}{1}> +MailSender.Link= +# stable +MailSender.BackToNormal.Stable= +# address not configured yet +Mailer.Address.Not.Configured= +# This field should be ''@'' followed by a domain name. +Mailer.Suffix.Error= +# Hudson build is back to {0} : +MailSender.BackToNormalMail.Subject= +# Please set a valid host name, instead of localhost +Mailer.Localhost.Error= +# Build failed in Hudson: +MailSender.FailureMail.Subject= +# Unknown host name: +Mailer.Unknown.Host.Name= +# Hudson build is unstable: +MailSender.UnstableMail.Subject= diff --git a/core/src/main/resources/hudson/tasks/Messages_ru.properties b/core/src/main/resources/hudson/tasks/Messages_ru.properties index 4f180e26acaf1c56059a0bae8845d9b31ed198cc..82aed787a1ac025a60a4cba02286c76a24a07dc7 100644 --- a/core/src/main/resources/hudson/tasks/Messages_ru.properties +++ b/core/src/main/resources/hudson/tasks/Messages_ru.properties @@ -20,62 +20,61 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Ant.DisplayName=\u0412\u044b\u0437\u0432\u0430\u0442\u044c Ant -Ant.ExecFailed=\u0412\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u043f\u0440\u043e\u0432\u0430\u043b\u0438\u043b\u043e\u0441\u044c. -Ant.GlobalConfigNeeded=\u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0432\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c, \u0433\u0434\u0435 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432\u0430\u0448\u0430 \u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0446\u0438\u044f Ant? -Ant.NotADirectory={0} \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0435\u0439 -Ant.NotAntDirectory={0} \u043d\u0435 \u043f\u043e\u0445\u043e\u0436\u0430 \u043d\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e Ant -Ant.ProjectConfigNeeded= \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0432\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0435, \u0433\u0434\u0435 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432\u0430\u0448\u0430 \u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0446\u0438\u044f Ant? +Ant.DisplayName=\u0412\u044B\u0437\u0432\u0430\u0442\u044C Ant +Ant.ExecFailed=\u0412\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u0435 \u043A\u043E\u043C\u0430\u043D\u0434\u044B \u043F\u0440\u043E\u0432\u0430\u043B\u0438\u043B\u043E\u0441\u044C. +Ant.GlobalConfigNeeded=\u0412\u043E\u0437\u043C\u043E\u0436\u043D\u043E, \u0432\u0430\u043C \u043D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u043E \u0443\u043A\u0430\u0437\u0430\u0442\u044C, \u0433\u0434\u0435 \u043D\u0430\u0445\u043E\u0434\u0438\u0442\u0441\u044F \u0432\u0430\u0448\u0430 \u0438\u043D\u0441\u0442\u0430\u043B\u043B\u044F\u0446\u0438\u044F Ant? +Ant.NotADirectory={0} \u043D\u0435 \u044F\u0432\u043B\u044F\u0435\u0442\u0441\u044F \u0434\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u0435\u0439 +Ant.NotAntDirectory={0} \u043D\u0435 \u043F\u043E\u0445\u043E\u0436\u0430 \u043D\u0430 \u0434\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044E Ant +Ant.ProjectConfigNeeded= \u0412\u043E\u0437\u043C\u043E\u0436\u043D\u043E, \u0432\u0430\u043C \u043D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u043E \u0443\u043A\u0430\u0437\u0430\u0442\u044C \u0432 \u043F\u0440\u043E\u0435\u043A\u0442\u0435, \u0433\u0434\u0435 \u043D\u0430\u0445\u043E\u0434\u0438\u0442\u0441\u044F \u0432\u0430\u0448\u0430 \u0438\u043D\u0441\u0442\u0430\u043B\u043B\u044F\u0446\u0438\u044F Ant? -ArtifactArchiver.DeletingOld=\u0423\u0434\u0430\u043b\u044f\u044e \u0441\u0442\u0430\u0440\u044b\u0435 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u044b \u0438\u0437 {0} -ArtifactArchiver.DisplayName=\u0417\u0430\u0430\u0440\u0445\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u044b -ArtifactArchiver.FailedToArchive=\u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0437\u0430\u0430\u0440\u0445\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u044b: {0} +ArtifactArchiver.DeletingOld=\u0423\u0434\u0430\u043B\u044F\u044E \u0441\u0442\u0430\u0440\u044B\u0435 \u0430\u0440\u0442\u0435\u0444\u0430\u043A\u0442\u044B \u0438\u0437 {0} +ArtifactArchiver.DisplayName=\u0417\u0430\u0430\u0440\u0445\u0438\u0432\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0430\u0440\u0442\u0435\u0444\u0430\u043A\u0442\u044B +ArtifactArchiver.FailedToArchive=\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0437\u0430\u0430\u0440\u0445\u0438\u0432\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0430\u0440\u0442\u0435\u0444\u0430\u043A\u0442\u044B: {0} ArtifactArchiver.NoIncludes=\ -\u041d\u0435\u0442 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u043e\u0432 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u0430\u0440\u0445\u0438\u0432\u0430\u0446\u0438\u0438.\n\ -\u041f\u043e\u0445\u043e\u0436\u0435, \u0432\u044b \u0437\u0430\u0431\u044b\u043b\u0438 \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0448\u0430\u0431\u043b\u043e\u043d \u0438\u043c\u0435\u043d\u0438 \u0444\u0430\u0439\u043b\u0430, \u043f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0432\u0435\u0440\u043d\u0438\u0442\u0435\u0441\u044c \u043d\u0430 \u044d\u043a\u0440\u0430\u043d \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0438 \u0443\u043a\u0430\u0436\u0438\u0442\u0435 \u0435\u0433\u043e.\n\ -\u0415\u0441\u043b\u0438 \u0432\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u0437\u0430\u0430\u0440\u0445\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0441\u0435 \u0444\u0430\u0439\u043b\u044b \u0432 \u0441\u0431\u043e\u0440\u043e\u0447\u043d\u043e\u0439 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438, \u0443\u043a\u0430\u0436\u0438\u0442\u0435 "**" -ArtifactArchiver.NoMatchFound=\u0410\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u043e\u0432, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u0448\u0430\u0431\u043b\u043e\u043d\u0443 "{0}", \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\u043e. \u041e\u0448\u0438\u0431\u043b\u0438\u0441\u044c \u043f\u0440\u0438 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438? +\u041D\u0435\u0442 \u0430\u0440\u0442\u0435\u0444\u0430\u043A\u0442\u043E\u0432 \u0443\u043A\u0430\u0437\u0430\u043D\u043D\u044B\u0445 \u0434\u043B\u044F \u0430\u0440\u0445\u0438\u0432\u0430\u0446\u0438\u0438.\n\ +\u041F\u043E\u0445\u043E\u0436\u0435, \u0432\u044B \u0437\u0430\u0431\u044B\u043B\u0438 \u0443\u043A\u0430\u0437\u0430\u0442\u044C \u0448\u0430\u0431\u043B\u043E\u043D \u0438\u043C\u0435\u043D\u0438 \u0444\u0430\u0439\u043B\u0430, \u043F\u043E\u0436\u0430\u043B\u0443\u0439\u0441\u0442\u0430, \u0432\u0435\u0440\u043D\u0438\u0442\u0435\u0441\u044C \u043D\u0430 \u044D\u043A\u0440\u0430\u043D \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0438 \u0443\u043A\u0430\u0436\u0438\u0442\u0435 \u0435\u0433\u043E.\n\ +\u0415\u0441\u043B\u0438 \u0432\u044B \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043B\u044C\u043D\u043E \u0445\u043E\u0442\u0438\u0442\u0435 \u0437\u0430\u0430\u0440\u0445\u0438\u0432\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0432\u0441\u0435 \u0444\u0430\u0439\u043B\u044B \u0432 \u0441\u0431\u043E\u0440\u043E\u0447\u043D\u043E\u0439 \u0434\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u0438, \u0443\u043A\u0430\u0436\u0438\u0442\u0435 "**" +ArtifactArchiver.NoMatchFound=\u0410\u0440\u0442\u0435\u0444\u0430\u043A\u0442\u043E\u0432, \u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044E\u0449\u0438\u0445 \u0448\u0430\u0431\u043B\u043E\u043D\u0443 "{0}", \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u043E. \u041E\u0448\u0438\u0431\u043B\u0438\u0441\u044C \u043F\u0440\u0438 \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0438? -BatchFile.DisplayName=\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u0443 Windows +BatchFile.DisplayName=\u0412\u044B\u043F\u043E\u043B\u043D\u0438\u0442\u044C \u043A\u043E\u043C\u0430\u043D\u0434\u0443 Windows -BuildTrigger.Disabled={0} \u043f\u0440\u0438\u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d. \u041d\u0435 \u043c\u043e\u0433\u0443 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c -BuildTrigger.DisplayName=\u0421\u043e\u0431\u0440\u0430\u0442\u044c \u0434\u0440\u0443\u0433\u043e\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 -BuildTrigger.InQueue={0} \u0443\u0436\u0435 \u0432 \u043e\u0447\u0435\u0440\u0435\u0434\u0438 -BuildTrigger.NoSuchProject=\u041d\u0435\u0442 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 ''{0}''. \u0412\u044b \u0438\u043c\u0435\u043b\u0438 \u0432 \u0432\u0438\u0434\u0443 ''{1}''? -BuildTrigger.NotBuildable={0} \u043d\u0435\u0441\u043e\u0431\u0438\u0440\u0430\u0435\u043c\u044b\u0439 -BuildTrigger.Triggering=\u0418\u043d\u0438\u0446\u0438\u0438\u0440\u0443\u044e \u043d\u043e\u0432\u0443\u044e \u0441\u0431\u043e\u0440\u043a\u0443 {0} +BuildTrigger.Disabled={0} \u043F\u0440\u0438\u043E\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D. \u041D\u0435 \u043C\u043E\u0433\u0443 \u0437\u0430\u043F\u0443\u0441\u0442\u0438\u0442\u044C +BuildTrigger.DisplayName=\u0421\u043E\u0431\u0440\u0430\u0442\u044C \u0434\u0440\u0443\u0433\u043E\u0439 \u043F\u0440\u043E\u0435\u043A\u0442 +BuildTrigger.InQueue={0} \u0443\u0436\u0435 \u0432 \u043E\u0447\u0435\u0440\u0435\u0434\u0438 +BuildTrigger.NoSuchProject=\u041D\u0435\u0442 \u043F\u0440\u043E\u0435\u043A\u0442\u0430 ''{0}''. \u0412\u044B \u0438\u043C\u0435\u043B\u0438 \u0432 \u0432\u0438\u0434\u0443 ''{1}''? +BuildTrigger.NotBuildable={0} \u043D\u0435\u0441\u043E\u0431\u0438\u0440\u0430\u0435\u043C\u044B\u0439 +BuildTrigger.Triggering=\u0418\u043D\u0438\u0446\u0438\u0438\u0440\u0443\u044E \u043D\u043E\u0432\u0443\u044E \u0441\u0431\u043E\u0440\u043A\u0443 {0} -CommandInterpreter.CommandFailed=\u0412\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u043d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c -CommandInterpreter.UnableToDelete=\u041d\u0435 \u043c\u043e\u0433\u0443 \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u0441\u043a\u0440\u0438\u043f\u0442 {0} -CommandInterpreter.UnableToProduceScript=\u041d\u0435 \u043c\u043e\u0433\u0443 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0441\u043a\u0440\u0438\u043f\u0442 +CommandInterpreter.CommandFailed=\u0412\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u0435 \u043A\u043E\u043C\u0430\u043D\u0434\u044B \u043D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C +CommandInterpreter.UnableToDelete=\u041D\u0435 \u043C\u043E\u0433\u0443 \u0443\u0434\u0430\u043B\u0438\u0442\u044C \u0441\u043A\u0440\u0438\u043F\u0442 {0} +CommandInterpreter.UnableToProduceScript=\u041D\u0435 \u043C\u043E\u0433\u0443 \u0441\u043E\u0437\u0434\u0430\u0442\u044C \u0441\u043A\u0440\u0438\u043F\u0442 -Fingerprinter.Aborted=\u041f\u0440\u0435\u0440\u0432\u0430\u043d\u043e -Fingerprinter.Action.DisplayName=\u0421\u043c\u043e\u0442\u0440\u0438 \u043e\u0442\u043f\u0435\u0447\u0430\u0442\u043a\u0438 (fingerprints) -Fingerprinter.DigestFailed=\u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043f\u043e\u0434\u0441\u0447\u0438\u0442\u0430\u0442\u044c \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c\u043d\u0443\u044e \u0441\u0443\u043c\u043c\u0443 {0} -Fingerprinter.DisplayName=\u0421\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c \u043e\u0442\u043f\u0435\u0447\u0430\u0442\u043a\u0438 \u0444\u0430\u0439\u043b\u043e\u0432 (fingerprints) \u0434\u043b\u044f \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u043d\u0438\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f -Fingerprinter.Failed=\u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043e\u0442\u043f\u0435\u0447\u0430\u0442\u043a\u0438 -Fingerprinter.FailedFor=\u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043e\u0442\u043f\u0435\u0447\u0430\u0442\u043a\u0438 {0} -Fingerprinter.NoArchiving=\u0410\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u044b \u0441\u0431\u043e\u0440\u043a\u0438 \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u043e\u0442\u043f\u0435\u0447\u0430\u0442\u0430\u043d\u044b, \u043d\u043e \u0430\u0440\u0445\u0438\u0432\u0430\u0446\u0438\u044f \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u043e\u0432 \u043d\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u0430 -Fingerprinter.NoWorkspace=\u041d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043e\u0442\u043f\u0435\u0447\u0430\u0442\u043a\u0438, \u0442.\u043a. \u043d\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0430 \u0441\u0431\u043e\u0440\u043e\u0447\u043d\u0430\u044f \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f -Fingerprinter.Recording=\u0421\u043e\u0445\u0440\u0430\u043d\u044f\u044e \u043e\u0442\u043f\u0435\u0447\u0430\u0442\u043a\u0438 (fingerprints) +Fingerprinter.Aborted=\u041F\u0440\u0435\u0440\u0432\u0430\u043D\u043E +Fingerprinter.Action.DisplayName=\u0421\u043C\u043E\u0442\u0440\u0438 \u043E\u0442\u043F\u0435\u0447\u0430\u0442\u043A\u0438 (fingerprints) +Fingerprinter.DigestFailed=\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043F\u043E\u0434\u0441\u0447\u0438\u0442\u0430\u0442\u044C \u043A\u043E\u043D\u0442\u0440\u043E\u043B\u044C\u043D\u0443\u044E \u0441\u0443\u043C\u043C\u0443 {0} +Fingerprinter.DisplayName=\u0421\u043E\u0445\u0440\u0430\u043D\u044F\u0442\u044C \u043E\u0442\u043F\u0435\u0447\u0430\u0442\u043A\u0438 \u0444\u0430\u0439\u043B\u043E\u0432 (fingerprints) \u0434\u043B\u044F \u043E\u0442\u0441\u043B\u0435\u0436\u0438\u0432\u0430\u043D\u0438\u044F \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u044F +Fingerprinter.Failed=\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0441\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C \u043E\u0442\u043F\u0435\u0447\u0430\u0442\u043A\u0438 +Fingerprinter.FailedFor=\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0441\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C \u043E\u0442\u043F\u0435\u0447\u0430\u0442\u043A\u0438 {0} +Fingerprinter.NoArchiving=\u0410\u0440\u0442\u0435\u0444\u0430\u043A\u0442\u044B \u0441\u0431\u043E\u0440\u043A\u0438 \u0434\u043E\u043B\u0436\u043D\u044B \u0431\u044B\u0442\u044C \u043E\u0442\u043F\u0435\u0447\u0430\u0442\u0430\u043D\u044B, \u043D\u043E \u0430\u0440\u0445\u0438\u0432\u0430\u0446\u0438\u044F \u0430\u0440\u0442\u0435\u0444\u0430\u043A\u0442\u043E\u0432 \u043D\u0435 \u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043D\u0430 +Fingerprinter.NoWorkspace=\u041D\u0435\u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E \u0441\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C \u043E\u0442\u043F\u0435\u0447\u0430\u0442\u043A\u0438, \u0442.\u043A. \u043D\u0435 \u0441\u043E\u0437\u0434\u0430\u043D\u0430 \u0441\u0431\u043E\u0440\u043E\u0447\u043D\u0430\u044F \u0434\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044F +Fingerprinter.Recording=\u0421\u043E\u0445\u0440\u0430\u043D\u044F\u044E \u043E\u0442\u043F\u0435\u0447\u0430\u0442\u043A\u0438 (fingerprints) -JavadocArchiver.DisplayName=\u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u0442\u044c Javadoc -JavadocArchiver.DisplayName.Generic=\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442 +JavadocArchiver.DisplayName=\u041E\u043F\u0443\u0431\u043B\u0438\u043A\u043E\u0432\u0430\u0442\u044C Javadoc +JavadocArchiver.DisplayName.Generic=\u0414\u043E\u043A\u0443\u043C\u0435\u043D\u0442 JavadocArchiver.DisplayName.Javadoc=Javadoc -JavadocArchiver.Publishing=\u041f\u0443\u0431\u043b\u0438\u043a\u0443\u044e Javadoc -JavadocArchiver.UnableToCopy=\u041d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0441\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c Javadoc \u0438\u0437 {0} \u0432 {1} +JavadocArchiver.Publishing=\u041F\u0443\u0431\u043B\u0438\u043A\u0443\u044E Javadoc +JavadocArchiver.UnableToCopy=\u041D\u0435\u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E \u0441\u043A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C Javadoc \u0438\u0437 {0} \u0432 {1} -MailSender.ListEmpty=\u041f\u043e\u043f\u044b\u0442\u043a\u0430 \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0435 \u043f\u0443\u0441\u0442\u043e\u043c\u0443 \u0441\u043f\u0438\u0441\u043a\u0443 \u0430\u0434\u0440\u0435\u0441\u0430\u0442\u043e\u0432. \u041f\u0440\u043e\u0438\u0433\u043d\u043e\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043e. -MailSender.NoAddress=\u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 {0} \u0442\u0430\u043a \u043a\u0430\u043a \u0435\u0433\u043e \u0430\u0434\u0440\u0435\u0441 \u043d\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u0435\u043d, \u0430 \u0434\u043e\u043c\u0435\u043d \u043f\u043e-\u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043d\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d +MailSender.ListEmpty=\u041F\u043E\u043F\u044B\u0442\u043A\u0430 \u043E\u0442\u043F\u0440\u0430\u0432\u0438\u0442\u044C \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u0435 \u043F\u0443\u0441\u0442\u043E\u043C\u0443 \u0441\u043F\u0438\u0441\u043A\u0443 \u0430\u0434\u0440\u0435\u0441\u0430\u0442\u043E\u0432. \u041F\u0440\u043E\u0438\u0433\u043D\u043E\u0440\u0438\u0440\u043E\u0432\u0430\u043D\u043E. +MailSender.NoAddress=\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043E\u0442\u043F\u0440\u0430\u0432\u0438\u0442\u044C \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 {0} \u0442\u0430\u043A \u043A\u0430\u043A \u0435\u0433\u043E \u0430\u0434\u0440\u0435\u0441 \u043D\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u0435\u043D, \u0430 \u0434\u043E\u043C\u0435\u043D \u043F\u043E-\u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u043D\u0435 \u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043D -Mailer.DisplayName=\u0423\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0435 \u043f\u043e \u043f\u043e\u0447\u0442\u0435 -Mailer.UserProperty.DisplayName=\u0410\u0434\u0440\u0435\u0441 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043f\u043e\u0447\u0442\u044b +Mailer.DisplayName=\u0423\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u0435 \u043F\u043E \u043F\u043E\u0447\u0442\u0435 +Mailer.UserProperty.DisplayName=\u0410\u0434\u0440\u0435\u0441 \u044D\u043B\u0435\u043A\u0442\u0440\u043E\u043F\u043E\u0447\u0442\u044B -Maven.DisplayName=\u0412\u044b\u0437\u0432\u0430\u0442\u044c \u0446\u0435\u043b\u0438 Maven \u0432\u0435\u0440\u0445\u043d\u0435\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f -Maven.ExecFailed=\u0412\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u043d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c -Maven.MavenHomeRequired=MAVEN_HOME \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0443\u043a\u0430\u0437\u0430\u043d -Maven.NotMavenDirectory={0} \u043d\u0435 \u043f\u043e\u0445\u043e\u0436\u0430 \u043d\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e Maven -Maven.NoExecutable=\u041d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 \u0432 {0} -Maven.NotADirectory={0} \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0435\u0439 +Maven.DisplayName=\u0412\u044B\u0437\u0432\u0430\u0442\u044C \u0446\u0435\u043B\u0438 Maven \u0432\u0435\u0440\u0445\u043D\u0435\u0433\u043E \u0443\u0440\u043E\u0432\u043D\u044F +Maven.ExecFailed=\u0412\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u0435 \u043A\u043E\u043C\u0430\u043D\u0434\u044B \u043D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C +Maven.NotMavenDirectory={0} \u043D\u0435 \u043F\u043E\u0445\u043E\u0436\u0430 \u043D\u0430 \u0434\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044E Maven +Maven.NoExecutable=\u041D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u043E \u0438\u0441\u043F\u043E\u043B\u043D\u044F\u0435\u043C\u044B\u0445 \u0444\u0430\u0439\u043B\u043E\u0432 \u0432 {0} +Maven.NotADirectory={0} \u043D\u0435 \u044F\u0432\u043B\u044F\u0435\u0442\u0441\u044F \u0434\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u0435\u0439 -Shell.DisplayName=\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u0443 shell +Shell.DisplayName=\u0412\u044B\u043F\u043E\u043B\u043D\u0438\u0442\u044C \u043A\u043E\u043C\u0430\u043D\u0434\u0443 shell diff --git a/core/src/main/resources/hudson/tasks/Messages_tr.properties b/core/src/main/resources/hudson/tasks/Messages_tr.properties index 8001345a62297d58cddd2c74e1c96dc50c206f9e..4db802e8f9deaae220b5bafee93990731f85956f 100644 --- a/core/src/main/resources/hudson/tasks/Messages_tr.properties +++ b/core/src/main/resources/hudson/tasks/Messages_tr.properties @@ -20,62 +20,61 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Ant.DisplayName=Ant \u00e7al\u0131\u015ft\u0131r -Ant.ExecFailed=Komut \u00e7al\u0131\u015ft\u0131rma ba\u015far\u0131s\u0131z oldu. -Ant.GlobalConfigNeeded= Ant kurulumunun nerede oldu\u011fu ile ilgili bir konfig\u00fcrasyon sorunu olabilir? -Ant.NotADirectory={0}, bir dizin de\u011fil +Ant.DisplayName=Ant \u00E7al\u0131\u015Ft\u0131r +Ant.ExecFailed=Komut \u00E7al\u0131\u015Ft\u0131rma ba\u015Far\u0131s\u0131z oldu. +Ant.GlobalConfigNeeded= Ant kurulumunun nerede oldu\u011Fu ile ilgili bir konfig\u00FCrasyon sorunu olabilir? +Ant.NotADirectory={0}, bir dizin de\u011Fil Ant.NotAntDirectory={0}, bir Ant dizinine benzemiyor -Ant.ProjectConfigNeeded= \u00c7al\u0131\u015ft\u0131rd\u0131\u011f\u0131n\u0131z i\u015f i\u00e7in bir Ant kurulumu se\u00e7meniz gerekiyor olabilir? +Ant.ProjectConfigNeeded= \u00C7al\u0131\u015Ft\u0131rd\u0131\u011F\u0131n\u0131z i\u015F i\u00E7in bir Ant kurulumu se\u00E7meniz gerekiyor olabilir? ArtifactArchiver.DeletingOld={0}''dan, eski artefaktlar siliniyor -ArtifactArchiver.DisplayName=Artefaktlar\u0131 Ar\u015fivle -ArtifactArchiver.FailedToArchive=Artefakt ar\u015fivleme ba\u015far\u0131s\u0131z oldu: {0} +ArtifactArchiver.DisplayName=Artefaktlar\u0131 Ar\u015Fivle +ArtifactArchiver.FailedToArchive=Artefakt ar\u015Fivleme ba\u015Far\u0131s\u0131z oldu: {0} ArtifactArchiver.NoIncludes=\ -Herhangi bir artefakt, ar\u015fivleme i\u00e7in ayarlanmad\u0131.\n\ -Konfig\u00fcrasyon k\u0131sm\u0131nda File Pattern ayarlar\u0131n\u0131 kontrol edin.\n\ -\u00c7al\u0131\u015fma alan\u0131ndaki t\u00fcm dosyalar\u0131 ar\u015fivlemek istiyorsan\u0131z, "**" olarak belirtin. -ArtifactArchiver.NoMatchFound="{0}" file pattern''ine uyan herhangi bir artefakt bulunamad\u0131. Konfig\u00fcrasyonu kontrol edin? +Herhangi bir artefakt, ar\u015Fivleme i\u00E7in ayarlanmad\u0131.\n\ +Konfig\u00FCrasyon k\u0131sm\u0131nda File Pattern ayarlar\u0131n\u0131 kontrol edin.\n\ +\u00C7al\u0131\u015Fma alan\u0131ndaki t\u00FCm dosyalar\u0131 ar\u015Fivlemek istiyorsan\u0131z, "**" olarak belirtin. +ArtifactArchiver.NoMatchFound="{0}" file pattern''ine uyan herhangi bir artefakt bulunamad\u0131. Konfig\u00FCrasyonu kontrol edin? -BatchFile.DisplayName=Windows batch komutu \u00e7al\u0131\u015ft\u0131r +BatchFile.DisplayName=Windows batch komutu \u00E7al\u0131\u015Ft\u0131r -BuildTrigger.Disabled={0} devre d\u0131\u015f\u0131 b\u0131rak\u0131lm\u0131\u015f. Tetikleme es ge\u00e7ildi. -BuildTrigger.DisplayName=Di\u011fer projeleri yap\u0131land\u0131r +BuildTrigger.Disabled={0} devre d\u0131\u015F\u0131 b\u0131rak\u0131lm\u0131\u015F. Tetikleme es ge\u00E7ildi. +BuildTrigger.DisplayName=Di\u011Fer projeleri yap\u0131land\u0131r BuildTrigger.InQueue={0} zaten s\u0131rada BuildTrigger.NoSuchProject=''{0}'' diye bir proje yok. ''{1}'' olabilir mi? -BuildTrigger.NotBuildable={0} yap\u0131land\u0131r\u0131labilir de\u011fil +BuildTrigger.NotBuildable={0} yap\u0131land\u0131r\u0131labilir de\u011Fil BuildTrigger.Triggering={0} yap\u0131land\u0131rmas\u0131 tetikleniyor -CommandInterpreter.CommandFailed=komut \u00e7al\u0131\u015ft\u0131rma ba\u015far\u0131s\u0131z oldu +CommandInterpreter.CommandFailed=komut \u00E7al\u0131\u015Ft\u0131rma ba\u015Far\u0131s\u0131z oldu CommandInterpreter.UnableToDelete=Script dosyas\u0131 {0} silinemiyor -CommandInterpreter.UnableToProduceScript=Bir script dosyas\u0131 olu\u015fturulam\u0131yor +CommandInterpreter.UnableToProduceScript=Bir script dosyas\u0131 olu\u015Fturulam\u0131yor Fingerprinter.Aborted=Durduruldu -Fingerprinter.Action.DisplayName=Parmakizlerini g\u00f6zden ge\u00e7ir -Fingerprinter.DigestFailed={0} i\u00e7in digest olu\u015fturma ba\u015far\u0131s\u0131z oldu -Fingerprinter.DisplayName=Takip ama\u00e7l\u0131 dosyalar\u0131n parmakizlerini kaydet -Fingerprinter.Failed=Parmakizi kayd\u0131 ba\u015far\u0131s\u0131z oldu -Fingerprinter.FailedFor={0} i\u00e7in parmakizi kayd\u0131 ba\u015far\u0131s\u0131z oldu -Fingerprinter.NoArchiving=Yap\u0131land\u0131rma artefaktlar\u0131n\u0131n parmakizlerinin al\u0131nmas\u0131 gerekirdi, fakat yap\u0131land\u0131rma artefaktlar\u0131 i\u00e7in bir ar\u015fivleme konfig\u00fcrasyonu yap\u0131lmam\u0131\u015f. -Fingerprinter.NoWorkspace=Herhangi bir \u00e7al\u0131\u015fma alan\u0131 olmad\u0131\u011f\u0131 i\u00e7in parmakzi kaydedilemiyor. +Fingerprinter.Action.DisplayName=Parmakizlerini g\u00F6zden ge\u00E7ir +Fingerprinter.DigestFailed={0} i\u00E7in digest olu\u015Fturma ba\u015Far\u0131s\u0131z oldu +Fingerprinter.DisplayName=Takip ama\u00E7l\u0131 dosyalar\u0131n parmakizlerini kaydet +Fingerprinter.Failed=Parmakizi kayd\u0131 ba\u015Far\u0131s\u0131z oldu +Fingerprinter.FailedFor={0} i\u00E7in parmakizi kayd\u0131 ba\u015Far\u0131s\u0131z oldu +Fingerprinter.NoArchiving=Yap\u0131land\u0131rma artefaktlar\u0131n\u0131n parmakizlerinin al\u0131nmas\u0131 gerekirdi, fakat yap\u0131land\u0131rma artefaktlar\u0131 i\u00E7in bir ar\u015Fivleme konfig\u00FCrasyonu yap\u0131lmam\u0131\u015F. +Fingerprinter.NoWorkspace=Herhangi bir \u00E7al\u0131\u015Fma alan\u0131 olmad\u0131\u011F\u0131 i\u00E7in parmakzi kaydedilemiyor. Fingerprinter.Recording=Parmakizi kaydediliyor JavadocArchiver.DisplayName=Javadoc yay\u0131nla -JavadocArchiver.DisplayName.Generic=Dok\u00fcman +JavadocArchiver.DisplayName.Generic=Dok\u00FCman JavadocArchiver.DisplayName.Javadoc=Javadoc JavadocArchiver.Publishing=Javadoc yay\u0131nlan\u0131yor JavadocArchiver.UnableToCopy={0}''dan {1}''e Javadoc kopyalanam\u0131yor -MailSender.ListEmpty=Bo\u015f al\u0131c\u0131 listesine e-posta g\u00f6nderilmeye \u00e7al\u0131\u015f\u0131ld\u0131\u011f\u0131 i\u00e7in iptal edildi. -MailSender.NoAddress={0}''a e-posta g\u00f6nderilemedi \u00e7\u00fcnk\u00fc herhangi bir e-posta adresi bilinmiyor, ve varsay\u0131lan e-posta sunucusu konfig\u00fcrasyonu yap\u0131lmam\u0131\u015f. +MailSender.ListEmpty=Bo\u015F al\u0131c\u0131 listesine e-posta g\u00F6nderilmeye \u00E7al\u0131\u015F\u0131ld\u0131\u011F\u0131 i\u00E7in iptal edildi. +MailSender.NoAddress={0}''a e-posta g\u00F6nderilemedi \u00E7\u00FCnk\u00FC herhangi bir e-posta adresi bilinmiyor, ve varsay\u0131lan e-posta sunucusu konfig\u00FCrasyonu yap\u0131lmam\u0131\u015F. Mailer.DisplayName=E-posta Bilgilendirme Mailer.UserProperty.DisplayName=E-posta -Maven.DisplayName=En \u00fcst seviye Maven hedeflerini \u00e7al\u0131\u015ft\u0131r -Maven.ExecFailed=Komut \u00e7al\u0131\u015ft\u0131rma ba\u015far\u0131s\u0131z -Maven.MavenHomeRequired=MAVEN_HOME gerekli +Maven.DisplayName=En \u00FCst seviye Maven hedeflerini \u00E7al\u0131\u015Ft\u0131r +Maven.ExecFailed=Komut \u00E7al\u0131\u015Ft\u0131rma ba\u015Far\u0131s\u0131z Maven.NotMavenDirectory={0}, bir Maven dizinine benzemiyor -Maven.NoExecutable={0} i\u00e7erisinde herhangi bir \u00e7al\u0131\u015ft\u0131r\u0131labilir bulunamad\u0131 -Maven.NotADirectory={0}, bir dizin de\u011fil +Maven.NoExecutable={0} i\u00E7erisinde herhangi bir \u00E7al\u0131\u015Ft\u0131r\u0131labilir bulunamad\u0131 +Maven.NotADirectory={0}, bir dizin de\u011Fil -Shell.DisplayName=Shell \u00e7al\u0131\u015ft\u0131r +Shell.DisplayName=Shell \u00E7al\u0131\u015Ft\u0131r diff --git a/core/src/main/resources/hudson/tasks/Shell/config.jelly b/core/src/main/resources/hudson/tasks/Shell/config.jelly index 751bbbfa557eb4840a0d7031167572ec84acd578..f7ee189fd9aeb02a7be41ff1ae06a0173d5a3ead 100644 --- a/core/src/main/resources/hudson/tasks/Shell/config.jelly +++ b/core/src/main/resources/hudson/tasks/Shell/config.jelly @@ -1,7 +1,7 @@ + Führt ein Shell-Skript aus, um das Projekt zu bauen (Vorgabewert für die Shell + ist + sh, aber dies ist konfigurierbar). Das Skript wird im Arbeitsbereich + als aktuelles Verzeichnis ausgeführt. Geben Sie den Inhalt Ihres + Shell-Skriptes direkt in die Textbox ein, jedoch ohne die Kopfzeile + #!/bin/sh — diese wird von Hudson, entsprechend der + systemweiten Konfiguration, hinzugefügt. +

    + Die Shell wird mit der Option + -ex ausgeführt. Dadurch werden alle Kommandos ausgegeben, bevor sie + ausgeführt werden. Der Build gilt als fehlgeschlagen, wenn einer der + Kommandos in der Befehlszeile einen Ergebniscode ungleich 0 liefert. +

    +

    + Es hat sich in der Praxis nicht bewährt, allzulange Skripte an dieser Stelle + einzutragen. Stattdessen sollten Sie in Erwägung ziehen, Ihr Shell-Skript + als Teil Ihres Codes unter Versionskontrolle zu stellen und lediglich von + hier aus aufzurufen. Dadurch können Sie Änderungen in Ihrem Skript + wesentlich leichter nachverfolgen. +

    diff --git a/war/resources/help/project-config/shell_fr.html b/core/src/main/resources/hudson/tasks/Shell/help_fr.html similarity index 100% rename from war/resources/help/project-config/shell_fr.html rename to core/src/main/resources/hudson/tasks/Shell/help_fr.html diff --git a/war/resources/help/project-config/shell_ja.html b/core/src/main/resources/hudson/tasks/Shell/help_ja.html similarity index 100% rename from war/resources/help/project-config/shell_ja.html rename to core/src/main/resources/hudson/tasks/Shell/help_ja.html diff --git a/war/resources/help/project-config/shell_pt_BR.html b/core/src/main/resources/hudson/tasks/Shell/help_pt_BR.html similarity index 100% rename from war/resources/help/project-config/shell_pt_BR.html rename to core/src/main/resources/hudson/tasks/Shell/help_pt_BR.html diff --git a/war/resources/help/project-config/shell_ru.html b/core/src/main/resources/hudson/tasks/Shell/help_ru.html similarity index 100% rename from war/resources/help/project-config/shell_ru.html rename to core/src/main/resources/hudson/tasks/Shell/help_ru.html diff --git a/war/resources/help/project-config/shell_tr.html b/core/src/main/resources/hudson/tasks/Shell/help_tr.html similarity index 100% rename from war/resources/help/project-config/shell_tr.html rename to core/src/main/resources/hudson/tasks/Shell/help_tr.html diff --git a/core/src/main/resources/hudson/tasks/_ant/AntOutcomeNote/style.css b/core/src/main/resources/hudson/tasks/_ant/AntOutcomeNote/style.css new file mode 100644 index 0000000000000000000000000000000000000000..dd42930986c057387036d9985836bd3a6bfaab8e --- /dev/null +++ b/core/src/main/resources/hudson/tasks/_ant/AntOutcomeNote/style.css @@ -0,0 +1,8 @@ +.ant-outcome-failure { + font-weight: bold; + color: red; +} + +.ant-outcome-success { + color: #204A87; +} \ No newline at end of file diff --git a/core/src/main/resources/hudson/tasks/_ant/AntTargetNote/DescriptorImpl/outline.jelly b/core/src/main/resources/hudson/tasks/_ant/AntTargetNote/DescriptorImpl/outline.jelly new file mode 100644 index 0000000000000000000000000000000000000000..f26323b6fe72284bf950d7dbd206145733fc89b4 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/_ant/AntTargetNote/DescriptorImpl/outline.jelly @@ -0,0 +1,37 @@ + + + + + + + + + + + +
    ${%Executed Ant Targets}
    +
    +
    +
    \ No newline at end of file diff --git a/core/src/main/resources/hudson/tasks/_ant/AntTargetNote/DescriptorImpl/outline_da.properties b/core/src/main/resources/hudson/tasks/_ant/AntTargetNote/DescriptorImpl/outline_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..249822d689be655c7503df42e86cb8af40f97fea --- /dev/null +++ b/core/src/main/resources/hudson/tasks/_ant/AntTargetNote/DescriptorImpl/outline_da.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Executed\ Ant\ Targets=Afvikl Ant m\u00e5l diff --git a/core/src/main/resources/hudson/tasks/_ant/AntTargetNote/DescriptorImpl/outline_de.properties b/core/src/main/resources/hudson/tasks/_ant/AntTargetNote/DescriptorImpl/outline_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..d151598263d97f6ba4221066ff3aa3bc6dd2d5e7 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/_ant/AntTargetNote/DescriptorImpl/outline_de.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Executed\ Ant\ Targets=Ausgeführte Ant-Targets diff --git a/core/src/main/resources/hudson/tasks/_ant/AntTargetNote/DescriptorImpl/outline_es.properties b/core/src/main/resources/hudson/tasks/_ant/AntTargetNote/DescriptorImpl/outline_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..a993fa0ffec0e4fafbd7360bc68985f9d74f7e6d --- /dev/null +++ b/core/src/main/resources/hudson/tasks/_ant/AntTargetNote/DescriptorImpl/outline_es.properties @@ -0,0 +1 @@ +Executed\ Ant\ Targets=Tareas de ant ejecutadas diff --git a/core/src/main/resources/hudson/tasks/_ant/AntTargetNote/DescriptorImpl/outline_ja.properties b/core/src/main/resources/hudson/tasks/_ant/AntTargetNote/DescriptorImpl/outline_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..a909619cf65acef5b415e32aea206626272b1b2f --- /dev/null +++ b/core/src/main/resources/hudson/tasks/_ant/AntTargetNote/DescriptorImpl/outline_ja.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi,Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Executed\ Ant\ Targets=\u5B9F\u884C\u3055\u308C\u305FAnt\u306E\u30BF\u30FC\u30B2\u30C3\u30C8 diff --git a/core/src/main/resources/hudson/tasks/_ant/AntTargetNote/DescriptorImpl/outline_pt_BR.properties b/core/src/main/resources/hudson/tasks/_ant/AntTargetNote/DescriptorImpl/outline_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..e27fec1b08f2f7cf19163b7758eee05e159de171 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/_ant/AntTargetNote/DescriptorImpl/outline_pt_BR.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Executed\ Ant\ Targets= diff --git a/core/src/main/resources/hudson/tasks/_ant/AntTargetNote/script.js b/core/src/main/resources/hudson/tasks/_ant/AntTargetNote/script.js new file mode 100644 index 0000000000000000000000000000000000000000..3b6af7aa7cc88f384ee63f8e319c02b61a1ea2fd --- /dev/null +++ b/core/src/main/resources/hudson/tasks/_ant/AntTargetNote/script.js @@ -0,0 +1,48 @@ +(function() { + // created on demand + var outline = null; + var loading = false; + + var queue = []; // ant targets are queued up until we load outline. + + function loadOutline() { + if (outline!=null) return false; // already loaded + + if (!loading) { + loading = true; + var u = new Ajax.Updater(document.getElementById("side-panel"), + rootURL+"/descriptor/hudson.tasks._ant.AntTargetNote/outline", + {insertion: Insertion.Bottom, onComplete: function() { + if (!u.success()) return; // we can't us onSuccess because that kicks in before onComplete + outline = document.getElementById("console-outline-body"); + loading = false; + queue.each(handle); + }}); + } + return true; + } + + function handle(e) { + if (loadOutline()) { + queue.push(e); + } else { + var id = "ant-target-"+(iota++); + outline.appendChild(parseHtml("
  • "+e.innerHTML+"
  • ")) + + if (document.all) + e.innerHTML += ''; // IE8 loses "name" attr in appendChild + else { + var a = document.createElement("a"); + a.setAttribute("name",id); + e.appendChild(a); + } + } + } + + Behaviour.register({ + // insert for each Ant target and put it into the outline + "b.ant-target" : function(e) { + handle(e); + } + }); +}()); diff --git a/core/src/main/resources/hudson/tasks/junit/CaseResult/index.jelly b/core/src/main/resources/hudson/tasks/junit/CaseResult/index.jelly index 274bbb66685defaaa07442f453e44d280e48632c..11d978d2c98855b68b1a0fb2a4627a0841b9b2a3 100644 --- a/core/src/main/resources/hudson/tasks/junit/CaseResult/index.jelly +++ b/core/src/main/resources/hudson/tasks/junit/CaseResult/index.jelly @@ -1,7 +1,7 @@ + xmlns:l="/lib/layout" xmlns:t="/lib/hudson" xmlns:f="/lib/form"> - +

    @@ -53,27 +53,38 @@ THE SOFTWARE.

    - + + - - - + + + + +
    +

    ${%Error Message}

    -
    +
    ${it.annotate(it.errorDetails)}
    +
    + +

    ${%Stacktrace}

    -
    +
    ${it.annotate(it.errorStackTrace)}
    +

    ${%Standard Output}

    -
    +
    ${it.annotate(it.stdout)}

    ${%Standard Error}

    -
    +
    ${it.annotate(it.stderr)}
    diff --git a/core/src/main/resources/hudson/tasks/junit/CaseResult/index_da.properties b/core/src/main/resources/hudson/tasks/junit/CaseResult/index_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..f8b0f9c79b0db185d79949aeec45d846255898ef --- /dev/null +++ b/core/src/main/resources/hudson/tasks/junit/CaseResult/index_da.properties @@ -0,0 +1,31 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +took=Tog {0}. +Stacktrace=Stacktrace +Error\ Message=Fejlbesked +since.after=' ' +failingFor=Har fejlet {0,choice,0#de|1#det|1 + + + + + + + + + + + + + + + + + + + + + + + +
    ${%Build}${%Test Description}${%Test Duration}${%Test Result}
    + ${b.fullDisplayName} + + + + + ${test.description}${test.durationString} + + + ${pst.message} + +
    +
    diff --git a/core/src/main/resources/hudson/tasks/junit/CaseResult/list_da.properties b/core/src/main/resources/hudson/tasks/junit/CaseResult/list_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..feeab4cbc0c5abc2695efbe5e1e7b8c77d036ab0 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/junit/CaseResult/list_da.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Build=Byg +Test\ Result=Testresultat +Test\ Description=Testbeskrivelse +Test\ Duration=Testvarighed diff --git a/core/src/main/resources/hudson/tasks/junit/CaseResult/list_de.properties b/core/src/main/resources/hudson/tasks/junit/CaseResult/list_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..a8dab2d2badfee311cf477cb9f93af7591f41856 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/junit/CaseResult/list_de.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Build=Build +Test\ Description=Testbeschreibung +Test\ Duration=Testdauer +Test\ Result=Testergebnis diff --git a/core/src/main/resources/hudson/tasks/junit/CaseResult/list_es.properties b/core/src/main/resources/hudson/tasks/junit/CaseResult/list_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..9037836f84f93a660bd1098f941c23cdc3344876 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/junit/CaseResult/list_es.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Build=Ejecución +Test\ Description=Descripción del test +Test\ Duration=Duración del test +Test\ Result=Resultado del test diff --git a/core/src/main/resources/hudson/tasks/junit/CaseResult/list_ja.properties b/core/src/main/resources/hudson/tasks/junit/CaseResult/list_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..00ee5fe0772a2894ef18732f5d915e8e3e8dc974 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/junit/CaseResult/list_ja.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Build=\u30D3\u30EB\u30C9 +Test\ Description=\u30C6\u30B9\u30C8\u306E\u8AAC\u660E +Test\ Duration=\u30C6\u30B9\u30C8\u6240\u8981\u6642\u9593 +Test\ Result=\u30C6\u30B9\u30C8\u7D50\u679C diff --git a/core/src/main/resources/hudson/tasks/junit/CaseResult/list_pt_BR.properties b/core/src/main/resources/hudson/tasks/junit/CaseResult/list_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..4e3bb6d89119f59327bb169013c4f4cfbaa86981 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/junit/CaseResult/list_pt_BR.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Test\ Description= +Build= +Test\ Duration= +Test\ Result= diff --git a/core/src/main/resources/hudson/tasks/junit/CaseResult/summary.jelly b/core/src/main/resources/hudson/tasks/junit/CaseResult/summary.jelly new file mode 100644 index 0000000000000000000000000000000000000000..c92bb263eaa6436cb83146bb3d91847abfccff61 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/junit/CaseResult/summary.jelly @@ -0,0 +1,41 @@ + + + + + + + +

    ${%Error Details}

    +
    +
    + + +

    ${%Stack Trace}

    +
    +
    +
    +
    +
    diff --git a/core/src/main/resources/hudson/tasks/junit/CaseResult/summary_da.properties b/core/src/main/resources/hudson/tasks/junit/CaseResult/summary_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..e0ad98d98b886d91db37bce1e2eff15726103b2d --- /dev/null +++ b/core/src/main/resources/hudson/tasks/junit/CaseResult/summary_da.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Error\ Details=Fejl detaljer +Stack\ Trace=Stack Trace diff --git a/core/src/main/resources/hudson/tasks/junit/CaseResult/summary_de.properties b/core/src/main/resources/hudson/tasks/junit/CaseResult/summary_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..31f67f9db01c934b8e520a0d0efa940cdb8586f6 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/junit/CaseResult/summary_de.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Error\ Details=Fehlerdetails +Stack\ Trace=Stacktrace diff --git a/core/src/main/resources/hudson/tasks/junit/CaseResult/summary_es.properties b/core/src/main/resources/hudson/tasks/junit/CaseResult/summary_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..87c387a56c406aa3c18abb9b89c986d0cfc03bcb --- /dev/null +++ b/core/src/main/resources/hudson/tasks/junit/CaseResult/summary_es.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Error\ Details=Detalles del error +Stack\ Trace=Traza de la pila diff --git a/core/src/main/resources/hudson/tasks/junit/CaseResult/summary_ja.properties b/core/src/main/resources/hudson/tasks/junit/CaseResult/summary_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..6896c5531ead167a8223c9028ee67b607be48659 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/junit/CaseResult/summary_ja.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Error\ Details=\u30A8\u30E9\u30FC\u8A73\u7D30 +Stack\ Trace=\u30B9\u30BF\u30C3\u30AF\u30C8\u30EC\u30FC\u30B9 diff --git a/core/src/main/resources/hudson/tasks/junit/CaseResult/summary_pt_BR.properties b/core/src/main/resources/hudson/tasks/junit/CaseResult/summary_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..3c16cd8d7739d38bfb7a66a4d0b46fbd2212680b --- /dev/null +++ b/core/src/main/resources/hudson/tasks/junit/CaseResult/summary_pt_BR.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Error\ Details= +Stack\ Trace= diff --git a/core/src/main/resources/hudson/tasks/junit/ClassResult/body.jelly b/core/src/main/resources/hudson/tasks/junit/ClassResult/body.jelly index aa3a26f9532a4727ec31f367541c558c428a622b..b9cb4a5f2addd37046e91b7a49c7a4a715ff0b3d 100644 --- a/core/src/main/resources/hudson/tasks/junit/ClassResult/body.jelly +++ b/core/src/main/resources/hudson/tasks/junit/ClassResult/body.jelly @@ -1,7 +1,7 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ${%Build}${%Description}${%Duration}${%Fail}${%Skip}${%Total}
    + ${b.fullDisplayName} + + + + + ${p.description}${p.durationString}${p.failCount}${p.skipCount}${p.totalCount}
    +
    diff --git a/core/src/main/resources/hudson/tasks/junit/ClassResult/list_da.properties b/core/src/main/resources/hudson/tasks/junit/ClassResult/list_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..a1455c3c2b2869988066458267984451d47d9e37 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/junit/ClassResult/list_da.properties @@ -0,0 +1,28 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Duration=Varighed +Build=Byg +Skip=Spring over +Total=I alt +Fail=Fejler +Description=Beskrivelse diff --git a/core/src/main/resources/hudson/tasks/junit/ClassResult/list_de.properties b/core/src/main/resources/hudson/tasks/junit/ClassResult/list_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..54a28e53b96444dc9bc26719fe9ec075c060d014 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/junit/ClassResult/list_de.properties @@ -0,0 +1,28 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Build=Build +Description=Beschreibung +Duration=Dauer +Fail=Fehlgeschlagen +Skip=Ausgelassen +Total=Summe diff --git a/core/src/main/resources/hudson/tasks/junit/ClassResult/list_es.properties b/core/src/main/resources/hudson/tasks/junit/ClassResult/list_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..f81a05542120c24cfe331b14e222092b48cf6685 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/junit/ClassResult/list_es.properties @@ -0,0 +1,28 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Build=Ejecución +Description=Descripción +Duration=Duración +Fail=Fallo +Skip=Omitidos +Total=Total diff --git a/core/src/main/resources/hudson/tasks/junit/ClassResult/list_ja.properties b/core/src/main/resources/hudson/tasks/junit/ClassResult/list_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..33a6ec2da364da5327cc71838f8476aba85ab804 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/junit/ClassResult/list_ja.properties @@ -0,0 +1,28 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Build=\u30D3\u30EB\u30C9 +Description=\u30C6\u30B9\u30C8\u306E\u8AAC\u660E +Duration=\u30C6\u30B9\u30C8\u6240\u8981\u6642\u9593 +Fail=\u5931\u6557 +Skip=\u30B9\u30AD\u30C3\u30D7 +Total=\u5408\u8A08 diff --git a/core/src/main/resources/hudson/tasks/junit/ClassResult/list_pt_BR.properties b/core/src/main/resources/hudson/tasks/junit/ClassResult/list_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..badc242d9d5fa1293a5b429d2b67eea85d37cb42 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/junit/ClassResult/list_pt_BR.properties @@ -0,0 +1,28 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Skip= +Duration=Dura\u00E7\u00E3o +Total= +Build= +Fail=Falha +Description= diff --git a/core/src/main/resources/hudson/tasks/junit/History/index.jelly b/core/src/main/resources/hudson/tasks/junit/History/index.jelly new file mode 100644 index 0000000000000000000000000000000000000000..85ab8bbfb8a18fd2d3f1a19f94e92e347d89c93f --- /dev/null +++ b/core/src/main/resources/hudson/tasks/junit/History/index.jelly @@ -0,0 +1,67 @@ + + + + + + + + + + +

    ${%title(it.testObject.displayName)}

    + + +
    + [Duration graph] +
    +
    + show + count + +
    +
    + + ${%More than 1 builds are needed for the chart.} + +
    + +
    +
    +
    \ No newline at end of file diff --git a/core/src/main/resources/hudson/tasks/junit/History/index.properties b/core/src/main/resources/hudson/tasks/junit/History/index.properties new file mode 100644 index 0000000000000000000000000000000000000000..5522823d115f7cde83090b8a9f72ff83b073450b --- /dev/null +++ b/core/src/main/resources/hudson/tasks/junit/History/index.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +title=History for {0} diff --git a/core/src/main/resources/hudson/tasks/junit/History/index_da.properties b/core/src/main/resources/hudson/tasks/junit/History/index_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..1d4939e3b1a99f82a22334f7b96ea8e50d5c52a2 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/junit/History/index_da.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +More\ than\ 1\ builds\ are\ needed\ for\ the\ chart.=Mere end 1 byg er n\u00f8dvendigt for grafen. +title=Historik for {0} diff --git a/core/src/main/resources/hudson/tasks/junit/History/index_de.properties b/core/src/main/resources/hudson/tasks/junit/History/index_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..28805350e5fe6b0305063e36c66098fdfc89799b --- /dev/null +++ b/core/src/main/resources/hudson/tasks/junit/History/index_de.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +title=Verlauf von {0} +More\ than\ 1\ builds\ are\ needed\ for\ the\ chart.=Für ein Diagramm werden mindestens 2 Builds benötigt. \ No newline at end of file diff --git a/core/src/main/resources/hudson/tasks/junit/History/index_es.properties b/core/src/main/resources/hudson/tasks/junit/History/index_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..595b66913bb3ea08a4a6fddd9607ad9391285a76 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/junit/History/index_es.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +title=Historia para {0} +More\ than\ 1\ builds\ are\ needed\ for\ the\ chart.=Se necesitan mas de 1 ejecución para generar el gráfico diff --git a/core/src/main/resources/hudson/tasks/junit/History/index_ja.properties b/core/src/main/resources/hudson/tasks/junit/History/index_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..aabcfd20c412244076c105ed994e250bea984aeb --- /dev/null +++ b/core/src/main/resources/hudson/tasks/junit/History/index_ja.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +title={0}\u306e\u5c65\u6b74 +More\ than\ 1\ builds\ are\ needed\ for\ the\ chart.=\ + \u30c1\u30e3\u30fc\u30c8\u3092\u8868\u793a\u3059\u308b\u306b\u306f\u30012\u500b\u4ee5\u4e0a\u306e\u30d3\u30eb\u30c9\u304c\u5fc5\u8981\u3067\u3059\u3002 \ No newline at end of file diff --git a/core/src/main/resources/hudson/tasks/junit/History/index_pt_BR.properties b/core/src/main/resources/hudson/tasks/junit/History/index_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..17da24484aae129482d84a3c486579c9c2b359e9 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/junit/History/index_pt_BR.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +More\ than\ 1\ builds\ are\ needed\ for\ the\ chart.= +# History for {0} +title= diff --git a/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/config.jelly b/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/config.jelly index ec443f29eb1562ebe217ff35e1bdcd2fc995e600..b1e4d3f038e801b60090896c79e3fe787f4113db 100644 --- a/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/config.jelly +++ b/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/config.jelly @@ -1,7 +1,8 @@ - - - - - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    diff --git a/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/config.properties b/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/config.properties index 626df8c01bd3d09251224050559cc568b0c1d879..8e9aeebf72a807eef998f33a041fd1c200b8b1f8 100644 --- a/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/config.properties +++ b/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/config.properties @@ -1,6 +1,6 @@ # The MIT License # -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Eric Lefevre-Ardant +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Eric Lefevre-Ardant # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -21,7 +21,7 @@ # THE SOFTWARE. description=\ -Fileset ''includes'' \ +Fileset ''includes'' \ setting that specifies the generated raw XML report files, \ such as ''myproject/target/test-reports/*.xml''. \ -Basedir of the fileset is the workspace root. +Basedir of the fileset is the workspace root. diff --git a/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/config_da.properties b/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/config_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..e5db1f083a6c72a25430db7840381f5b53cf505c --- /dev/null +++ b/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/config_da.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Retain\ long\ standard\ output/error=Bibehold lang standardoutput/error +description=Fils\u00e6t ''inkluderer'' +Test\ report\ XMLs=Test rapport XML filer diff --git a/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/config_de.properties b/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/config_de.properties index 1e9eec0f114e50a21cfb80de6c53c361052da3c5..cbedf822db4964d36d426e56c24f811ddf27ef44 100644 --- a/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/config_de.properties +++ b/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/config_de.properties @@ -1,6 +1,6 @@ # The MIT License # -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -20,9 +20,9 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Test\ report\ XMLs=Testberichte in XML-Format -description=\ - Es sind reguläre Ausdrücke wie z.B. ''myproject/target/test-reports/*.xml'' erlaubt. \ - Das genaue Format können Sie \ - der Spezifikation für @includes eines Ant-Filesets entnehmen. \ - Das Ausgangsverzeichnis ist der Arbeitsbereich. +Test\ report\ XMLs=Testberichte in XML-Format +description=\ + Es sind regul\u00E4re Ausdr\u00FCcke wie z.B. ''myproject/target/test-reports/*.xml'' erlaubt. \ + Das genaue Format k\u00F6nnen Sie \ + der Spezifikation f\u00FCr @includes eines Ant-Filesets entnehmen. \ + Das Ausgangsverzeichnis ist der Arbeitsbereich. diff --git a/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/config_es.properties b/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/config_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..7a84af483b5da0ba154c4154879ec9abc4eb0490 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/config_es.properties @@ -0,0 +1,28 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Eric Lefevre-Ardant +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +description=\ + El atributo ''@includes'' de la etiqueta ''fileset'' \ + especifica d\u00F3nde est\u00E1n los ficheros XML generados, por ejemplo: ''myproject/target/test-reports/*.xml''. \ + El directorio base para la etiqueta ''fileset'' es el directorio ra\u00EDz del proyecto +Test\ report\ XMLs=Ficheros XML con los informes de tests +Retain\ long\ standard\ output/error=Guardar la salida estándard y de error aunque sea muy larga. diff --git a/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/config_fr.properties b/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/config_fr.properties index c061b086e4a7103b3420e5f077955a26d2bc200f..6a5a03506b7f3ba92693595a949a21775c39a502 100644 --- a/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/config_fr.properties +++ b/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/config_fr.properties @@ -1,6 +1,6 @@ # The MIT License # -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Eric Lefevre-Ardant +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Eric Lefevre-Ardant # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -20,9 +20,9 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Test\ report\ XMLs=XML des rapports de test -description=\ -Une configuration du type Fileset ''includes'' \ -qui indique où se trouvent les fichiers XML des rapports de test, \ -par exemple ''myproject/target/test-reports/*.xml''. \ -Le répertoire de base (basedir) du fileset est la racine du workspace. +Test\ report\ XMLs=XML des rapports de test +description=\ +Une configuration du type Fileset ''includes'' \ +qui indique o\u00F9 se trouvent les fichiers XML des rapports de test, \ +par exemple ''myproject/target/test-reports/*.xml''. \ +Le r\u00E9pertoire de base (basedir) du fileset est la racine du workspace. diff --git a/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/config_ja.properties b/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/config_ja.properties index 5cfd59fb417a59529b677ae2f6576baa5205d34c..de86d884cc65b0032bb583e74b9391b863865e16 100644 --- a/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/config_ja.properties +++ b/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/config_ja.properties @@ -1,6 +1,6 @@ # The MIT License # -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -22,4 +22,4 @@ Test\ report\ XMLs=\u30c6\u30b9\u30c8\u7d50\u679cXML description=\ -Ant\u306e\u30d5\u30a1\u30a4\u30eb\u30bb\u30c3\u30c8includes\u5c5e\u6027\u306e\u66f8\u5f0f\u306b\u5f93\u3063\u3066\u30d3\u30eb\u30c9\u304b\u3089\u751f\u6210\u3055\u308c\u308bXML\u30ec\u30dd\u30fc\u30c8\u30d5\u30a1\u30a4\u30eb\u7fa4\u3092\u6307\u5b9a\u3057\u307e\u3059\uff08\u4f8b\uff1amyproject/target/test-reports/*.xml\uff09\u3002\u30ef\u30fc\u30af\u30b9\u30da\u30fc\u30b9\u30eb\u30fc\u30c8\u304b\u3089\u306e\u76f8\u5bfe\u30d1\u30b9\u3067\u3059\u3002 +Ant\u306e\u30d5\u30a1\u30a4\u30eb\u30bb\u30c3\u30c8includes\u5c5e\u6027\u306e\u66f8\u5f0f\u306b\u5f93\u3063\u3066\u30d3\u30eb\u30c9\u304b\u3089\u751f\u6210\u3055\u308c\u308bXML\u30ec\u30dd\u30fc\u30c8\u30d5\u30a1\u30a4\u30eb\u7fa4\u3092\u6307\u5b9a\u3057\u307e\u3059\uff08\u4f8b\uff1amyproject/target/test-reports/*.xml\uff09\u3002\u30ef\u30fc\u30af\u30b9\u30da\u30fc\u30b9\u30eb\u30fc\u30c8\u304b\u3089\u306e\u76f8\u5bfe\u30d1\u30b9\u3067\u3059\u3002 diff --git a/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/config_nl.properties b/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/config_nl.properties index 8709f74e99cfda765476a58ff77688c80a61660d..a77112d97ca84eaaf5caf1d5ee07e221984c05b6 100644 --- a/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/config_nl.properties +++ b/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/config_nl.properties @@ -1,6 +1,6 @@ # The MIT License # -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:sorokh +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:sorokh # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -21,7 +21,7 @@ # THE SOFTWARE. description=\ -Fileset 'includes' \ +Fileset ''includes'' \ setting that specifies the generated raw XML report files, \ -such as 'myproject/target/test-reports/*.xml'. \ -Basedir of the fileset is the workspace root. +such as ''myproject/target/test-reports/*.xml''. \ +Basedir of the fileset is the workspace root. diff --git a/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/config_pt_BR.properties b/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/config_pt_BR.properties index f45df34fd7a1dd817a313d63fe3727e387298dab..deb547dc78731ebce1331d1dbc60c9600e8a5781 100644 --- a/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/config_pt_BR.properties +++ b/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/config_pt_BR.properties @@ -1,6 +1,6 @@ # The MIT License # -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Reginaldo L. Russinholi +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Reginaldo L. Russinholi # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -21,7 +21,6 @@ # THE SOFTWARE. description=\ -A configura\u00E7\u00E3o Fileset ''includes'' \ -que especifica os arquivos de relat\u00F3rios XML gerados, \ -tal como ''meuprojeto/target/test-reports/*.xml''. \ -O diret\u00F3rio base do fileset \u00E9 a ra\u00EDz do workspace. +Test\ report\ XMLs= +Retain\ long\ standard\ output/error= +Test\ report\ XMLs= diff --git a/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/config_ru.properties b/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/config_ru.properties index 8d1826d0eef938d09f131e14ff976c7775c4a878..f39e02c132a8cd18f7cf718cbee9286a87d863aa 100644 --- a/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/config_ru.properties +++ b/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/config_ru.properties @@ -1,6 +1,6 @@ # The MIT License # -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Mike Salnikov +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Mike Salnikov # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -22,7 +22,7 @@ Test\ report\ XMLs=XML \u0444\u0430\u0439\u043b\u044b \u0441 \u043e\u0442\u0447\u0435\u0442\u0430\u043c\u0438 \u043e \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 description= -\u041d\u0430\u0431\u043e\u0440 \u0444\u0430\u0439\u043b\u043e\u0432 ''includes'' \ +\u041d\u0430\u0431\u043e\u0440 \u0444\u0430\u0439\u043b\u043e\u0432 ''includes'' \ \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0449\u0438\u0439 \u0438\u043c\u0435\u043d\u0430 \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 XML \u0444\u0430\u0439\u043b\u043e\u0432 \u0441 \u043e\u0442\u0447\u0435\u0442\u0430\u043c\u0438, \ \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 ''myproject/target/test-reports/*.xml''. \ -\u041a\u043e\u0440\u043d\u0435\u0432\u043e\u0439 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0435\u0439 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u0431\u043e\u0440\u043e\u0447\u043d\u0430\u044f \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f. +\u041a\u043e\u0440\u043d\u0435\u0432\u043e\u0439 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0435\u0439 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u0431\u043e\u0440\u043e\u0447\u043d\u0430\u044f \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f. diff --git a/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/config_tr.properties b/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/config_tr.properties index 9c1c88ae007ebb46362d25c9a78d381a176f6f39..1304eca95ba22f0fabb54b829234aefb6f3d373a 100644 --- a/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/config_tr.properties +++ b/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/config_tr.properties @@ -1,6 +1,6 @@ # The MIT License # -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Oguz Dag +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Oguz Dag # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -20,5 +20,5 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Test\ report\ XMLs=Test raporunun XML''i -description=a\u00e7\u0131klama +Test\ report\ XMLs=Test raporunun XML''i +#description=a\u00e7\u0131klama diff --git a/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/help-keepLongStdio.html b/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/help-keepLongStdio.html new file mode 100644 index 0000000000000000000000000000000000000000..db6b9a3952a563c319c2ba6b7a337fd54c2b2046 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/help-keepLongStdio.html @@ -0,0 +1,9 @@ +
    + If checked, any standard output or error from a test suite will be retained + in the test results after the build completes. (This refers only to additional + messages printed to console, not to a failure stack trace.) Such output is + always kept if the test failed, but by default lengthy output from passing + tests is truncated to save space. Check this option if you need to see every + log message from even passing tests, but beware that Hudson's memory consumption + can substantially increase as a result, even if you never look at the test results! +
    diff --git a/core/src/main/resources/hudson/tasks/junit/Messages.properties b/core/src/main/resources/hudson/tasks/junit/Messages.properties index 4ddd77fe8e1a7fe650d46b4d20a1479aeb40d2d0..c8a2ab9d7350261f7d939ec37037432f7ad05043 100644 --- a/core/src/main/resources/hudson/tasks/junit/Messages.properties +++ b/core/src/main/resources/hudson/tasks/junit/Messages.properties @@ -22,6 +22,7 @@ TestResult.getTitle=Test Result TestResult.getChildTitle=Package +TestResult.getDisplayName=Test Results PackageResult.getTitle=Test Result : {0} PackageResult.getChildTitle=Class @@ -31,9 +32,10 @@ JUnitResultArchiver.DisplayName=Publish JUnit test result report JUnitResultArchiver.NoTestReportFound=No test report files were found. Configuration error? JUnitResultArchiver.Recording=Recording test results JUnitResultArchiver.ResultIsEmpty=None of the test reports contained any result +JUnitResultArchiver.BadXML=Incorrect XML attributes for test results found in {0} CaseResult.Status.Passed=Passed CaseResult.Status.Failed=Failed CaseResult.Status.Skipped=Skipped CaseResult.Status.Fixed=Fixed -CaseResult.Status.Regression=Regression \ No newline at end of file +CaseResult.Status.Regression=Regression diff --git a/core/src/main/resources/hudson/tasks/junit/Messages_da.properties b/core/src/main/resources/hudson/tasks/junit/Messages_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..61a5ae7024f4b77ef17957710e711eb2fdaf4e1f --- /dev/null +++ b/core/src/main/resources/hudson/tasks/junit/Messages_da.properties @@ -0,0 +1,38 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +CaseResult.Status.Passed=Best\u00e5et +CaseResult.Status.Skipped=Sprunget over +TestResult.getChildTitle=Package +JUnitResultArchiver.Recording=Opsamler testresultater +PackageResult.getChildTitle=Class +CaseResult.Status.Fixed=Rettet +CaseResult.Status.Regression=Regression +ClassResult.getTitle=Test Resultat : {0} +TestResult.getTitle=Test Resultat +JUnitResultArchiver.DisplayName=Publicer JUnit testrapport +TestResult.getDisplayName=Testresultater +CaseResult.Status.Failed=Fejlet +JUnitResultArchiver.BadXML=Ukorrekt XML attribut fundet for test resultater i {0} +JUnitResultArchiver.ResultIsEmpty=Ingen af testrapporterne indeholder resultater +JUnitResultArchiver.NoTestReportFound=Ingen testrapporter fundet. Konfigurationsfejl? +PackageResult.getTitle=Testresultat : {0} diff --git a/core/src/main/resources/hudson/tasks/junit/Messages_de.properties b/core/src/main/resources/hudson/tasks/junit/Messages_de.properties index 8ba4e34c545578b55a3a45bd8ffbe55818ec8af1..1bd30c63b6c87e70747bae1d321a561bc3aee8db 100644 --- a/core/src/main/resources/hudson/tasks/junit/Messages_de.properties +++ b/core/src/main/resources/hudson/tasks/junit/Messages_de.properties @@ -20,14 +20,23 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -TestResult.getTitle=Testergebnis -TestResult.getChildTitle=Package - -PackageResult.getTitle=Testergebnis : {0} -PackageResult.getChildTitle=Klasse - -ClassResult.getTitle=Testergebnis : {0} -JUnitResultArchiver.DisplayName=Veröffentliche JUnit-Testergebnisse. -JUnitResultArchiver.NoTestReportFound=Keine JUnit-Testergebnisse gefunden. Liegt vielleicht ein Konfigurationsfehler vor? -JUnitResultArchiver.Recording=Zeichne Testergebnisse auf. -JUnitResultArchiver.ResultIsEmpty=Testergebnisberichte enthalten keine Testergebnisse. \ No newline at end of file +TestResult.getTitle=Testergebnisse +TestResult.getChildTitle=Package +TestResult.getDisplayName=Testergebnis + +PackageResult.getTitle=Testergebnis : {0} +PackageResult.getChildTitle=Klasse + +ClassResult.getTitle=Testergebnis : {0} +JUnitResultArchiver.DisplayName=Veröffentliche JUnit-Testergebnisse. +JUnitResultArchiver.NoTestReportFound=Keine JUnit-Testergebnisse gefunden. Liegt vielleicht ein Konfigurationsfehler vor? +JUnitResultArchiver.Recording=Zeichne Testergebnisse auf. +JUnitResultArchiver.ResultIsEmpty=Testergebnisberichte enthalten keine Testergebnisse. + +CaseResult.Status.Passed=Erfolg +CaseResult.Status.Failed=Fehlschlag +CaseResult.Status.Skipped=Ausgelassen +CaseResult.Status.Fixed=Repariert +CaseResult.Status.Regression=Regression + +JUnitResultArchiver.BadXML=Testergebnisse enthalten ungültige XML-Attribute in {0} diff --git a/core/src/main/resources/hudson/tasks/junit/Messages_es.properties b/core/src/main/resources/hudson/tasks/junit/Messages_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..5115e0ee34e83a11871f69af6bad24f0493ec5f4 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/junit/Messages_es.properties @@ -0,0 +1,41 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe, id:cactusman +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +TestResult.getTitle=Resultados de los tests +TestResult.getChildTitle=Paquete +TestResult.getDisplayName=Resultado de tests + +PackageResult.getTitle=Resultado de tests : {0} +PackageResult.getChildTitle=Clases + +ClassResult.getTitle=Resultado de tests : {0} +JUnitResultArchiver.DisplayName=Publicar los resultadod de tests JUnit +JUnitResultArchiver.NoTestReportFound=No se encontraron ficheros con resultados de tests. ¿Hay algun error en la configuración? +JUnitResultArchiver.Recording=Grabando resultados de tests +JUnitResultArchiver.ResultIsEmpty=Ninguno de los informes de tests contiene resultados +JUnitResultArchiver.BadXML=Formato incorrecto en los atributos XML del fichero de resultados en {0} + +CaseResult.Status.Passed=Pasados +CaseResult.Status.Failed=Fallidos +CaseResult.Status.Skipped=Omitidos +CaseResult.Status.Fixed=Arreglados +CaseResult.Status.Regression=Regresión diff --git a/core/src/main/resources/hudson/tasks/junit/Messages_ja.properties b/core/src/main/resources/hudson/tasks/junit/Messages_ja.properties index 012cb41e43a44068ffd779214e22629119228266..5aa4e8c8b73ec2ed19573756bfee576734acc754 100644 --- a/core/src/main/resources/hudson/tasks/junit/Messages_ja.properties +++ b/core/src/main/resources/hudson/tasks/junit/Messages_ja.properties @@ -22,6 +22,7 @@ TestResult.getTitle=\u30C6\u30B9\u30C8\u7D50\u679C TestResult.getChildTitle=\u30D1\u30C3\u30B1\u30FC\u30B8 +TestResult.getDisplayName=\u30C6\u30B9\u30C8\u7D50\u679C PackageResult.getTitle=\u30C6\u30B9\u30C8\u7D50\u679C : {0} PackageResult.getChildTitle=\u30AF\u30E9\u30B9 @@ -31,6 +32,7 @@ JUnitResultArchiver.DisplayName=JUnit\u30C6\u30B9\u30C8\u7D50\u679C\u306E\u96C6\ JUnitResultArchiver.NoTestReportFound=\u30C6\u30B9\u30C8\u306E\u30EC\u30DD\u30FC\u30C8\u30D5\u30A1\u30A4\u30EB\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3067\u3057\u305F\u3002\u8A2D\u5B9A\u30DF\u30B9? JUnitResultArchiver.Recording=\u30C6\u30B9\u30C8\u7D50\u679C\u3092\u4FDD\u5B58\u4E2D JUnitResultArchiver.ResultIsEmpty=\u30C6\u30B9\u30C8\u306E\u30EC\u30DD\u30FC\u30C8\u306B\u4F55\u3082\u7D50\u679C\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093 +JUnitResultArchiver.BadXML={0} \u306B\u3001\u30C6\u30B9\u30C8\u7D50\u679C\u306EXML\u306B\u4E0D\u9069\u5207\u306A\u5C5E\u6027\u304C\u3042\u308A\u307E\u3059 CaseResult.Status.Passed=OK CaseResult.Status.Failed=\u5931\u6557 diff --git a/core/src/main/resources/hudson/tasks/junit/Messages_pt_BR.properties b/core/src/main/resources/hudson/tasks/junit/Messages_pt_BR.properties index e225f231013c4eefcd4f8bc4b40498c7012f0c35..f5f208f78ac89bea5b5a370f18af37a1b375340e 100644 --- a/core/src/main/resources/hudson/tasks/junit/Messages_pt_BR.properties +++ b/core/src/main/resources/hudson/tasks/junit/Messages_pt_BR.properties @@ -26,4 +26,25 @@ TestResult.getChildTitle=Pacote PackageResult.getTitle=Resultado de Teste : {0} PackageResult.getChildTitle=Classe -ClassResult.getTitle=Resultado de Teste : {0} \ No newline at end of file +ClassResult.getTitle=Resultado de Teste : {0}# Failed +CaseResult.Status.Failed= +# Regression +CaseResult.Status.Regression= +# Recording test results +JUnitResultArchiver.Recording= +# Incorrect XML attributes for test results found in {0} +JUnitResultArchiver.BadXML= +# Fixed +CaseResult.Status.Fixed= +# None of the test reports contained any result +JUnitResultArchiver.ResultIsEmpty= +# Passed +CaseResult.Status.Passed= +# No test report files were found. Configuration error? +JUnitResultArchiver.NoTestReportFound= +# Skipped +CaseResult.Status.Skipped= +# Publish JUnit test result report +JUnitResultArchiver.DisplayName= +# Test Results +TestResult.getDisplayName= diff --git a/core/src/main/resources/hudson/tasks/junit/MetaTabulatedResult/body.jelly b/core/src/main/resources/hudson/tasks/junit/MetaTabulatedResult/body.jelly deleted file mode 100644 index 428437f69e48d47a9275bc7f643076e9d7c68d9c..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/tasks/junit/MetaTabulatedResult/body.jelly +++ /dev/null @@ -1,80 +0,0 @@ - - - - -

    ${%All Failed Tests}

    - - - - - - - - - - - - - -
    ${%Test Name}${%Duration}${%Age}
    - - - ${f.duration} - - ${f.age} -
    -
    - - -

    ${%All Tests}

    - - - - - - - - - - - - - - - - - - - - - - -
    ${it.childTitle}${%Duration}${%Fail}(${%diff})${%Total}(${%diff})
    ${p.name}${p.durationString}${p.failCount} - ${h.getDiffString2(p.failCount-prev.failCount)} - ${p.totalCount} - ${h.getDiffString2(p.totalCount-prev.totalCount)} -
    -
    -
    \ No newline at end of file diff --git a/core/src/main/resources/hudson/tasks/junit/MetaTabulatedResult/body_ja.properties b/core/src/main/resources/hudson/tasks/junit/MetaTabulatedResult/body_ja.properties deleted file mode 100644 index 63091e9b3704c65b8973f91450dd88d7a24c3486..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/tasks/junit/MetaTabulatedResult/body_ja.properties +++ /dev/null @@ -1,30 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:cactusman -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -All\ Failed\ Tests=\u5931\u6557\u3057\u305f\u3059\u3079\u3066\u306e\u30c6\u30b9\u30c8 -Test\ Name=\u30c6\u30b9\u30c8\u540d -Duration=\u30c6\u30b9\u30c8\u6240\u8981\u6642\u9593 -Age=\u6642\u671f -All\ Tests=\u3059\u3079\u3066\u306e\u30c6\u30b9\u30c8 -Fail=\u5931\u6557 -diff=\u5dee\u5206 -Total=\u30c8\u30fc\u30bf\u30eb \ No newline at end of file diff --git a/core/src/main/resources/hudson/tasks/junit/TabulatedResult/index.jelly b/core/src/main/resources/hudson/tasks/junit/TabulatedResult/index.jelly deleted file mode 100644 index 184629414f0fd8098ad2282b5f96270b48f788cb..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/tasks/junit/TabulatedResult/index.jelly +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - -

    ${it.title}

    - - - - - - -
    -
    -
    \ No newline at end of file diff --git a/core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary.jelly b/core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary.jelly index 8594ee8e0a08cb50d5e2f36d23966941e2b3c255..270ce6cb8824f07096406a468421d3dae97caf99 100644 --- a/core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary.jelly +++ b/core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary.jelly @@ -1,7 +1,8 @@ - + - + ${it.displayName} + - + - +
      @@ -62,8 +64,8 @@ THE SOFTWARE.
    • - - ${testObject.fullName} + +
    • @@ -76,6 +78,6 @@ THE SOFTWARE. onclick="javascript:showFailures()">${%Show all failed tests} ${">>>"} - + - \ No newline at end of file + diff --git a/core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_da.properties b/core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..e66991d6eb35cd761f9e3af24ad5839a28f685fd --- /dev/null +++ b/core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_da.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Show\ all\ failed\ tests=Vis alle fejlede test diff --git a/core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_de.properties b/core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_de.properties index 4a4fe09c40aa1ebeea30ce7b3f9bda0c296b6d77..f203d3fa0eb7be815b3c97021495b6268a6085c9 100644 --- a/core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_de.properties +++ b/core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_de.properties @@ -20,4 +20,4 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Test\ Result=Testergebnis +Show\ all\ failed\ tests=Zeige alle fehlgeschlagenen Tests diff --git a/core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_es.properties b/core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..5085dfbd71e4602547475a9eecfc6555b5558c03 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_es.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Show\ all\ failed\ tests=Mostrar todos los test que fallaron diff --git a/core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_ja.properties b/core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_ja.properties index 7f4f11c69c01fdd0e70a51d6c570db4eac1cc803..d8d1ddc98d26b24bfa41eda67d6aa9edf6ee74c3 100644 --- a/core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_ja.properties +++ b/core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_ja.properties @@ -1,6 +1,6 @@ # The MIT License # -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe, id:cactusman +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe, id:cactusman # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -20,5 +20,4 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Test\ Result=\u30c6\u30b9\u30c8\u7d50\u679c -Show\ all\ failed\ tests=\u5931\u6557\u3057\u305f\u3059\u3079\u3066\u306e\u30c6\u30b9\u30c8\u3092\u8868\u793a \ No newline at end of file +Show\ all\ failed\ tests=\u5931\u6557\u3057\u305F\u3059\u3079\u3066\u306E\u30C6\u30B9\u30C8\u3092\u8868\u793A \ No newline at end of file diff --git a/core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_nl.properties b/core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_nl.properties index e58d1f3d99161aa637887326b830d45aa5f31520..7552ba02d3105f784ad2179e181d9d693ee7c004 100644 --- a/core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_nl.properties +++ b/core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_nl.properties @@ -20,4 +20,5 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. +Show\ all\ failed\ tests=Toon alle gefaalde testen Test\ Result=Testresultaat diff --git a/core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_pt_BR.properties b/core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_pt_BR.properties index abe383e0d00d2c778efe07fccc43d6c90da07f64..0aa79c57347959c296c83255cc7c895e6d169c7a 100644 --- a/core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_pt_BR.properties +++ b/core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_pt_BR.properties @@ -20,4 +20,4 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Test\ Result=Resultado de Teste +Show\ all\ failed\ tests= diff --git a/core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_sv_SE.properties b/core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..1edf8ff7ace5f905f4bdb6504d4ebea18e5ecde5 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_sv_SE.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Show\ all\ failed\ tests=Visa alla fallerande tester diff --git a/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/TestResultAction/index_da.properties b/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/TestResultAction/index_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..9badb722fcef1850615b0e84e2d6afdcd439fa02 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/TestResultAction/index_da.properties @@ -0,0 +1,30 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +N/A=N/A +Fingerprinting\ not\ enabled\ on\ this\ build.\ Test\ aggregation\ requires\ fingerprinting.=Filfingeraftryk er ikke sl\u00e5et til for dette byg, testresultatopsamling kr\u00e6ver filfingeraftryk. +Drill\ Down=Bor ned +last\ successful\ job\ is\ not\ fingerprinted=ingen filfingeraftryk for seneste succesfulde job +Test=Test +test\ result\ not\ available=test resultat ikke tilg\u00e6ngeligt +Total=I alt +Fail=Fejler diff --git a/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/TestResultAction/index_de.properties b/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/TestResultAction/index_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..84728d3dd6e08719a7a0de9c70962626f864b3c0 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/TestResultAction/index_de.properties @@ -0,0 +1,10 @@ +Fingerprinting\ not\ enabled\ on\ this\ build.\ Test\ aggregation\ requires\ fingerprinting.=\ + Aufzeichnung von Fingerabdrücken wurde für diesen Build nicht aktiviert, ist aber \ + Voraussetzung für das Zusammenfassen von Testergebnissen. +Drill\ Down=Detaillierte Darstellung +Test=Test +Fail=Fehlgeschlagen +Total=Summe +test\ result\ not\ available=Testergebnis nicht verfügbar +N/A=keine Angabe +last\ successful\ job\ is\ not\ fingerprinted=Vom letzen erfolgreichen Job liegen keine Fingerabdrücke vor. diff --git a/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/TestResultAction/index_es.properties b/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/TestResultAction/index_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..fc146b27affe2059fc875dc84e3b52a1cc4f1df0 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/TestResultAction/index_es.properties @@ -0,0 +1,30 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Fingerprinting\ not\ enabled\ on\ this\ build.\ Test\ aggregation\ requires\ fingerprinting.=La opción de guardar las firmas de los ficheros generados, no está habilitada para esta tarea. Para poder hacer agregación de tests se requiere que esta funcionaliad esté activa. +Drill\ Down=Ir hacia abajo +Test=Tests +Fail=Fallos +Total=Total +test\ result\ not\ available=Resultados de tests no disponible +N/A=N/D +last\ successful\ job\ is\ not\ fingerprinted=No se guardaron las firmas de los ficheros de la última ejecución válida. diff --git a/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/TestResultAction/index_fr.properties b/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/TestResultAction/index_fr.properties index 4a88e116611601d5fc82b98e49df2824a09cb152..26a85e8fbcdbc5fe2fa6947b94b3ffbd1510d9d9 100644 --- a/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/TestResultAction/index_fr.properties +++ b/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/TestResultAction/index_fr.properties @@ -20,11 +20,11 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Drill\ Down=En profondeur -Test= -Fail=Echec -Total= -N/A= +Drill\ Down=En profondeur +Test= +Fail=Echec +Total= +N/A= Fingerprinting\ not\ enabled\ on\ this\ build.\ Test\ aggregation\ requires\ fingerprinting.= test\ result\ not\ available=les derniers résultats de test ne sont pas disponibles last\ successful\ job\ is\ not\ fingerprinted=le dernier job executé avec succès n''a pas d''empreinte numérique diff --git a/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/TestResultAction/index_pt_BR.properties b/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/TestResultAction/index_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..5f18cfaf12890d31c0f30b5c7aeeef2778ac4c1d --- /dev/null +++ b/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/TestResultAction/index_pt_BR.properties @@ -0,0 +1,30 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +N/A= +Fingerprinting\ not\ enabled\ on\ this\ build.\ Test\ aggregation\ requires\ fingerprinting.= +test\ result\ not\ available= +last\ successful\ job\ is\ not\ fingerprinted= +Test= +Total= +Drill\ Down= +Fail=Falha diff --git a/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/config.jelly b/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/config.jelly index 8a943a223adf9c7f625ebedc138efb55ddd440be..8ca661d2eacadf24ea4fef7f33184dc604c29908 100644 --- a/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/config.jelly +++ b/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/config.jelly @@ -32,9 +32,9 @@ THE SOFTWARE. + checkUrl="'descriptorByName/AggregatedTestResultPublisher/check?value='+encodeURIComponent(this.value)"/> - \ No newline at end of file + diff --git a/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/config_da.properties b/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/config_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..5aaa0d21a89f70a34cb60f79e4a9fde2b66ccf9b --- /dev/null +++ b/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/config_da.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Jobs\ to\ aggregate=Jobs der skal samles +Automatically\ aggregate\ all\ downstream\ tests=Automatisk samling af alle downstream test diff --git a/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/config_de.properties b/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/config_de.properties index efb10a6a1aa1ecf02b74d2298a8d0ad9b376bfcb..ba7bd4c3c85676256ecf35bc5165de22fe2ee20e 100644 --- a/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/config_de.properties +++ b/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/config_de.properties @@ -20,5 +20,5 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Automatically\ aggregate\ all\ downstream\ tests=Alle nachgelagerten Tests zusammenfassen -Jobs\ to\ aggregate=Zusammenzufassende Jobs +Automatically\ aggregate\ all\ downstream\ tests=Alle nachgelagerten Tests zusammenfassen +Jobs\ to\ aggregate=Zusammenzufassende Jobs diff --git a/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/config_es.properties b/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/config_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..798372e527a5c9f4728b050a69ee570724ab6384 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/config_es.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Automatically\ aggregate\ all\ downstream\ tests=Agregar automáticamente todos los tests de projectos inferiores +Jobs\ to\ aggregate=Projectos para agregar diff --git a/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/config_fr.properties b/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/config_fr.properties index 10740665b2f200e4c724923187aac3b7d71d0b3f..fe75fe16b5a5dedbcd5443250a3a3203cc4f5b92 100644 --- a/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/config_fr.properties +++ b/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/config_fr.properties @@ -20,5 +20,5 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Automatically\ aggregate\ all\ downstream\ tests=Assembler automatiquement tous les tests en aval -Jobs\ to\ aggregate=Jobs à consolider +Automatically\ aggregate\ all\ downstream\ tests=Assembler automatiquement tous les tests en aval +Jobs\ to\ aggregate=Jobs à consolider diff --git a/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/config_pt_BR.properties b/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/config_pt_BR.properties index f6890997585ba0f659be0c4bb80d6c4fd33e9925..15b706f84e699a4a0a56e94ac24dc3e3b6048748 100644 --- a/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/config_pt_BR.properties +++ b/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/config_pt_BR.properties @@ -20,5 +20,5 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Automatically\ aggregate\ all\ downstream\ tests=Agregar automaticamente todos os testes filho -Jobs\ to\ aggregate=Tarefas \u00E0 agregar +Automatically\ aggregate\ all\ downstream\ tests=Agregar automaticamente todos os testes filho +Jobs\ to\ aggregate=Tarefas \u00E0 agregar diff --git a/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/config_tr.properties b/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/config_tr.properties index 210fd7c685c32e93a25ca3ea0862da0e53213d16..e58c9927ee8cd05d1cb9ef2bad86024ae87b1004 100644 --- a/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/config_tr.properties +++ b/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/config_tr.properties @@ -20,5 +20,5 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Automatically\ aggregate\ all\ downstream\ tests=T\u00fcm downstream testleri otomatik olarak toparla -Jobs\ to\ aggregate=Toparlanacak i\u015fler +Automatically\ aggregate\ all\ downstream\ tests=T\u00fcm downstream testleri otomatik olarak toparla +Jobs\ to\ aggregate=Toparlanacak i\u015fler diff --git a/core/src/main/resources/hudson/tasks/test/MatrixTestResult/index.jelly b/core/src/main/resources/hudson/tasks/test/MatrixTestResult/index.jelly index d6755fe97488c087774f6a5cfddec603ed1d7d4a..4a61b9d85ddf4394afcb3a5e3f5d738e6992dc60 100644 --- a/core/src/main/resources/hudson/tasks/test/MatrixTestResult/index.jelly +++ b/core/src/main/resources/hudson/tasks/test/MatrixTestResult/index.jelly @@ -1,7 +1,7 @@ + + + + + + +

      ${%All Failed Tests}

      + + + + + + + + + + + + + + +
      ${%Test Name}${%Duration}${%Age}
      + >>> + + + + + + + + + + ${f.duration} + + ${f.age} +
      +
      + + +

      ${%All Tests}

      + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ${it.childTitle}${%Duration}${%Fail}(${%diff})${%Skip}(${%diff})${%Total}(${%diff})
      + + + + + + ${p.durationString}${p.failCount} + ${h.getDiffString2(p.failCount-prev.failCount)} + ${p.skipCount} + ${h.getDiffString2(p.skipCount-prev.skipCount)} + ${p.totalCount} + ${h.getDiffString2(p.totalCount-prev.totalCount)} +
      +
      +
      diff --git a/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_da.properties b/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..2d02270c3a8ab2033fe6ae2abcc0db9d84939a3b --- /dev/null +++ b/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_da.properties @@ -0,0 +1,32 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Test\ Name=Testnavn +Loading...=Indl\u00e6ser... +Duration=Varighed +All\ Failed\ Tests=Alle fejlede test +diff=diff +Age=Alder +Skip=Spring over +All\ Tests=Alle test +Total=I alt +Fail=Fejler diff --git a/core/src/main/resources/hudson/tasks/junit/MetaTabulatedResult/body_de.properties b/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_de.properties similarity index 95% rename from core/src/main/resources/hudson/tasks/junit/MetaTabulatedResult/body_de.properties rename to core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_de.properties index da06a08a1de6b7397c64b8d2957713951785e2ea..f8f1ed06e1ad9c664d0fd3131eff6080133b1ded 100644 --- a/core/src/main/resources/hudson/tasks/junit/MetaTabulatedResult/body_de.properties +++ b/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_de.properties @@ -26,5 +26,7 @@ Duration=Dauer Age=Alter All\ Tests=Alle Tests Fail=Fehlgeschlagen -diff=Veränderung -Total=Summe +Skip=Übersprungen +diff=Diff. +Total=Summe +Loading...=Lade Daten... diff --git a/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_es.properties b/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..0b290376edb0f8228005ecbeb69d5a3c3574bb49 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_es.properties @@ -0,0 +1,10 @@ +Total=Total +Loading...=Cargando +Age=Antigüedad +All\ Tests=Todos los tests +Fail=Fallidos +diff=diferencias +Skip=Omitir +Duration=Duración +Test\ Name=Nombre del test +All\ Failed\ Tests=Todos los test con fallos diff --git a/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_fi.properties b/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_fi.properties new file mode 100644 index 0000000000000000000000000000000000000000..2be4c4709daa99b5e53cdf61e1af031e720bbca5 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_fi.properties @@ -0,0 +1,28 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +All\ Tests=Kaikki testit +Duration=Kesto +Fail=Ep\u00E4onnistui +Skip=Ohitettu +Total=Yhteens\u00E4 +diff=muutos diff --git a/core/src/main/resources/hudson/tasks/junit/MetaTabulatedResult/body_fr.properties b/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_fr.properties similarity index 94% rename from core/src/main/resources/hudson/tasks/junit/MetaTabulatedResult/body_fr.properties rename to core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_fr.properties index d456df3175e3bce7325ca544c065bc69b211ce96..1dfb7a3add6d7184351c1be1087a7d5f2d92e425 100644 --- a/core/src/main/resources/hudson/tasks/junit/MetaTabulatedResult/body_fr.properties +++ b/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_fr.properties @@ -21,10 +21,12 @@ # THE SOFTWARE. All\ Failed\ Tests=Tous les tests qui ont échoués +Loading...=Chargement... +Skip=Pass\u00E9 Test\ Name=Nom du test Duration=Durée -Age= +Age=Age All\ Tests=Tous les tests Fail=Echec -diff= -Total= +diff=diif +Total=Total diff --git a/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_ja.properties b/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..3a58e63d48a7b96ff0b84459c4845e8f46b0a955 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_ja.properties @@ -0,0 +1,32 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:cactusman, Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +All\ Failed\ Tests=\u5931\u6557\u3057\u305F\u3059\u3079\u3066\u306E\u30C6\u30B9\u30C8 +Test\ Name=\u30C6\u30B9\u30C8\u540D +Duration=\u30C6\u30B9\u30C8\u6240\u8981\u6642\u9593 +Age=\u6642\u671F +All\ Tests=\u3059\u3079\u3066\u306E\u30C6\u30B9\u30C8 +Fail=\u5931\u6557 +Skip=\u30B9\u30AD\u30C3\u30D7 +diff=\u5DEE\u5206 +Total=\u5408\u8A08 +Loading...=\u30ED\u30FC\u30C9\u4E2D... diff --git a/core/src/main/resources/hudson/tasks/junit/MetaTabulatedResult/body_nl.properties b/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_nl.properties similarity index 97% rename from core/src/main/resources/hudson/tasks/junit/MetaTabulatedResult/body_nl.properties rename to core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_nl.properties index 92c3e4030fff92c75a1975172b2b8854efcd08de..56c81b742419610c27ce85ae0e04a1f7179fd659 100644 --- a/core/src/main/resources/hudson/tasks/junit/MetaTabulatedResult/body_nl.properties +++ b/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_nl.properties @@ -20,6 +20,7 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. +Skip=Overgeslagen Test\ Name=Naam van de test Duration=Duur Age=Leeftijd @@ -27,4 +28,4 @@ All\ Failed\ Tests=Alle gefaalde testen All\ Tests=Alle testen Total=Totaal Fail=Gefaald -diff=delta \ No newline at end of file +diff=delta diff --git a/core/src/main/resources/hudson/tasks/junit/MetaTabulatedResult/body_pt_BR.properties b/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_pt_BR.properties similarity index 98% rename from core/src/main/resources/hudson/tasks/junit/MetaTabulatedResult/body_pt_BR.properties rename to core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_pt_BR.properties index 35f5a0b4c91989cb15b250fb03a4ea0ff913a533..0e2129e8112821225a6c2fd9d7acab35a61e7168 100644 --- a/core/src/main/resources/hudson/tasks/junit/MetaTabulatedResult/body_pt_BR.properties +++ b/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_pt_BR.properties @@ -28,3 +28,5 @@ All\ Tests=Todos os Testes Fail=Falha diff= Total= +Skip= +Loading...= diff --git a/core/src/main/resources/hudson/tasks/junit/MetaTabulatedResult/body_ru.properties b/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_ru.properties similarity index 100% rename from core/src/main/resources/hudson/tasks/junit/MetaTabulatedResult/body_ru.properties rename to core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_ru.properties diff --git a/core/src/main/resources/hudson/tasks/junit/MetaTabulatedResult/body_tr.properties b/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_tr.properties similarity index 100% rename from core/src/main/resources/hudson/tasks/junit/MetaTabulatedResult/body_tr.properties rename to core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_tr.properties diff --git a/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_zh_TW.properties b/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_zh_TW.properties new file mode 100644 index 0000000000000000000000000000000000000000..3e04b5fd3f3c4d29cdab890a584429a51fab242b --- /dev/null +++ b/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_zh_TW.properties @@ -0,0 +1,29 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Age=\u7D2F\u7A4D\u6642\u9593 +All\ Failed\ Tests=\u6240\u6709\u5931\u6557\u7684\u6E2C\u8A66 +All\ Tests=\u6240\u6709\u6E2C\u8A66 +Duration=\u6301\u7E8C\u671F\u9593 +Fail=\u5931\u6557 +Total=\u7E3D\u8A08 +diff=\u5DEE\u7570 diff --git a/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/list.jelly b/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/list.jelly new file mode 100644 index 0000000000000000000000000000000000000000..0cf3cfd287907571d1b78f15ba595fcdf6878873 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/list.jelly @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ${%Build}${%Description}${%Duration}${%Fail}${%Skip}${%Total}
      + ${b.fullDisplayName} + + + + + ${p.description}${p.durationString}${p.failCount}${p.skipCount}${p.totalCount}
      +
      diff --git a/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/list_da.properties b/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/list_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..a1455c3c2b2869988066458267984451d47d9e37 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/list_da.properties @@ -0,0 +1,28 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Duration=Varighed +Build=Byg +Skip=Spring over +Total=I alt +Fail=Fejler +Description=Beskrivelse diff --git a/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/list_de.properties b/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/list_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..4f7d693abaf303327568dc743c760099b8a53f15 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/list_de.properties @@ -0,0 +1,28 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Total=Summe +Build=Build +Fail=Fehlgeschlagen +Skip=Übersprungen +Duration=Dauer +Description=Beschreibung diff --git a/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/list_es.properties b/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/list_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..f4154b3509f4b95e7028ba26b72e01da5a02a31a --- /dev/null +++ b/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/list_es.properties @@ -0,0 +1,6 @@ +Total=Total +Build=Ejecución +Fail=Fallida +Skip=Omitir +Duration=Duración +Description=Descripción diff --git a/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/list_ja.properties b/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/list_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..33a6ec2da364da5327cc71838f8476aba85ab804 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/list_ja.properties @@ -0,0 +1,28 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Build=\u30D3\u30EB\u30C9 +Description=\u30C6\u30B9\u30C8\u306E\u8AAC\u660E +Duration=\u30C6\u30B9\u30C8\u6240\u8981\u6642\u9593 +Fail=\u5931\u6557 +Skip=\u30B9\u30AD\u30C3\u30D7 +Total=\u5408\u8A08 diff --git a/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/list_pt_BR.properties b/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/list_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..badc242d9d5fa1293a5b429d2b67eea85d37cb42 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/list_pt_BR.properties @@ -0,0 +1,28 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Skip= +Duration=Dura\u00E7\u00E3o +Total= +Build= +Fail=Falha +Description= diff --git a/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel.jelly b/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel.jelly new file mode 100644 index 0000000000000000000000000000000000000000..ec59415587c1255eff50dc16bb36ed9f74aa7b6b --- /dev/null +++ b/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel.jelly @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_da.properties b/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..f93b70291adb90aeff0621d81fbdb85b9d479aaf --- /dev/null +++ b/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_da.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Previous\ Build=Foreg\u00e5ende Byg +History=Historik +Next\ Build=N\u00e6ste Byg diff --git a/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_de.properties b/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..b644627a093358a902493a082d367df57fd2c40c --- /dev/null +++ b/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_de.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +History=Verlauf +Previous\ Build=Vorheriger Build +Next\ Build=Nachfolgender Build diff --git a/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_es.properties b/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..577f4efae8bb505c2bb6985a05d43b4e83ebd078 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_es.properties @@ -0,0 +1,3 @@ +Previous\ Build=Ejecución anterior +History=Historia +Next\ Build=Ejecución siguiente diff --git a/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_fi.properties b/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_fi.properties new file mode 100644 index 0000000000000000000000000000000000000000..af2efb33cd0dcdc7e7cb7d3c77dab994bfa2afb7 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_fi.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +History=Historia +Next\ Build=Seuraava k\u00E4\u00E4nn\u00F6s +Previous\ Build=Edellinen k\u00E4\u00E4nn\u00F6s diff --git a/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_fr.properties b/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_fr.properties new file mode 100644 index 0000000000000000000000000000000000000000..e19774e035cc8439e2ac473a7ade82fbf274f5fe --- /dev/null +++ b/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_fr.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +History=Historique +Previous\ Build=Build pr\u00E9c\u00E9dente diff --git a/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_ja.properties b/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..76a09eb8f7a5d060af2943bce7defb0eb13373bc --- /dev/null +++ b/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_ja.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +History=\u30C6\u30B9\u30C8\u5C65\u6B74 +Previous\ Build=\u524D\u306E\u30D3\u30EB\u30C9 +Next\ Build=\u6B21\u306E\u30D3\u30EB\u30C9 diff --git a/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_nl.properties b/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_nl.properties new file mode 100644 index 0000000000000000000000000000000000000000..85606083b9ecc74ff800e9cbdeaf215406ba7d8e --- /dev/null +++ b/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_nl.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +History=Geschiedenis +Previous\ Build=Vorige bouwpoging diff --git a/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_pt_BR.properties b/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..e78e543b6af11232273315811be4afbd1ddee1ae --- /dev/null +++ b/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_pt_BR.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Previous\ Build=Constru\u00E7\u00E3o Anterior +History= +Next\ Build=Pr\u00F3xima Constru\u00E7\u00E3o diff --git a/core/src/main/resources/hudson/tasks/test/TestResult/index.jelly b/core/src/main/resources/hudson/tasks/test/TestResult/index.jelly new file mode 100644 index 0000000000000000000000000000000000000000..b3e190c9891f7ecba14b3be65a49a750f34cd31d --- /dev/null +++ b/core/src/main/resources/hudson/tasks/test/TestResult/index.jelly @@ -0,0 +1,52 @@ + + + + + + +

      + + + + + + + + + + + + + +
      + + +
      +
      +
      diff --git a/core/src/main/resources/hudson/tasks/test/TestResult/index.properties b/core/src/main/resources/hudson/tasks/test/TestResult/index.properties new file mode 100644 index 0000000000000000000000000000000000000000..30e0a0969d7d4e425483c4dead526eecc1eb82c2 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/test/TestResult/index.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +took=Took {0}. diff --git a/core/src/main/resources/hudson/tasks/test/TestResult/index_da.properties b/core/src/main/resources/hudson/tasks/test/TestResult/index_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..cacb65f2dbd9118a707b06c282e4b6286ac6cb59 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/test/TestResult/index_da.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +took=Tog {0}. diff --git a/core/src/main/resources/hudson/tasks/test/TestResult/index_de.properties b/core/src/main/resources/hudson/tasks/test/TestResult/index_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..2f07fa872946abb44648ce408328ae1f06423dbe --- /dev/null +++ b/core/src/main/resources/hudson/tasks/test/TestResult/index_de.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +took=Dauer: {0} diff --git a/core/src/main/resources/hudson/tasks/test/TestResult/index_es.properties b/core/src/main/resources/hudson/tasks/test/TestResult/index_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..5ee020d5b9e87e3fa2713a5286ca8e68566b894f --- /dev/null +++ b/core/src/main/resources/hudson/tasks/test/TestResult/index_es.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +# Took {0}. +took=Tardó {0}. diff --git a/core/src/main/resources/hudson/tasks/test/TestResult/index_fi.properties b/core/src/main/resources/hudson/tasks/test/TestResult/index_fi.properties new file mode 100644 index 0000000000000000000000000000000000000000..adae2eb34c3385cd6037a4fbc66691223aa6f42b --- /dev/null +++ b/core/src/main/resources/hudson/tasks/test/TestResult/index_fi.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +took=Vei {0} diff --git a/core/src/main/resources/hudson/tasks/test/TestResult/index_fr.properties b/core/src/main/resources/hudson/tasks/test/TestResult/index_fr.properties new file mode 100644 index 0000000000000000000000000000000000000000..9a64783a97d5ec5d17deba2b731de7698b443b22 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/test/TestResult/index_fr.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +took=A pris {0}. diff --git a/core/src/main/resources/hudson/tasks/test/TestResult/index_ja.properties b/core/src/main/resources/hudson/tasks/test/TestResult/index_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..4de8023d99bb2a40ae22351f8cf73f1d0e07f119 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/test/TestResult/index_ja.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +took=\u6240\u8981\u6642\u9593 {0} diff --git a/core/src/main/resources/hudson/tasks/test/TestResult/index_nl.properties b/core/src/main/resources/hudson/tasks/test/TestResult/index_nl.properties new file mode 100644 index 0000000000000000000000000000000000000000..9ac7efe9d9d8cec9ee736793f29e526d34db8571 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/test/TestResult/index_nl.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +took=duurde {0}. diff --git a/core/src/main/resources/hudson/tasks/test/TestResult/index_pt_BR.properties b/core/src/main/resources/hudson/tasks/test/TestResult/index_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..c519789e2c0b035928ccabf2d26350b7ae9c6028 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/test/TestResult/index_pt_BR.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +# Took {0}. +took=Pegar {0}. diff --git a/core/src/main/resources/hudson/tasks/test/TestResult/index_zh_TW.properties b/core/src/main/resources/hudson/tasks/test/TestResult/index_zh_TW.properties new file mode 100644 index 0000000000000000000000000000000000000000..20986fbc5281f6e16fa2e5309998af41239e1b3e --- /dev/null +++ b/core/src/main/resources/hudson/tasks/test/TestResult/index_zh_TW.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +took=\u4F7F\u7528 {0} diff --git a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox.jelly b/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox.jelly index 4219aa4f9e89480ce136fe55c85ee7dee5d3e801..60e610486dbd303908ede2de24c01ad6209cd6f1 100644 --- a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox.jelly +++ b/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox.jelly @@ -23,7 +23,7 @@ THE SOFTWARE. --> - +
      @@ -41,12 +41,9 @@ THE SOFTWARE.
      - - (${%show test # and failure #}) - - - (${%just show failures}) - + + (${%show test # and failure #}) + (${%just show failures}) ${%enlarge} diff --git a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_da.properties b/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..7845901de2a3deaae7c1ef3a975785b1993e9cf4 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_da.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +show\ test\ \#\ and\ failure\ \#=vis # test og antal fejlede +just\ show\ failures=vis kun fejlede +Test\ Result\ Trend=Testresultat trend +enlarge=forst\u00f8rre diff --git a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_es.properties b/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..f878546cf5b67bc5334dd8d35e4c2b53ed007877 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_es.properties @@ -0,0 +1,27 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Test\ Result\ Trend=Tendencia de los resultados de los tests +show\ test\ \#\ and\ failure\ \#=Mostrar todos los tests +just\ show\ failures=Mostrar los que fallaron +enlarge=Agrandar + diff --git a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_it.properties b/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_it.properties new file mode 100644 index 0000000000000000000000000000000000000000..da172ff2384f13ba2b73d897875b7c5c207863ea --- /dev/null +++ b/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_it.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Test\ Result\ Trend=Andamento risultati dei test +enlarge=allarga +just\ show\ failures=mostra solo fallimenti diff --git a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_ja.properties b/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_ja.properties index de41c99344a59be76d3e1b507acd5a7837d38260..9856ed5c334fb96bd6e1e6dd7e0028c582ee8e6b 100644 --- a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_ja.properties +++ b/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_ja.properties @@ -20,7 +20,7 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Test\ Result\ Trend=\u30c6\u30b9\u30c8\u7d50\u679c\u306e\u50be\u5411 -show\ test\ #\ and\ failure\ #=\u30c6\u30b9\u30c8 # \u3068\u5931\u6557 #\u3092\u8868\u793a -just\ show\ failures=\u5931\u6557\u306e\u307f\u3092\u8868\u793a -enlarge=\u62e1\u5927 \ No newline at end of file +Test\ Result\ Trend=\u30C6\u30B9\u30C8\u7D50\u679C\u306E\u63A8\u79FB +show\ test\ \#\ and\ failure\ \#=\u30C6\u30B9\u30C8 # \u3068\u5931\u6557 #\u3092\u8868\u793A +just\ show\ failures=\u5931\u6557\u306E\u307F\u3092\u8868\u793A +enlarge=\u62E1\u5927 \ No newline at end of file diff --git a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_nb_NO.properties b/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_nb_NO.properties new file mode 100644 index 0000000000000000000000000000000000000000..c592571e52fc14d7f9252caa6e018445a6f4ac4d --- /dev/null +++ b/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_nb_NO.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Test\ Result\ Trend=Test Result trend +just\ show\ failures=bare vis feil diff --git a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_ru.properties b/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_ru.properties index 2c9173d5d9c130a0a4daed8d9e49923728c6fbb0..43695d036685560adcbf4a546dee31cdc752791e 100644 --- a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_ru.properties +++ b/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_ru.properties @@ -22,5 +22,5 @@ Test\ Result\ Trend=\u0413\u0440\u0430\u0444\u0438\u043a \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432 show\ test\ \#\ and\ failure\ \#=\u041f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0442\u0435\u0441\u0442\u043e\u0432 \u0438 \u043e\u0448\u0438\u0431\u043e\u043a -just\ show\ failures=\u041f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0448\u0438\u0431\u043a\u0438 -enlarge=\u0423\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u044c +just\ show\ failures=\u043F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u0442\u044C \u0442\u043E\u043B\u044C\u043A\u043E \u043D\u0435\u0443\u0434\u0430\u0447\u0438 +enlarge=\u0443\u0432\u0435\u043B\u0438\u0447\u0438\u0442\u044C diff --git a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_sv_SE.properties b/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..d3829e5abf8bae42b35701cf107190b527a34508 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_sv_SE.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +enlarge=f\u00F6rstora +just\ show\ failures=visa endast fallerade diff --git a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_zh_TW.properties b/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_zh_TW.properties new file mode 100644 index 0000000000000000000000000000000000000000..b3435bc67d1592be197b375e6de8cece2c1b2229 --- /dev/null +++ b/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_zh_TW.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Test\ Result\ Trend=\u6E2C\u8A66\u7D50\u679C\u7684\u8DA8\u52E2 +enlarge=\u653E\u5927 +just\ show\ failures=\u53EA\u986F\u793A\u5931\u6557\u7684 +show\ test\ #\ and\ failure\ #=\u986F\u793A\u6E2C\u8A66\u7684\u6578\u91CF\u53CA\u5931\u6557\u7684\u6578\u91CF diff --git a/core/src/main/resources/hudson/tools/CommandInstaller/config.jelly b/core/src/main/resources/hudson/tools/CommandInstaller/config.jelly index f44b0bc72b7501247d463862762f11551f2be813..72f569b9da1a13f947e7871dff43ec04c48c9c2a 100644 --- a/core/src/main/resources/hudson/tools/CommandInstaller/config.jelly +++ b/core/src/main/resources/hudson/tools/CommandInstaller/config.jelly @@ -26,4 +26,7 @@ THE SOFTWARE. + + + diff --git a/core/src/main/resources/hudson/tools/CommandInstaller/config_da.properties b/core/src/main/resources/hudson/tools/CommandInstaller/config_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..bebc2f7baa2f4a9c4f164f4c67f6c5e7ffa5b563 --- /dev/null +++ b/core/src/main/resources/hudson/tools/CommandInstaller/config_da.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Command=Kommando +Tool\ Home=V\u00e6rkt\u00f8jsdirektorie diff --git a/core/src/main/resources/hudson/tools/CommandInstaller/config_de.properties b/core/src/main/resources/hudson/tools/CommandInstaller/config_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..75c36af0936e0527e0a8bb03d9262611bbb12f04 --- /dev/null +++ b/core/src/main/resources/hudson/tools/CommandInstaller/config_de.properties @@ -0,0 +1,2 @@ +Command=Kommando +Tool\ Home=Stammverzeichnis des Hilfsprogramms diff --git a/core/src/main/resources/hudson/tools/CommandInstaller/config_es.properties b/core/src/main/resources/hudson/tools/CommandInstaller/config_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..b18d8fb8a5c3c4d99e0addcb140dd12d2084cd48 --- /dev/null +++ b/core/src/main/resources/hudson/tools/CommandInstaller/config_es.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Command=Commando +Tool\ Home=Directorio de la utilidad diff --git a/core/src/main/resources/hudson/tools/CommandInstaller/config_fr.properties b/core/src/main/resources/hudson/tools/CommandInstaller/config_fr.properties new file mode 100644 index 0000000000000000000000000000000000000000..5c2efb97d6d6c8b0613e89fe19cfa49f0df2beb1 --- /dev/null +++ b/core/src/main/resources/hudson/tools/CommandInstaller/config_fr.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Command=Commande diff --git a/core/src/main/resources/hudson/tools/CommandInstaller/config_ja.properties b/core/src/main/resources/hudson/tools/CommandInstaller/config_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..63309e863e7f63207ffd638ddce6193ee01ebb03 --- /dev/null +++ b/core/src/main/resources/hudson/tools/CommandInstaller/config_ja.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Command=\u30B3\u30DE\u30F3\u30C9 +Tool\ Home=\u30C4\u30FC\u30EB\u30DB\u30FC\u30E0 diff --git a/core/src/main/resources/hudson/tools/CommandInstaller/config_nl.properties b/core/src/main/resources/hudson/tools/CommandInstaller/config_nl.properties new file mode 100644 index 0000000000000000000000000000000000000000..c4053e652b6acceb6ba335973cfcb47bf3ed485e --- /dev/null +++ b/core/src/main/resources/hudson/tools/CommandInstaller/config_nl.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Command=Commando diff --git a/core/src/main/resources/hudson/tools/CommandInstaller/config_pt_BR.properties b/core/src/main/resources/hudson/tools/CommandInstaller/config_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..e107ae8cdc1ee1ea6bac68921d991d4e226aa313 --- /dev/null +++ b/core/src/main/resources/hudson/tools/CommandInstaller/config_pt_BR.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Command=Comando +Tool\ Home= diff --git a/core/src/main/resources/hudson/tools/CommandInstaller/config_ru.properties b/core/src/main/resources/hudson/tools/CommandInstaller/config_ru.properties new file mode 100644 index 0000000000000000000000000000000000000000..cbd94043e2bbd024206f304bca16a00db19aa035 --- /dev/null +++ b/core/src/main/resources/hudson/tools/CommandInstaller/config_ru.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Command=\u041A\u043E\u043C\u0430\u043D\u0434\u0430 +Tool\ Home=\u0414\u043E\u043C\u0430\u0448\u043D\u0438\u0439 \u043A\u0430\u0442\u0430\u043B\u043E\u0433 \u0443\u0442\u0438\u043B\u0438\u0442\u044B diff --git a/core/src/main/resources/hudson/tools/CommandInstaller/config_zh_CN.properties b/core/src/main/resources/hudson/tools/CommandInstaller/config_zh_CN.properties new file mode 100644 index 0000000000000000000000000000000000000000..b56768c498c70f5fdfcba7cf64b08f259d46899c --- /dev/null +++ b/core/src/main/resources/hudson/tools/CommandInstaller/config_zh_CN.properties @@ -0,0 +1,2 @@ +Command=\u547d\u4ee4 +Tool\ Home=\u5de5\u5177\u76ee\u5f55 diff --git a/core/src/main/resources/hudson/tools/CommandInstaller/config_zh_TW.properties b/core/src/main/resources/hudson/tools/CommandInstaller/config_zh_TW.properties new file mode 100644 index 0000000000000000000000000000000000000000..5e49f75ff9fe9a9ece4bd57051aac7bb107c8fbb --- /dev/null +++ b/core/src/main/resources/hudson/tools/CommandInstaller/config_zh_TW.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Command=\u547D\u4EE4 diff --git a/core/src/main/resources/hudson/tools/CommandInstaller/help-command_de.html b/core/src/main/resources/hudson/tools/CommandInstaller/help-command_de.html new file mode 100644 index 0000000000000000000000000000000000000000..c2ea0fec7a2ca9541079f67b8b84fd3fe0177fa9 --- /dev/null +++ b/core/src/main/resources/hudson/tools/CommandInstaller/help-command_de.html @@ -0,0 +1,5 @@ +
      + Kommando, das auf dem Slave ausgeführt wird, um das Hilfsprogramm zu installieren. + Dieses Kommando wird bei jedem Build ausgeführt - es sollte also eine schnelle, neutrale Operation sein, + wenn das Hilfsprogramm bereits auf dem Slave installiert ist. +
      diff --git a/core/src/main/resources/hudson/tools/CommandInstaller/help-command_ja.html b/core/src/main/resources/hudson/tools/CommandInstaller/help-command_ja.html new file mode 100644 index 0000000000000000000000000000000000000000..b6bf0d0e4f96dd31fee1c3cec0a00d9e00381754 --- /dev/null +++ b/core/src/main/resources/hudson/tools/CommandInstaller/help-command_ja.html @@ -0,0 +1,4 @@ +
      + スレーブ上ã§ãƒ„ールをインストールã™ã‚‹ã‚³ãƒžãƒ³ãƒ‰ã§ã™ã€‚ + コマンドã¯å¸¸ã«å®Ÿè¡Œã•ã‚Œã‚‹ã®ã§ã€ãƒ„ールãŒã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«æ¸ˆã¿ã§ã‚ã‚Œã°ã€ã‚³ãƒžãƒ³ãƒ‰ã¯ä½•ã‚‚ã—ãªã„よã†ã«ã™ã¹ãã§ã™ã€‚ +
      diff --git a/core/src/main/resources/hudson/tools/CommandInstaller/help-command_zh_CN.html b/core/src/main/resources/hudson/tools/CommandInstaller/help-command_zh_CN.html new file mode 100644 index 0000000000000000000000000000000000000000..c98784a54c59154132a3f9025fca166eca29c9ce --- /dev/null +++ b/core/src/main/resources/hudson/tools/CommandInstaller/help-command_zh_CN.html @@ -0,0 +1,4 @@ +
      + 在å­èŠ‚点上使用命令安装工具, + 命令会一直è¿è¡Œ,如果工具已ç»å®‰è£…了,å°±è¦è¿™ä¸ªå‘½ä»¤è¿…速的è¿è¡Œå®Œæˆå¹¶ä¸”没有任何æ“作. +
      diff --git a/core/src/main/resources/hudson/tools/CommandInstaller/help-toolHome.html b/core/src/main/resources/hudson/tools/CommandInstaller/help-toolHome.html new file mode 100644 index 0000000000000000000000000000000000000000..ef7538e320a7726eeb0c112a8ab7f263a9248c24 --- /dev/null +++ b/core/src/main/resources/hudson/tools/CommandInstaller/help-toolHome.html @@ -0,0 +1,4 @@ +
      + Resulting home directory of the tool. + (May be a relative path if the command unpacked a tool in place.) +
      diff --git a/core/src/main/resources/hudson/tools/CommandInstaller/help-toolHome_de.html b/core/src/main/resources/hudson/tools/CommandInstaller/help-toolHome_de.html new file mode 100644 index 0000000000000000000000000000000000000000..92cbc67af38a41226a38809b4b6670629bd32ea1 --- /dev/null +++ b/core/src/main/resources/hudson/tools/CommandInstaller/help-toolHome_de.html @@ -0,0 +1,5 @@ +
      + Stammverzeichnis des Hilfsprogrammes nach der Installation. + Kann auch ein relativer Pfad sein, z.B. wenn das Kommando das Hilfsprogramm + in seinem Arbeitsverzeichnis entpackt. +
      diff --git a/core/src/main/resources/hudson/tools/CommandInstaller/help-toolHome_zh_CN.html b/core/src/main/resources/hudson/tools/CommandInstaller/help-toolHome_zh_CN.html new file mode 100644 index 0000000000000000000000000000000000000000..870a2b330d82ea874e2a9cecf6a26e5bb724278c --- /dev/null +++ b/core/src/main/resources/hudson/tools/CommandInstaller/help-toolHome_zh_CN.html @@ -0,0 +1,4 @@ +
      + 安装工具的目录. + (如果需è¦å§å·¥å…·è§£åŽ‹åˆ°ç£ç›˜ä¸Š,å¯èƒ½æ˜¯ä¸€ä¸ªç»å¯¹è·¯å¾„.) +
      diff --git a/core/src/main/resources/hudson/tools/CommandInstaller/help_de.html b/core/src/main/resources/hudson/tools/CommandInstaller/help_de.html new file mode 100644 index 0000000000000000000000000000000000000000..e7b36028a7c5984d795f7182ee5dd398259a05ae --- /dev/null +++ b/core/src/main/resources/hudson/tools/CommandInstaller/help_de.html @@ -0,0 +1,25 @@ +

      + Startet ein Shell-Kommando Ihrer Wahl, um das Hilfsprogramm zu installieren. + Unter Ubuntu könnte das beispielsweise so aussehen (unter der Annahme, daß + der Hudson-Benutzer in /etc/sudoers gelistet ist): + +

      +
      sudo apt-get --yes install openjdk-6-jdk
      +

      + (In diesem Fall geben Sie /usr/lib/jvm/java-6-openjdk als Stammverzeichnis + des Hilfsprogramms an.) +

      +

      + Weiteres Beispiel: Um Sun JDK 6 für (x86) Linux zu installieren, können Sie + DLJ einsetzen: +

      +
      bin=jdk-6u13-dlj-linux-i586.bin
      +if [ \! -f $bin ]
      +then
      +    wget --no-verbose http://download.java.net/dlj/binaries/$bin
      +    sh $bin --unpack --accept-license
      +fi
      +

      + (In diesem Fall geben Sie jdk1.6.0_13 als Stammverzeichnis + des Hilfsprogramms an.) +

      diff --git a/core/src/main/resources/hudson/tools/CommandInstaller/help_ja.html b/core/src/main/resources/hudson/tools/CommandInstaller/help_ja.html new file mode 100644 index 0000000000000000000000000000000000000000..3dc9ccc699c1beeb8795ec6865932eb4a2ead72b --- /dev/null +++ b/core/src/main/resources/hudson/tools/CommandInstaller/help_ja.html @@ -0,0 +1,21 @@ +

      + é¸æŠžã—ãŸã‚·ã‚§ãƒ«ã‚’èµ·å‹•ã—ã¦ãƒ„ールをインストールã—ã¾ã™ã€‚ + 例ãˆã°ã€Ubuntuã«ãŠã„ã¦Hudsonã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã¯/etc/sudoersã«ç™»éŒ²ã•ã‚Œã¦ã„ã‚‹ã¨ã™ã‚Œã°ã€ +

      +
      sudo apt-get --yes install openjdk-6-jdk
      +

      + (ã“ã®å ´åˆã€ãƒ„ールホームã¨ã—ã¦/usr/lib/jvm/java-6-openjdkを設定ã—ã¾ã™) +

      +

      + 別ã®ä¾‹ã¨ã—ã¦ã€Sun JDK 6 for (x86) Linuxをインストールã™ã‚‹å ´åˆã€ + DLJを使用ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ +

      +
      bin=jdk-6u13-dlj-linux-i586.bin
      +if [ \! -f $bin ]
      +then
      +    wget --no-verbose http://download.java.net/dlj/binaries/$bin
      +    sh $bin --unpack --accept-license
      +fi
      +

      + (ã“ã®å ´åˆã€ãƒ„ールホームã¨ã—ã¦jdk1.6.0_13を設定ã—ã¾ã™) +

      diff --git a/core/src/main/resources/hudson/tools/CommandInstaller/help_zh_CN.html b/core/src/main/resources/hudson/tools/CommandInstaller/help_zh_CN.html new file mode 100644 index 0000000000000000000000000000000000000000..d3033ff4eda44c8bb43fc2fbcac01d107e1373f3 --- /dev/null +++ b/core/src/main/resources/hudson/tools/CommandInstaller/help_zh_CN.html @@ -0,0 +1,21 @@ +

      + è¿è¡ŒShell命令æ¥å®‰è£…你选择的工具.用Ubunte举例, + å‡è®¾Hudson用户在/etc/sudoers内: +

      +
      sudo apt-get --yes install openjdk-6-jdk
      +

      + (这个例å­ä¸­æŒ‡å®š /usr/lib/jvm/java-6-openjdk 作为工具安装目录.) +

      +

      + 其它情况的例å­,在(x86) Linux下安装JDK6, + ä½ å¯ä»¥ä½¿ç”¨DLJ: +

      +
      bin=jdk-6u13-dlj-linux-i586.bin
      +if [ \! -f $bin ]
      +then
      +    wget --no-verbose http://download.java.net/dlj/binaries/$bin
      +    sh $bin --unpack --accept-license
      +fi
      +

      + (这个例å­ä¸­æŒ‡å®š jdk1.6.0_13 作为安装目录DLJ:.) +

      diff --git a/core/src/main/resources/hudson/tools/DownloadFromUrlInstaller/config.jelly b/core/src/main/resources/hudson/tools/DownloadFromUrlInstaller/config.jelly new file mode 100644 index 0000000000000000000000000000000000000000..4b9b4ce393b66f6609be945bc32f5be00a4b8e51 --- /dev/null +++ b/core/src/main/resources/hudson/tools/DownloadFromUrlInstaller/config.jelly @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + diff --git a/core/src/main/resources/hudson/tools/DownloadFromUrlInstaller/config_da.properties b/core/src/main/resources/hudson/tools/DownloadFromUrlInstaller/config_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..9d5b224991a235ad707bbce8cdabe8e6f021a8f1 --- /dev/null +++ b/core/src/main/resources/hudson/tools/DownloadFromUrlInstaller/config_da.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Version=Version diff --git a/core/src/main/resources/hudson/tools/DownloadFromUrlInstaller/config_de.properties b/core/src/main/resources/hudson/tools/DownloadFromUrlInstaller/config_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..0a88b66cca5e752b532038608d215359d278b9cc --- /dev/null +++ b/core/src/main/resources/hudson/tools/DownloadFromUrlInstaller/config_de.properties @@ -0,0 +1 @@ +Version=Version diff --git a/core/src/main/resources/hudson/tools/DownloadFromUrlInstaller/config_es.properties b/core/src/main/resources/hudson/tools/DownloadFromUrlInstaller/config_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..f5318446b89e86197bdbdd5d2e0ef4fcdf35c7a3 --- /dev/null +++ b/core/src/main/resources/hudson/tools/DownloadFromUrlInstaller/config_es.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Version=Versión diff --git a/core/src/main/resources/hudson/tools/DownloadFromUrlInstaller/config_fr.properties b/core/src/main/resources/hudson/tools/DownloadFromUrlInstaller/config_fr.properties new file mode 100644 index 0000000000000000000000000000000000000000..5d57ff13d7476c77a463b18f612907ef902be9dd --- /dev/null +++ b/core/src/main/resources/hudson/tools/DownloadFromUrlInstaller/config_fr.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Version=Version diff --git a/core/src/main/resources/hudson/tools/DownloadFromUrlInstaller/config_ja.properties b/core/src/main/resources/hudson/tools/DownloadFromUrlInstaller/config_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..720aec4acc0575ab33e5550148733c696126a1c2 --- /dev/null +++ b/core/src/main/resources/hudson/tools/DownloadFromUrlInstaller/config_ja.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Version=\u30D0\u30FC\u30B8\u30E7\u30F3 diff --git a/core/src/main/resources/hudson/tools/DownloadFromUrlInstaller/config_nl.properties b/core/src/main/resources/hudson/tools/DownloadFromUrlInstaller/config_nl.properties new file mode 100644 index 0000000000000000000000000000000000000000..dd700a4317c6e23f8d98f8cd63b332d821c6a61e --- /dev/null +++ b/core/src/main/resources/hudson/tools/DownloadFromUrlInstaller/config_nl.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Version=Versie diff --git a/core/src/main/resources/hudson/tools/DownloadFromUrlInstaller/config_pt_BR.properties b/core/src/main/resources/hudson/tools/DownloadFromUrlInstaller/config_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..4c049ca43f3f8daaba8fbc6bb5e8ebe5763e2230 --- /dev/null +++ b/core/src/main/resources/hudson/tools/DownloadFromUrlInstaller/config_pt_BR.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Version= diff --git a/core/src/main/resources/hudson/tools/DownloadFromUrlInstaller/config_ru.properties b/core/src/main/resources/hudson/tools/DownloadFromUrlInstaller/config_ru.properties new file mode 100644 index 0000000000000000000000000000000000000000..52c69dc645147977aad0eaaf8f6da063975b283b --- /dev/null +++ b/core/src/main/resources/hudson/tools/DownloadFromUrlInstaller/config_ru.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Version=\u0412\u0435\u0440\u0441\u0438\u044F diff --git a/core/src/main/resources/hudson/tools/DownloadFromUrlInstaller/config_zh_CN.properties b/core/src/main/resources/hudson/tools/DownloadFromUrlInstaller/config_zh_CN.properties new file mode 100644 index 0000000000000000000000000000000000000000..83bc36fed96bfd5855eb344317683ad58726a440 --- /dev/null +++ b/core/src/main/resources/hudson/tools/DownloadFromUrlInstaller/config_zh_CN.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Version=\u7248\u672c diff --git a/core/src/main/resources/hudson/tools/DownloadFromUrlInstaller/config_zh_TW.properties b/core/src/main/resources/hudson/tools/DownloadFromUrlInstaller/config_zh_TW.properties new file mode 100644 index 0000000000000000000000000000000000000000..fd9cd74da4f7af5a8edb541bb79e175e5bddf715 --- /dev/null +++ b/core/src/main/resources/hudson/tools/DownloadFromUrlInstaller/config_zh_TW.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Version=\u7248\u672C diff --git a/core/src/main/resources/hudson/tools/InstallSourceProperty/config.jelly b/core/src/main/resources/hudson/tools/InstallSourceProperty/config.jelly index 192fafcf1b24f277825a13550f7af927397ffd37..bcb8d1ada17d5c6685d4f83606569bb4804b03d7 100644 --- a/core/src/main/resources/hudson/tools/InstallSourceProperty/config.jelly +++ b/core/src/main/resources/hudson/tools/InstallSourceProperty/config.jelly @@ -24,8 +24,10 @@ THE SOFTWARE. - + - + diff --git a/core/src/main/resources/hudson/tools/InstallSourceProperty/config_da.properties b/core/src/main/resources/hudson/tools/InstallSourceProperty/config_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..e5cea4349da0f1c83a0fca307553cbd83934fb1c --- /dev/null +++ b/core/src/main/resources/hudson/tools/InstallSourceProperty/config_da.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Delete\ Installer=Slet Installer +Add\ Installer=Tilf\u00f8j Installer diff --git a/core/src/main/resources/hudson/tools/InstallSourceProperty/config_de.properties b/core/src/main/resources/hudson/tools/InstallSourceProperty/config_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..1c6dbf61f9a22d64dc6d2d630a994bbd8674471c --- /dev/null +++ b/core/src/main/resources/hudson/tools/InstallSourceProperty/config_de.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Add\ Installer=Installationsverfahren hinzufügen +Delete\ Installer=Installationsverfahren entfernen \ No newline at end of file diff --git a/core/src/main/resources/hudson/tools/InstallSourceProperty/config_es.properties b/core/src/main/resources/hudson/tools/InstallSourceProperty/config_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..496bb934ccc970eb531121a35d5baa6f6a8692ea --- /dev/null +++ b/core/src/main/resources/hudson/tools/InstallSourceProperty/config_es.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Add\ Installer=Añadir un instalador +Delete\ Installer=Borrar un instalador diff --git a/core/src/main/resources/hudson/tools/InstallSourceProperty/config_fr.properties b/core/src/main/resources/hudson/tools/InstallSourceProperty/config_fr.properties new file mode 100644 index 0000000000000000000000000000000000000000..1206aa75b3eb5613b1facdec34d0df5a6d5f601d --- /dev/null +++ b/core/src/main/resources/hudson/tools/InstallSourceProperty/config_fr.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Add\ Installer=Ajouter un installateur +Delete\ Installer=Supprimer un installateur diff --git a/core/src/main/resources/hudson/tools/InstallSourceProperty/config_ja.properties b/core/src/main/resources/hudson/tools/InstallSourceProperty/config_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..577f7ed909579d2d15ef81ad9806205e4cd5c81e --- /dev/null +++ b/core/src/main/resources/hudson/tools/InstallSourceProperty/config_ja.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Add\ Installer=\u30A4\u30F3\u30B9\u30C8\u30FC\u30E9\u306E\u8FFD\u52A0 +Delete\ Installer=\u30A4\u30F3\u30B9\u30C8\u30FC\u30E9\u306E\u524A\u9664 \ No newline at end of file diff --git a/core/src/main/resources/hudson/tools/InstallSourceProperty/config_nl.properties b/core/src/main/resources/hudson/tools/InstallSourceProperty/config_nl.properties new file mode 100644 index 0000000000000000000000000000000000000000..8e7d046a02b975520e81fc0e1938686ade7c40fe --- /dev/null +++ b/core/src/main/resources/hudson/tools/InstallSourceProperty/config_nl.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Add\ Installer=Voeg installer toe +Delete\ Installer=Verwijder installer diff --git a/core/src/main/resources/hudson/tools/InstallSourceProperty/config_pt_BR.properties b/core/src/main/resources/hudson/tools/InstallSourceProperty/config_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..7d37952cdeea60751ff9e8bf5cce92e57ccbe77e --- /dev/null +++ b/core/src/main/resources/hudson/tools/InstallSourceProperty/config_pt_BR.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Delete\ Installer= +Add\ Installer= diff --git a/core/src/main/resources/hudson/tools/InstallSourceProperty/config_ru.properties b/core/src/main/resources/hudson/tools/InstallSourceProperty/config_ru.properties new file mode 100644 index 0000000000000000000000000000000000000000..772e547632ebe416fb0e61b906760fdaa4c886f1 --- /dev/null +++ b/core/src/main/resources/hudson/tools/InstallSourceProperty/config_ru.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Add\ Installer=\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0438\u043D\u0441\u0442\u0430\u043B\u043B\u044F\u0442\u043E\u0440 +Delete\ Installer=\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0438\u043D\u0441\u0442\u0430\u043B\u043B\u044F\u0442\u043E\u0440 diff --git a/core/src/main/resources/hudson/tools/InstallSourceProperty/config_zh_CN.properties b/core/src/main/resources/hudson/tools/InstallSourceProperty/config_zh_CN.properties new file mode 100644 index 0000000000000000000000000000000000000000..b7378656a38f7815a980412e92919418579c6bcc --- /dev/null +++ b/core/src/main/resources/hudson/tools/InstallSourceProperty/config_zh_CN.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Add\ Installer=\u65b0\u589e\u5b89\u88c5 +Delete\ Installer=\u5220\u9664\u5b89\u88c5 \ No newline at end of file diff --git a/core/src/main/resources/hudson/tools/InstallSourceProperty/help_de.html b/core/src/main/resources/hudson/tools/InstallSourceProperty/help_de.html new file mode 100644 index 0000000000000000000000000000000000000000..3fbd2e377e75e43afdc7c1a733378332645e18e0 --- /dev/null +++ b/core/src/main/resources/hudson/tools/InstallSourceProperty/help_de.html @@ -0,0 +1,14 @@ +
      + Verwenden diese Option, wenn Hudson bei Bedarf automatisch Hilfsprogramme + am angegebenen Ort installieren soll. + +

      + Wenn Sie diese Option anwählen, müssen Sie für jedes Hilfsprogramm eines + oder mehrere Installationsverfahren konfigurieren. + +

      + Für ein plattformunabhängiges Hilfsprogramm (z.B. Apache Ant) ist es wenig + sinnvoll, mehrere Installationsverfahren anzugeben. Bei einem plattformabhängigen + Hilfsprogramm hingegen, können Sie so gezielt das Installationsverfahren der + jeweiligen Slave-Plattform anpassen. +

      \ No newline at end of file diff --git a/core/src/main/resources/hudson/tools/InstallSourceProperty/help_ja.html b/core/src/main/resources/hudson/tools/InstallSourceProperty/help_ja.html new file mode 100644 index 0000000000000000000000000000000000000000..e71f07f6f928e9cbb50349a7c5e56b2210a59fe7 --- /dev/null +++ b/core/src/main/resources/hudson/tools/InstallSourceProperty/help_ja.html @@ -0,0 +1,12 @@ +
      + ã“ã®ã‚ªãƒ—ションをé¸æŠžã™ã‚‹ã¨ã€ãƒ„ールを上記ã§è¨­å®šã—ãŸå ´æ‰€ã«å¿…è¦ã«å¿œã˜ã¦ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã—ã¾ã™ã€‚ + +

      + ã“ã®ã‚ªãƒ—ションをé¸æŠžã™ã‚‹ã¨ã€ã“ã®ãƒ„ールã®ä¸€é€£ã®"インストーラ"を設定ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ + å„インストーラã§ã¯ã©ã®ã‚ˆã†ã«ãƒ„ールã®ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã‚’試ã¿ã‚‹ã‹ã‚’定義ã—ã¾ã™ã€‚ + +

      + Antã®ã‚ˆã†ãªãƒ—ラットフォームã«ä¾å­˜ã—ã¦ã„ãªã„ツールã§ã¯ã€è¤‡æ•°ã®ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ©ã‚’設定ã—ã¦ã‚‚ã‚ã¾ã‚Šæ„味ãŒã‚ã‚Šã¾ã›ã‚“。 + ã—ã‹ã—ã€ãƒ—ラットフォームä¾å­˜ã®ãƒ„ールã§ã¯ã€è¤‡æ•°ã®ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ©ã‚’設定ã™ã‚‹ã“ã¨ã§ã€ + スレーブã®ç’°å¢ƒã«å¿œã˜ãŸç•°ãªã‚‹ã‚»ãƒƒãƒˆã‚¢ãƒƒãƒ—スクリプトを実行ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ +

      \ No newline at end of file diff --git a/core/src/main/resources/hudson/tools/InstallSourceProperty/help_zh_CN.html b/core/src/main/resources/hudson/tools/InstallSourceProperty/help_zh_CN.html new file mode 100644 index 0000000000000000000000000000000000000000..6b10fb9831e969d61a2178e8f7104981808c304b --- /dev/null +++ b/core/src/main/resources/hudson/tools/InstallSourceProperty/help_zh_CN.html @@ -0,0 +1,10 @@ +
      + 选择此项会让Hudsonç«‹å³åœ¨ä½ é…置的地方安装工具. + +

      + 如果你选中此项,你将会é…置工具的一系列"安装程åº",æ¯ä¸ªå®‰è£…程åºå®šä¹‰äº†å¦‚何å°è¯•å®‰è£…所需的工具. + +

      + 对于跨平å°å·¥å…·(例如Ant),对å•ä¸ªå·¥å…·é…置多个安装程åºæ˜¯æ²¡æ„义的.但是如果是平å°ä¾èµ–的工具, + 多个安装程åºå…许你在ä¸åŒçš„节点环境下è¿è¡Œå®‰è£…。 +

      \ No newline at end of file diff --git a/core/src/main/resources/hudson/tools/JDKInstaller/config.jelly b/core/src/main/resources/hudson/tools/JDKInstaller/config.jelly index c6dd7f31a04afb82229f6b6059f6e12f31f735d7..2f3c49982a612b1c71afb06641b0b4afcbfb5e9b 100644 --- a/core/src/main/resources/hudson/tools/JDKInstaller/config.jelly +++ b/core/src/main/resources/hudson/tools/JDKInstaller/config.jelly @@ -45,6 +45,6 @@ THE SOFTWARE. - + diff --git a/core/src/main/resources/hudson/tools/JDKInstaller/config_da.properties b/core/src/main/resources/hudson/tools/JDKInstaller/config_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..6249f91df89878472e759d0e81b9e0da2756c42b --- /dev/null +++ b/core/src/main/resources/hudson/tools/JDKInstaller/config_da.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +I\ agree\ to\ the\ Java\ SE\ Development\ Kit\ License\ Agreement=Jeg accepterer Java SE Development Kit Licens Aftalen +Version=Version diff --git a/core/src/main/resources/hudson/tools/JDKInstaller/config_de.properties b/core/src/main/resources/hudson/tools/JDKInstaller/config_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..bbb3853e3ab210d19f09c470841fa7d0d13c1c20 --- /dev/null +++ b/core/src/main/resources/hudson/tools/JDKInstaller/config_de.properties @@ -0,0 +1,3 @@ +Version=Version +I\ agree\ to\ the\ Java\ SE\ Development\ Kit\ License\ Agreement=\ + Ich stimme der Lizenzvereinbarung des Java SE Development Kits zu diff --git a/core/src/main/resources/hudson/tools/JDKInstaller/config_es.properties b/core/src/main/resources/hudson/tools/JDKInstaller/config_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..82f1ac18fabd83a4c68144197353bd6cdd361eab --- /dev/null +++ b/core/src/main/resources/hudson/tools/JDKInstaller/config_es.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Version=Versión +I\ agree\ to\ the\ Java\ SE\ Development\ Kit\ License\ Agreement=Estoy deacuerdo con el acuerdo de licencia de kit de desarrollo de ''Java SE'' diff --git a/core/src/main/resources/hudson/tools/JDKInstaller/config_fr.properties b/core/src/main/resources/hudson/tools/JDKInstaller/config_fr.properties new file mode 100644 index 0000000000000000000000000000000000000000..3ed6d3ea011917e461de91f1e9abf120158a2c5b --- /dev/null +++ b/core/src/main/resources/hudson/tools/JDKInstaller/config_fr.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +I\ agree\ to\ the\ Java\ SE\ Development\ Kit\ License\ Agreement=J''approuve accord de licence Java SE Development Kit +Version=Version diff --git a/core/src/main/resources/hudson/tools/JDKInstaller/config_ja.properties b/core/src/main/resources/hudson/tools/JDKInstaller/config_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..5a2e6b2737c4571340004f90bed87277878826a9 --- /dev/null +++ b/core/src/main/resources/hudson/tools/JDKInstaller/config_ja.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Version=\u30D0\u30FC\u30B8\u30E7\u30F3 +I\ agree\ to\ the\ Java\ SE\ Development\ Kit\ License\ Agreement=\ + Java SE Development Kit\u306E\u4F7F\u7528\u8A31\u8AFE\u306B\u540C\u610F\u3059\u308B + diff --git a/core/src/main/resources/hudson/tools/JDKInstaller/config_nl.properties b/core/src/main/resources/hudson/tools/JDKInstaller/config_nl.properties new file mode 100644 index 0000000000000000000000000000000000000000..b6e78396fc1fa34b7b78dbd575cefa88bb58b4af --- /dev/null +++ b/core/src/main/resources/hudson/tools/JDKInstaller/config_nl.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +I\ agree\ to\ the\ Java\ SE\ Development\ Kit\ License\ Agreement=Ik ga akkoord met de Java SE Development Kit gebruiksovereenkomst +Version=Versie diff --git a/core/src/main/resources/hudson/tools/JDKInstaller/config_pt_BR.properties b/core/src/main/resources/hudson/tools/JDKInstaller/config_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..cd0ca8273726bcde4d76a8aaf26d663fa44032c0 --- /dev/null +++ b/core/src/main/resources/hudson/tools/JDKInstaller/config_pt_BR.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Version= +I\ agree\ to\ the\ Java\ SE\ Development\ Kit\ License\ Agreement= diff --git a/core/src/main/resources/hudson/tools/JDKInstaller/config_ru.properties b/core/src/main/resources/hudson/tools/JDKInstaller/config_ru.properties new file mode 100644 index 0000000000000000000000000000000000000000..28d96ce96e15094a957fae9a255b7871323e8046 --- /dev/null +++ b/core/src/main/resources/hudson/tools/JDKInstaller/config_ru.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +I\ agree\ to\ the\ Java\ SE\ Development\ Kit\ License\ Agreement=\u042F \u0441\u043E\u0433\u043B\u0430\u0441\u0435\u043D \u0441 \u041B\u0438\u0446\u0435\u043D\u0437\u0438\u043E\u043D\u043D\u044B\u043C \u0421\u043E\u0433\u043B\u0430\u0448\u0435\u043D\u0438\u0435\u043C Java SE Development Kit +Version=\u0412\u0435\u0440\u0441\u0438\u044F diff --git a/core/src/main/resources/hudson/tools/JDKInstaller/config_zh_CN.properties b/core/src/main/resources/hudson/tools/JDKInstaller/config_zh_CN.properties new file mode 100644 index 0000000000000000000000000000000000000000..d59a6a750012b90f757530b5e9b85f8408e5b02f --- /dev/null +++ b/core/src/main/resources/hudson/tools/JDKInstaller/config_zh_CN.properties @@ -0,0 +1,3 @@ +Version=\u7248\u672c +I\ agree\ to\ the\ Java\ SE\ Development\ Kit\ License\ Agreement=\ + \u6211\u540c\u610fJava SE Development Kit\u7684\u8bb8\u53ef\u534f\u8bae diff --git a/core/src/main/resources/hudson/tools/JDKInstaller/config_zh_TW.properties b/core/src/main/resources/hudson/tools/JDKInstaller/config_zh_TW.properties new file mode 100644 index 0000000000000000000000000000000000000000..fd9cd74da4f7af5a8edb541bb79e175e5bddf715 --- /dev/null +++ b/core/src/main/resources/hudson/tools/JDKInstaller/config_zh_TW.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Version=\u7248\u672C diff --git a/core/src/main/resources/hudson/tools/Messages.properties b/core/src/main/resources/hudson/tools/Messages.properties index bf37c06d4d866e5ae287167f8df472bd56ca3cb3..37d04da344dabc4f3ec334c11168b646ff599098 100644 --- a/core/src/main/resources/hudson/tools/Messages.properties +++ b/core/src/main/resources/hudson/tools/Messages.properties @@ -20,11 +20,17 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -ToolLocationNodeProperty.DisplayName=Tool Locations +ToolLocationNodeProperty.displayName=Tool Locations CommandInstaller.DescriptorImpl.displayName=Run Command CommandInstaller.no_command=Must provide a command to run. CommandInstaller.no_toolHome=Must provide a tool home directory. +JDKInstaller.FailedToInstallJDK=Failed to install JDK. Exit code={0} +JDKInstaller.UnableToInstallUntilLicenseAccepted=Unable to auto-install JDK until the license is accepted. ZipExtractionInstaller.DescriptorImpl.displayName=Extract *.zip/*.tar.gz ZipExtractionInstaller.bad_connection=Server rejected connection. ZipExtractionInstaller.malformed_url=Malformed URL. ZipExtractionInstaller.could_not_connect=Could not connect to URL. +InstallSourceProperty.DescriptorImpl.displayName=Install automatically +JDKInstaller.DescriptorImpl.displayName=Install from java.sun.com +JDKInstaller.DescriptorImpl.doCheckId=Define JDK ID +JDKInstaller.DescriptorImpl.doCheckAcceptLicense=You must agree to the license to download the JDK. \ No newline at end of file diff --git a/core/src/main/resources/hudson/tools/Messages_da.properties b/core/src/main/resources/hudson/tools/Messages_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..ac8f0e496763e2b6717a33c0ca65ffd5bfbbaaff --- /dev/null +++ b/core/src/main/resources/hudson/tools/Messages_da.properties @@ -0,0 +1,36 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +JDKInstaller.UnableToInstallUntilLicenseAccepted=Kan ikke auto-installere JDK''en f\u00f8r licensen er accepteret. +ZipExtractionInstaller.bad_connection=Server afviste forbindelsen. +ZipExtractionInstaller.DescriptorImpl.displayName=Udtr\u00e6k fra *.zip/*.tar.gz arkiv +CommandInstaller.DescriptorImpl.displayName=K\u00f8r kommando +ZipExtractionInstaller.could_not_connect=Kunne ikke forbinde til URL. +InstallSourceProperty.DescriptorImpl.displayName=Installer automatisk +ToolLocationNodeProperty.displayName=V\u00e6rkt\u00f8jsplaceringer +JDKInstaller.DescriptorImpl.doCheckAcceptLicense=Du skal acceptere licensen for at hente JDK''en. +CommandInstaller.no_command=Der skal angives en kommando der skal k\u00f8res. +ZipExtractionInstaller.malformed_url=Vanskabt URL +CommandInstaller.no_toolHome=Der skal angives et v\u00e6rkt\u00f8jshjemmedirektorie +JDKInstaller.DescriptorImpl.displayName=Installer fra java.sun.com +JDKInstaller.FailedToInstallJDK=Kunne ikke installere JDK. Exit kode={0} +JDKInstaller.DescriptorImpl.doCheckId=Definer JDK ID diff --git a/core/src/main/resources/hudson/tools/Messages_de.properties b/core/src/main/resources/hudson/tools/Messages_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..89eea1db635ae8517ccab109bd692f194a12d0f4 --- /dev/null +++ b/core/src/main/resources/hudson/tools/Messages_de.properties @@ -0,0 +1,36 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Seiji Sogabe, Simon Wiest +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +ToolLocationNodeProperty.displayName=Verzeichnisse von Hilfsprogrammen anpassen +CommandInstaller.DescriptorImpl.displayName=Kommando ausführen +CommandInstaller.no_command=Ein Kommando muss angegeben werden. +CommandInstaller.no_toolHome=Ein Stammverzeichnis muß angegeben werden. +ZipExtractionInstaller.DescriptorImpl.displayName=Entpacke *.zip/*.tar.gz-Archiv +ZipExtractionInstaller.bad_connection=Der Server verweigerte den Verbindungsaufbau +ZipExtractionInstaller.malformed_url=Ungültige URL +ZipExtractionInstaller.could_not_connect=URL konnte nicht kontaktiert werden. +InstallSourceProperty.DescriptorImpl.displayName=Automatisch installieren +JDKInstaller.DescriptorImpl.displayName=Installiere von java.sun.com +JDKInstaller.DescriptorImpl.doCheckId=JDK-ID definieren +JDKInstaller.DescriptorImpl.doCheckAcceptLicense=Sie müssen der Lizenzvereinbarung zustimmen, um das JDK herunterzuladen. +JDKInstaller.FailedToInstallJDK=JDK konnte nicht installiert werden. +JDKInstaller.UnableToInstallUntilLicenseAccepted=JDK kann nicht automatisch installiert werden, solange die Lizenzvereinbarung nicht akzeptiert wurde. diff --git a/core/src/main/resources/hudson/tools/Messages_es.properties b/core/src/main/resources/hudson/tools/Messages_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..89e40bf2863d098b88ea955ae6b1eb85a872b7de --- /dev/null +++ b/core/src/main/resources/hudson/tools/Messages_es.properties @@ -0,0 +1,36 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +ToolLocationNodeProperty.displayName=Localización de herramientas +CommandInstaller.DescriptorImpl.displayName=Ejecutar comando +CommandInstaller.no_command=Debes especificar el comando para ejecutar. +CommandInstaller.no_toolHome=Debes especificar el directorio raiz de la herramienta. +JDKInstaller.FailedToInstallJDK=Fallo al installar el JDK +JDKInstaller.UnableToInstallUntilLicenseAccepted=No se puede instalar el JDK hasta que se acepte la licencia de uso. +ZipExtractionInstaller.DescriptorImpl.displayName=Extraer *.zip/*.tar.gz +ZipExtractionInstaller.bad_connection=El servidor rechazó la conexión +ZipExtractionInstaller.malformed_url=Dirección web incorrecta. +ZipExtractionInstaller.could_not_connect=No se puede conectar a la dirección +InstallSourceProperty.DescriptorImpl.displayName=Instalar automáticamente +JDKInstaller.DescriptorImpl.displayName=Instalar desde java.sun.com +JDKInstaller.DescriptorImpl.doCheckId=Definir un identificador para el JDK +JDKInstaller.DescriptorImpl.doCheckAcceptLicense=Debes aceptar la licencia si quieres descargar el JDK. diff --git a/core/src/main/resources/hudson/tools/Messages_fr.properties b/core/src/main/resources/hudson/tools/Messages_fr.properties index 2e189c386a5f56033a8e49dabc195dacd82aa548..73c551945b1c0e9912d8a22a4b706c6b1cb48d57 100644 --- a/core/src/main/resources/hudson/tools/Messages_fr.properties +++ b/core/src/main/resources/hudson/tools/Messages_fr.properties @@ -20,4 +20,4 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -ToolLocationNodeProperty.DisplayName=Emplacement des outils +ToolLocationNodeProperty.displayName=Emplacement des outils diff --git a/core/src/main/resources/hudson/tools/Messages_ja.properties b/core/src/main/resources/hudson/tools/Messages_ja.properties index 420a71c37a22fc422138d8769135496198f87d74..1e0637796385d4e94ad9629c6cace7c8582a499f 100644 --- a/core/src/main/resources/hudson/tools/Messages_ja.properties +++ b/core/src/main/resources/hudson/tools/Messages_ja.properties @@ -1,6 +1,6 @@ # The MIT License # -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Seiji Sogabe +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Seiji Sogabe # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -20,4 +20,17 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -ToolLocationNodeProperty.DisplayName=\u30C4\u30FC\u30EB\u30D1\u30B9 +ToolLocationNodeProperty.displayName=\u30c4\u30fc\u30eb\u30d1\u30b9 +CommandInstaller.DescriptorImpl.displayName=\u30b3\u30de\u30f3\u30c9\u5b9f\u884c +CommandInstaller.no_command=\u5b9f\u884c\u3059\u308b\u30b3\u30de\u30f3\u30c9\u3092\u6307\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044\u3002 +CommandInstaller.no_toolHome=\u30c4\u30fc\u30eb\u306e\u30db\u30fc\u30e0\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092\u6307\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044\u3002 +JDKInstaller.FailedToInstallJDK=JDK\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002Exit code={0}s +JDKInstaller.UnableToInstallUntilLicenseAccepted=\u4f7f\u7528\u8a31\u8afe\u306b\u540c\u610f\u3057\u306a\u3044\u3068\u81ea\u52d5\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3067\u304d\u307e\u305b\u3093\u3002 +ZipExtractionInstaller.DescriptorImpl.displayName=*.zip/*.tar.gz\u5c55\u958b +ZipExtractionInstaller.bad_connection=\u30b5\u30fc\u30d0\u304c\u63a5\u7d9a\u3092\u62d2\u5426\u3057\u307e\u3057\u305f\u3002 +ZipExtractionInstaller.malformed_url=URL\u306e\u5f62\u5f0f\u304c\u8aa4\u3063\u3066\u3044\u307e\u3059\u3002 +ZipExtractionInstaller.could_not_connect=URL\u306b\u63a5\u7d9a\u3067\u304d\u307e\u305b\u3093\u3002 +InstallSourceProperty.DescriptorImpl.displayName=\u81ea\u52d5\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb +JDKInstaller.DescriptorImpl.displayName=java.sun.com\u304b\u3089\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb +JDKInstaller.DescriptorImpl.doCheckId=JDK\u306eID\u3092\u5b9a\u7fa9\u3057\u3066\u304f\u3060\u3055\u3044\u3002 +JDKInstaller.DescriptorImpl.doCheckAcceptLicense=JDK\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3059\u308b\u306b\u306f\u4f7f\u7528\u8a31\u8afe\u306b\u540c\u610f\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002 diff --git a/core/src/main/resources/hudson/tools/Messages_pt_BR.properties b/core/src/main/resources/hudson/tools/Messages_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..8f62d1246ad60011c8551bb15b41f143ed410885 --- /dev/null +++ b/core/src/main/resources/hudson/tools/Messages_pt_BR.properties @@ -0,0 +1,50 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +# Extract *.zip/*.tar.gz +ZipExtractionInstaller.DescriptorImpl.displayName= +# Could not connect to URL. +ZipExtractionInstaller.could_not_connect= +# Tool Locations +ToolLocationNodeProperty.displayName= +# Must provide a command to run. +CommandInstaller.no_command= +# Install from java.sun.com +JDKInstaller.DescriptorImpl.displayName= +# Failed to install JDK +JDKInstaller.FailedToInstallJDK= +# Define JDK ID +JDKInstaller.DescriptorImpl.doCheckId= +# Unable to auto-install JDK until the license is accepted. +JDKInstaller.UnableToInstallUntilLicenseAccepted= +# Server rejected connection. +ZipExtractionInstaller.bad_connection= +# Run Command +CommandInstaller.DescriptorImpl.displayName= +# Install automatically +InstallSourceProperty.DescriptorImpl.displayName= +# You must agree to the license to download the JDK. +JDKInstaller.DescriptorImpl.doCheckAcceptLicense= +# Malformed URL. +ZipExtractionInstaller.malformed_url= +# Must provide a tool home directory. +CommandInstaller.no_toolHome= diff --git a/core/src/main/resources/hudson/tools/Messages_zh_CN.properties b/core/src/main/resources/hudson/tools/Messages_zh_CN.properties new file mode 100644 index 0000000000000000000000000000000000000000..2bec02c1b1036826d1512ee8b5890374e2d3f6ec --- /dev/null +++ b/core/src/main/resources/hudson/tools/Messages_zh_CN.properties @@ -0,0 +1,36 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +ToolLocationNodeProperty.displayName=Tool Locations +CommandInstaller.DescriptorImpl.displayName=\u8fd0\u884c\u547d\u4ee4 +CommandInstaller.no_command=\u5fc5\u987b\u63d0\u4f9b\u4e00\u4e2a\u8fd0\u884c\u547d\u4ee4. +CommandInstaller.no_toolHome=\u5fc5\u987b\u63d0\u4f9b\u4e00\u4e2a\u5de5\u5177\u6839\u76ee\u5f55. +JDKInstaller.FailedToInstallJDK=\u5b89\u88c5JDK\u5931\u8d25. \u9519\u8bef\u4ee3\u7801={0} +JDKInstaller.UnableToInstallUntilLicenseAccepted=\u6ca1\u6709\u63a5\u53d7\u8bb8\u53ef\u4e4b\u524d\u4e0d\u80fd\u591f\u81ea\u52a8\u5b89\u88c5. +ZipExtractionInstaller.DescriptorImpl.displayName=\u89e3\u538b *.zip/*.tar.gz +ZipExtractionInstaller.bad_connection=\u670d\u52a1\u5668\u62d2\u7edd\u94fe\u63a5. +ZipExtractionInstaller.malformed_url=\u9519\u8bef\u7684URL. +ZipExtractionInstaller.could_not_connect=\u4e0d\u80fd\u94fe\u63a5URL. +InstallSourceProperty.DescriptorImpl.displayName=\u81ea\u52a8\u5b89\u88c5 +JDKInstaller.DescriptorImpl.displayName=\u4ece java.sun.com\u5b89\u88c5 +JDKInstaller.DescriptorImpl.doCheckId=\u5b9a\u4e49JDK ID +JDKInstaller.DescriptorImpl.doCheckAcceptLicense=\u4f60\u5fc5\u987b\u63a5\u53d7\u8bb8\u53ef\u624d\u80fd\u4e0b\u8f7dJDK. \ No newline at end of file diff --git a/core/src/main/resources/hudson/tools/ToolInstallation/config.jelly b/core/src/main/resources/hudson/tools/ToolInstallation/config.jelly new file mode 100644 index 0000000000000000000000000000000000000000..5bc68fd965931c6dbde733308b5d59d42bb410de --- /dev/null +++ b/core/src/main/resources/hudson/tools/ToolInstallation/config.jelly @@ -0,0 +1,36 @@ + + + + Per ToolInstallation configuration page added to the system configuration. + Often this is the only view that you need to override in ToolInstallation. + If you need to change the view more drastically, override global.jelly. + + + + + + + + diff --git a/core/src/main/resources/hudson/tools/ToolInstallation/config_da.properties b/core/src/main/resources/hudson/tools/ToolInstallation/config_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..815660ea2e435129ace04e3d160b579e0d3b6d5f --- /dev/null +++ b/core/src/main/resources/hudson/tools/ToolInstallation/config_da.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Installation\ directory=Installationsdirektorie +Name=Navn diff --git a/core/src/main/resources/hudson/tools/ToolInstallation/config_de.properties b/core/src/main/resources/hudson/tools/ToolInstallation/config_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..3dbad73a860f0627076a64ba3b1ae29b9141b222 --- /dev/null +++ b/core/src/main/resources/hudson/tools/ToolInstallation/config_de.properties @@ -0,0 +1,2 @@ +Name=Name +Installation\ directory=Installationsverzeichnis diff --git a/core/src/main/resources/hudson/tools/ToolInstallation/config_es.properties b/core/src/main/resources/hudson/tools/ToolInstallation/config_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..bbace30443aed20ce3138ae970630706112c85f6 --- /dev/null +++ b/core/src/main/resources/hudson/tools/ToolInstallation/config_es.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Name=Nombre +Installation\ directory=Directorio de instalación diff --git a/core/src/main/resources/hudson/tools/ToolInstallation/config_ja.properties b/core/src/main/resources/hudson/tools/ToolInstallation/config_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..5206044435b0dbd287bea203576cfacbfca8eb9e --- /dev/null +++ b/core/src/main/resources/hudson/tools/ToolInstallation/config_ja.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Name=\u540D\u524D +Installation\ directory=\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA diff --git a/core/src/main/resources/hudson/tools/ToolInstallation/config_pt_BR.properties b/core/src/main/resources/hudson/tools/ToolInstallation/config_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..7b6af84e158ff79f1c5b85b553d4a1444125798d --- /dev/null +++ b/core/src/main/resources/hudson/tools/ToolInstallation/config_pt_BR.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Installation\ directory= +Name= diff --git a/core/src/main/resources/hudson/tools/ToolInstallation/config_zh_CN.properties b/core/src/main/resources/hudson/tools/ToolInstallation/config_zh_CN.properties new file mode 100644 index 0000000000000000000000000000000000000000..466780bb3b01b570f9dcbcf1b4de363a7348e63e --- /dev/null +++ b/core/src/main/resources/hudson/tools/ToolInstallation/config_zh_CN.properties @@ -0,0 +1,2 @@ +Name=\u522b\u540d +Installation\ directory=\u5b89\u88c5\u76ee\u5f55 diff --git a/core/src/main/resources/hudson/tools/ToolInstallation/global.jelly b/core/src/main/resources/hudson/tools/ToolInstallation/global.jelly new file mode 100644 index 0000000000000000000000000000000000000000..de99bab5dd3b6210bf812ac2862d31f0507e8155 --- /dev/null +++ b/core/src/main/resources/hudson/tools/ToolInstallation/global.jelly @@ -0,0 +1,42 @@ + + + + + + + + + + +
      + +
      +
      +
      +
      +
      +
      +
      diff --git a/core/src/main/resources/hudson/tools/ToolInstallation/global.properties b/core/src/main/resources/hudson/tools/ToolInstallation/global.properties new file mode 100644 index 0000000000000000000000000000000000000000..2e1d5193fe08cdd00354bce727295a39cf4dad19 --- /dev/null +++ b/core/src/main/resources/hudson/tools/ToolInstallation/global.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +title={0} installations +description=List of {0} installations on this system +label.add=Add {0} +label.delete=Delete {0} diff --git a/core/src/main/resources/hudson/tools/ToolInstallation/global_da.properties b/core/src/main/resources/hudson/tools/ToolInstallation/global_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..36ead729e13ce329e9a4e050d485e94b865cb4a6 --- /dev/null +++ b/core/src/main/resources/hudson/tools/ToolInstallation/global_da.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +label.add=Tilf\u00f8j {0} +description=Liste af {0} installationer p\u00e5 dette system +label.delete=Slet {0} +title={0} installationer diff --git a/core/src/main/resources/hudson/tools/ToolInstallation/global_de.properties b/core/src/main/resources/hudson/tools/ToolInstallation/global_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..8efc8c052865661ec638620c3b7756d9ffbcea4a --- /dev/null +++ b/core/src/main/resources/hudson/tools/ToolInstallation/global_de.properties @@ -0,0 +1,4 @@ +title={0} Installationen +description=Liste der {0} Installationen auf diesem System +label.add={0} hinzufügen +label.delete={0} entfernen diff --git a/core/src/main/resources/hudson/tools/ToolInstallation/global_es.properties b/core/src/main/resources/hudson/tools/ToolInstallation/global_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..a50f26435a2290b5ee85e3ff9ac380fa8376c571 --- /dev/null +++ b/core/src/main/resources/hudson/tools/ToolInstallation/global_es.properties @@ -0,0 +1,27 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +title=instalaciones de {0} +description=Listado de instalaciones de {0} en este sistema +label.add=Añadir {0} +label.delete=Borrar {0} + diff --git a/core/src/main/resources/hudson/tools/ToolInstallation/global_fr.properties b/core/src/main/resources/hudson/tools/ToolInstallation/global_fr.properties new file mode 100644 index 0000000000000000000000000000000000000000..54578f0acef90e74dfd77a2aaa518b3d51aa1e4a --- /dev/null +++ b/core/src/main/resources/hudson/tools/ToolInstallation/global_fr.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +description=Nombre d''installation {0} sur ce syst\u00E8me +label.add=Ajouter {0} +label.delete=Supprimer {0} +title={0} installations diff --git a/core/src/main/resources/hudson/tools/ToolInstallation/global_ja.properties b/core/src/main/resources/hudson/tools/ToolInstallation/global_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..df649ff071a809ba9a9d32c42bcb72bd73a003e9 --- /dev/null +++ b/core/src/main/resources/hudson/tools/ToolInstallation/global_ja.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +title=\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u6E08\u307F{0} +description=Hudson\u3067\u5229\u7528\u3059\u308B\u3001\u3053\u306E\u30B7\u30B9\u30C6\u30E0\u306B\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3055\u308C\u305F{0}\u306E\u4E00\u89A7\u3067\u3059\u3002 +label.add={0}\u8FFD\u52A0 +label.delete={0}\u524A\u9664 \ No newline at end of file diff --git a/core/src/main/resources/hudson/tools/ToolInstallation/global_nl.properties b/core/src/main/resources/hudson/tools/ToolInstallation/global_nl.properties new file mode 100644 index 0000000000000000000000000000000000000000..193093656fea76ec9dc84081a82069c853cdd4a1 --- /dev/null +++ b/core/src/main/resources/hudson/tools/ToolInstallation/global_nl.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +description=Lijst van {0} installaties op dit systeem +label.add=Voeg {0} toe +label.delete=Verwijder {0} +title={0} installaties diff --git a/core/src/main/resources/hudson/tools/ToolInstallation/global_pt_BR.properties b/core/src/main/resources/hudson/tools/ToolInstallation/global_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..0c8ef8a941253adb8eef6a476cf47221ebf435c2 --- /dev/null +++ b/core/src/main/resources/hudson/tools/ToolInstallation/global_pt_BR.properties @@ -0,0 +1,30 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +# List of {0} installations on this system +description= +# Delete {0} +label.delete= +# {0} installations +title= +# Add {0} +label.add= diff --git a/core/src/main/resources/hudson/tools/ToolInstallation/global_ru.properties b/core/src/main/resources/hudson/tools/ToolInstallation/global_ru.properties new file mode 100644 index 0000000000000000000000000000000000000000..f33100498ecffc0619cd0a96663ea8e3b72ca74a --- /dev/null +++ b/core/src/main/resources/hudson/tools/ToolInstallation/global_ru.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +description=\u0421\u043F\u0438\u0441\u043E\u043A {0} \u0438\u043D\u0441\u0442\u0430\u043B\u043B\u044F\u0446\u0438\u0439 \u0432 \u044D\u0442\u043E\u0439 \u0441\u0438\u0441\u0442\u0435\u043C\u0435 +label.add=\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C {0} +label.delete=\u0423\u0434\u0430\u043B\u0438\u0442\u044C {0} +title={0} \u0438\u043D\u0441\u0442\u0430\u043B\u043B\u044F\u0446\u0438\u0439 (\u0438\u044F) diff --git a/core/src/main/resources/hudson/tools/ToolInstallation/global_zh_CN.properties b/core/src/main/resources/hudson/tools/ToolInstallation/global_zh_CN.properties new file mode 100644 index 0000000000000000000000000000000000000000..7e859c14a170b70c04da51fd54f38b62cfe2d55c --- /dev/null +++ b/core/src/main/resources/hudson/tools/ToolInstallation/global_zh_CN.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +title={0} \u5b89\u88c5 +description=\u7cfb\u7edf\u4e0b {0} \u5b89\u88c5\u5217\u8868 +label.add=\u65b0\u589e {0} +label.delete=\u5220\u9664 {0} diff --git a/core/src/main/resources/hudson/tools/ToolLocationNodeProperty/config.jelly b/core/src/main/resources/hudson/tools/ToolLocationNodeProperty/config.jelly index 4b1fc0842ef09d5cf41acc8ffdb43a5330801dac..f5d80385126732f90edad5f18e0e81e3ea4a6b35 100644 --- a/core/src/main/resources/hudson/tools/ToolLocationNodeProperty/config.jelly +++ b/core/src/main/resources/hudson/tools/ToolLocationNodeProperty/config.jelly @@ -1,51 +1,50 @@ - - - - - - - - - - - - -
      - -
      -
      -
      -
      -
      - -
      \ No newline at end of file + + + + + + + + + + + + +
      + +
      +
      +
      +
      +
      + +
      diff --git a/core/src/main/resources/hudson/tools/ToolLocationNodeProperty/config_da.properties b/core/src/main/resources/hudson/tools/ToolLocationNodeProperty/config_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..7f3e67f5e6f069b5a7b2509f59a2607156b5f2a2 --- /dev/null +++ b/core/src/main/resources/hudson/tools/ToolLocationNodeProperty/config_da.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Home=Hjem +List\ of\ tool\ locations=Liste af v\u00e6rkt\u00f8jslokationer +Name=Navn diff --git a/core/src/main/resources/hudson/tools/ToolLocationNodeProperty/config_de.properties b/core/src/main/resources/hudson/tools/ToolLocationNodeProperty/config_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..2c869f15698f916fe7376cd53a3192c534ef1585 --- /dev/null +++ b/core/src/main/resources/hudson/tools/ToolLocationNodeProperty/config_de.properties @@ -0,0 +1,3 @@ +List\ of\ tool\ locations=Verzeichnisse der Hilfsprogramme +Name=Name +Home=Stammverzeichnis diff --git a/core/src/main/resources/hudson/tools/ToolLocationNodeProperty/config_es.properties b/core/src/main/resources/hudson/tools/ToolLocationNodeProperty/config_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..ff13253143e8e74ab182c424d57da5f94e032fc1 --- /dev/null +++ b/core/src/main/resources/hudson/tools/ToolLocationNodeProperty/config_es.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +List\ of\ tool\ locations=Listado de utiliades +Name=Nombre +Home=Directorio diff --git a/core/src/main/resources/hudson/tools/ToolLocationNodeProperty/config_pt_BR.properties b/core/src/main/resources/hudson/tools/ToolLocationNodeProperty/config_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..b95aaffb336a405128fba2e2e3f86243bb5e9f48 --- /dev/null +++ b/core/src/main/resources/hudson/tools/ToolLocationNodeProperty/config_pt_BR.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Home= +List\ of\ tool\ locations= +Name= diff --git a/core/src/main/resources/hudson/tools/ToolLocationNodeProperty/config_sv_SE.properties b/core/src/main/resources/hudson/tools/ToolLocationNodeProperty/config_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..da1085a202464da8055f2b2ba1ffd7f21215bfa5 --- /dev/null +++ b/core/src/main/resources/hudson/tools/ToolLocationNodeProperty/config_sv_SE.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Home=Hemkatalog +List\ of\ tool\ locations=Lista p\u00E5 verktygsplats +Name=Namn diff --git a/core/src/main/resources/hudson/tools/ToolLocationNodeProperty/config_zh_CN.properties b/core/src/main/resources/hudson/tools/ToolLocationNodeProperty/config_zh_CN.properties new file mode 100644 index 0000000000000000000000000000000000000000..32161e46fceb6c2023a31c424f2471cf52d2b348 --- /dev/null +++ b/core/src/main/resources/hudson/tools/ToolLocationNodeProperty/config_zh_CN.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Seiji Sogabe, Eric Lefevre-Ardant +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +List\ of\ tool\ locations=\u672c\u5730\u5de5\u5177\u5217\u8868 +Name=\u522b\u540d +Home=\u76ee\u5f55 diff --git a/core/src/main/resources/hudson/tools/ZipExtractionInstaller/config_da.properties b/core/src/main/resources/hudson/tools/ZipExtractionInstaller/config_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..4aa20ff726bd58831da6675d791438e0c684a8fe --- /dev/null +++ b/core/src/main/resources/hudson/tools/ZipExtractionInstaller/config_da.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Subdirectory\ of\ extracted\ archive=Underdirektorie af udpakket arkiv +Download\ URL\ for\ binary\ archive=Hentnings URL for bin\u00e6rt arkiv diff --git a/core/src/main/resources/hudson/tools/ZipExtractionInstaller/config_de.properties b/core/src/main/resources/hudson/tools/ZipExtractionInstaller/config_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..66f1e70da699b494af1f1f5749caecaba97a8993 --- /dev/null +++ b/core/src/main/resources/hudson/tools/ZipExtractionInstaller/config_de.properties @@ -0,0 +1,2 @@ +Download\ URL\ for\ binary\ archive=Download-URL des Archivs (Binärdatei) +Subdirectory\ of\ extracted\ archive=Unterverzeichnis des entpackten Archivs diff --git a/core/src/main/resources/hudson/tools/ZipExtractionInstaller/config_es.properties b/core/src/main/resources/hudson/tools/ZipExtractionInstaller/config_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..1d009a86552096c816c3c34cbbe02e737c8165fb --- /dev/null +++ b/core/src/main/resources/hudson/tools/ZipExtractionInstaller/config_es.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Download\ URL\ for\ binary\ archive=Direccion web del archivo ejecutable +Subdirectory\ of\ extracted\ archive=Directorio donde extraer el archivo diff --git a/core/src/main/resources/hudson/tools/ZipExtractionInstaller/config_fr.properties b/core/src/main/resources/hudson/tools/ZipExtractionInstaller/config_fr.properties new file mode 100644 index 0000000000000000000000000000000000000000..59fb115f1785a196b3a14f8abac6c73cc8a1366a --- /dev/null +++ b/core/src/main/resources/hudson/tools/ZipExtractionInstaller/config_fr.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Download\ URL\ for\ binary\ archive=URL de l''archive du binaire +Subdirectory\ of\ extracted\ archive=Sous-dossier d''extraction de l''archive diff --git a/core/src/main/resources/hudson/tools/ZipExtractionInstaller/config_ja.properties b/core/src/main/resources/hudson/tools/ZipExtractionInstaller/config_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..93be0d68a36931109a604400d1e1230407c2de40 --- /dev/null +++ b/core/src/main/resources/hudson/tools/ZipExtractionInstaller/config_ja.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Download\ URL\ for\ binary\ archive=\u30A2\u30FC\u30AB\u30A4\u30D6\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9URL +Subdirectory\ of\ extracted\ archive=\u30A2\u30FC\u30AB\u30A4\u30D6\u3092\u5C55\u958B\u3059\u308B\u30B5\u30D6\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA diff --git a/core/src/main/resources/hudson/tools/ZipExtractionInstaller/config_nl.properties b/core/src/main/resources/hudson/tools/ZipExtractionInstaller/config_nl.properties new file mode 100644 index 0000000000000000000000000000000000000000..73d983584aec33527db53eeedd4a1402f222c5ca --- /dev/null +++ b/core/src/main/resources/hudson/tools/ZipExtractionInstaller/config_nl.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Download\ URL\ for\ binary\ archive=Download-URL voor binair archief +Subdirectory\ of\ extracted\ archive=Subdirectory van uitgepakt archief diff --git a/core/src/main/resources/hudson/tools/ZipExtractionInstaller/config_pt_BR.properties b/core/src/main/resources/hudson/tools/ZipExtractionInstaller/config_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..22719334f5bca03749e8e40c1c815e336406584b --- /dev/null +++ b/core/src/main/resources/hudson/tools/ZipExtractionInstaller/config_pt_BR.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Download\ URL\ for\ binary\ archive= +Subdirectory\ of\ extracted\ archive= diff --git a/core/src/main/resources/hudson/tools/ZipExtractionInstaller/config_ru.properties b/core/src/main/resources/hudson/tools/ZipExtractionInstaller/config_ru.properties new file mode 100644 index 0000000000000000000000000000000000000000..1b399cb0973be461feac6d81b6eb1e91feef3154 --- /dev/null +++ b/core/src/main/resources/hudson/tools/ZipExtractionInstaller/config_ru.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Download\ URL\ for\ binary\ archive=URL \u0434\u043B\u044F \u0441\u043A\u0430\u0447\u0438\u0432\u0430\u043D\u0438\u044F \u0431\u0438\u043D\u0430\u0440\u043D\u043E\u0433\u043E \u0430\u0440\u0445\u0438\u0432\u0430 +Subdirectory\ of\ extracted\ archive=\u041F\u043E\u0434\u043A\u0430\u0442\u0430\u043B\u043E\u0433 \u0440\u0430\u0441\u043F\u0430\u043A\u043E\u0432\u0430\u043D\u043D\u043E\u0433\u043E \u0430\u0440\u0445\u0438\u0432\u0430 diff --git a/core/src/main/resources/hudson/tools/ZipExtractionInstaller/config_zh_CN.properties b/core/src/main/resources/hudson/tools/ZipExtractionInstaller/config_zh_CN.properties new file mode 100644 index 0000000000000000000000000000000000000000..a0f06c72a3350e14274e8bc8190f110146b5fca1 --- /dev/null +++ b/core/src/main/resources/hudson/tools/ZipExtractionInstaller/config_zh_CN.properties @@ -0,0 +1,2 @@ +Download\ URL\ for\ binary\ archive=\u538b\u7f29\u5305(\u4e8c\u8fdb\u5236)\u7684\u4e0b\u8f7dURL +Subdirectory\ of\ extracted\ archive=\u89e3\u538b\u76ee\u5f55 diff --git a/core/src/main/resources/hudson/tools/ZipExtractionInstaller/help-subdir_de.html b/core/src/main/resources/hudson/tools/ZipExtractionInstaller/help-subdir_de.html new file mode 100644 index 0000000000000000000000000000000000000000..27960d4f64013b9e05a0067949657dbdf0faa73a --- /dev/null +++ b/core/src/main/resources/hudson/tools/ZipExtractionInstaller/help-subdir_de.html @@ -0,0 +1,4 @@ +
      + Optionale Angabe eines Unterverzeichnisses des heruntergeladenen und entpackten Archives, das + als Stammverzeichnis des Hilfsprogrammes dient. +
      diff --git a/core/src/main/resources/hudson/tools/ZipExtractionInstaller/help-subdir_ja.html b/core/src/main/resources/hudson/tools/ZipExtractionInstaller/help-subdir_ja.html new file mode 100644 index 0000000000000000000000000000000000000000..78cbdc1740a91712e0e7f55065a4095180f9b1b7 --- /dev/null +++ b/core/src/main/resources/hudson/tools/ZipExtractionInstaller/help-subdir_ja.html @@ -0,0 +1,3 @@ +
      + ツールã®ãƒ›ãƒ¼ãƒ ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã¨ã—ã¦ä½¿ç”¨ã™ã‚‹ã€ã‚¢ãƒ¼ã‚«ã‚¤ãƒ–をダウンロードã—ã¦å±•é–‹ã™ã‚‹ã‚µãƒ–ディレクトリã§ã™(オプション)。 +
      diff --git a/core/src/main/resources/hudson/tools/ZipExtractionInstaller/help-subdir_zh_CN.html b/core/src/main/resources/hudson/tools/ZipExtractionInstaller/help-subdir_zh_CN.html new file mode 100644 index 0000000000000000000000000000000000000000..078d18a7e51b843844159b2558cac40f421b56fe --- /dev/null +++ b/core/src/main/resources/hudson/tools/ZipExtractionInstaller/help-subdir_zh_CN.html @@ -0,0 +1,3 @@ +
      + å¯é€‰å­ç›®å½•,用æ¥æ”¾ç½®ä¸‹è½½æ–‡ä»¶å’Œè§£åŽ‹æ–‡ä»¶çš„目录。 +
      diff --git a/core/src/main/resources/hudson/tools/ZipExtractionInstaller/help-url_de.html b/core/src/main/resources/hudson/tools/ZipExtractionInstaller/help-url_de.html new file mode 100644 index 0000000000000000000000000000000000000000..e9080cf3385c704752fb0f0b3eaf4ea18b291af2 --- /dev/null +++ b/core/src/main/resources/hudson/tools/ZipExtractionInstaller/help-url_de.html @@ -0,0 +1,12 @@ +
      + URL, von der das Hilfsprogramm als binäres Archiv heruntergeladen werden kann. + Es werden ZIP- und GZIP-komprimierte TAR-Archive unterstützt. + +

      + Der Zeitstempel des Archivs auf dem Server wird mit der lokal installierten Version + (soweit vorhanden) verglichen, so daß Updates einfach veröffentlicht werden können. + +

      + Die URL muß vom Hudson-Master aus erreichbar sein, nicht aber von jedem einzelnen + Slave-Knoten. +

      diff --git a/core/src/main/resources/hudson/tools/ZipExtractionInstaller/help-url_ja.html b/core/src/main/resources/hudson/tools/ZipExtractionInstaller/help-url_ja.html new file mode 100644 index 0000000000000000000000000000000000000000..c5f96b2e0954d3d1ca984ad4340cf8da11477489 --- /dev/null +++ b/core/src/main/resources/hudson/tools/ZipExtractionInstaller/help-url_ja.html @@ -0,0 +1,7 @@ +
      + ãƒã‚¤ãƒŠãƒªå½¢å¼ã§ãƒ„ールをダウンロードã™ã‚‹URLã§ã™ã€‚ + ZIPã‹Gzipã§åœ§ç¸®ã—ãŸTARファイルã®ã„ãšã‚Œã‹ã®å½¢å¼ã§ã‚ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚ + サーãƒãƒ¼ã«ã‚るアーカイブã®ã‚¿ã‚¤ãƒ ã‚¹ã‚¿ãƒ³ãƒ—ã¨ã€(ã‚‚ã—ã‚ã‚Œã°)ローカルã®ãƒ•ã‚¡ã‚¤ãƒ«ã®ã‚¿ã‚¤ãƒ ã‚¹ã‚¿ãƒ³ãƒ—を比較ã™ã‚‹ã®ã§ã€ + 容易ã«ã‚¢ãƒƒãƒ—デートをé…布ã§ãã¾ã™ã€‚ + URLã¯ãƒžã‚¹ã‚¿ãƒ¼ã‹ã‚‰ã‚¢ã‚¯ã‚»ã‚¹å¯èƒ½ã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“ãŒã€ã‚¹ãƒ¬ãƒ¼ãƒ–ã‹ã‚‰ã¯ã‚¢ã‚¯ã‚»ã‚¹å¯èƒ½ã§ã‚ã‚‹å¿…è¦ã¯ã‚ã‚Šã¾ã›ã‚“。 +
      diff --git a/core/src/main/resources/hudson/tools/ZipExtractionInstaller/help-url_zh_CN.html b/core/src/main/resources/hudson/tools/ZipExtractionInstaller/help-url_zh_CN.html new file mode 100644 index 0000000000000000000000000000000000000000..99f244591464e7af254b9e7c55a9b1f3403cd9d0 --- /dev/null +++ b/core/src/main/resources/hudson/tools/ZipExtractionInstaller/help-url_zh_CN.html @@ -0,0 +1,5 @@ +
      + 从URL下载的工具包(二进制)应该是一个ZIP文件或者GZip压缩过的TAR文件. + æœåŠ¡å™¨ä¸Šçš„时间戳会比对本地版本(如果有的è¯),所以你å¯ä»¥è½»æ¾çš„å‘布å‡çº§. + URL必须从Hudson的主节点访问,但是ä¸éœ€è¦ä»Žå­èŠ‚点访问. +
      diff --git a/core/src/main/resources/hudson/tools/ZipExtractionInstaller/help_de.html b/core/src/main/resources/hudson/tools/ZipExtractionInstaller/help_de.html new file mode 100644 index 0000000000000000000000000000000000000000..dc36f40101e5662d43d6e14435938b83634824ed --- /dev/null +++ b/core/src/main/resources/hudson/tools/ZipExtractionInstaller/help_de.html @@ -0,0 +1,7 @@ +
      + Lädt ein Hilfsprogramm als gepacktes Archiv herunter und installiert es innerhalb + des Hudson-Arbeitsverzeichnisses. + Beispiel: http://apache.promopeddler.com/ant/binaries/apache-ant-1.7.1-bin.zip + (oder ein Spiegelserver, der näher zu Ihrem Hudson-Server liegt) mit der Angabe eines + Unterverzeichnisses von apache-ant-1.7.1. +
      diff --git a/core/src/main/resources/hudson/tools/ZipExtractionInstaller/help_ja.html b/core/src/main/resources/hudson/tools/ZipExtractionInstaller/help_ja.html new file mode 100644 index 0000000000000000000000000000000000000000..e23ba62f9eb2b92d5657a7b4993d7cc29802cd9e --- /dev/null +++ b/core/src/main/resources/hudson/tools/ZipExtractionInstaller/help_ja.html @@ -0,0 +1,6 @@ +
      + ツールã®ã‚¢ãƒ¼ã‚«ã‚¤ãƒ–をダウンロードã—ã¦ã€Hudsonã®ãƒ¯ãƒ¼ã‚¯ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã«ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã—ã¾ã™ã€‚ + 例ãˆã°: http://apache.promopeddler.com/ant/binaries/apache-ant-1.7.1-bin.zip + (ã‚‚ã—ãã¯ã€ã‚ãªãŸã®ã‚µãƒ¼ãƒãƒ¼ã«ä¸€ç•ªè¿‘ã„ミラーサイト) + ãã—ã¦ã€ã‚µãƒ–ディレクトリã«apache-ant-1.7.1を指定ã—ã¾ã™ã€‚ +
      diff --git a/core/src/main/resources/hudson/tools/ZipExtractionInstaller/help_zh_CN.html b/core/src/main/resources/hudson/tools/ZipExtractionInstaller/help_zh_CN.html new file mode 100644 index 0000000000000000000000000000000000000000..428702e38f7e3350f5d00471bd1978bc411c58eb --- /dev/null +++ b/core/src/main/resources/hudson/tools/ZipExtractionInstaller/help_zh_CN.html @@ -0,0 +1,6 @@ +
      + 下载工具包并安装在Hudson下的工作目录中. + 例如:http://apache.promopeddler.com/ant/binaries/apache-ant-1.7.1-bin.zip + (选择离你最近的镜åƒæœåŠ¡å™¨) + 并指定一个å­ç›®å½•apache-ant-1.7.1. +
      diff --git a/core/src/main/resources/hudson/tools/label_da.properties b/core/src/main/resources/hudson/tools/label_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..91d64ba074352eaf6a89edba6f36b1f3546397fe --- /dev/null +++ b/core/src/main/resources/hudson/tools/label_da.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Label=Etiket diff --git a/core/src/main/resources/hudson/tools/label_de.properties b/core/src/main/resources/hudson/tools/label_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..e8d25c09c542bd8992599c256031dbafadd812aa --- /dev/null +++ b/core/src/main/resources/hudson/tools/label_de.properties @@ -0,0 +1 @@ +Label=Label diff --git a/core/src/main/resources/hudson/tools/label_es.properties b/core/src/main/resources/hudson/tools/label_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..1133464c0fd0998d72925842ba80f72b992f13ae --- /dev/null +++ b/core/src/main/resources/hudson/tools/label_es.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Label=Etiqueta diff --git a/core/src/main/resources/hudson/tools/label_ja.properties b/core/src/main/resources/hudson/tools/label_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..77cc3f8f10a7eddfefc47c29d7c9bb834ca8acce --- /dev/null +++ b/core/src/main/resources/hudson/tools/label_ja.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Label=\u30E9\u30D9\u30EB diff --git a/core/src/main/resources/hudson/tools/label_nl.properties b/core/src/main/resources/hudson/tools/label_nl.properties new file mode 100644 index 0000000000000000000000000000000000000000..c475b7db681842efc62298191a8fbb4493468a0b --- /dev/null +++ b/core/src/main/resources/hudson/tools/label_nl.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Label=Label diff --git a/core/src/main/resources/hudson/tools/label_pt_BR.properties b/core/src/main/resources/hudson/tools/label_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..0dd5f8bd1108549b8680966fe563f8fd413913ba --- /dev/null +++ b/core/src/main/resources/hudson/tools/label_pt_BR.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Label= diff --git a/core/src/main/resources/hudson/tools/label_ru.properties b/core/src/main/resources/hudson/tools/label_ru.properties new file mode 100644 index 0000000000000000000000000000000000000000..4adadeeebd15ec1dd15edd7be8bd94e9789ae28a --- /dev/null +++ b/core/src/main/resources/hudson/tools/label_ru.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Label=\u041C\u0435\u0442\u043A\u0430 diff --git a/core/src/main/resources/hudson/tools/label_zh_CN.properties b/core/src/main/resources/hudson/tools/label_zh_CN.properties new file mode 100644 index 0000000000000000000000000000000000000000..6b2432d7a6c9188305442f5e4ae721f78212bbd0 --- /dev/null +++ b/core/src/main/resources/hudson/tools/label_zh_CN.properties @@ -0,0 +1 @@ +Label=\u6807\u7b7e diff --git a/core/src/main/resources/hudson/triggers/Messages.properties b/core/src/main/resources/hudson/triggers/Messages.properties index 1d14b6ba51d0e6b3261e6566176231872320b5a4..74ed172e4e1bb33f8fc30c692b07a4642b75b0ee 100644 --- a/core/src/main/resources/hudson/triggers/Messages.properties +++ b/core/src/main/resources/hudson/triggers/Messages.properties @@ -1,6 +1,6 @@ # The MIT License # -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:cactusman, Seiji Sogabe +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:cactusman, Seiji Sogabe # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -22,6 +22,8 @@ SCMTrigger.DisplayName=Poll SCM SCMTrigger.getDisplayName={0} Polling Log -SCMTrigger.SCMTriggerCause.ShortDescription=A SCM change trigger started this job +SCMTrigger.BuildAction.DisplayName=Polling Log +SCMTrigger.SCMTriggerCause.ShortDescription=Started by an SCM change TimerTrigger.DisplayName=Build periodically -TimerTrigger.TimerTriggerCause.ShortDescription=A timer trigger started this job \ No newline at end of file +TimerTrigger.TimerTriggerCause.ShortDescription=Started by timer +Trigger.init=Initializing timer for triggers \ No newline at end of file diff --git a/core/src/main/resources/hudson/triggers/Messages_da.properties b/core/src/main/resources/hudson/triggers/Messages_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..a61df7c0b0220bc85e0dc2a2157dce70d24cb7c7 --- /dev/null +++ b/core/src/main/resources/hudson/triggers/Messages_da.properties @@ -0,0 +1,28 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +SCMTrigger.SCMTriggerCause.ShortDescription=Startet af en Kildekodestyrings (SCM) \u00e6ndring +SCMTrigger.getDisplayName={0} Polling Log +TimerTrigger.TimerTriggerCause.ShortDescription=Startet af timer +Trigger.init=Initialiserer starttimer +SCMTrigger.DisplayName=Poll kildekodestyring (SCM) +TimerTrigger.DisplayName=Byg periodisk diff --git a/core/src/main/resources/hudson/triggers/Messages_de.properties b/core/src/main/resources/hudson/triggers/Messages_de.properties index 4d3713681849775b238ca90c1f4a15170dcd92f3..dc689a906d2f6db102128b2f33069acbc51b8e38 100644 --- a/core/src/main/resources/hudson/triggers/Messages_de.properties +++ b/core/src/main/resources/hudson/triggers/Messages_de.properties @@ -22,4 +22,7 @@ SCMTrigger.DisplayName=Source Code Management System abfragen SCMTrigger.getDisplayName={0} Abfrage-Protokoll -TimerTrigger.DisplayName=Builds zeitgesteuert starten \ No newline at end of file +SCMTrigger.SCMTriggerCause.ShortDescription=Build wurde durch eine SCM-Änderung ausgelöst. +TimerTrigger.DisplayName=Builds zeitgesteuert starten +TimerTrigger.TimerTriggerCause.ShortDescription=Build wurde zeitgesteuert ausgelöst. +Trigger.init=Initialsiere Timer für Build-Auslöser \ No newline at end of file diff --git a/core/src/main/resources/hudson/triggers/Messages_es.properties b/core/src/main/resources/hudson/triggers/Messages_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..6d4707e03a10e7060f76eaad06e3d4ed84456eb9 --- /dev/null +++ b/core/src/main/resources/hudson/triggers/Messages_es.properties @@ -0,0 +1,28 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:cactusman, Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +SCMTrigger.DisplayName=Consultar repositorio (SCM) +SCMTrigger.getDisplayName={0} Log de consultas +SCMTrigger.SCMTriggerCause.ShortDescription=Ejecutado porque se detectaron cambios en el repositorio +TimerTrigger.DisplayName=Ejecutar periódicamente +TimerTrigger.TimerTriggerCause.ShortDescription=Ejecutado por el programador +Trigger.init=Inicializando programador para lanzadores diff --git a/core/src/main/resources/hudson/triggers/Messages_ja.properties b/core/src/main/resources/hudson/triggers/Messages_ja.properties index abe250110392083044835e1d9cdec20b93a68582..29b06a4a55bcec41c957baa45f54d8dbbc665e5f 100644 --- a/core/src/main/resources/hudson/triggers/Messages_ja.properties +++ b/core/src/main/resources/hudson/triggers/Messages_ja.properties @@ -1,6 +1,6 @@ # The MIT License # -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:cactusman, Seiji Sogabe +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:cactusman, Seiji Sogabe # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -20,8 +20,9 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -SCMTrigger.DisplayName=SCM\u3092\u30DD\u30FC\u30EA\u30F3\u30B0 -SCMTrigger.getDisplayName={0}\u306E\u30DD\u30FC\u30EA\u30F3\u30B0\u30ED\u30B0 -SCMTrigger.SCMTriggerCause.ShortDescription=SCM\u306E\u30DD\u30FC\u30EA\u30F3\u30B0\u304C\u5B9F\u884C -TimerTrigger.DisplayName=\u5B9A\u671F\u7684\u306B\u5B9F\u884C -TimerTrigger.TimerTriggerCause.ShortDescription=\u5B9A\u671F\u7684\u306B\u5B9F\u884C \ No newline at end of file +SCMTrigger.DisplayName=SCM\u3092\u30dd\u30fc\u30ea\u30f3\u30b0 +SCMTrigger.getDisplayName={0}\u306e\u30dd\u30fc\u30ea\u30f3\u30b0\u30ed\u30b0 +SCMTrigger.BuildAction.DisplayName=\u30dd\u30fc\u30ea\u30f3\u30b0 +SCMTrigger.SCMTriggerCause.ShortDescription=SCM\u306e\u30dd\u30fc\u30ea\u30f3\u30b0\u304c\u5b9f\u884c +TimerTrigger.DisplayName=\u5b9a\u671f\u7684\u306b\u5b9f\u884c +TimerTrigger.TimerTriggerCause.ShortDescription=\u5b9a\u671f\u7684\u306b\u5b9f\u884c \ No newline at end of file diff --git a/core/src/main/resources/hudson/triggers/Messages_pt_BR.properties b/core/src/main/resources/hudson/triggers/Messages_pt_BR.properties index 157ee865d2919c16fcb06422c4bb1f22de11c54f..0ad4346b6d34a3d7ac954f5eb528d372ec00a67d 100644 --- a/core/src/main/resources/hudson/triggers/Messages_pt_BR.properties +++ b/core/src/main/resources/hudson/triggers/Messages_pt_BR.properties @@ -20,6 +20,12 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -SCMTrigger.DisplayName=Voltar SCM -SCMTrigger.getDisplayName={0} Log de Vota\u00E7\u00E3o -TimerTrigger.DisplayName=Construir peri\u00F3dicamente \ No newline at end of file +SCMTrigger.DisplayName=Consultar periodicamente o SCM +SCMTrigger.getDisplayName={0} Log de consulta peri\u00F3dica +TimerTrigger.DisplayName=Construir periodicamente +# Initializing timer for triggers +Trigger.init= +# Started by an SCM change +SCMTrigger.SCMTriggerCause.ShortDescription= +# Started by timer +TimerTrigger.TimerTriggerCause.ShortDescription= diff --git a/core/src/main/resources/hudson/triggers/SCMTrigger/AdministrativeMonitorImpl/message.properties b/core/src/main/resources/hudson/triggers/SCMTrigger/AdministrativeMonitorImpl/message.properties index 63c1e7cf5f5559a62b17f1de57bd68020ce25f22..a92bb1b0f1632f34bec134e6bc5067a50d9a72e2 100644 --- a/core/src/main/resources/hudson/triggers/SCMTrigger/AdministrativeMonitorImpl/message.properties +++ b/core/src/main/resources/hudson/triggers/SCMTrigger/AdministrativeMonitorImpl/message.properties @@ -22,5 +22,5 @@ blurb=There are more SCM polling activities scheduled than handled, so \ the threads are not keeping up with the demands. \ - Check if your polling isn't \ - hanging, and/or increase the number of threads if necessary. \ No newline at end of file + Check if your polling is \ + hanging, and/or increase the number of threads if necessary. diff --git a/core/src/main/resources/hudson/triggers/SCMTrigger/AdministrativeMonitorImpl/message_da.properties b/core/src/main/resources/hudson/triggers/SCMTrigger/AdministrativeMonitorImpl/message_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..4b91ae81e285c610e5128c70df8c7d2b65da6d54 --- /dev/null +++ b/core/src/main/resources/hudson/triggers/SCMTrigger/AdministrativeMonitorImpl/message_da.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +blurb=Der er flere kildekodestyrings (SCM) pollinger i k\u00f8 end systemet kan n\u00e5 at h\u00e5ndtere, s\u00e5 \ +tr\u00e5dene kan ikke f\u00f8lge med eftersp\u00f8rgslen. \ diff --git a/core/src/main/resources/hudson/triggers/SCMTrigger/AdministrativeMonitorImpl/message_de.properties b/core/src/main/resources/hudson/triggers/SCMTrigger/AdministrativeMonitorImpl/message_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..6b641227dc4156b4fb33d90336aa57bcae09d534 --- /dev/null +++ b/core/src/main/resources/hudson/triggers/SCMTrigger/AdministrativeMonitorImpl/message_de.properties @@ -0,0 +1,5 @@ +blurb=\ + Es sind mehr SCM-Abfragen geplant als bearbeitet werden können. \ + Überprüfen Sie, ob \ + SCM-Abfragen hängengeblieben sind, und/oder erhöhen Sie gegebenenfalls die \ + Anzahl an Threads.. diff --git a/core/src/main/resources/hudson/triggers/SCMTrigger/AdministrativeMonitorImpl/message_es.properties b/core/src/main/resources/hudson/triggers/SCMTrigger/AdministrativeMonitorImpl/message_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..94deb6195b1a0ea64ca25c6fda1692ae017ec796 --- /dev/null +++ b/core/src/main/resources/hudson/triggers/SCMTrigger/AdministrativeMonitorImpl/message_es.properties @@ -0,0 +1,28 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +blurb=Hay más peticiones sobre los repositorios en la cola, que en proceso, \ + esto puede significar que el numero de hilos (threads) no sea suficiente para la demanda exigida. \ + Comprueba que la cola de peticiones no esté \ + colgada, y/o aumenta el numero de hilos (threads) si fuera necesario. + + diff --git a/core/src/main/resources/hudson/triggers/SCMTrigger/AdministrativeMonitorImpl/message_fr.properties b/core/src/main/resources/hudson/triggers/SCMTrigger/AdministrativeMonitorImpl/message_fr.properties index f6ef2e47621f60d253bb2d84973a7f33e94489da..0664cb46e04fdcb2b6168bd7d3fc9008aabdbc8c 100644 --- a/core/src/main/resources/hudson/triggers/SCMTrigger/AdministrativeMonitorImpl/message_fr.properties +++ b/core/src/main/resources/hudson/triggers/SCMTrigger/AdministrativeMonitorImpl/message_fr.properties @@ -20,4 +20,4 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -blurb= +blurb= diff --git a/core/src/main/resources/hudson/triggers/SCMTrigger/AdministrativeMonitorImpl/message_ja.properties b/core/src/main/resources/hudson/triggers/SCMTrigger/AdministrativeMonitorImpl/message_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..09063e175d217a8c2fb8710371de4c24f9c1d510 --- /dev/null +++ b/core/src/main/resources/hudson/triggers/SCMTrigger/AdministrativeMonitorImpl/message_ja.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +blurb=\ + SCM\u306E\u30DD\u30FC\u30EA\u30F3\u30B0\u304C\u51E6\u7406\u3067\u304D\u308B\u80FD\u529B\u4EE5\u4E0A\u306B\u30B9\u30B1\u30B8\u30E5\u30FC\u30EB\u3055\u308C\u3066\u3044\u308B\u305F\u3081\u3001\u30B9\u30EC\u30C3\u30C9\u304C\u8981\u6C42\u306B\u5BFE\u5FDC\u3067\u304D\u3066\u3044\u307E\u305B\u3093\u3002\ + \u30DD\u30FC\u30EA\u30F3\u30B0\u304C\u30CF\u30F3\u30B0\u30A2\u30C3\u30D7\u3057\u3066\u3044\u306A\u3044\u304B\u78BA\u8A8D\u3057\u3066\u3001\u5FC5\u8981\u3067\u3042\u308C\u3070\u30B9\u30EC\u30C3\u30C9\u6570\u3092\u5897\u3084\u3057\u3066\u304F\u3060\u3055\u3044\u3002. diff --git a/core/src/main/resources/hudson/triggers/SCMTrigger/AdministrativeMonitorImpl/message_nl.properties b/core/src/main/resources/hudson/triggers/SCMTrigger/AdministrativeMonitorImpl/message_nl.properties index d9a4c2d38ab123c4fd24cf633d7db34de749db00..83e1d374e2deee1016d41253230aaa986743154d 100644 --- a/core/src/main/resources/hudson/triggers/SCMTrigger/AdministrativeMonitorImpl/message_nl.properties +++ b/core/src/main/resources/hudson/triggers/SCMTrigger/AdministrativeMonitorImpl/message_nl.properties @@ -1,22 +1,22 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Wim Rosseel -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. -blurb= +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Wim Rosseel +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +blurb= diff --git a/core/src/main/resources/hudson/triggers/SCMTrigger/AdministrativeMonitorImpl/message_pt_BR.properties b/core/src/main/resources/hudson/triggers/SCMTrigger/AdministrativeMonitorImpl/message_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..7c5d89549d3aac07fe113ad6937326875bce2df7 --- /dev/null +++ b/core/src/main/resources/hudson/triggers/SCMTrigger/AdministrativeMonitorImpl/message_pt_BR.properties @@ -0,0 +1,28 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +# There are more SCM polling activities scheduled than handled, so \ +# the threads are not keeping up with the demands. \ +# Check if your polling is \ +# hanging, and/or increase the number of threads if necessary. +blurb=\ +# Estes usu\u00E1rios podem se logar no Hudson. Este \u00E9 um super conjunto desta lista, \ diff --git a/core/src/main/resources/hudson/triggers/SCMTrigger/BuildAction/index.jelly b/core/src/main/resources/hudson/triggers/SCMTrigger/BuildAction/index.jelly new file mode 100644 index 0000000000000000000000000000000000000000..01a28b84e43a2a9ec7e3854455276f119a816229 --- /dev/null +++ b/core/src/main/resources/hudson/triggers/SCMTrigger/BuildAction/index.jelly @@ -0,0 +1,47 @@ + + + + + + + +

      ${%Polling Log}

      + + + ${%View as plain text} + + + +

      ${%blurb}

      + +
      +        
      +        ${it.writePollingLogTo(0,output)}
      +      
      +
      +
      +
      diff --git a/core/src/main/resources/hudson/triggers/SCMTrigger/BuildAction/index.properties b/core/src/main/resources/hudson/triggers/SCMTrigger/BuildAction/index.properties new file mode 100644 index 0000000000000000000000000000000000000000..71b591976d6c4a3672508448e69ab1425a6d1300 --- /dev/null +++ b/core/src/main/resources/hudson/triggers/SCMTrigger/BuildAction/index.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +blurb=\ + This page captures the polling log that triggered this build. \ No newline at end of file diff --git a/core/src/main/resources/hudson/triggers/SCMTrigger/BuildAction/index_da.properties b/core/src/main/resources/hudson/triggers/SCMTrigger/BuildAction/index_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..62505dc89f6d895d8720e7019e164a00750b0796 --- /dev/null +++ b/core/src/main/resources/hudson/triggers/SCMTrigger/BuildAction/index_da.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Polling\ Log=Polling log +View\ as\ plain\ text=Vis som r\u00e5 text +blurb=Denne side viser pollingloggen der startede dette byg. diff --git a/core/src/main/resources/hudson/triggers/SCMTrigger/BuildAction/index_ja.properties b/core/src/main/resources/hudson/triggers/SCMTrigger/BuildAction/index_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..77bfacff562f6bb4e7977e2e786bff04605d9e30 --- /dev/null +++ b/core/src/main/resources/hudson/triggers/SCMTrigger/BuildAction/index_ja.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +blurb=\ + \u3053\u306e\u30d3\u30eb\u30c9\u3092\u8d77\u52d5\u3057\u305f\u30dd\u30fc\u30ea\u30f3\u30b0\u30ed\u30b0\u3092\u8a18\u9332\u3057\u307e\u3059\u3002 +Polling\ Log=\u30dd\u30fc\u30ea\u30f3\u30b0\u30ed\u30b0 +View\ as\ plain\ text=\u30d7\u30ec\u30a4\u30f3\u30c6\u30ad\u30b9\u30c8\u3067\u8868\u793a diff --git a/core/src/main/resources/hudson/triggers/SCMTrigger/DescriptorImpl/index.properties b/core/src/main/resources/hudson/triggers/SCMTrigger/DescriptorImpl/index.properties index 719c34cb06dd861f39bb05e3ba1f8c165b57d497..d6d3ad1669e4b3a7ea19c180395acf5e9d67b293 100644 --- a/core/src/main/resources/hudson/triggers/SCMTrigger/DescriptorImpl/index.properties +++ b/core/src/main/resources/hudson/triggers/SCMTrigger/DescriptorImpl/index.properties @@ -21,5 +21,5 @@ # THE SOFTWARE. clogged=There are more SCM polling activities scheduled than handled, so \ - the threads are not keeping up with the demands. Check if your polling isn't \ - hanging, and/or increase the number of threads if necessary. \ No newline at end of file + the threads are not keeping up with the demands. Check if your polling is \ + hanging, and/or increase the number of threads if necessary. diff --git a/core/src/main/resources/hudson/triggers/SCMTrigger/DescriptorImpl/index_da.properties b/core/src/main/resources/hudson/triggers/SCMTrigger/DescriptorImpl/index_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..6e6fd64c98b971ab8e8aba965ff82d2129ca0f6a --- /dev/null +++ b/core/src/main/resources/hudson/triggers/SCMTrigger/DescriptorImpl/index_da.properties @@ -0,0 +1,30 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Running\ for=Har k\u00f8rt i +The\ following\ polling\ activities\ are\ currently\ in\ progress\:=F\u00f8lgende polling aktiviteter er for nuv\u00e6rende i gang: +Current\ SCM\ Polling\ Activities=Nuv\u00e6rende Kildekodestyrings (SCM) Polling Aktiviteter +No\ polling\ activity\ is\ in\ progress.=Ingen polling aktiviteter er i gang +Project=Projekt +clogged=Der er flere kildekodestyrings (SCM) pollinger i k\u00f8 end h\u00e5ndteret, \ +tr\u00e5dene kan ikke f\u00f8lge med eftersp\u00f8rgslen. Check om din polling \ +h\u00e6nger og for\u00f8g antallet af tr\u00e5de om n\u00f8dvendigt. diff --git a/core/src/main/resources/hudson/triggers/SCMTrigger/DescriptorImpl/index_de.properties b/core/src/main/resources/hudson/triggers/SCMTrigger/DescriptorImpl/index_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..29422a7ec20b50f87d74a4091f034ae266d0efc0 --- /dev/null +++ b/core/src/main/resources/hudson/triggers/SCMTrigger/DescriptorImpl/index_de.properties @@ -0,0 +1,7 @@ +Current\ SCM\ Polling\ Activities=Momentane SCM-Abfragen +clogged=überlastet +No\ polling\ activity\ is\ in\ progress.=Zur Zeit sind keine SCM-Abfragen im Gange. +The\ following\ polling\ activities\ are\ currently\ in\ progress\:=\ + Die folgenden Abfragen sind momentan im Gange: +Project=Projekt +Running\ for=Läuft seit diff --git a/core/src/main/resources/hudson/triggers/SCMTrigger/DescriptorImpl/index_es.properties b/core/src/main/resources/hudson/triggers/SCMTrigger/DescriptorImpl/index_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..719cb2ea8ac322f59c08c16b422ce9d7bb4d1204 --- /dev/null +++ b/core/src/main/resources/hudson/triggers/SCMTrigger/DescriptorImpl/index_es.properties @@ -0,0 +1,33 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +clogged=Hay mas peticiones a los respositorios en espera que en proceso, \ + esto significa que el numero de hilos (threads) no es adecuado para la demanda. \ + Comprueba que no haya peticiones colgadas, y/o aumenta el numero de ''threads'' si \ + fuera necesario. + +Running\ for=Ejecutándose para +Current\ SCM\ Polling\ Activities=Actividad actual sobre peticiones a los repositorios +Project=Proyecto +The\ following\ polling\ activities\ are\ currently\ in\ progress\:=Las siguientes peticiones están activas actualmente +No\ polling\ activity\ is\ in\ progress.=No hay peticiones + diff --git a/core/src/main/resources/hudson/triggers/SCMTrigger/DescriptorImpl/index_fr.properties b/core/src/main/resources/hudson/triggers/SCMTrigger/DescriptorImpl/index_fr.properties index b9c574786f4f744b582cfee59e00e854d6234832..73286b5fc2cd3911edbf9ed49a5e86875c964b9f 100644 --- a/core/src/main/resources/hudson/triggers/SCMTrigger/DescriptorImpl/index_fr.properties +++ b/core/src/main/resources/hudson/triggers/SCMTrigger/DescriptorImpl/index_fr.properties @@ -20,9 +20,9 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Current\ SCM\ Polling\ Activities=Activités en cours de scrutation de la gestion de version -clogged=bouché -No\ polling\ activity\ is\ in\ progress.=Pas d''activité de scrutation en corus. -The\ following\ polling\ activities\ are\ currently\ in\ progress\:=Les activités de scrutation suivantes sont en cours: -Project=Projet -Running\ for=En cours depuis +Current\ SCM\ Polling\ Activities=Activités en cours de scrutation de la gestion de version +clogged=bouché +No\ polling\ activity\ is\ in\ progress.=Pas d''activité de scrutation en corus. +The\ following\ polling\ activities\ are\ currently\ in\ progress\:=Les activités de scrutation suivantes sont en cours: +Project=Projet +Running\ for=En cours depuis diff --git a/core/src/main/resources/hudson/triggers/SCMTrigger/DescriptorImpl/index_pt_BR.properties b/core/src/main/resources/hudson/triggers/SCMTrigger/DescriptorImpl/index_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..852fabd8437d47b2d69a54967377905d447832d0 --- /dev/null +++ b/core/src/main/resources/hudson/triggers/SCMTrigger/DescriptorImpl/index_pt_BR.properties @@ -0,0 +1,31 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Current\ SCM\ Polling\ Activities= +No\ polling\ activity\ is\ in\ progress.= +The\ following\ polling\ activities\ are\ currently\ in\ progress\:= +# There are more SCM polling activities scheduled than handled, so \ +# the threads are not keeping up with the demands. Check if your polling is \ +# hanging, and/or increase the number of threads if necessary. +clogged= +Running\ for= +Project=Projeto diff --git a/core/src/main/resources/hudson/triggers/SCMTrigger/SCMAction/index.jelly b/core/src/main/resources/hudson/triggers/SCMTrigger/SCMAction/index.jelly index 823ffc16287141e7c1882da97e15ec1082e958d9..9cdb7b36a6c3b4702b5c570d7c893e446ea7cea5 100644 --- a/core/src/main/resources/hudson/triggers/SCMTrigger/SCMAction/index.jelly +++ b/core/src/main/resources/hudson/triggers/SCMTrigger/SCMAction/index.jelly @@ -33,7 +33,10 @@ THE SOFTWARE. ${%Polling has not run yet.} -
      ${it.log}
      +
      +            
      +            ${it.writeLogTo(output)}
      +          
      diff --git a/core/src/main/resources/hudson/triggers/SCMTrigger/SCMAction/index.properties b/core/src/main/resources/hudson/triggers/SCMTrigger/SCMAction/index.properties index e7cce3d58491a4eeb69787ffc4f309ebf469df54..783d886ff5afa1537073c5f2cf6b52d693495978 100644 --- a/core/src/main/resources/hudson/triggers/SCMTrigger/SCMAction/index.properties +++ b/core/src/main/resources/hudson/triggers/SCMTrigger/SCMAction/index.properties @@ -20,4 +20,4 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -title=Last {0} \ No newline at end of file +title={0} \ No newline at end of file diff --git a/core/src/main/resources/hudson/triggers/SCMTrigger/SCMAction/index_da.properties b/core/src/main/resources/hudson/triggers/SCMTrigger/SCMAction/index_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..69a5b1bec6298cc18e43a3137277c3f246f55271 --- /dev/null +++ b/core/src/main/resources/hudson/triggers/SCMTrigger/SCMAction/index_da.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +title=Seneste {0} +Polling\ has\ not\ run\ yet.=Polling har endnu ikke k\u00f8rt. diff --git a/core/src/main/resources/hudson/triggers/SCMTrigger/SCMAction/index_es.properties b/core/src/main/resources/hudson/triggers/SCMTrigger/SCMAction/index_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..426c609a512d176ab6fc74c569f06c9168eeea9c --- /dev/null +++ b/core/src/main/resources/hudson/triggers/SCMTrigger/SCMAction/index_es.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +title=Últimos {0} +Polling\ has\ not\ run\ yet.=No ha habido ninguna petición todavía + diff --git a/core/src/main/resources/hudson/triggers/SCMTrigger/SCMAction/index_ja.properties b/core/src/main/resources/hudson/triggers/SCMTrigger/SCMAction/index_ja.properties index aca30e4a14f9759e3783a923ff0700a891bebc26..19cc9e37ce143c3fbd15392d7952e6927ac7a19c 100644 --- a/core/src/main/resources/hudson/triggers/SCMTrigger/SCMAction/index_ja.properties +++ b/core/src/main/resources/hudson/triggers/SCMTrigger/SCMAction/index_ja.properties @@ -20,5 +20,5 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -title=\u30bf\u30a4\u30c8\u30eb -Polling\ has\ not\ run\ yet.=\u30dd\u30fc\u30ea\u30f3\u30b0\u306f\u307e\u3060\u8d77\u52d5\u3057\u3066\u3044\u307e\u305b\u3093\u3002 +title={0} +Polling\ has\ not\ run\ yet.=\u30DD\u30FC\u30EA\u30F3\u30B0\u306F\u307E\u3060\u8D77\u52D5\u3057\u3066\u3044\u307E\u305B\u3093\u3002 diff --git a/core/src/main/resources/hudson/triggers/SCMTrigger/SCMAction/index_sv_SE.properties b/core/src/main/resources/hudson/triggers/SCMTrigger/SCMAction/index_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..d780ba2ef34beb3a0d05a63880d5d8168ff8033e --- /dev/null +++ b/core/src/main/resources/hudson/triggers/SCMTrigger/SCMAction/index_sv_SE.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +title=Senaste {0} diff --git a/core/src/main/resources/hudson/triggers/SCMTrigger/SCMTriggerCause/description.jelly b/core/src/main/resources/hudson/triggers/SCMTrigger/SCMTriggerCause/description.jelly new file mode 100644 index 0000000000000000000000000000000000000000..12f659cb7bacb701bb86c650aadba20904a2c0ef --- /dev/null +++ b/core/src/main/resources/hudson/triggers/SCMTrigger/SCMTriggerCause/description.jelly @@ -0,0 +1,26 @@ + + + ${it.shortDescription} + diff --git a/core/src/main/resources/hudson/triggers/SCMTrigger/config.jelly b/core/src/main/resources/hudson/triggers/SCMTrigger/config.jelly index 407b889969fc4913de892b8709db0a8e8b33172f..7b4b9ada7ea5ceb5bc22bf89d26f826d84272432 100644 --- a/core/src/main/resources/hudson/triggers/SCMTrigger/config.jelly +++ b/core/src/main/resources/hudson/triggers/SCMTrigger/config.jelly @@ -23,7 +23,7 @@ THE SOFTWARE. --> - - + + - \ No newline at end of file + diff --git a/core/src/main/resources/hudson/triggers/SCMTrigger/config_da.properties b/core/src/main/resources/hudson/triggers/SCMTrigger/config_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..be218f5c62046fc6f140ef15ac175c2f51af6ea2 --- /dev/null +++ b/core/src/main/resources/hudson/triggers/SCMTrigger/config_da.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Schedule=Tidsplan diff --git a/core/src/main/resources/hudson/triggers/SCMTrigger/config_es.properties b/core/src/main/resources/hudson/triggers/SCMTrigger/config_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..23582e5f1b411ca8ef45aa8ff5d1578d963165a7 --- /dev/null +++ b/core/src/main/resources/hudson/triggers/SCMTrigger/config_es.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Schedule=Programador diff --git a/core/src/main/resources/hudson/triggers/SCMTrigger/global.jelly b/core/src/main/resources/hudson/triggers/SCMTrigger/global.jelly index 9f62674d9248af68345db5162662f826673cda98..f799c608036dff128459d0f44c9a23aa5eeda8a5 100644 --- a/core/src/main/resources/hudson/triggers/SCMTrigger/global.jelly +++ b/core/src/main/resources/hudson/triggers/SCMTrigger/global.jelly @@ -31,9 +31,10 @@ THE SOFTWARE. - + - \ No newline at end of file + diff --git a/core/src/main/resources/hudson/triggers/SCMTrigger/global_da.properties b/core/src/main/resources/hudson/triggers/SCMTrigger/global_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..b40ac17976f1c62d4140d107dcd29a730f084aa2 --- /dev/null +++ b/core/src/main/resources/hudson/triggers/SCMTrigger/global_da.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Max\ \#\ of\ concurrent\ polling=Max # samtidige pollinger +SCM\ Polling=Kildekodestyring (SCM) polling diff --git a/core/src/main/resources/hudson/triggers/SCMTrigger/global_es.properties b/core/src/main/resources/hudson/triggers/SCMTrigger/global_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..3d06c2b4402876454fefae73d21319b03c2a7b9c --- /dev/null +++ b/core/src/main/resources/hudson/triggers/SCMTrigger/global_es.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +SCM\ Polling=Peticiones al repositorio +Max\ \#\ of\ concurrent\ polling=Número máximo de peticiones concurrentes. + diff --git a/core/src/main/resources/hudson/triggers/TimerTrigger/config.jelly b/core/src/main/resources/hudson/triggers/TimerTrigger/config.jelly index 00e48f3cacc2f38672ce4c51ee153947101fc46b..984a055e730dfb3617fa26228179f1c53c705c3d 100644 --- a/core/src/main/resources/hudson/triggers/TimerTrigger/config.jelly +++ b/core/src/main/resources/hudson/triggers/TimerTrigger/config.jelly @@ -1,7 +1,7 @@ - - + + - \ No newline at end of file + diff --git a/core/src/main/resources/hudson/triggers/TimerTrigger/config_da.properties b/core/src/main/resources/hudson/triggers/TimerTrigger/config_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..be218f5c62046fc6f140ef15ac175c2f51af6ea2 --- /dev/null +++ b/core/src/main/resources/hudson/triggers/TimerTrigger/config_da.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Schedule=Tidsplan diff --git a/core/src/main/resources/hudson/triggers/TimerTrigger/config_es.properties b/core/src/main/resources/hudson/triggers/TimerTrigger/config_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..23582e5f1b411ca8ef45aa8ff5d1578d963165a7 --- /dev/null +++ b/core/src/main/resources/hudson/triggers/TimerTrigger/config_es.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Schedule=Programador diff --git a/war/resources/help/project-config/timer-format.html b/core/src/main/resources/hudson/triggers/TimerTrigger/help-spec.html similarity index 100% rename from war/resources/help/project-config/timer-format.html rename to core/src/main/resources/hudson/triggers/TimerTrigger/help-spec.html diff --git a/core/src/main/resources/hudson/triggers/TimerTrigger/help-spec_de.html b/core/src/main/resources/hudson/triggers/TimerTrigger/help-spec_de.html new file mode 100644 index 0000000000000000000000000000000000000000..3facd6db818029023aeec4437ef4272148abe0f9 --- /dev/null +++ b/core/src/main/resources/hudson/triggers/TimerTrigger/help-spec_de.html @@ -0,0 +1,58 @@ +
      + Dieses Feld verwendet die Cron-Syntax (mit kleinen Unterschieden). + Jede Zeile besteht dabei aus 5 Feldern, getrennt durch Tabulator oder Leerzeichen: +
      MINUTE STUNDE TAG MONAT WOCHENTAG
      + + + + + + + + + + + + + + + + + + + + + +
      MINUTEDie Minute der Stunde (0-59)
      STUNDEDie Stunde des Tages (0-23)
      TAGDer Tag des Monats (1-31)
      MONATDer Monat (1-12)
      WOCHENTAGDer Wochentag (0-7), 0 und 7 entsprechen dem Sonntag.
      +

      + Um mehrere Werte pro Feld anzugeben, können folgende Operatoren verwendet + werden. In absteigender Priorität sind dies: +

      +
        +
      • '*' entspricht allen gültigen Werten
      • +
      • 'M-N' gibt einen Bereich an, z.B. "1-5"
      • +
      • 'M-N/X' oder '*/X' gibt Schritte in X-er Schritten an durch den Bereich an, z.B. + "*/15" im Feld MINUTE für "0,15,30,45" und "1-6/2" für "1,3,5"
      • +
      • 'A,B,...,Z' entspricht direkt den angegebenen Werten, z.B. "0,30" oder "1,3,5"
      • +
      +

      + Leere Zeilen und Zeilen, die mit '#' beginnen, werden als Kommentarzeilen + ignoriert. +

      + Zusätzlich werden '@yearly', '@annually', '@monthly', '@weekly', '@daily', '@midnight' + und '@hourly' unterstützt. +

      + + + + + +
      Beispiele +
      +# Jede Minute
      +* * * * *
      +# Immer 5 Minuten nach der vollen Stunde 
      +5 * * * *
      +
      +
      +
      \ No newline at end of file diff --git a/war/resources/help/project-config/timer-format_fr.html b/core/src/main/resources/hudson/triggers/TimerTrigger/help-spec_fr.html similarity index 100% rename from war/resources/help/project-config/timer-format_fr.html rename to core/src/main/resources/hudson/triggers/TimerTrigger/help-spec_fr.html diff --git a/war/resources/help/project-config/timer-format_ja.html b/core/src/main/resources/hudson/triggers/TimerTrigger/help-spec_ja.html similarity index 100% rename from war/resources/help/project-config/timer-format_ja.html rename to core/src/main/resources/hudson/triggers/TimerTrigger/help-spec_ja.html diff --git a/core/src/main/resources/hudson/triggers/TimerTrigger/help-spec_pt_BR.html b/core/src/main/resources/hudson/triggers/TimerTrigger/help-spec_pt_BR.html new file mode 100644 index 0000000000000000000000000000000000000000..e789768d5fcf28ea6e802d97467058630332d7ba --- /dev/null +++ b/core/src/main/resources/hudson/triggers/TimerTrigger/help-spec_pt_BR.html @@ -0,0 +1,57 @@ +
      + Este campo segue a sintaxe do cron (com poucas diferenças). + Especificamente, cada linha consite de 5 campos separados por tabulação (TAB) ou espeaço em branco: +
      MINUTO HORA DM MES DS
      + + + + + + + + + + + + + + + + + + + + + +
      MINUTOMinutos dentro de uma hora (0-59)
      HORAA hora do dia (0-23)
      DMO dia do mês (1-31)
      MESO mês (1-12)
      DSO dia da semana (0-7) onde 0 e 7 são Domingo.
      +

      + Para especificar múltiplos valores para um campo, os seguintes operadores estão + disponíveis. Em ordem de precedência, +

      +
        +
      • '*' pode ser usado para especificar todos os valores válidos.
      • +
      • 'M-N' pode ser usado para especificar um intervalo, tal como "1-5"
      • +
      • 'M-N/X' ou '*/X' pode ser usado para especificar saltos do valor de X entre o intervalo, + tal como "*/15" no campo MINUTO para "0,15,30,45" e "1-6/2" para "1,3,5"
      • +
      • 'A,B,...,Z' pode ser usado para especificar múltiplos valores, tal como "0,30" ou "1,3,5"
      • +
      +

      + Linhas vazias e linha que começam com '#' serão ignoradas como comentários. +

      + Em adição, as constantes '@yearly', '@annually', '@monthly', '@weekly', '@daily', '@midnight', + e '@hourly' são suportadas. +

      + + + + + +
      Exemplos +
      +# todo minuto
      +* * * * *
      +# no minuto 5 de cada hora (ou seja '2:05,3:05,...') 
      +5 * * * *
      +
      +
      +
      \ No newline at end of file diff --git a/war/resources/help/project-config/timer-format_ru.html b/core/src/main/resources/hudson/triggers/TimerTrigger/help-spec_ru.html similarity index 100% rename from war/resources/help/project-config/timer-format_ru.html rename to core/src/main/resources/hudson/triggers/TimerTrigger/help-spec_ru.html diff --git a/war/resources/help/project-config/timer-format_tr.html b/core/src/main/resources/hudson/triggers/TimerTrigger/help-spec_tr.html similarity index 100% rename from war/resources/help/project-config/timer-format_tr.html rename to core/src/main/resources/hudson/triggers/TimerTrigger/help-spec_tr.html diff --git a/war/resources/help/project-config/timer.html b/core/src/main/resources/hudson/triggers/TimerTrigger/help.html similarity index 100% rename from war/resources/help/project-config/timer.html rename to core/src/main/resources/hudson/triggers/TimerTrigger/help.html diff --git a/core/src/main/resources/hudson/triggers/TimerTrigger/help_de.html b/core/src/main/resources/hudson/triggers/TimerTrigger/help_de.html new file mode 100644 index 0000000000000000000000000000000000000000..dfce7a9984b0c5617685690763ddee4a867f9b0d --- /dev/null +++ b/core/src/main/resources/hudson/triggers/TimerTrigger/help_de.html @@ -0,0 +1,21 @@ +
      + Erlaubt eine Ausführung des Projekts in regelmäßigen Zeitintervallen, ähnlich + dem Cron-Befehl. + +

      + Dieses Merkmal ist hauptsächlich als Cron-Ersatz gedacht und ist + nicht ideal für Software-Projekte mit kontinuierlicher Integration. + + Viele Entwickler, die auf kontinuierliche Integration umstellen, sind so + sehr an die Idee von zeitgesteuerten Builds gewöhnt (z.B. nächtliche oder + wöchentliche Builds), dass sie dieses Merkmal verwenden. Der Witz der + kontinuierlichen Integration liegt jedoch darin, einen neuen Build zu starten, + sobald eine Änderung im Code vorgenommen wurde, um möglichst schnell + eine Rückmeldung zu bekommen. Dazu müssen sie eine + Änderungsabfrage (SCM change + notification) in Hudson einrichten. + +

      + Bevor Sie also dieses Merkmal nutzen, halten Sie kurz inne und fragen Sie sich, + ob dies wirklich das ist, was Sie eigentlich wollen. +

      \ No newline at end of file diff --git a/war/resources/help/project-config/timer_fr.html b/core/src/main/resources/hudson/triggers/TimerTrigger/help_fr.html similarity index 100% rename from war/resources/help/project-config/timer_fr.html rename to core/src/main/resources/hudson/triggers/TimerTrigger/help_fr.html diff --git a/war/resources/help/project-config/timer_ja.html b/core/src/main/resources/hudson/triggers/TimerTrigger/help_ja.html similarity index 100% rename from war/resources/help/project-config/timer_ja.html rename to core/src/main/resources/hudson/triggers/TimerTrigger/help_ja.html diff --git a/core/src/main/resources/hudson/triggers/TimerTrigger/help_pt_BR.html b/core/src/main/resources/hudson/triggers/TimerTrigger/help_pt_BR.html new file mode 100644 index 0000000000000000000000000000000000000000..2d4b9274f52e7308d9c048d919defe7489d6f918 --- /dev/null +++ b/core/src/main/resources/hudson/triggers/TimerTrigger/help_pt_BR.html @@ -0,0 +1,19 @@ +
      + Fornece uma funcionalidade ao estilo do cron + para periodicamente executar este projeto. + +

      + Esta funcionalidade é para usar o Hudson no lugar do cron, + e não é ideal para projetos de software de construção contínua. + + Quando as pessoas iniciam na integração contínua, elas frequentemente são levadas + a idéia de construções agendadas regularmente como toda noite/semanalmente e assim elas + usam esta funcionalidade. Porém, o ponto principal da integração contínua é iniciar + uma construção tão logo uma mudança seja feita, para fornecer um feedback rápido sober a mudança. + Para fazer isto você precisa + ligar a notificação de mudança do SCM ao Hudson.. + +

      + Assim, antes de usar esta funcionalidade, pare e pergunte a si mesmo se isto é o que realmente você quer. + +

      \ No newline at end of file diff --git a/war/resources/help/project-config/timer_ru.html b/core/src/main/resources/hudson/triggers/TimerTrigger/help_ru.html similarity index 100% rename from war/resources/help/project-config/timer_ru.html rename to core/src/main/resources/hudson/triggers/TimerTrigger/help_ru.html diff --git a/war/resources/help/project-config/timer_tr.html b/core/src/main/resources/hudson/triggers/TimerTrigger/help_tr.html similarity index 100% rename from war/resources/help/project-config/timer_tr.html rename to core/src/main/resources/hudson/triggers/TimerTrigger/help_tr.html diff --git a/core/src/main/resources/hudson/util/AWTProblem/index_da.properties b/core/src/main/resources/hudson/util/AWTProblem/index_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..4218a426c5de8d5b79cc6b2608324176f8072a6b --- /dev/null +++ b/core/src/main/resources/hudson/util/AWTProblem/index_da.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +errorMessage=AWT er ikke ordentlig konfigureret p\u00e5 denne server. M\u00e5ske skal du starte din container med "-Djava.awt.headless=true"? +Error=Fejl diff --git a/core/src/main/resources/hudson/util/AWTProblem/index_de.properties b/core/src/main/resources/hudson/util/AWTProblem/index_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..3a1957a76013d0f4904889c5df361e511d09a62b --- /dev/null +++ b/core/src/main/resources/hudson/util/AWTProblem/index_de.properties @@ -0,0 +1,4 @@ +Error=Fehler +errorMessage=\ + AWT ist auf diesem Server nicht vollständig konfiguriert. Eventuell \ + sollten Sie Ihren Server-Container mit der Option "-Djava.awt.headless=true" starten. diff --git a/core/src/main/resources/hudson/util/AWTProblem/index_es.properties b/core/src/main/resources/hudson/util/AWTProblem/index_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..721721b6d6933d4317c149d4c09b6a4cb409dbe5 --- /dev/null +++ b/core/src/main/resources/hudson/util/AWTProblem/index_es.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +errorMessage=AWT no está correctamente configurado en este servodor, quizás sea necesario ejecutar el container con la opción "-Djava.awt.headless=true" +Error=Error + diff --git a/core/src/main/resources/hudson/util/AWTProblem/index_fr.properties b/core/src/main/resources/hudson/util/AWTProblem/index_fr.properties index 37c3ce8d6f2856e3029d0e316b05eee3f3154dbc..a332f6af3a7be36d74f4f4ff414ff6ce8dd3c1b4 100644 --- a/core/src/main/resources/hudson/util/AWTProblem/index_fr.properties +++ b/core/src/main/resources/hudson/util/AWTProblem/index_fr.properties @@ -20,5 +20,5 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Error=Erreur -errorMessage=AWT n''est pas configuré correctement sur ce serveur. Peut-être devez-vous lancer votre conteneur avec "-Djava.awt.headless=true"? +Error=Erreur +errorMessage=AWT n''est pas configuré correctement sur ce serveur. Peut-être devez-vous lancer votre conteneur avec "-Djava.awt.headless=true"? diff --git a/core/src/main/resources/hudson/util/AWTProblem/index_nl.properties b/core/src/main/resources/hudson/util/AWTProblem/index_nl.properties index 52e18caa54be1ca1b7a55c60d88c53d34576bd0a..4afdda82f31f8c8d53e8596c65abea436cb46345 100644 --- a/core/src/main/resources/hudson/util/AWTProblem/index_nl.properties +++ b/core/src/main/resources/hudson/util/AWTProblem/index_nl.properties @@ -1,23 +1,23 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Wim Rosseel -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. -Error=Fout -errorMessage=AWT werd niet correct geconfigureerd op deze server! Misschien moet u uw container op te starten met de optie "-Djava.awt.headless=true"? +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Wim Rosseel +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +Error=Fout +errorMessage=AWT werd niet correct geconfigureerd op deze server! Misschien moet u uw container op te starten met de optie "-Djava.awt.headless=true"? diff --git a/core/src/main/resources/hudson/util/AWTProblem/index_pt_BR.properties b/core/src/main/resources/hudson/util/AWTProblem/index_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..00d6ee0c0cee239cd9c8efd8aa4ea2d252cb000a --- /dev/null +++ b/core/src/main/resources/hudson/util/AWTProblem/index_pt_BR.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +# AWT is not properly configured on this server. Perhaps you need to run your container with "-Djava.awt.headless=true"? +errorMessage= +Error=Erro diff --git a/core/src/main/resources/hudson/util/AdministrativeError/index.jelly b/core/src/main/resources/hudson/util/AdministrativeError/index.jelly new file mode 100644 index 0000000000000000000000000000000000000000..7eba8b302a7a6e7a452d72958094ff71e0be31fb --- /dev/null +++ b/core/src/main/resources/hudson/util/AdministrativeError/index.jelly @@ -0,0 +1,31 @@ + + + + +

      ${it.title}

      +
      +
      +
      +
      diff --git a/core/src/main/resources/hudson/util/AdministrativeError/message.jelly b/core/src/main/resources/hudson/util/AdministrativeError/message.jelly new file mode 100644 index 0000000000000000000000000000000000000000..60b02a4308ffad66f85763ea0cc742bf0b555046 --- /dev/null +++ b/core/src/main/resources/hudson/util/AdministrativeError/message.jelly @@ -0,0 +1,30 @@ + + + +
      + ${it.message} + ${%See the log for more details}. +
      +
      \ No newline at end of file diff --git a/core/src/main/resources/hudson/util/AdministrativeError/message_da.properties b/core/src/main/resources/hudson/util/AdministrativeError/message_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..339d78576ab3e440492d7601afc770b95c46012f --- /dev/null +++ b/core/src/main/resources/hudson/util/AdministrativeError/message_da.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +See\ the\ log\ for\ more\ details=Se loggen for flere detaljer diff --git a/core/src/main/resources/hudson/util/AdministrativeError/message_de.properties b/core/src/main/resources/hudson/util/AdministrativeError/message_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..2b27281eccf0e97dc49f8da3b77e60e70554443e --- /dev/null +++ b/core/src/main/resources/hudson/util/AdministrativeError/message_de.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +See\ the\ log\ for\ more\ details=Im Protokoll können weitere Hinweise stehen. \ No newline at end of file diff --git a/core/src/main/resources/hudson/util/AdministrativeError/message_es.properties b/core/src/main/resources/hudson/util/AdministrativeError/message_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..9a671a832dafae5da31d04574deb5c4c5b0a3238 --- /dev/null +++ b/core/src/main/resources/hudson/util/AdministrativeError/message_es.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +See\ the\ log\ for\ more\ details=Echa un vistazo a los logs para ver mas detalles diff --git a/core/src/main/resources/hudson/util/AdministrativeError/message_ja.properties b/core/src/main/resources/hudson/util/AdministrativeError/message_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..c0d98782a36f2dc7cbfe1c6ba7a29f99be60520a --- /dev/null +++ b/core/src/main/resources/hudson/util/AdministrativeError/message_ja.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +See\ the\ log\ for\ more\ details=\u8A73\u7D30\u306F\u30ED\u30B0\u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044\u3002 diff --git a/core/src/main/resources/hudson/util/AdministrativeError/message_pt_BR.properties b/core/src/main/resources/hudson/util/AdministrativeError/message_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..26f389b1c08023be0ca27a79cea500abfb74ba22 --- /dev/null +++ b/core/src/main/resources/hudson/util/AdministrativeError/message_pt_BR.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +See\ the\ log\ for\ more\ details= diff --git a/core/src/main/resources/hudson/util/DoubleLaunchChecker/index.jelly b/core/src/main/resources/hudson/util/DoubleLaunchChecker/index.jelly index adadbb4ce43b137e26d48d48c2e2db827adfcd78..7edd9a47d6c964baf2bec47c14027144513054cd 100644 --- a/core/src/main/resources/hudson/util/DoubleLaunchChecker/index.jelly +++ b/core/src/main/resources/hudson/util/DoubleLaunchChecker/index.jelly @@ -45,7 +45,7 @@ THE SOFTWARE.
      - +
      diff --git a/core/src/main/resources/hudson/util/DoubleLaunchChecker/index.properties b/core/src/main/resources/hudson/util/DoubleLaunchChecker/index.properties index 026343b787ecb9d66fdb611c359af652cd50544b..ad97e998b631fe70b5da911a69b94cf43854861b 100644 --- a/core/src/main/resources/hudson/util/DoubleLaunchChecker/index.properties +++ b/core/src/main/resources/hudson/util/DoubleLaunchChecker/index.properties @@ -24,4 +24,5 @@ message=\ Hudson detected that you appear to be running more than one \ instance of Hudson that share the same home directory ''{0}''. \ This greatly confuses Hudson and you will likely experience \ - strange behaviors, so please correct the situation. \ No newline at end of file + strange behaviors, so please correct the situation. +label=Ignore this problem and keep using Hudson anyway \ No newline at end of file diff --git a/core/src/main/resources/hudson/util/DoubleLaunchChecker/index_da.properties b/core/src/main/resources/hudson/util/DoubleLaunchChecker/index_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..c821ee1b955bcd754825f160c37630ece0817cae --- /dev/null +++ b/core/src/main/resources/hudson/util/DoubleLaunchChecker/index_da.properties @@ -0,0 +1,29 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +This\ Hudson=Denne Hudson +Other\ Hudson=Anden Hudson +message=Hudson har opdaget at du k\u00f8rer mere end en instans \ +af Hudson der deler samme direktorie ''{0}''. \ +Dette forvirrer Hudson p\u00e5 det groveste, v\u00e6r venlig at rette op p\u00e5 situationen. +Error=Ignorer dette problem og bliv ved med at bruge Hudson alligevel +label=etiketter diff --git a/core/src/main/resources/hudson/util/DoubleLaunchChecker/index_de.properties b/core/src/main/resources/hudson/util/DoubleLaunchChecker/index_de.properties index 319499f24e4899dac995d78f71e59b17770d835c..f1343128cdbd459efa3acd3c321ce7c15379f774 100644 --- a/core/src/main/resources/hudson/util/DoubleLaunchChecker/index_de.properties +++ b/core/src/main/resources/hudson/util/DoubleLaunchChecker/index_de.properties @@ -28,3 +28,4 @@ message=\ Bitte beheben Sie diese Situation. This\ Hudson=Diese Hudson-Instanz Other\ Hudson=Die andere Hudson-Instanz +label=Problem ignorieren und Hudson trotzdem weiter verwenden diff --git a/core/src/main/resources/hudson/util/DoubleLaunchChecker/index_es.properties b/core/src/main/resources/hudson/util/DoubleLaunchChecker/index_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..8ff5647fba0591849f698387a804e06f1f09ec2a --- /dev/null +++ b/core/src/main/resources/hudson/util/DoubleLaunchChecker/index_es.properties @@ -0,0 +1,30 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +message=\ + Se ha detectado que hay varias instancias de Hudson arrancadas sobre el mismo directorio ''{0}''. \ + Esto puede provocar resultados inesperados. +label=Ignorar este error y continuar usando Hudson. +Error=Error +This\ Hudson=Este Hudson +Other\ Hudson=Otro Hudson + diff --git a/core/src/main/resources/hudson/util/DoubleLaunchChecker/index_ja.properties b/core/src/main/resources/hudson/util/DoubleLaunchChecker/index_ja.properties index b692a158f959dd9d4cc13f4bac9fd1af7a346fbd..ff5df0fb8c9fac878bc7e9f1770efdda6a2df09f 100644 --- a/core/src/main/resources/hudson/util/DoubleLaunchChecker/index_ja.properties +++ b/core/src/main/resources/hudson/util/DoubleLaunchChecker/index_ja.properties @@ -20,7 +20,10 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Error= -message= -This\ Hudson= -Other\ Hudson= +Error=\u30A8\u30E9\u30FC +message=\ + \u540C\u3058\u30DB\u30FC\u30E0\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA ''{0}'' \u3092\u5171\u6709\u3059\u308BHudson\u304C\u65E2\u306B\u8D77\u52D5\u3057\u3066\u3044\u308B\u3088\u3046\u3067\u3059\u3002\ + \u3053\u306E\u307E\u307E\u3060\u3068Hudson\u306F\u6DF7\u4E71\u3057\u5909\u306A\u52D5\u4F5C\u3092\u3057\u3066\u3057\u307E\u3044\u307E\u3059\u306E\u3067\u3001\u3059\u3050\u306B\u4FEE\u6B63\u3057\u3066\u304F\u3060\u3055\u3044\u3002 +This\ Hudson=\u3053\u306EHudson +Other\ Hudson=\u4ED6\u306EHudson +label=\u3053\u306E\u554F\u984C\u3092\u7121\u8996\u3057\u3066\u3053\u306E\u307E\u307EHudson\u3092\u4F7F\u7528\u3059\u308B diff --git a/core/src/main/resources/hudson/util/DoubleLaunchChecker/index_pt_BR.properties b/core/src/main/resources/hudson/util/DoubleLaunchChecker/index_pt_BR.properties index bc786c4844d1059824cfbb88e22e740837b194c4..3d567e99d34aa4b341a99c702768e81d08b80e88 100644 --- a/core/src/main/resources/hudson/util/DoubleLaunchChecker/index_pt_BR.properties +++ b/core/src/main/resources/hudson/util/DoubleLaunchChecker/index_pt_BR.properties @@ -28,3 +28,5 @@ message=\ comportamentos estranhos, ent\u00E3o por favor corrija a situa\u00E7\u00E3o. This\ Hudson=Este Hudson Other\ Hudson=Outro Hudson +# Ignore this problem and keep using Hudson anyway +label= diff --git a/core/src/main/resources/hudson/util/HudsonFailedToLoad/index_da.properties b/core/src/main/resources/hudson/util/HudsonFailedToLoad/index_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..4eac59f5b25fd200c7e85fd9ddcea0c94a034c88 --- /dev/null +++ b/core/src/main/resources/hudson/util/HudsonFailedToLoad/index_da.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Error=Fejl diff --git a/core/src/main/resources/hudson/util/HudsonFailedToLoad/index_de.properties b/core/src/main/resources/hudson/util/HudsonFailedToLoad/index_de.properties index 1f711f48f7b6f4ca182b3fba43904d86532948a4..292e612febb63c3596a3eb2f5c7822716425e19d 100644 --- a/core/src/main/resources/hudson/util/HudsonFailedToLoad/index_de.properties +++ b/core/src/main/resources/hudson/util/HudsonFailedToLoad/index_de.properties @@ -20,4 +20,4 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Error=Fehler +Error=Fehler diff --git a/core/src/main/resources/hudson/util/HudsonFailedToLoad/index_es.properties b/core/src/main/resources/hudson/util/HudsonFailedToLoad/index_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..57c3dc376beaf9755fa9a52afa23edc2ba6123c8 --- /dev/null +++ b/core/src/main/resources/hudson/util/HudsonFailedToLoad/index_es.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Error=Error diff --git a/core/src/main/resources/hudson/util/HudsonFailedToLoad/index_fr.properties b/core/src/main/resources/hudson/util/HudsonFailedToLoad/index_fr.properties index 259d5bb7f9f6486d3e03bd000130bb4251ec8e08..fcd8322629290fcdbe963fafc2f196d3c9bc75ce 100644 --- a/core/src/main/resources/hudson/util/HudsonFailedToLoad/index_fr.properties +++ b/core/src/main/resources/hudson/util/HudsonFailedToLoad/index_fr.properties @@ -20,4 +20,4 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Error=Erreur +Error=Erreur diff --git a/core/src/main/resources/hudson/util/HudsonFailedToLoad/index_ja.properties b/core/src/main/resources/hudson/util/HudsonFailedToLoad/index_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..cf3570ef1bc29edd294da951be540e392db4fc8f --- /dev/null +++ b/core/src/main/resources/hudson/util/HudsonFailedToLoad/index_ja.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Error=\u30A8\u30E9\u30FC diff --git a/core/src/main/resources/hudson/util/HudsonFailedToLoad/index_nl.properties b/core/src/main/resources/hudson/util/HudsonFailedToLoad/index_nl.properties index 04cb65a00a5f8d68e571374923960ee767ebb9a6..fdd1fb958ed80e4395622ccb4342e8954336de7f 100644 --- a/core/src/main/resources/hudson/util/HudsonFailedToLoad/index_nl.properties +++ b/core/src/main/resources/hudson/util/HudsonFailedToLoad/index_nl.properties @@ -20,4 +20,4 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Error=Fout +Error=Fout diff --git a/core/src/main/resources/hudson/util/HudsonFailedToLoad/index_pt_BR.properties b/core/src/main/resources/hudson/util/HudsonFailedToLoad/index_pt_BR.properties index 6fc92c784f6ed0104c31c7eab32c1d2068ada1a7..3d17b2afe78024898d1982ad401c59c530db298a 100644 --- a/core/src/main/resources/hudson/util/HudsonFailedToLoad/index_pt_BR.properties +++ b/core/src/main/resources/hudson/util/HudsonFailedToLoad/index_pt_BR.properties @@ -20,4 +20,4 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Error=Erro +Error=Erro diff --git a/core/src/main/resources/hudson/util/HudsonFailedToLoad/index_tr.properties b/core/src/main/resources/hudson/util/HudsonFailedToLoad/index_tr.properties index 8c0d10bf6353c7354e22af3319b89d2903335a5e..acb4ea72d008745852981852047c7db6ece4baf4 100644 --- a/core/src/main/resources/hudson/util/HudsonFailedToLoad/index_tr.properties +++ b/core/src/main/resources/hudson/util/HudsonFailedToLoad/index_tr.properties @@ -20,4 +20,4 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Error=Hata +Error=Hata diff --git a/core/src/main/resources/hudson/util/HudsonIsLoading/index.jelly b/core/src/main/resources/hudson/util/HudsonIsLoading/index.jelly index 5e0e186c12d27e1b5096bf2ef4ebd18773a17242..65c55de1a3d17bfe1613696070ad4868bd5cae5e 100644 --- a/core/src/main/resources/hudson/util/HudsonIsLoading/index.jelly +++ b/core/src/main/resources/hudson/util/HudsonIsLoading/index.jelly @@ -24,8 +24,8 @@ THE SOFTWARE. - - + + @@ -33,11 +33,11 @@ THE SOFTWARE.

      ${%Please wait while Hudson is getting ready to work}...

      -

      +

      ${%Your browser will reload automatically when Hudson is ready.}

      - +
      \ No newline at end of file diff --git a/core/src/main/resources/hudson/util/HudsonIsLoading/index_da.properties b/core/src/main/resources/hudson/util/HudsonIsLoading/index_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..5bbc30647016ac775eea2fe61e8855ec142d515b --- /dev/null +++ b/core/src/main/resources/hudson/util/HudsonIsLoading/index_da.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Your\ browser\ will\ reload\ automatically\ when\ Hudson\ is\ ready.=Din browser vil genindl\u00e6se siden automatisk n\u00e5r Hudson er klar. +Please\ wait\ while\ Hudson\ is\ getting\ ready\ to\ work=Vent venligst imens Hudson g\u00f8r klar til at arbejde diff --git a/core/src/main/resources/hudson/util/HudsonIsLoading/index_es.properties b/core/src/main/resources/hudson/util/HudsonIsLoading/index_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..01da041e0d00a8e70958447deea315eceb0e511e --- /dev/null +++ b/core/src/main/resources/hudson/util/HudsonIsLoading/index_es.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Please\ wait\ while\ Hudson\ is\ getting\ ready\ to\ work=Por favor espera hasta que Hudson esté listo. +Your\ browser\ will\ reload\ automatically\ when\ Hudson\ is\ ready.=Su navegador recargará automáticamente esta página cuando Hudson esté listo. diff --git a/core/src/main/resources/hudson/util/HudsonIsLoading/index_ja.properties b/core/src/main/resources/hudson/util/HudsonIsLoading/index_ja.properties index bb81ccb59a58edbe779e51a88a593ccbe2e49820..51b69c6c85d6df51977092ac080c8c974dfa7e18 100644 --- a/core/src/main/resources/hudson/util/HudsonIsLoading/index_ja.properties +++ b/core/src/main/resources/hudson/util/HudsonIsLoading/index_ja.properties @@ -1,6 +1,6 @@ # The MIT License # -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:cactusman +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:cactusman, Seiji Sogabe # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -21,6 +21,6 @@ # THE SOFTWARE. Please\ wait\ while\ Hudson\ is\ getting\ ready\ to\ work=\ - Hudson\u304c\u6e96\u5099\u3092\u3057\u3066\u3044\u308b\u9593\u3001\u304a\u5f85\u3061\u304f\u3060\u3055\u3044 + Hudson\u306E\u6E96\u5099\u304C\u3067\u304D\u308B\u307E\u3067\u3001\u304A\u5F85\u3061\u304F\u3060\u3055\u3044\u3002 Your\ browser\ will\ reload\ automatically\ when\ Hudson\ is\ ready.=\ - Hudson\u306e\u6e96\u5099\u304c\u3067\u304d\u3066\u3044\u308b\u5834\u5408\u3001\u30d6\u30e9\u30a6\u30b6\u306f\u81ea\u52d5\u7684\u306b\u30ea\u30ed\u30fc\u30c9\u3055\u308c\u307e\u3059\u3002 \ No newline at end of file + Hudson\u306E\u6E96\u5099\u304C\u5B8C\u4E86\u3059\u308B\u3068\u3001\u30D6\u30E9\u30A6\u30B6\u306F\u81EA\u52D5\u7684\u306B\u30EA\u30ED\u30FC\u30C9\u3055\u308C\u307E\u3059\u3002 \ No newline at end of file diff --git a/core/src/main/resources/hudson/util/HudsonIsLoading/index_lt.properties b/core/src/main/resources/hudson/util/HudsonIsLoading/index_lt.properties new file mode 100644 index 0000000000000000000000000000000000000000..c5c23bb4916d1c3c0e97f6e582d1db1dceec4967 --- /dev/null +++ b/core/src/main/resources/hudson/util/HudsonIsLoading/index_lt.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Please\ wait\ while\ Hudson\ is\ getting\ ready\ to\ work=\u012Ejungti automatin\u012F atnaujinim\u0105 +Your\ browser\ will\ reload\ automatically\ when\ Hudson\ is\ ready.=Nauja u\u017Eduotis diff --git a/core/src/main/resources/hudson/util/HudsonIsRestarting/index.jelly b/core/src/main/resources/hudson/util/HudsonIsRestarting/index.jelly index 866df6baefac63e07b752e0493ef789f3193ddf9..b72bea848296f5bc62b9902d6643e41c02d3433a 100644 --- a/core/src/main/resources/hudson/util/HudsonIsRestarting/index.jelly +++ b/core/src/main/resources/hudson/util/HudsonIsRestarting/index.jelly @@ -37,7 +37,7 @@ THE SOFTWARE. ${%Your browser will reload automatically when Hudson is ready.}

      - + \ No newline at end of file diff --git a/core/src/main/resources/hudson/util/HudsonIsRestarting/index_da.properties b/core/src/main/resources/hudson/util/HudsonIsRestarting/index_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..b4de58c8b6aeabca7137355bfb51d2c394d9ab1b --- /dev/null +++ b/core/src/main/resources/hudson/util/HudsonIsRestarting/index_da.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Your\ browser\ will\ reload\ automatically\ when\ Hudson\ is\ ready.=Din browser vil genindl\u00e6se siden automatisk n\u00e5r Hudson er klar. +Please\ wait\ while\ Hudson\ is\ restarting=Vent venligst imens Hudson genstarter diff --git a/core/src/main/resources/hudson/util/HudsonIsRestarting/index_de.properties b/core/src/main/resources/hudson/util/HudsonIsRestarting/index_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..85f68ce7d863e2e130a3dacb2b9c7f2c79d2d0cb --- /dev/null +++ b/core/src/main/resources/hudson/util/HudsonIsRestarting/index_de.properties @@ -0,0 +1,2 @@ +Please\ wait\ while\ Hudson\ is\ restarting=Hudson wird neu gestartet. Bitte warten +Your\ browser\ will\ reload\ automatically\ when\ Hudson\ is\ ready.=Der Webbrowser wird diese Seite automatisch neu laden, sobald Hudson hochgefahren ist. diff --git a/core/src/main/resources/hudson/util/HudsonIsRestarting/index_es.properties b/core/src/main/resources/hudson/util/HudsonIsRestarting/index_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..4384b4c403b53c0d925d937a845f547792bfeb5b --- /dev/null +++ b/core/src/main/resources/hudson/util/HudsonIsRestarting/index_es.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Please\ wait\ while\ Hudson\ is\ restarting=Por favor espera hasta que hudson acabe de reiniciarse. +Your\ browser\ will\ reload\ automatically\ when\ Hudson\ is\ ready.=Su navegador recargará esta página cuando Hudson esté listo. diff --git a/core/src/main/resources/hudson/util/HudsonIsRestarting/index_fr.properties b/core/src/main/resources/hudson/util/HudsonIsRestarting/index_fr.properties index e68ad4234f1af30e44af04b0d9a9f58f0a6e4acc..37de5dd39931a4987e428d17ea1efad0795e103e 100644 --- a/core/src/main/resources/hudson/util/HudsonIsRestarting/index_fr.properties +++ b/core/src/main/resources/hudson/util/HudsonIsRestarting/index_fr.properties @@ -20,5 +20,5 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Please\ wait\ while\ Hudson\ is\ restarting=Veuillez attendre pendant que Hudson se relance -Your\ browser\ will\ reload\ automatically\ when\ Hudson\ is\ ready.=Votre navigateur se connectera automatiquement quand Hudsons sera prêt +Please\ wait\ while\ Hudson\ is\ restarting=Veuillez attendre pendant que Hudson se relance +Your\ browser\ will\ reload\ automatically\ when\ Hudson\ is\ ready.=Votre navigateur se connectera automatiquement quand Hudsons sera prêt diff --git a/core/src/main/resources/hudson/util/HudsonIsRestarting/index_ja.properties b/core/src/main/resources/hudson/util/HudsonIsRestarting/index_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..8d1575fca41cfe9be86944fa569594eb19c7532d --- /dev/null +++ b/core/src/main/resources/hudson/util/HudsonIsRestarting/index_ja.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:cactusman, Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Please\ wait\ while\ Hudson\ is\ restarting=\ + Hudson\u304C\u518D\u8D77\u52D5\u3059\u308B\u307E\u3067\u3057\u3070\u3089\u304F\u304A\u5F85\u3061\u304F\u3060\u3055\u3044 +Your\ browser\ will\ reload\ automatically\ when\ Hudson\ is\ ready.=\ + Hudson\u306E\u6E96\u5099\u304C\u5B8C\u4E86\u3059\u308B\u3068\u3001\u30D6\u30E9\u30A6\u30B6\u306F\u81EA\u52D5\u7684\u306B\u30EA\u30ED\u30FC\u30C9\u3055\u308C\u307E\u3059\u3002 \ No newline at end of file diff --git a/core/src/main/resources/hudson/util/HudsonIsRestarting/index_nl.properties b/core/src/main/resources/hudson/util/HudsonIsRestarting/index_nl.properties index 970b04e9a065cdab5d2dc400e3775c505bb6ed1e..e115168622ae3ce68873d87d421fe1f79eef3b9d 100644 --- a/core/src/main/resources/hudson/util/HudsonIsRestarting/index_nl.properties +++ b/core/src/main/resources/hudson/util/HudsonIsRestarting/index_nl.properties @@ -20,5 +20,5 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Please\ wait\ while\ Hudson\ is\ restarting=Hudson wordt herstart. Gelieve even te wachten. -Your\ browser\ will\ reload\ automatically\ when\ Hudson\ is\ ready.=Uw browser zal uw vraag automatisch herbehandelen wanneer Hudson volledig opgestart is. +Please\ wait\ while\ Hudson\ is\ restarting=Hudson wordt herstart. Gelieve even te wachten. +Your\ browser\ will\ reload\ automatically\ when\ Hudson\ is\ ready.=Uw browser zal uw vraag automatisch herbehandelen wanneer Hudson volledig opgestart is. diff --git a/core/src/main/resources/hudson/util/HudsonIsRestarting/index_pt_BR.properties b/core/src/main/resources/hudson/util/HudsonIsRestarting/index_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..61b30e75456dd9b39391aec3469ba67e45b1e4ab --- /dev/null +++ b/core/src/main/resources/hudson/util/HudsonIsRestarting/index_pt_BR.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Please\ wait\ while\ Hudson\ is\ restarting= +Your\ browser\ will\ reload\ automatically\ when\ Hudson\ is\ ready.=Seu browser recarregar\u00E1 automaticamente quando o Hudson estiver pronto. diff --git a/core/src/main/resources/hudson/util/IncompatibleAntVersionDetected/index_da.properties b/core/src/main/resources/hudson/util/IncompatibleAntVersionDetected/index_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..de56ca60afcf37fea3d9ab24a32387d292b66687 --- /dev/null +++ b/core/src/main/resources/hudson/util/IncompatibleAntVersionDetected/index_da.properties @@ -0,0 +1,27 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +errorMessage=Din servlet container indl\u00e6ser en \u00e6ldre version af Ant, hvilket forhindrer Hudson \ +i at indl\u00e6se sin egen nyere Ant version. \ (Ant klasser indl\u00e6ses fra {0})
      \ +M\u00e5ske kan du tilsides\u00e6tte Antversionen i din container ved at kopiere Ant fra Hudson''s WEB-INF/lib, \ +eller du kan eventuelt s\u00e6tte classloader delegation til child-first, s\u00e5 Hudson ser sin egen kopi f\u00f8rst? +Error=Fejl diff --git a/core/src/main/resources/hudson/util/IncompatibleAntVersionDetected/index_de.properties b/core/src/main/resources/hudson/util/IncompatibleAntVersionDetected/index_de.properties index 7165278d4d38a3dd835225a9f0aa9d33bb716dcd..0c2b08d78e965f2f3a29174d76c12831d55f7f3e 100644 --- a/core/src/main/resources/hudson/util/IncompatibleAntVersionDetected/index_de.properties +++ b/core/src/main/resources/hudson/util/IncompatibleAntVersionDetected/index_de.properties @@ -22,7 +22,7 @@ Error=Fehler errorMessage=\ - Ihr Serlvet-Container lädt selbst eine ältere Version von Ant und hindert damit \ + Ihr Servlet-Container lädt selbst eine ältere Version von Ant und hindert damit \ Hudson daran, seine eigene, neuere Version zu verwenden \ (Ant Klassen werden aus {0} geladen).
      \ Eventuell können Sie die Ant-Version Ihres Containers mit einer Version aus \ diff --git a/core/src/main/resources/hudson/util/IncompatibleAntVersionDetected/index_es.properties b/core/src/main/resources/hudson/util/IncompatibleAntVersionDetected/index_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..4f3715608df89b27866f2f693397a28a7491ea57 --- /dev/null +++ b/core/src/main/resources/hudson/util/IncompatibleAntVersionDetected/index_es.properties @@ -0,0 +1,29 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +errorMessage=\ + Se ha detectado que tu ''contenedor de servlets'' utiliza una versión antigua de Ant,\ + (Ant se está cargando desde {0})
      \ + Es posible que puedas configurar tu contenedor para usar una nueva version de ant, poniéndola en el directorio WEB-INF/lib, \ + o modificar el orden de carga de clases configurando como child-first. +Error=Error + diff --git a/core/src/main/resources/hudson/util/IncompatibleAntVersionDetected/index_ja.properties b/core/src/main/resources/hudson/util/IncompatibleAntVersionDetected/index_ja.properties index 309d2e4cc0d099d9eeacc1053b8306938c67bfd5..29c15b078d90cc72739140eb7d4ea37d047d42fc 100644 --- a/core/src/main/resources/hudson/util/IncompatibleAntVersionDetected/index_ja.properties +++ b/core/src/main/resources/hudson/util/IncompatibleAntVersionDetected/index_ja.properties @@ -20,5 +20,10 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Error= -errorMessage= +Error=\u30A8\u30E9\u30FC +errorMessage=\ + \u30B5\u30FC\u30D6\u30EC\u30C3\u30C8\u30B3\u30F3\u30C6\u30CA\u30FC\u304C\u63D0\u4F9B\u3059\u308B\u53E4\u3044\u30D0\u30FC\u30B8\u30E7\u30F3\u306EAnt\u3092\u30ED\u30FC\u30C9\u3057\u3066\u3044\u308B\u3088\u3046\u3067\u3059\u3002\ + \u305D\u306E\u7D50\u679C\u3001Hudson\u306E\u65B0\u3057\u3044\u30D0\u30FC\u30B8\u30E7\u30F3\u306EAnt\u3092\u30ED\u30FC\u30C9\u3067\u304D\u307E\u305B\u3093\u3002\ + (Ant\u3092{0}\u304B\u3089\u30ED\u30FC\u30C9\u3057\u3066\u3044\u307E\u3059\u3002)
      \ + Hudson\u306EWEB-INF/lin\u306EAnt\u3067\u30B3\u30F3\u30C6\u30CA\u30FC\u306EAnt\u3092\u4E0A\u66F8\u304D\u3059\u308B\u304B\u3001\ + Hudson\u306EAnt\u3092\u6700\u521D\u306B\u30ED\u30FC\u30C9\u3067\u304D\u308B\u3088\u3046\u306B\u3001\u30AF\u30E9\u30B9\u30ED\u30FC\u30C0\u30FC\u3092\u5909\u66F4\u3057\u3066\u304F\u3060\u3055\u3044\u3002 diff --git a/core/src/main/resources/hudson/util/IncompatibleServletVersionDetected/index_da.properties b/core/src/main/resources/hudson/util/IncompatibleServletVersionDetected/index_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..65937077362f89ef693991de843f406be70dc2d6 --- /dev/null +++ b/core/src/main/resources/hudson/util/IncompatibleServletVersionDetected/index_da.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +errorMessage=Vi har opdaget at din servlet container ikke underst\u00f8tter Servlet 2.4 \ +(servlet API indl\u00e6ses fra {0}) +Error=Fejl diff --git a/core/src/main/resources/hudson/util/IncompatibleServletVersionDetected/index_es.properties b/core/src/main/resources/hudson/util/IncompatibleServletVersionDetected/index_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..b4ae5fa955e673c86c8a233e39c07d3d6e787d59 --- /dev/null +++ b/core/src/main/resources/hudson/util/IncompatibleServletVersionDetected/index_es.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +errorMessage=\ + Se ha detectado que el contenedor no soporta ''Servlet 2.4'' \ + Información: el API de servlet se ha cargado de {0}. +Error=Error diff --git a/core/src/main/resources/hudson/util/IncompatibleServletVersionDetected/index_ja.properties b/core/src/main/resources/hudson/util/IncompatibleServletVersionDetected/index_ja.properties index 309d2e4cc0d099d9eeacc1053b8306938c67bfd5..fc075d5564edf684776e33e28a26fe1a5b6d36b5 100644 --- a/core/src/main/resources/hudson/util/IncompatibleServletVersionDetected/index_ja.properties +++ b/core/src/main/resources/hudson/util/IncompatibleServletVersionDetected/index_ja.properties @@ -20,5 +20,7 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Error= -errorMessage= +Error=\u30A8\u30E9\u30FC +errorMessage=\ + \u30B5\u30FC\u30D6\u30EC\u30C3\u30C8\u30B3\u30F3\u30C6\u30CA\u30FC\u304CServlet\u4ED5\u69D8 2.4\u3092\u30B5\u30DD\u30FC\u30C8\u3057\u3066\u3044\u306A\u3044\u3088\u3046\u3067\u3059\u3002\ + ({0}\u304B\u3089\u30B5\u30FC\u30D6\u30EC\u30C3\u30C8API\u306F{0}\u304B\u3089\u30ED\u30FC\u30C9\u3055\u308C\u3066\u3044\u307E\u3059\u3002) diff --git a/core/src/main/resources/hudson/util/IncompatibleVMDetected/index.jelly b/core/src/main/resources/hudson/util/IncompatibleVMDetected/index.jelly index 9c177e7f9f448793813c9fb078772cfb57e1ca40..f98de26ad4746ff2d257ad8bfe57dc8d33516c65 100644 --- a/core/src/main/resources/hudson/util/IncompatibleVMDetected/index.jelly +++ b/core/src/main/resources/hudson/util/IncompatibleVMDetected/index.jelly @@ -27,30 +27,28 @@ THE SOFTWARE. -

      [!]Error

      +

      [!]${%Error}

      - We detected that your JVM is not supported by Hudson. This is - due to the limitation is one of the libraries that Hudson uses, namely XStream. - See this FAQ for more details. + ${%errorMessage}

      -

      Detected JVM

      +

      ${%Detected JVM}

      - + - + - + - +
      Vendor${%Vendor} : ${prop['java.vm.vendor']}
      Version${%Version} : ${prop['java.vm.version']}
      VM Name${%VM Name} : ${prop['java.vm.name']}
      OS Name${%OS Name} : ${prop['os.name']}
      diff --git a/core/src/main/resources/hudson/util/IncompatibleVMDetected/index.properties b/core/src/main/resources/hudson/util/IncompatibleVMDetected/index.properties new file mode 100644 index 0000000000000000000000000000000000000000..64656a701de27c99d33ae7c837eeff265543ed4d --- /dev/null +++ b/core/src/main/resources/hudson/util/IncompatibleVMDetected/index.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +errorMessage=\ + We detected that your JVM is not supported by Hudson. \ + This is due to the limitation is one of the libraries that Hudson uses, namely XStream. \ + See this FAQ for more details. diff --git a/core/src/main/resources/hudson/util/IncompatibleVMDetected/index_da.properties b/core/src/main/resources/hudson/util/IncompatibleVMDetected/index_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..c2e1ce85d116570600958ab4eaf34177aeeab4ae --- /dev/null +++ b/core/src/main/resources/hudson/util/IncompatibleVMDetected/index_da.properties @@ -0,0 +1,30 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Detected\ JVM=Genkendt JVM +errorMessage=Vi har opdaget at din JVM ikke underst\u00f8ttes af Hudson. \ +Dette skyldes begr\u00e6nsninger i et af de biblioteker Hudson bruger, navnlig XStream. \ +Version=Version +OS\ Name=OS Navn +VM\ Name=VM Navn +Error=Fejl +Vendor=Udbyder diff --git a/core/src/main/resources/hudson/util/IncompatibleVMDetected/index_de.properties b/core/src/main/resources/hudson/util/IncompatibleVMDetected/index_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..07f9e5aaaa1048a7d716f8824ce01a1c83afa9b3 --- /dev/null +++ b/core/src/main/resources/hudson/util/IncompatibleVMDetected/index_de.properties @@ -0,0 +1,33 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe, Simon Wiest +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Error=Fehler +OS\ Name=Betriebssystem +VM\ Name=VM Name +Vendor=Hersteller +Version=Version +Detected\ JVM=Gefundene JVM +errorMessage=\ + Die gefundene Java Virtual Machine (JVM) wird von Hudson nicht unterstützt. \ + Hudson ist auf die Bibliothek XStream angewiesen, welche aber nicht mit der \ + gefundenen JVM funktioniert. \ + Mehr dazu... diff --git a/core/src/main/resources/hudson/util/IncompatibleVMDetected/index_es.properties b/core/src/main/resources/hudson/util/IncompatibleVMDetected/index_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..4a3df0facb63adb7fc4751587f3f9ce8d84cc85f --- /dev/null +++ b/core/src/main/resources/hudson/util/IncompatibleVMDetected/index_es.properties @@ -0,0 +1,32 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +errorMessage=\ + Se ha detectado que tu versión de java no está soportada por Hudson.\ + Echa un vistazo a esta FAQ para mas detalles. +Error=Error +VM\ Name=Nombre de la máquina virtual +Version=Versión +Detected\ JVM=JVM detectada +OS\ Name=Nombre del SO +Vendor=Fabricante + diff --git a/core/src/main/resources/hudson/util/IncompatibleVMDetected/index_ja.properties b/core/src/main/resources/hudson/util/IncompatibleVMDetected/index_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..42efe9a6eeb58a1e3c5c67876a65fe36008e5ce1 --- /dev/null +++ b/core/src/main/resources/hudson/util/IncompatibleVMDetected/index_ja.properties @@ -0,0 +1,32 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Error=\u30A8\u30E9\u30FC +errorMessage=\ + Hudson\u304C\u30B5\u30DD\u30FC\u30C8\u3057\u3066\u3044\u306A\u3044JVM\u304C\u4F7F\u308F\u308C\u3066\u3044\u308B\u3088\u3046\u3067\u3059\u3002\ + \u3053\u306E\u5236\u9650\u306F\u3001Hudson\u304C\u4F7F\u7528\u3057\u3066\u3044\u308BXStream\u306B\u3088\u308B\u3082\u306E\u3067\u3059\u3002\ + \u8A73\u7D30\u306F\u3001\u3053\u306EFAQ\u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044\u3002 +Detected\ JVM=JVM +Vendor=\u30D9\u30F3\u30C0\u30FC +Version=\u30D0\u30FC\u30B8\u30E7\u30F3 +VM\ Name=VM +OS\ Name=OS diff --git a/core/src/main/resources/hudson/util/IncompatibleVMDetected/index_pt_BR.properties b/core/src/main/resources/hudson/util/IncompatibleVMDetected/index_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..b26121ce15f34ce6878a3c4f374167e2df433484 --- /dev/null +++ b/core/src/main/resources/hudson/util/IncompatibleVMDetected/index_pt_BR.properties @@ -0,0 +1,33 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +VM\ Name= +Detected\ JVM= +# \ +# We detected that your JVM is not supported by Hudson. \ +# This is due to the limitation is one of the libraries that Hudson uses, namely XStream. \ +# See this FAQ for more details. +errorMessage= +Version= +Vendor= +Error=Erro +OS\ Name= diff --git a/core/src/main/resources/hudson/util/InsufficientPermissionDetected/index.jelly b/core/src/main/resources/hudson/util/InsufficientPermissionDetected/index.jelly index c7e9314e150dcb8a496bc5c043abbeaa6d67b30e..e3336113b0954de68d08f746c187246c65d8ae4c 100644 --- a/core/src/main/resources/hudson/util/InsufficientPermissionDetected/index.jelly +++ b/core/src/main/resources/hudson/util/InsufficientPermissionDetected/index.jelly @@ -27,20 +27,13 @@ THE SOFTWARE. -

      [!]Error

      +

      [!]${%Error}

      - We detected that Hudson does not have sufficient permission to run, - as indicated by the stack trace below. Most likely cause of this - problem is that the security manger is on. If that was intended, - you need to grant sufficient permissions for Hudson to run. Otherwise, - or if you have no idea what a security manager is, then the easiest - way to fix the problem is simply to turn the security manager off. -

      - For how to turn off security manager in your container, refer - to Container-specific documentations of Hudson. + ${%errorMessage.1} +

      +

      + ${%errorMessage.2}

      -
      ${it.exceptionTrace}
      diff --git a/core/src/main/resources/hudson/util/InsufficientPermissionDetected/index.properties b/core/src/main/resources/hudson/util/InsufficientPermissionDetected/index.properties new file mode 100644 index 0000000000000000000000000000000000000000..909a2ae37ff35252d6efda6fc10b807c093308dc --- /dev/null +++ b/core/src/main/resources/hudson/util/InsufficientPermissionDetected/index.properties @@ -0,0 +1,33 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +errorMessage.1=\ + We detected that Hudson does not have sufficient permission to run, \ + as indicated by the stack trace below. Most likely cause of this \ + problem is that the security manger is on. If that was intended, \ + you need to grant sufficient permissions for Hudson to run. Otherwise, \ + or if you have no idea what a security manager is, then the easiest \ + way to fix the problem is simply to turn the security manager off. +errorMessage.2=\ + For how to turn off security manager in your container, refer to \ + \ + Container-specific documentations of Hudson. diff --git a/core/src/main/resources/hudson/util/InsufficientPermissionDetected/index_da.properties b/core/src/main/resources/hudson/util/InsufficientPermissionDetected/index_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..33a3751acb18cdce635dc2ea6296bb3c38b41d2a --- /dev/null +++ b/core/src/main/resources/hudson/util/InsufficientPermissionDetected/index_da.properties @@ -0,0 +1,29 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +errorMessage.2=For vejledning i at sl\u00e5 security manager''en fra i din container +errorMessage.1=Hudson har ikke tilstr\u00e6kkeligt med rettigheder til at k\u00f8re, hvilket kan \ +ses af stack trace''en herunder. Dette skyldes formentlig at security manageren \ +er aktiv. Hvis dette er hensigten b\u00f8r du tildele tilstr\u00e6kkeligt med rettigheder til at \ +Hudson kan k\u00f8re. Ellers, eller hvis du ikke ved hvad en security manager er, \ +s\u00e5 er den letteste m\u00e5de at ''rette'' problemet at sl\u00e5 security manager''en helt fra. +Error=Fejl diff --git a/core/src/main/resources/hudson/util/InsufficientPermissionDetected/index_de.properties b/core/src/main/resources/hudson/util/InsufficientPermissionDetected/index_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..27847db314fd99c176557567fba429aaf5bd40a2 --- /dev/null +++ b/core/src/main/resources/hudson/util/InsufficientPermissionDetected/index_de.properties @@ -0,0 +1,33 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Error=Fehler +errorMessage.1=\ + Hudson scheint nicht genügend Ausführungsrechte zu besitzen (vgl. untenstehenden \ + Stacktrace). Eine häufige Ursache dafür ist ein aktivierter Security Manager. \ + Ist dieser absichtlich aktiviert, müssen Sie Hudson ausreichende Ausführungsrechte \ + zuteilen. Falls nicht (oder Sie keinen blassen Schimmer haben, was ein "Security \ + Manager" ist), ist es am Einfachsten, den Security Manager abzuschalten. +errorMessage.2=\ + Wie Sie den Security Manager Ihres Web-Containers abschalten, entnehmen Sie \ + der containerspezifischen \ + Hudson-Dokumentation. diff --git a/core/src/main/resources/hudson/util/InsufficientPermissionDetected/index_es.properties b/core/src/main/resources/hudson/util/InsufficientPermissionDetected/index_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..c98130334c2bda32580b779ed3b00a51dde7cff6 --- /dev/null +++ b/core/src/main/resources/hudson/util/InsufficientPermissionDetected/index_es.properties @@ -0,0 +1,30 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +errorMessage.1=\ + Se ha detectado que Hudson no tiene suficientes permisos para ejecutarse. \ + Probablemente pueda ser que el ''security manager'' de tu contenedor de ''servlet'' esté activado. +errorMessage.2=\ + Echa un vistazo a \ + Container-specific documentations para saber cómo desactivar esta restricción. +Error=Error + diff --git a/core/src/main/resources/hudson/util/InsufficientPermissionDetected/index_ja.properties b/core/src/main/resources/hudson/util/InsufficientPermissionDetected/index_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..f81e4921e4c4dab7fcdadde65e4e070730c57c11 --- /dev/null +++ b/core/src/main/resources/hudson/util/InsufficientPermissionDetected/index_ja.properties @@ -0,0 +1,33 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Error=\u30A8\u30E9\u30FC +errorMessage.1=\ + \u6B21\u306E\u30B9\u30BF\u30C3\u30AF\u30C8\u30EC\u30FC\u30B9\u304C\u793A\u3059\u3088\u3046\u306B\u3001Hudson\u306E\u52D5\u4F5C\u306B\u5FC5\u8981\u306A\u30D1\u30FC\u30DF\u30C3\u30B7\u30E7\u30F3\u304C\u8A2D\u5B9A\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002\ + \u539F\u56E0\u306E1\u3064\u306B\u3001\u30BB\u30AD\u30E5\u30EA\u30C6\u30A3\u30DE\u30CD\u30FC\u30B8\u30E3\u30FC\u304C\u6709\u52B9\u306B\u306A\u3063\u3066\u3044\u308B\u3053\u3068\u304C\u8003\u3048\u3089\u308C\u307E\u3059\u3002\ + \u305D\u308C\u304C\u610F\u56F3\u3057\u305F\u3082\u306E\u3067\u3042\u308B\u306A\u3089\u3001Hudson\u306E\u52D5\u4F5C\u306B\u5FC5\u8981\u306A\u30D1\u30FC\u30DF\u30C3\u30B7\u30E7\u30F3\u3092\u8A2D\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002\ + \u610F\u56F3\u3057\u305F\u3082\u306E\u3067\u306A\u3044\u3001\u3082\u3057\u304F\u306F\u30BB\u30AD\u30E5\u30EA\u30C6\u30A3\u30DE\u30CD\u30FC\u30B8\u30E3\u30FC\u3092\u3069\u3046\u3057\u305F\u3089\u3044\u3044\u304B\u5206\u304B\u3089\u306A\u3044\u5834\u5408\u3001\ + \u30BB\u30AD\u30E5\u30EA\u30C6\u30A3\u30DE\u30CD\u30FC\u30B8\u30E3\u30FC\u3092\u7121\u52B9\u306B\u3057\u3066\u3057\u307E\u3046\u306E\u304C\u4E00\u756A\u7C21\u5358\u3067\u3059\u3002 +errorMessage.2=\ + \u4F7F\u7528\u3057\u3066\u3044\u308B\u30B3\u30F3\u30C6\u30CA\u30FC\u3067\u306E\u30BB\u30AD\u30E5\u30EA\u30C6\u30A3\u30DE\u30CD\u30FC\u30B8\u30E3\u30FC\u306E\u7121\u52B9\u5316\u306E\u65B9\u6CD5 \u306B\u3064\u3044\u3066\u306F\u3001\ + \ + Container-specific documentations\u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044\u3002 diff --git a/core/src/main/resources/hudson/util/InsufficientPermissionDetected/index_pt_BR.properties b/core/src/main/resources/hudson/util/InsufficientPermissionDetected/index_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..1f4700fabf3d8009bf39e9b7afdd18684e4de99e --- /dev/null +++ b/core/src/main/resources/hudson/util/InsufficientPermissionDetected/index_pt_BR.properties @@ -0,0 +1,36 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +# \ +# We detected that Hudson does not have sufficient permission to run, \ +# as indicated by the stack trace below. Most likely cause of this \ +# problem is that the security manger is on. If that was intended, \ +# you need to grant sufficient permissions for Hudson to run. Otherwise, \ +# or if you have no idea what a security manager is, then the easiest \ +# way to fix the problem is simply to turn the security manager off. +errorMessage.1= +Error=Erro +# \ +# For how to turn off security manager in your container, refer to \ +# \ +# Container-specific documentations of Hudson. +errorMessage.2= diff --git a/core/src/main/resources/hudson/util/JNADoublyLoaded/index.jelly b/core/src/main/resources/hudson/util/JNADoublyLoaded/index.jelly new file mode 100644 index 0000000000000000000000000000000000000000..c0f0fc12929dded502bb27521d82f1390435b299 --- /dev/null +++ b/core/src/main/resources/hudson/util/JNADoublyLoaded/index.jelly @@ -0,0 +1,35 @@ + + + + + + + +

      [!]${%Failed to load JNA}

      +

      ${%blurb}

      +
      ${it.stackTrace}
      +
      +
      +
      \ No newline at end of file diff --git a/core/src/main/resources/hudson/util/JNADoublyLoaded/index.properties b/core/src/main/resources/hudson/util/JNADoublyLoaded/index.properties new file mode 100644 index 0000000000000000000000000000000000000000..c47f55631bf6410b8a230552716426932f710f6e --- /dev/null +++ b/core/src/main/resources/hudson/util/JNADoublyLoaded/index.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +blurb=Another instance of JNA is already loaded in another classloader, thereby making it impossible for Hudson \ + to load its own copy. See Wiki for more details. \ No newline at end of file diff --git a/core/src/main/resources/hudson/util/JNADoublyLoaded/index_da.properties b/core/src/main/resources/hudson/util/JNADoublyLoaded/index_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..0d005f5ad8e0d5db99b609b520bb279b20370a68 --- /dev/null +++ b/core/src/main/resources/hudson/util/JNADoublyLoaded/index_da.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +blurb=En anden instans af JNA er allerede indl\u00e6st i en anden classloader, dermed er det umuligt for Hudson +Failed\ to\ load\ JNA=Kunne ikke indl\u00e6se JNA diff --git a/core/src/main/resources/hudson/util/JNADoublyLoaded/index_de.properties b/core/src/main/resources/hudson/util/JNADoublyLoaded/index_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..6f6aca55dfd42385ef8eeb6146450d6d4369d60a --- /dev/null +++ b/core/src/main/resources/hudson/util/JNADoublyLoaded/index_de.properties @@ -0,0 +1,28 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Failed\ to\ load\ JNA=Java Native Access (JNA) konnte nicht geladen werden +blurb=\ + Eine JNA-Instanz wurde bereits von einem anderen Classloader geladen. \ + Dies hindert Hudson daran, seine eigene JNA-Instanz zu laden. \ + Mehr... + diff --git a/core/src/main/resources/hudson/util/JNADoublyLoaded/index_es.properties b/core/src/main/resources/hudson/util/JNADoublyLoaded/index_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..44e5b17f097f553e8110390be137669476b86daf --- /dev/null +++ b/core/src/main/resources/hudson/util/JNADoublyLoaded/index_es.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +blurb=Otra instancia de JNA está en ejecución, echa un vistazo a esta \ + pagina para ver mas detalles. +Failed\ to\ load\ JNA=Fallo al cargar JNA diff --git a/core/src/main/resources/hudson/util/JNADoublyLoaded/index_ja.properties b/core/src/main/resources/hudson/util/JNADoublyLoaded/index_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..eb637aba3da9abf7fcda607b68ce0f2f271e9b3d --- /dev/null +++ b/core/src/main/resources/hudson/util/JNADoublyLoaded/index_ja.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Failed\ to\ load\ JNA=Java Native Access (JNA) \u306E\u30ED\u30FC\u30C9\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002 +blurb=\u5225\u306E\u30AF\u30E9\u30B9\u30ED\u30FC\u30C0\u30FC\u304CJNA\u306E\u30A4\u30F3\u30B9\u30BF\u30F3\u30B9\u3092\u65E2\u306B\u30ED\u30FC\u30C9\u3057\u3066\u3044\u307E\u3059\u3002\u305D\u306E\u305F\u3081\u3001Hudson\u304C\u30ED\u30FC\u30C9\u3059\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u305B\u3093\u3002\ + \u8A73\u7D30\u306F\u3001Wiki\u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044\u3002 diff --git a/core/src/main/resources/hudson/util/JNADoublyLoaded/index_pt_BR.properties b/core/src/main/resources/hudson/util/JNADoublyLoaded/index_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..5644c18ac6f044149375625f8e240ce1635fb92c --- /dev/null +++ b/core/src/main/resources/hudson/util/JNADoublyLoaded/index_pt_BR.properties @@ -0,0 +1,27 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Failed\ to\ load\ JNA= +# Another instance of JNA is already loaded in another classloader, thereby making it impossible for Hudson \ +# to load its own copy. See Wiki for more details. +blurb=\ +# Estes usu\u00E1rios podem se logar no Hudson. Este \u00E9 um super conjunto desta lista, \ diff --git a/core/src/main/resources/hudson/util/Messages.properties b/core/src/main/resources/hudson/util/Messages.properties index bff03ed9727ce714ff103a328b1aa74bab7954b5..2802d5ecf94b7830572d38d15db221e85995fce4 100644 --- a/core/src/main/resources/hudson/util/Messages.properties +++ b/core/src/main/resources/hudson/util/Messages.properties @@ -1,6 +1,6 @@ # The MIT License # -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -23,4 +23,5 @@ ClockDifference.InSync=In sync ClockDifference.Ahead=\ ahead ClockDifference.Behind=\ behind -ClockDifference.Failed=Failed to check \ No newline at end of file +ClockDifference.Failed=Failed to check +FormValidation.ValidateRequired=Required \ No newline at end of file diff --git a/core/src/main/resources/hudson/util/Messages_da.properties b/core/src/main/resources/hudson/util/Messages_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..6ba71ec5afd253ab785ec05044e16ab66282d703 --- /dev/null +++ b/core/src/main/resources/hudson/util/Messages_da.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +ClockDifference.Ahead=foran +ClockDifference.Behind=bagud +ClockDifference.InSync=I Sync +ClockDifference.Failed=Kunne ikke checke diff --git a/core/src/main/resources/hudson/util/Messages_de.properties b/core/src/main/resources/hudson/util/Messages_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..bab93929492fc50ed41f805b03526843b70deb7c --- /dev/null +++ b/core/src/main/resources/hudson/util/Messages_de.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +ClockDifference.InSync=synchron +ClockDifference.Ahead=\ vorgehend +ClockDifference.Behind=\ nachgehend +ClockDifference.Failed=Überprüfung fehlgeschlagen \ No newline at end of file diff --git a/core/src/main/resources/hudson/util/Messages_es.properties b/core/src/main/resources/hudson/util/Messages_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..8f3a14454e2a5171b2cda2c69343bc09b80ac9e5 --- /dev/null +++ b/core/src/main/resources/hudson/util/Messages_es.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +ClockDifference.InSync=Sincronizados +ClockDifference.Ahead=\ adelantado +ClockDifference.Behind=\ retrasado +ClockDifference.Failed=Comprobación fallida diff --git a/core/src/main/resources/hudson/util/Messages_fr.properties b/core/src/main/resources/hudson/util/Messages_fr.properties index 372ed8bc30152432a9e944a580207566c58a4370..876f3e8aadbf4a014906092ae1351d1f151d69c6 100644 --- a/core/src/main/resources/hudson/util/Messages_fr.properties +++ b/core/src/main/resources/hudson/util/Messages_fr.properties @@ -20,7 +20,7 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -ClockDifference.InSync=Synchronisé -ClockDifference.Ahead=\ en avance -ClockDifference.Behind=\ en retard +ClockDifference.InSync=Synchronisé +ClockDifference.Ahead=\ en avance +ClockDifference.Behind=\ en retard ClockDifference.Failed=Impossible à vérifier \ No newline at end of file diff --git a/core/src/main/resources/hudson/util/Messages_ja.properties b/core/src/main/resources/hudson/util/Messages_ja.properties index 2d37a3da1bbb6705eda3f91b831ea218bb9cffb2..206cd971c3685537edd39ab3374157e32d260b40 100644 --- a/core/src/main/resources/hudson/util/Messages_ja.properties +++ b/core/src/main/resources/hudson/util/Messages_ja.properties @@ -1,6 +1,6 @@ # The MIT License # -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -20,7 +20,8 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -ClockDifference.InSync=\u540C\u671F\u4E2D -ClockDifference.Ahead=\ \u9032\u3093\u3067\u3044\u307E\u3059 -ClockDifference.Behind=\ \u9045\u308C\u3066\u3044\u307E\u3059 -ClockDifference.Failed=\u30C1\u30A7\u30C3\u30AF\u306B\u5931\u6557\u3057\u307E\u3057\u305F \ No newline at end of file +ClockDifference.InSync=\u540c\u671f\u4e2d +ClockDifference.Ahead=\ \u9032\u3093\u3067\u3044\u307e\u3059 +ClockDifference.Behind=\ \u9045\u308c\u3066\u3044\u307e\u3059 +ClockDifference.Failed=\u30c1\u30a7\u30c3\u30af\u306b\u5931\u6557\u3057\u307e\u3057\u305f +FormValidation.ValidateRequired=\u5fc5\u9808\u9805\u76ee\u3067\u3059\u3002 \ No newline at end of file diff --git a/core/src/main/resources/hudson/util/Messages_nl.properties b/core/src/main/resources/hudson/util/Messages_nl.properties index 7c5bde0acea0816acf27dc330175ed557f4e3996..4d85d1ca2bab3fac2b779035eca0cec6506b21df 100644 --- a/core/src/main/resources/hudson/util/Messages_nl.properties +++ b/core/src/main/resources/hudson/util/Messages_nl.properties @@ -20,7 +20,7 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -ClockDifference.InSync=Gesynchronizeerd -ClockDifference.Ahead=" loopt voor" -ClockDifference.Behind=" loopt achter" -ClockDifference.Failed=Controle gefaald. +ClockDifference.InSync=Gesynchronizeerd +ClockDifference.Ahead=" loopt voor" +ClockDifference.Behind=" loopt achter" +ClockDifference.Failed=Controle gefaald. diff --git a/core/src/main/resources/hudson/util/Messages_pt_BR.properties b/core/src/main/resources/hudson/util/Messages_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..7f9d31e2bdf17373ca80ca2f1b7cdfb24c36f17b --- /dev/null +++ b/core/src/main/resources/hudson/util/Messages_pt_BR.properties @@ -0,0 +1,30 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +# Failed to check +ClockDifference.Failed= +# \ ahead +ClockDifference.Ahead= +# In sync +ClockDifference.InSync= +# \ behind +ClockDifference.Behind= diff --git a/core/src/main/resources/hudson/util/NoHomeDir/index.jelly b/core/src/main/resources/hudson/util/NoHomeDir/index.jelly index 63f60c93182dae66012e4d85dab8e2471d6f7e0b..7e49b000337554ba15f1b249a9a068debe28e41f 100644 --- a/core/src/main/resources/hudson/util/NoHomeDir/index.jelly +++ b/core/src/main/resources/hudson/util/NoHomeDir/index.jelly @@ -27,13 +27,12 @@ THE SOFTWARE. -

      [!]Error

      +

      [!]${%Error}

      - Unable to create the home directory '${it.home}'. This is most likely a permission problem. -

      - To change the home directory, use HUDSON_HOME environment variable or set the - HUDSON_HOME system property. See - Container-specific documentation for more details of how to do this. + ${%errorMessage.1(it.home)} +

      +

      + ${%errorMessage.2}

      diff --git a/core/src/main/resources/hudson/util/NoHomeDir/index.properties b/core/src/main/resources/hudson/util/NoHomeDir/index.properties new file mode 100644 index 0000000000000000000000000000000000000000..6c6fed57c63f2e3ce25edf4dbc8327b342918827 --- /dev/null +++ b/core/src/main/resources/hudson/util/NoHomeDir/index.properties @@ -0,0 +1,30 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +errorMessage.1=\ + Unable to create the home directory ''{0}''. This is most likely a permission problem. +errorMessage.2=\ + To change the home directory, use HUDSON_HOME environment variable or set the \ + HUDSON_HOME system property. \ + See Container-specific documentation \ + for more details of how to do this. + diff --git a/core/src/main/resources/hudson/util/NoHomeDir/index_da.properties b/core/src/main/resources/hudson/util/NoHomeDir/index_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..66575ba566fc83cff1c6378c4e1a2bdf027f180d --- /dev/null +++ b/core/src/main/resources/hudson/util/NoHomeDir/index_da.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +errorMessage.2=For at \u00e6ndre Hudson''s hjemmedirektorie benyttes HUDSON_HOME milj\u00f8variablen \ +eller s\u00e6t HUDSON_HOME systemegenskaben. +errorMessage.1=Ikke i stand til at oprette hjemmedirektoriet ''{0}''. Dette er h\u00f8jst sandsynligt et rettighedproblem. +Error=Fejl diff --git a/core/src/main/resources/hudson/util/NoHomeDir/index_de.properties b/core/src/main/resources/hudson/util/NoHomeDir/index_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..d65dc61ea1de37f72622a756b6184fe05f557e15 --- /dev/null +++ b/core/src/main/resources/hudson/util/NoHomeDir/index_de.properties @@ -0,0 +1,32 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Error=Fehler +errorMessage.1=\ + Das Stammverzeichnis ''{0}'' konnte nicht angelegt werden. In den meisten Fällen ist \ + dies ein Dateirechte-Problem. +errorMessage.2=\ + Um das Stammverzeichnis zu ändern, verwenden Sie die Umgebungsvariable HUDSON_HOME \ + oder die Java-Systemeigenschaft HUDSON_HOME. Weitere Details entnehmen Sie \ + der containerspezifischen \ + Hudson-Dokumentation. + diff --git a/core/src/main/resources/hudson/util/NoHomeDir/index_es.properties b/core/src/main/resources/hudson/util/NoHomeDir/index_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..84ee47f7011ee48369cc9878a67b7307035cb9fc --- /dev/null +++ b/core/src/main/resources/hudson/util/NoHomeDir/index_es.properties @@ -0,0 +1,29 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +errorMessage.1=\ + No fué posible crear el directorio principal ''{0}''. Normalmente es un problema de permisos. +errorMessage.2=\ + Para cambiar el directorio principal usa la variable de entorno HUDSON_HOME \ + Tienes mas detalles de cómo hacerlo en: Container-specific documentation + +Error=Error diff --git a/core/src/main/resources/hudson/util/NoHomeDir/index_ja.properties b/core/src/main/resources/hudson/util/NoHomeDir/index_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..6059f073751dade1d82e7535829becf8678bbe0d --- /dev/null +++ b/core/src/main/resources/hudson/util/NoHomeDir/index_ja.properties @@ -0,0 +1,32 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Error=\u30A8\u30E9\u30FC +errorMessage.1=\ + \u30DB\u30FC\u30E0\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA ''{0}'' \u3092\u4F5C\u6210\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002\u304A\u305D\u3089\u304F\u30D1\u30FC\u30DF\u30C3\u30B7\u30E7\u30F3\u306E\u554F\u984C\u3067\u3059\u3002 +errorMessage.2=\ + \u30DB\u30FC\u30E0\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3092\u5909\u66F4\u3059\u308B\u306B\u306F\u3001\u74B0\u5883\u5909\u6570\u306EHUDSON_HOME\u304B\u3001\u30B7\u30B9\u30C6\u30E0\u30D7\u30ED\u30D1\u30C6\u30A3\u306E \ + HUDSON_HOME\u3092\u8A2D\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002\ + \u8A2D\u5B9A\u65B9\u6CD5\u306B\u3064\u3044\u3066\u306F\u3001Container-specific documentation \ + \u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044\u3002 + + diff --git a/core/src/main/resources/hudson/util/NoHomeDir/index_pt_BR.properties b/core/src/main/resources/hudson/util/NoHomeDir/index_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..8c29ee8f133ad21dbc307ca2eb3628b0d05d984b --- /dev/null +++ b/core/src/main/resources/hudson/util/NoHomeDir/index_pt_BR.properties @@ -0,0 +1,32 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +# \ +# Unable to create the home directory ''{0}''. This is most likely a permission problem. +#errorMessage.1= +Error=Erro +# \ +# To change the home directory, use HUDSON_HOME environment variable or set the \ +# HUDSON_HOME system property. \ +# See Container-specific documentation \ +# for more details of how to do this. +#errorMessage.2= diff --git a/core/src/main/resources/hudson/util/NoTempDir/index_da.properties b/core/src/main/resources/hudson/util/NoTempDir/index_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..32f620274059ad88cea9a00714bfee42f01ab4ec --- /dev/null +++ b/core/src/main/resources/hudson/util/NoTempDir/index_da.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +description=Ikke i stand til at skrive en temp-fil. Dette skyldes formentlig \ +en fejl i containerens konfiguration. JVM''en ser ud til at benytte "{0}" som \ +midlertidigt direktorie. Findes direktoriet og er det skrivebeskyttet ? +Error=Fejl diff --git a/core/src/main/resources/hudson/util/NoTempDir/index_es.properties b/core/src/main/resources/hudson/util/NoTempDir/index_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..1834b51b53797676e9ed095c3a6e9c41099a6d20 --- /dev/null +++ b/core/src/main/resources/hudson/util/NoTempDir/index_es.properties @@ -0,0 +1,27 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +description=\ + No es posible la creación de ficheros temorales en el sistema. Puede ser una mala configuración del \ + contenedor, o verifique que este directorio existe y se puede escribir: {0} +Error=Error + diff --git a/core/src/main/resources/hudson/util/old-concurrentHashMap.xml b/core/src/main/resources/hudson/util/old-concurrentHashMap.xml new file mode 100644 index 0000000000000000000000000000000000000000..bd0da6e955890c5d0b8af00f758bf6ec3bf0cbb3 --- /dev/null +++ b/core/src/main/resources/hudson/util/old-concurrentHashMap.xml @@ -0,0 +1,225 @@ + + + + + + 15 + 28 + + + + + + 0 + + + + + + + 0.75 + + + + + + 0 + + + + + + + 0.75 + + + + + + 0 + + + + + + + 0.75 + + + + + + 0 + + + + + + + 0.75 + + + + + + 0 + + + + + + + 0.75 + + + + + + 0 + + + + + + + 0.75 + + + + + + 0 + + + + + + + 0.75 + + + + + + 0 + + + + + + + 0.75 + + + + + + 0 + + + + + + + 0.75 + + + + + + 0 + + + + + + + 0.75 + + + + + + 0 + + + + + + + 0.75 + + + + + + 0 + + + + + + + 0.75 + + + + + + 0 + + + + + + + 0.75 + + + + + + 0 + + + + + + + 0.75 + + + + + + 0 + + + + + + + 0.75 + + + + + + 0 + + + + + + + 0.75 + + + + abc + def + + + + + \ No newline at end of file diff --git a/core/src/main/resources/hudson/views/BuildButtonColumn/column.jelly b/core/src/main/resources/hudson/views/BuildButtonColumn/column.jelly index 4dc8f769ec7a478d5b54582522703c956f4556a2..04d0f05789b9cba2cefad03106d8fbfdfa473c25 100644 --- a/core/src/main/resources/hudson/views/BuildButtonColumn/column.jelly +++ b/core/src/main/resources/hudson/views/BuildButtonColumn/column.jelly @@ -1,35 +1,35 @@ - - - - - - - ${%Schedule a build} - - - + + + + + + + ${%Schedule a build} + + + \ No newline at end of file diff --git a/core/src/main/resources/hudson/views/BuildButtonColumn/columnHeader.jelly b/core/src/main/resources/hudson/views/BuildButtonColumn/columnHeader.jelly index 5e3df8808e9903a9bca8c69c9a32e479487af887..927d9a48a4c303c1a763ca1b5123f1ac18ff3973 100644 --- a/core/src/main/resources/hudson/views/BuildButtonColumn/columnHeader.jelly +++ b/core/src/main/resources/hudson/views/BuildButtonColumn/columnHeader.jelly @@ -1,28 +1,28 @@ - - - - - + + + + + \ No newline at end of file diff --git a/core/src/main/resources/hudson/views/BuildButtonColumn/column_ca.properties b/core/src/main/resources/hudson/views/BuildButtonColumn/column_ca.properties new file mode 100644 index 0000000000000000000000000000000000000000..b7db9a8c59350a302b47826590aeb9b1f3576127 --- /dev/null +++ b/core/src/main/resources/hudson/views/BuildButtonColumn/column_ca.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Schedule\ a\ build=Programar una construcci\u00F3 diff --git a/core/src/main/resources/hudson/views/BuildButtonColumn/column_da.properties b/core/src/main/resources/hudson/views/BuildButtonColumn/column_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..30e2e57d3e20dc19e5a832a602a8bd487304174f --- /dev/null +++ b/core/src/main/resources/hudson/views/BuildButtonColumn/column_da.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Schedule\ a\ build=Start et byg diff --git a/core/src/main/resources/hudson/views/BuildButtonColumn/column_de.properties b/core/src/main/resources/hudson/views/BuildButtonColumn/column_de.properties index ba95aa8131997af359d72c082a18e39c690f4f84..85b2e7d12e81feb22b8738ef827d5a531dd1d47d 100644 --- a/core/src/main/resources/hudson/views/BuildButtonColumn/column_de.properties +++ b/core/src/main/resources/hudson/views/BuildButtonColumn/column_de.properties @@ -1,23 +1,23 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest, Martin Eigenbrodt -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Schedule\ a\ build=Build planen +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest, Martin Eigenbrodt +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Schedule\ a\ build=Build planen diff --git a/core/src/main/resources/hudson/views/BuildButtonColumn/column_el.properties b/core/src/main/resources/hudson/views/BuildButtonColumn/column_el.properties new file mode 100644 index 0000000000000000000000000000000000000000..95c8a82cb2e59538cfcdf07708a77ea49acaa916 --- /dev/null +++ b/core/src/main/resources/hudson/views/BuildButtonColumn/column_el.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Schedule\ a\ build=\u0395\u03BA\u03C4\u03AD\u03BB\u03B5\u03C3\u03B7 Build diff --git a/core/src/main/resources/hudson/views/BuildButtonColumn/column_es.properties b/core/src/main/resources/hudson/views/BuildButtonColumn/column_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..3211b8d9461844381483039c5e0bf7bb56499e5e --- /dev/null +++ b/core/src/main/resources/hudson/views/BuildButtonColumn/column_es.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Schedule\ a\ build=Ejecutar diff --git a/core/src/main/resources/hudson/views/BuildButtonColumn/column_fi.properties b/core/src/main/resources/hudson/views/BuildButtonColumn/column_fi.properties new file mode 100644 index 0000000000000000000000000000000000000000..dd1abde67fb664a6670ce684266394757f1394cf --- /dev/null +++ b/core/src/main/resources/hudson/views/BuildButtonColumn/column_fi.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Schedule\ a\ build=Aloita k\u00E4\u00E4nt\u00F6 diff --git a/core/src/main/resources/hudson/views/BuildButtonColumn/column_fr.properties b/core/src/main/resources/hudson/views/BuildButtonColumn/column_fr.properties index 689919e414a4272865f111c5c88d3d0573769cac..bc8ea1ba9f6a0e5da9ac3100e2107017d28f3a33 100644 --- a/core/src/main/resources/hudson/views/BuildButtonColumn/column_fr.properties +++ b/core/src/main/resources/hudson/views/BuildButtonColumn/column_fr.properties @@ -1,23 +1,23 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Eric Lefevre-Ardant, Martin Eigenbrodt -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Schedule\ a\ build=Demander un build +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Eric Lefevre-Ardant, Martin Eigenbrodt +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Schedule\ a\ build=Demander une construction diff --git a/core/src/main/resources/hudson/views/BuildButtonColumn/column_it.properties b/core/src/main/resources/hudson/views/BuildButtonColumn/column_it.properties new file mode 100644 index 0000000000000000000000000000000000000000..eb6a0cee88cc30786a3c3e585a818f505ebe7f4b --- /dev/null +++ b/core/src/main/resources/hudson/views/BuildButtonColumn/column_it.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Schedule\ a\ build=Pianifica un build diff --git a/core/src/main/resources/hudson/views/BuildButtonColumn/column_ja.properties b/core/src/main/resources/hudson/views/BuildButtonColumn/column_ja.properties index 362d1ba9dc523785f69a4615610d5f5873e72ee7..f5b7e013369d121b1a4cf7aa119562955799d42e 100644 --- a/core/src/main/resources/hudson/views/BuildButtonColumn/column_ja.properties +++ b/core/src/main/resources/hudson/views/BuildButtonColumn/column_ja.properties @@ -1,23 +1,23 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe, id:cactusman, Martin Eigenbrodt -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Schedule\ a\ build=\u30D3\u30EB\u30C9\u5B9F\u884C +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe, id:cactusman, Martin Eigenbrodt +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Schedule\ a\ build=\u30D3\u30EB\u30C9\u5B9F\u884C diff --git a/core/src/main/resources/hudson/views/BuildButtonColumn/column_ko.properties b/core/src/main/resources/hudson/views/BuildButtonColumn/column_ko.properties index 8950b296b4a7eaa2e0a7e4a2f59371f0ba6fcb45..46899bbff7c7db676e2f26e139abeb35c513f3dd 100644 --- a/core/src/main/resources/hudson/views/BuildButtonColumn/column_ko.properties +++ b/core/src/main/resources/hudson/views/BuildButtonColumn/column_ko.properties @@ -1,23 +1,23 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Sung Kim, id:cactusman, Martin Eigenbrodt -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Schedule\ a\ build=\uBE4C\uB4DC \uC2E4\uD589 \uC77C\uC815 +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Sung Kim, id:cactusman, Martin Eigenbrodt +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Schedule\ a\ build=\uBE4C\uB4DC \uC989\uC2DC \uC2E4\uD589 diff --git a/core/src/main/resources/hudson/views/BuildButtonColumn/column_nb_NO.properties b/core/src/main/resources/hudson/views/BuildButtonColumn/column_nb_NO.properties new file mode 100644 index 0000000000000000000000000000000000000000..1b20b9a001932d81f207c8f93bef5c679631c4ac --- /dev/null +++ b/core/src/main/resources/hudson/views/BuildButtonColumn/column_nb_NO.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Schedule\ a\ build=Planlegg en bygg diff --git a/core/src/main/resources/hudson/views/BuildButtonColumn/column_nl.properties b/core/src/main/resources/hudson/views/BuildButtonColumn/column_nl.properties index fd6f4839c9e7d3783e82486d9147a02dd41dd1e6..42a61e53429b194f237b996bb496977da45f2081 100644 --- a/core/src/main/resources/hudson/views/BuildButtonColumn/column_nl.properties +++ b/core/src/main/resources/hudson/views/BuildButtonColumn/column_nl.properties @@ -1,23 +1,23 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:sorokh, Martin Eigenbrodt -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Schedule\ a\ build=Start nu een bouwpoging +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:sorokh, Martin Eigenbrodt +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Schedule\ a\ build=Start nu een bouwpoging diff --git a/core/src/main/resources/hudson/views/BuildButtonColumn/column_pt_BR.properties b/core/src/main/resources/hudson/views/BuildButtonColumn/column_pt_BR.properties index b01aaef38396b35bdcd4520d8dc61e778364297b..53e424ad84c4b7423815e6fa1dfd094dabcdcd54 100644 --- a/core/src/main/resources/hudson/views/BuildButtonColumn/column_pt_BR.properties +++ b/core/src/main/resources/hudson/views/BuildButtonColumn/column_pt_BR.properties @@ -1,23 +1,23 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Reginaldo L. Russinholi, Martin Eigenbrodt -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Schedule\ a\ build=Agendar uma constru\u00E7\u00E3o +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Reginaldo L. Russinholi, Martin Eigenbrodt +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Schedule\ a\ build=Agendar uma constru\u00E7\u00E3o diff --git a/core/src/main/resources/hudson/views/BuildButtonColumn/column_pt_PT.properties b/core/src/main/resources/hudson/views/BuildButtonColumn/column_pt_PT.properties new file mode 100644 index 0000000000000000000000000000000000000000..179cc9627950ba7dc668bec69b1808be4fc546af --- /dev/null +++ b/core/src/main/resources/hudson/views/BuildButtonColumn/column_pt_PT.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Schedule\ a\ build=Agendar uma compila\u00E7\u00E3o diff --git a/core/src/main/resources/hudson/views/BuildButtonColumn/column_ru.properties b/core/src/main/resources/hudson/views/BuildButtonColumn/column_ru.properties index 389968a7fd3eac6692c8793bfc9ef027a355f3fe..b08d04ebebb6b2bfb2725d76c343c406c9cfeadc 100644 --- a/core/src/main/resources/hudson/views/BuildButtonColumn/column_ru.properties +++ b/core/src/main/resources/hudson/views/BuildButtonColumn/column_ru.properties @@ -1,23 +1,23 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Mike Salnikov, Martin Eigenbrodt -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Schedule\ a\ build=\u0417\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0441\u0431\u043e\u0440\u043a\u0443 +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Mike Salnikov, Martin Eigenbrodt +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Schedule\ a\ build=\u0417\u0430\u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0441\u0431\u043E\u0440\u043A\u0443 diff --git a/core/src/main/resources/hudson/views/BuildButtonColumn/column_sv_SE.properties b/core/src/main/resources/hudson/views/BuildButtonColumn/column_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..63e8ce52cd37cbf97ae2a8109546f3e713e9cede --- /dev/null +++ b/core/src/main/resources/hudson/views/BuildButtonColumn/column_sv_SE.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Schedule\ a\ build=Schedulera ett bygg diff --git a/core/src/main/resources/hudson/views/BuildButtonColumn/column_tr.properties b/core/src/main/resources/hudson/views/BuildButtonColumn/column_tr.properties index e1708e8bb85bb3f6df32e4fc5ddbe181373611cf..332f18600d987a9dce8f9f4f0bdfa4606cffee73 100644 --- a/core/src/main/resources/hudson/views/BuildButtonColumn/column_tr.properties +++ b/core/src/main/resources/hudson/views/BuildButtonColumn/column_tr.properties @@ -1,23 +1,23 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Oguz Dag, Martin Eigenbrodt -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Schedule\ a\ build=Bir\ yap\u0131land\u0131rma\ planla +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Oguz Dag, Martin Eigenbrodt +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Schedule\ a\ build=Bir\ yap\u0131land\u0131rma\ planla diff --git a/core/src/main/resources/hudson/views/BuildButtonColumn/column_zh_CN.properties b/core/src/main/resources/hudson/views/BuildButtonColumn/column_zh_CN.properties new file mode 100644 index 0000000000000000000000000000000000000000..1c676038a8c24bbce508e29c1f426622be429b27 --- /dev/null +++ b/core/src/main/resources/hudson/views/BuildButtonColumn/column_zh_CN.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Schedule\ a\ build=\u8ba1\u5212\u4e00\u6b21\u6784\u5efa diff --git a/core/src/main/resources/hudson/views/DefaultMyViewsTabBar/myViewTabs.jelly b/core/src/main/resources/hudson/views/DefaultMyViewsTabBar/myViewTabs.jelly new file mode 100644 index 0000000000000000000000000000000000000000..03b90be35a0026f5a28880217644fb9f1ef8c5cc --- /dev/null +++ b/core/src/main/resources/hudson/views/DefaultMyViewsTabBar/myViewTabs.jelly @@ -0,0 +1,36 @@ + + + + + + + + + + + + + diff --git a/core/src/main/resources/hudson/views/DefaultViewsTabBar/viewTabs.jelly b/core/src/main/resources/hudson/views/DefaultViewsTabBar/viewTabs.jelly new file mode 100644 index 0000000000000000000000000000000000000000..03b90be35a0026f5a28880217644fb9f1ef8c5cc --- /dev/null +++ b/core/src/main/resources/hudson/views/DefaultViewsTabBar/viewTabs.jelly @@ -0,0 +1,36 @@ + + + + + + + + + + + + + diff --git a/core/src/main/resources/hudson/views/DefaultViewsTabBar/viewTabs_da.properties b/core/src/main/resources/hudson/views/DefaultViewsTabBar/viewTabs_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..448476e66208b11f89ce109e73b141938a1444a7 --- /dev/null +++ b/core/src/main/resources/hudson/views/DefaultViewsTabBar/viewTabs_da.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +New\ View=Ny visning diff --git a/core/src/main/resources/hudson/views/DefaultViewsTabBar/viewTabs_es.properties b/core/src/main/resources/hudson/views/DefaultViewsTabBar/viewTabs_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..4df3f2f5318f1706a0a4b36d2487930903f5feb8 --- /dev/null +++ b/core/src/main/resources/hudson/views/DefaultViewsTabBar/viewTabs_es.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +New\ View=Nueva vista diff --git a/core/src/main/resources/hudson/views/DefaultViewsTabBar/viewTabs_ja.properties b/core/src/main/resources/hudson/views/DefaultViewsTabBar/viewTabs_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..4a22322c75d8f47f772e5e0d25cbf4894c073c34 --- /dev/null +++ b/core/src/main/resources/hudson/views/DefaultViewsTabBar/viewTabs_ja.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +New\ View=\u65b0\u898f\u30d3\u30e5\u30fc diff --git a/core/src/main/resources/hudson/views/DefaultViewsTabBar/viewTabs_pt_BR.properties b/core/src/main/resources/hudson/views/DefaultViewsTabBar/viewTabs_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..648e82c0c57bfd4084e4846a7f479bcee199a7c4 --- /dev/null +++ b/core/src/main/resources/hudson/views/DefaultViewsTabBar/viewTabs_pt_BR.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +New\ View= diff --git a/core/src/main/resources/hudson/views/JobColumn/column.jelly b/core/src/main/resources/hudson/views/JobColumn/column.jelly index 274f1bae21a7581e239d61c81c1842a7778dd239..01628d6b46120dc96eb13a5385c8024c9b97a052 100644 --- a/core/src/main/resources/hudson/views/JobColumn/column.jelly +++ b/core/src/main/resources/hudson/views/JobColumn/column.jelly @@ -1,29 +1,29 @@ - - - - - ${job.displayName} - + + + + + ${job.displayName} + \ No newline at end of file diff --git a/core/src/main/resources/hudson/views/JobColumn/columnHeader.jelly b/core/src/main/resources/hudson/views/JobColumn/columnHeader.jelly index ce598b913fd2941c572f094a98997e2a2a8234ce..127854f319b2fc65f0aff6fb271e8ae03603b152 100644 --- a/core/src/main/resources/hudson/views/JobColumn/columnHeader.jelly +++ b/core/src/main/resources/hudson/views/JobColumn/columnHeader.jelly @@ -1,27 +1,27 @@ - - - - ${%Job} + + + + ${%Job} \ No newline at end of file diff --git a/core/src/main/resources/hudson/views/JobColumn/columnHeader_ca.properties b/core/src/main/resources/hudson/views/JobColumn/columnHeader_ca.properties new file mode 100644 index 0000000000000000000000000000000000000000..c00cb75c50b536a666bd42ac97cd3b8ceb7a8aa0 --- /dev/null +++ b/core/src/main/resources/hudson/views/JobColumn/columnHeader_ca.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Job=Tasca diff --git a/core/src/main/resources/hudson/views/JobColumn/columnHeader_da.properties b/core/src/main/resources/hudson/views/JobColumn/columnHeader_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..887c28f624cf1a1593c7c406938046d9b27b8d14 --- /dev/null +++ b/core/src/main/resources/hudson/views/JobColumn/columnHeader_da.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Job=Job diff --git a/core/src/main/resources/hudson/views/JobColumn/columnHeader_de.properties b/core/src/main/resources/hudson/views/JobColumn/columnHeader_de.properties index bb00d57abb07a4d9940f0a1880c9bdc093140104..5e43578b9513c453b192ec70db48f77b4f2ca2d7 100644 --- a/core/src/main/resources/hudson/views/JobColumn/columnHeader_de.properties +++ b/core/src/main/resources/hudson/views/JobColumn/columnHeader_de.properties @@ -1,23 +1,23 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest, Martin Eigenbrodt -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Job=Job +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest, Martin Eigenbrodt +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Job=Job diff --git a/core/src/main/resources/hudson/views/JobColumn/columnHeader_el.properties b/core/src/main/resources/hudson/views/JobColumn/columnHeader_el.properties new file mode 100644 index 0000000000000000000000000000000000000000..230e2826f8353abe3336fd3845ba7b2d018add59 --- /dev/null +++ b/core/src/main/resources/hudson/views/JobColumn/columnHeader_el.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Job=\u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1 diff --git a/core/src/main/resources/hudson/views/JobColumn/columnHeader_es.properties b/core/src/main/resources/hudson/views/JobColumn/columnHeader_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..45ba15279e25aa8070bab669c6536d0d6bf7669c --- /dev/null +++ b/core/src/main/resources/hudson/views/JobColumn/columnHeader_es.properties @@ -0,0 +1,24 @@ +### +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Job=Tarea diff --git a/core/src/main/resources/hudson/views/JobColumn/columnHeader_fi.properties b/core/src/main/resources/hudson/views/JobColumn/columnHeader_fi.properties new file mode 100644 index 0000000000000000000000000000000000000000..df6da97bdb07ba9b937329b67992b972547a6902 --- /dev/null +++ b/core/src/main/resources/hudson/views/JobColumn/columnHeader_fi.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Job=Ty\u00F6 diff --git a/core/src/main/resources/hudson/views/JobColumn/columnHeader_fr.properties b/core/src/main/resources/hudson/views/JobColumn/columnHeader_fr.properties index e3b2e0879c798f8dc1e22cda2a5681e52a069123..03a7d263930899c41abd4c0015a7102ce78bcbf0 100644 --- a/core/src/main/resources/hudson/views/JobColumn/columnHeader_fr.properties +++ b/core/src/main/resources/hudson/views/JobColumn/columnHeader_fr.properties @@ -1,23 +1,23 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Eric Lefevre-Ardant, Martin Eigenbrodt -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Job= +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Eric Lefevre-Ardant, Martin Eigenbrodt +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Job=T\u00E2che diff --git a/core/src/main/resources/hudson/views/JobColumn/columnHeader_it.properties b/core/src/main/resources/hudson/views/JobColumn/columnHeader_it.properties new file mode 100644 index 0000000000000000000000000000000000000000..5ccdd236a543f528ae2312c0a396ebfa9192c4d4 --- /dev/null +++ b/core/src/main/resources/hudson/views/JobColumn/columnHeader_it.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Job=Job diff --git a/core/src/main/resources/hudson/views/JobColumn/columnHeader_ja.properties b/core/src/main/resources/hudson/views/JobColumn/columnHeader_ja.properties index 8379b3d39fbb81f41f7d64d0e2d6c8037318c35d..050097de3028c008d602d4c8b77e904c7f4b441e 100644 --- a/core/src/main/resources/hudson/views/JobColumn/columnHeader_ja.properties +++ b/core/src/main/resources/hudson/views/JobColumn/columnHeader_ja.properties @@ -1,23 +1,23 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe, id:cactusman, Martin Eigenbrodt -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Job=\u30B8\u30E7\u30D6 +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe, id:cactusman, Martin Eigenbrodt +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Job=\u30B8\u30E7\u30D6 diff --git a/core/src/main/resources/hudson/views/JobColumn/columnHeader_ko.properties b/core/src/main/resources/hudson/views/JobColumn/columnHeader_ko.properties index b3fec42621a5ff9a1e5c3a9f0b538ebf82698797..ad3b4da4656583fc82740989c3af0b0562231dc3 100644 --- a/core/src/main/resources/hudson/views/JobColumn/columnHeader_ko.properties +++ b/core/src/main/resources/hudson/views/JobColumn/columnHeader_ko.properties @@ -1,23 +1,23 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Sung Kim, id:cactusman, Martin Eigenbrodt -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Job=\uC791\uC5C5 +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Sung Kim, id:cactusman, Martin Eigenbrodt +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Job=\uC791\uC5C5 diff --git a/core/src/main/resources/hudson/views/JobColumn/columnHeader_lt.properties b/core/src/main/resources/hudson/views/JobColumn/columnHeader_lt.properties new file mode 100644 index 0000000000000000000000000000000000000000..12d2e385148c35d1449beb1104f4e89a921a6eaa --- /dev/null +++ b/core/src/main/resources/hudson/views/JobColumn/columnHeader_lt.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Job=U\u017Eduotis diff --git a/core/src/main/resources/hudson/views/JobColumn/columnHeader_nb_NO.properties b/core/src/main/resources/hudson/views/JobColumn/columnHeader_nb_NO.properties new file mode 100644 index 0000000000000000000000000000000000000000..7f293ed089efab0f44f22e30eed61b733186edd6 --- /dev/null +++ b/core/src/main/resources/hudson/views/JobColumn/columnHeader_nb_NO.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Job=Jobb diff --git a/core/src/main/resources/hudson/views/JobColumn/columnHeader_nl.properties b/core/src/main/resources/hudson/views/JobColumn/columnHeader_nl.properties index 026732c56844c3251c11cc3c0b33e322c6203351..f485683fa4bf6aae0ec45029da2490a94a98a863 100644 --- a/core/src/main/resources/hudson/views/JobColumn/columnHeader_nl.properties +++ b/core/src/main/resources/hudson/views/JobColumn/columnHeader_nl.properties @@ -1,23 +1,23 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:sorokh, Martin Eigenbrodt -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Job=Job +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:sorokh, Martin Eigenbrodt +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Job=Taak diff --git a/core/src/main/resources/hudson/views/JobColumn/columnHeader_pt_BR.properties b/core/src/main/resources/hudson/views/JobColumn/columnHeader_pt_BR.properties index fffcf2ae58686d3c16b82d2a83adbbe450ad22c8..87d7f177fc7d96d70f40ceb1eef287085ed4b526 100644 --- a/core/src/main/resources/hudson/views/JobColumn/columnHeader_pt_BR.properties +++ b/core/src/main/resources/hudson/views/JobColumn/columnHeader_pt_BR.properties @@ -1,23 +1,23 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Reginaldo L. Russinholi, Martin Eigenbrodt -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Job=Tarefa +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Reginaldo L. Russinholi, Martin Eigenbrodt +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Job=Tarefa diff --git a/core/src/main/resources/hudson/views/JobColumn/columnHeader_pt_PT.properties b/core/src/main/resources/hudson/views/JobColumn/columnHeader_pt_PT.properties new file mode 100644 index 0000000000000000000000000000000000000000..434d9778fb24dbdf43a131adf48ce9c80d678836 --- /dev/null +++ b/core/src/main/resources/hudson/views/JobColumn/columnHeader_pt_PT.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Job=Processo diff --git a/core/src/main/resources/hudson/views/JobColumn/columnHeader_ru.properties b/core/src/main/resources/hudson/views/JobColumn/columnHeader_ru.properties index b18f78d239fdd9d4d6a51b1531c84707a31015a1..aa9e946aea3f93436f701420d61e62f83b80034a 100644 --- a/core/src/main/resources/hudson/views/JobColumn/columnHeader_ru.properties +++ b/core/src/main/resources/hudson/views/JobColumn/columnHeader_ru.properties @@ -1,23 +1,23 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Mike Salnikov, Martin Eigenbrodt -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Job=\u0417\u0430\u0434\u0430\u0447\u0430 +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Mike Salnikov, Martin Eigenbrodt +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Job=\u0417\u0430\u0434\u0430\u0447\u0430 diff --git a/core/src/main/resources/hudson/views/JobColumn/columnHeader_sv_SE.properties b/core/src/main/resources/hudson/views/JobColumn/columnHeader_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..7f293ed089efab0f44f22e30eed61b733186edd6 --- /dev/null +++ b/core/src/main/resources/hudson/views/JobColumn/columnHeader_sv_SE.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Job=Jobb diff --git a/core/src/main/resources/hudson/views/JobColumn/columnHeader_tr.properties b/core/src/main/resources/hudson/views/JobColumn/columnHeader_tr.properties index aac43e584dac4f11ebdcb43264c9f970060c6ea1..19e2cf68b0fd03903ab6443fa03b93d39edcd460 100644 --- a/core/src/main/resources/hudson/views/JobColumn/columnHeader_tr.properties +++ b/core/src/main/resources/hudson/views/JobColumn/columnHeader_tr.properties @@ -1,23 +1,23 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Oguz Dag, Martin Eigenbrodt -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Job=\u0130\u015f +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Oguz Dag, Martin Eigenbrodt +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Job=\u0130\u015f diff --git a/core/src/main/resources/hudson/views/JobColumn/columnHeader_zh_CN.properties b/core/src/main/resources/hudson/views/JobColumn/columnHeader_zh_CN.properties new file mode 100644 index 0000000000000000000000000000000000000000..c9a9ca9c615ff23523105cdeecbae8fdaa689ebc --- /dev/null +++ b/core/src/main/resources/hudson/views/JobColumn/columnHeader_zh_CN.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Job=\u4EFB\u52A1 diff --git a/core/src/main/resources/hudson/views/JobColumn/columnHeader_zh_TW.properties b/core/src/main/resources/hudson/views/JobColumn/columnHeader_zh_TW.properties new file mode 100644 index 0000000000000000000000000000000000000000..9564d3544d67202cee4e6bbd70ae7c4a972207f8 --- /dev/null +++ b/core/src/main/resources/hudson/views/JobColumn/columnHeader_zh_TW.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Job=\u5DE5\u4EF6 diff --git a/core/src/main/resources/hudson/views/LastDurationColumn/column.jelly b/core/src/main/resources/hudson/views/LastDurationColumn/column.jelly index 1444b07c0bdce326f6997164011b0cf61a28c7b6..89c9573fd289924efb3823fdab8727999dccdd54 100644 --- a/core/src/main/resources/hudson/views/LastDurationColumn/column.jelly +++ b/core/src/main/resources/hudson/views/LastDurationColumn/column.jelly @@ -1,39 +1,39 @@ - - - - - - - ${lsBuild.durationString} - - - ${lfBuild.durationString} - - - ${%N/A} - - - + + + + + + + ${lsBuild.durationString} + + + ${lfBuild.durationString} + + + ${%N/A} + + + \ No newline at end of file diff --git a/core/src/main/resources/hudson/views/LastDurationColumn/columnHeader.jelly b/core/src/main/resources/hudson/views/LastDurationColumn/columnHeader.jelly index 886722b9c06be9fc782afb47436fe0f8df725820..a316d245647fc28b09c85d8a49d976bc54157ee4 100644 --- a/core/src/main/resources/hudson/views/LastDurationColumn/columnHeader.jelly +++ b/core/src/main/resources/hudson/views/LastDurationColumn/columnHeader.jelly @@ -1,27 +1,27 @@ - - - - ${%Last Duration} + + + + ${%Last Duration} \ No newline at end of file diff --git a/core/src/main/resources/hudson/views/LastDurationColumn/columnHeader_ca.properties b/core/src/main/resources/hudson/views/LastDurationColumn/columnHeader_ca.properties new file mode 100644 index 0000000000000000000000000000000000000000..ff1a110e36c76451f3de630dcd6246d31e0a3bda --- /dev/null +++ b/core/src/main/resources/hudson/views/LastDurationColumn/columnHeader_ca.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Last\ Duration=\u00DAltima Duraci\u00F3 diff --git a/core/src/main/resources/hudson/views/LastDurationColumn/columnHeader_cs.properties b/core/src/main/resources/hudson/views/LastDurationColumn/columnHeader_cs.properties new file mode 100644 index 0000000000000000000000000000000000000000..0f06bd91c9676e94f4e3e8303a4a49c00fd4ea88 --- /dev/null +++ b/core/src/main/resources/hudson/views/LastDurationColumn/columnHeader_cs.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Last\ Duration=\u010Cas posledn\u00EDho sestaven\u00ED diff --git a/core/src/main/resources/hudson/views/LastDurationColumn/columnHeader_da.properties b/core/src/main/resources/hudson/views/LastDurationColumn/columnHeader_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..94faea1ccfe8d119801fbfe244503621146b90ff --- /dev/null +++ b/core/src/main/resources/hudson/views/LastDurationColumn/columnHeader_da.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Last\ Duration=Seneste Varighed diff --git a/core/src/main/resources/hudson/views/LastDurationColumn/columnHeader_de.properties b/core/src/main/resources/hudson/views/LastDurationColumn/columnHeader_de.properties index b4ed6d218bac4c53aafd7f3c4a83b6c69a911386..34f90bf9def01af31dea3e69fb08ae6e7adb9444 100644 --- a/core/src/main/resources/hudson/views/LastDurationColumn/columnHeader_de.properties +++ b/core/src/main/resources/hudson/views/LastDurationColumn/columnHeader_de.properties @@ -1,23 +1,23 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest, Martin Eigenbrodt -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Last\ Duration=Letzte Dauer +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest, Martin Eigenbrodt +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Last\ Duration=Letzte Dauer diff --git a/core/src/main/resources/hudson/views/LastDurationColumn/columnHeader_el.properties b/core/src/main/resources/hudson/views/LastDurationColumn/columnHeader_el.properties new file mode 100644 index 0000000000000000000000000000000000000000..01256524c86b697839474f79581f637f6f10eb40 --- /dev/null +++ b/core/src/main/resources/hudson/views/LastDurationColumn/columnHeader_el.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Last\ Duration=\u03A4\u03B5\u03BB\u03B5\u03C5\u03C4\u03B1\u03AF\u03B1 \u0394\u03B9\u03AC\u03C1\u03BA\u03B5\u03B9\u03B1 diff --git a/core/src/main/resources/hudson/views/LastDurationColumn/columnHeader_es.properties b/core/src/main/resources/hudson/views/LastDurationColumn/columnHeader_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..30495928e904fba35e10f5bdad7ed65634e0dec0 --- /dev/null +++ b/core/src/main/resources/hudson/views/LastDurationColumn/columnHeader_es.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Last\ Duration=Última duración diff --git a/core/src/main/resources/hudson/views/LastDurationColumn/columnHeader_fi.properties b/core/src/main/resources/hudson/views/LastDurationColumn/columnHeader_fi.properties new file mode 100644 index 0000000000000000000000000000000000000000..a2f0dbf3a37ef2c293e5066ea914d0295254e3cd --- /dev/null +++ b/core/src/main/resources/hudson/views/LastDurationColumn/columnHeader_fi.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Last\ Duration=Edellisen kesto diff --git a/core/src/main/resources/hudson/views/LastDurationColumn/columnHeader_fr.properties b/core/src/main/resources/hudson/views/LastDurationColumn/columnHeader_fr.properties index 2d6707b919304050579ddac64c0101ed4de5c22e..e9a88037960040f2a718d2bbf13ae2b28fbc326d 100644 --- a/core/src/main/resources/hudson/views/LastDurationColumn/columnHeader_fr.properties +++ b/core/src/main/resources/hudson/views/LastDurationColumn/columnHeader_fr.properties @@ -1,23 +1,23 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Eric Lefevre-Ardant, Martin Eigenbrodt -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Last\ Duration=Dernière durée +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Eric Lefevre-Ardant, Martin Eigenbrodt +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Last\ Duration=Dernière durée diff --git a/core/src/main/resources/hudson/views/LastDurationColumn/columnHeader_hu.properties b/core/src/main/resources/hudson/views/LastDurationColumn/columnHeader_hu.properties new file mode 100644 index 0000000000000000000000000000000000000000..a439128a5bb6586a256edcf4c82e8800db3fd152 --- /dev/null +++ b/core/src/main/resources/hudson/views/LastDurationColumn/columnHeader_hu.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Last\ Duration=Utols\u00F3 Hossza diff --git a/core/src/main/resources/hudson/views/LastDurationColumn/columnHeader_it.properties b/core/src/main/resources/hudson/views/LastDurationColumn/columnHeader_it.properties new file mode 100644 index 0000000000000000000000000000000000000000..f9ab9299d8ef014bf5c5fe9114fec2919ef1eba5 --- /dev/null +++ b/core/src/main/resources/hudson/views/LastDurationColumn/columnHeader_it.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Last\ Duration=Durata ultimo diff --git a/core/src/main/resources/hudson/views/LastDurationColumn/columnHeader_ja.properties b/core/src/main/resources/hudson/views/LastDurationColumn/columnHeader_ja.properties index c01c5ee546a1ebac890118946dc7b1d92de6652a..c1e3cb8ada20b5cf35e9b7db9f6483ddfd89801e 100644 --- a/core/src/main/resources/hudson/views/LastDurationColumn/columnHeader_ja.properties +++ b/core/src/main/resources/hudson/views/LastDurationColumn/columnHeader_ja.properties @@ -1,23 +1,23 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe, id:cactusman, Martin Eigenbrodt -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Last\ Duration=\u30D3\u30EB\u30C9\u6240\u8981\u6642\u9593 +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe, id:cactusman, Martin Eigenbrodt +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Last\ Duration=\u30D3\u30EB\u30C9\u6240\u8981\u6642\u9593 diff --git a/core/src/main/resources/hudson/views/LastDurationColumn/columnHeader_ko.properties b/core/src/main/resources/hudson/views/LastDurationColumn/columnHeader_ko.properties index 3e844301b37645b0318c7f8b2c2aa60bd662b7d5..fcbf16f3bf2a0241c512a06527eced19de1c32b1 100644 --- a/core/src/main/resources/hudson/views/LastDurationColumn/columnHeader_ko.properties +++ b/core/src/main/resources/hudson/views/LastDurationColumn/columnHeader_ko.properties @@ -1,23 +1,23 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Sung Kim, id:cactusman, Martin Eigenbrodt -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Last\ Duration=\uCD5C\uADFC \uC18C\uC694 \uC2DC\uAC04 +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Sung Kim, id:cactusman, Martin Eigenbrodt +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Last\ Duration=\uCD5C\uADFC \uC18C\uC694 \uC2DC\uAC04 diff --git a/core/src/main/resources/hudson/views/LastDurationColumn/columnHeader_lt.properties b/core/src/main/resources/hudson/views/LastDurationColumn/columnHeader_lt.properties new file mode 100644 index 0000000000000000000000000000000000000000..727de537bd52c6ca8f56225104a8c002af270f75 --- /dev/null +++ b/core/src/main/resources/hudson/views/LastDurationColumn/columnHeader_lt.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Last\ Duration=Paskutin\u0117s u\u017Eduoties trukm\u0117 diff --git a/core/src/main/resources/hudson/views/LastDurationColumn/columnHeader_nb_NO.properties b/core/src/main/resources/hudson/views/LastDurationColumn/columnHeader_nb_NO.properties new file mode 100644 index 0000000000000000000000000000000000000000..ef22135108ded382b1666d3d5d327b6d02b41b01 --- /dev/null +++ b/core/src/main/resources/hudson/views/LastDurationColumn/columnHeader_nb_NO.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Last\ Duration=Siste varighet diff --git a/core/src/main/resources/hudson/views/LastDurationColumn/columnHeader_nl.properties b/core/src/main/resources/hudson/views/LastDurationColumn/columnHeader_nl.properties index aaca298fc9276885c24071d346621a48f6f07ac1..1e62f3a1340dc65f5dea7f49c503099d4924e571 100644 --- a/core/src/main/resources/hudson/views/LastDurationColumn/columnHeader_nl.properties +++ b/core/src/main/resources/hudson/views/LastDurationColumn/columnHeader_nl.properties @@ -1,23 +1,23 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:sorokh, Martin Eigenbrodt -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Last\ Duration=Duur laatste bouwpoging +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:sorokh, Martin Eigenbrodt +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Last\ Duration=Duur laatste bouwpoging diff --git a/core/src/main/resources/hudson/views/LastDurationColumn/columnHeader_pt_BR.properties b/core/src/main/resources/hudson/views/LastDurationColumn/columnHeader_pt_BR.properties index 87859e88962f58d39cc4a4d46cc43bf0293e3996..f481933efbeeb7e13161c0467619ab0dbd20f5de 100644 --- a/core/src/main/resources/hudson/views/LastDurationColumn/columnHeader_pt_BR.properties +++ b/core/src/main/resources/hudson/views/LastDurationColumn/columnHeader_pt_BR.properties @@ -1,23 +1,23 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Reginaldo L. Russinholi, Martin Eigenbrodt -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Last\ Duration=\u00DAltima Dura\u00E7\u00E3o +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Reginaldo L. Russinholi, Martin Eigenbrodt +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Last\ Duration=\u00DAltima Dura\u00E7\u00E3o diff --git a/core/src/main/resources/hudson/views/LastDurationColumn/columnHeader_pt_PT.properties b/core/src/main/resources/hudson/views/LastDurationColumn/columnHeader_pt_PT.properties new file mode 100644 index 0000000000000000000000000000000000000000..e75594b771b2ceb5ffd3236c267397559dded708 --- /dev/null +++ b/core/src/main/resources/hudson/views/LastDurationColumn/columnHeader_pt_PT.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Last\ Duration=Dura\u00E7\u00E3o da \u00FAltima diff --git a/core/src/main/resources/hudson/views/LastDurationColumn/columnHeader_ru.properties b/core/src/main/resources/hudson/views/LastDurationColumn/columnHeader_ru.properties index 5b0cbfd22e4446e6daa13d22e19fac8bfde93e9d..6f4502f3d0277c69349ad1ae5fc02a2f0fdeed1d 100644 --- a/core/src/main/resources/hudson/views/LastDurationColumn/columnHeader_ru.properties +++ b/core/src/main/resources/hudson/views/LastDurationColumn/columnHeader_ru.properties @@ -1,23 +1,23 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Mike Salnikov, Martin Eigenbrodt -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Last\ Duration=\u041f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Mike Salnikov, Martin Eigenbrodt +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Last\ Duration=\u041f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c diff --git a/core/src/main/resources/hudson/views/LastDurationColumn/columnHeader_sv_SE.properties b/core/src/main/resources/hudson/views/LastDurationColumn/columnHeader_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..7dacbbc93ce0a421bcaa1691176c2e68a399ea61 --- /dev/null +++ b/core/src/main/resources/hudson/views/LastDurationColumn/columnHeader_sv_SE.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Last\ Duration=Tid diff --git a/core/src/main/resources/hudson/views/LastDurationColumn/columnHeader_tr.properties b/core/src/main/resources/hudson/views/LastDurationColumn/columnHeader_tr.properties index 9e4bb7636e4d0e4c0a9fa0c52bca64243c5d6869..f06f7fb7809c899b0716a43a5dfb029a6d86fc75 100644 --- a/core/src/main/resources/hudson/views/LastDurationColumn/columnHeader_tr.properties +++ b/core/src/main/resources/hudson/views/LastDurationColumn/columnHeader_tr.properties @@ -1,23 +1,23 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Oguz Dag, Martin Eigenbrodt -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Last\ Duration=En son s\u00fcre +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Oguz Dag, Martin Eigenbrodt +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Last\ Duration=En son s\u00fcre diff --git a/core/src/main/resources/hudson/views/LastDurationColumn/columnHeader_zh_CN.properties b/core/src/main/resources/hudson/views/LastDurationColumn/columnHeader_zh_CN.properties new file mode 100644 index 0000000000000000000000000000000000000000..eacf5df0750a7a73aed5388938a7c07cb2828520 --- /dev/null +++ b/core/src/main/resources/hudson/views/LastDurationColumn/columnHeader_zh_CN.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Last\ Duration=\u4E0A\u6B21\u6301\u7EED\u65F6\u95F4 + diff --git a/core/src/main/resources/hudson/views/LastDurationColumn/columnHeader_zh_TW.properties b/core/src/main/resources/hudson/views/LastDurationColumn/columnHeader_zh_TW.properties new file mode 100644 index 0000000000000000000000000000000000000000..6b442a8054cb6d2093d9af479f859386b8e43ea3 --- /dev/null +++ b/core/src/main/resources/hudson/views/LastDurationColumn/columnHeader_zh_TW.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Last\ Duration=\u4E0A\u6B21\u5EFA\u7F6E\u8017\u8CBB diff --git a/core/src/main/resources/hudson/views/LastDurationColumn/column_ca.properties b/core/src/main/resources/hudson/views/LastDurationColumn/column_ca.properties new file mode 100644 index 0000000000000000000000000000000000000000..5972548e141c524d60fb50918bbd98e6678d0cbb --- /dev/null +++ b/core/src/main/resources/hudson/views/LastDurationColumn/column_ca.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +N/A=N/A diff --git a/core/src/main/resources/hudson/views/LastDurationColumn/column_cs.properties b/core/src/main/resources/hudson/views/LastDurationColumn/column_cs.properties new file mode 100644 index 0000000000000000000000000000000000000000..386a639940edba829b29b949ea4b4945e33fe878 --- /dev/null +++ b/core/src/main/resources/hudson/views/LastDurationColumn/column_cs.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +N/A=\u017E\u00E1dn\u00FD diff --git a/core/src/main/resources/hudson/views/LastDurationColumn/column_da.properties b/core/src/main/resources/hudson/views/LastDurationColumn/column_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..7346ac5ce312441866953479b03338f4e736ad9d --- /dev/null +++ b/core/src/main/resources/hudson/views/LastDurationColumn/column_da.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +N/A=N/A diff --git a/core/src/main/resources/hudson/views/LastDurationColumn/column_de.properties b/core/src/main/resources/hudson/views/LastDurationColumn/column_de.properties index 683edca45269ab6bb1fc376ca5ab7623f653b0cc..e6e5346fead8133dd14e92f7b0524a40de119c23 100644 --- a/core/src/main/resources/hudson/views/LastDurationColumn/column_de.properties +++ b/core/src/main/resources/hudson/views/LastDurationColumn/column_de.properties @@ -1,23 +1,23 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest, Martin Eigenbrodt -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -N/A=Unbekannt +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest, Martin Eigenbrodt +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +N/A=Unbekannt diff --git a/core/src/main/resources/hudson/views/LastDurationColumn/column_es.properties b/core/src/main/resources/hudson/views/LastDurationColumn/column_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..7f59267d4213bf34863998fdad3159280ed96ca2 --- /dev/null +++ b/core/src/main/resources/hudson/views/LastDurationColumn/column_es.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +N/A=N/D diff --git a/core/src/main/resources/hudson/views/LastDurationColumn/column_fi.properties b/core/src/main/resources/hudson/views/LastDurationColumn/column_fi.properties new file mode 100644 index 0000000000000000000000000000000000000000..927ff16a193bf6015d356082397ca8314a52c700 --- /dev/null +++ b/core/src/main/resources/hudson/views/LastDurationColumn/column_fi.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +N/A=ei tietoa diff --git a/core/src/main/resources/hudson/views/LastDurationColumn/column_fr.properties b/core/src/main/resources/hudson/views/LastDurationColumn/column_fr.properties index 4a45b0bd573b9e6d5ce631aae31002143c175062..351768e68f5914e112ac0d79b73691e971806826 100644 --- a/core/src/main/resources/hudson/views/LastDurationColumn/column_fr.properties +++ b/core/src/main/resources/hudson/views/LastDurationColumn/column_fr.properties @@ -1,23 +1,23 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Eric Lefevre-Ardant, Martin Eigenbrodt -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -N/A= +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Eric Lefevre-Ardant, Martin Eigenbrodt +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +N/A=N/A diff --git a/core/src/main/resources/hudson/views/LastDurationColumn/column_ja.properties b/core/src/main/resources/hudson/views/LastDurationColumn/column_ja.properties index c98498895fbdbe4223eb39d81eb361c49a045703..ea760600649edaaba6506cd3e10086b7974b9d09 100644 --- a/core/src/main/resources/hudson/views/LastDurationColumn/column_ja.properties +++ b/core/src/main/resources/hudson/views/LastDurationColumn/column_ja.properties @@ -1,23 +1,23 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe, id:cactusman, Martin Eigenbrodt -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -N/A=\u2015 +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe, id:cactusman, Martin Eigenbrodt +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +N/A=\u2015 diff --git a/core/src/main/resources/hudson/views/LastDurationColumn/column_ko.properties b/core/src/main/resources/hudson/views/LastDurationColumn/column_ko.properties index 98e02f2db0acb2d475322f23fa8558980c89ae6d..66471cd3d02fdc2a8006a9488749a4c9f9c40119 100644 --- a/core/src/main/resources/hudson/views/LastDurationColumn/column_ko.properties +++ b/core/src/main/resources/hudson/views/LastDurationColumn/column_ko.properties @@ -1,23 +1,23 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Sung Kim, id:cactusman, Martin Eigenbrodt -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -N/A=\u2015 +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Sung Kim, id:cactusman, Martin Eigenbrodt +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +N/A=\u2015 diff --git a/core/src/main/resources/hudson/views/LastDurationColumn/column_nl.properties b/core/src/main/resources/hudson/views/LastDurationColumn/column_nl.properties index 6fea545dac6d7b0d19c4de07e166f36ecde54493..819cac5d55f29e4816f12746930df7170e56d970 100644 --- a/core/src/main/resources/hudson/views/LastDurationColumn/column_nl.properties +++ b/core/src/main/resources/hudson/views/LastDurationColumn/column_nl.properties @@ -1,23 +1,23 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:sorokh, Martin Eigenbrodt -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -N/A=N.B. +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:sorokh, Martin Eigenbrodt +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +N/A=N.B. diff --git a/core/src/main/resources/hudson/views/LastDurationColumn/column_pt_BR.properties b/core/src/main/resources/hudson/views/LastDurationColumn/column_pt_BR.properties index c109520201aa11f0021c71663ad41cfd1b7a01dd..9ccda83224782e30fc57b89f5beeb37d8efe8425 100644 --- a/core/src/main/resources/hudson/views/LastDurationColumn/column_pt_BR.properties +++ b/core/src/main/resources/hudson/views/LastDurationColumn/column_pt_BR.properties @@ -1,23 +1,23 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Reginaldo L. Russinholi, Martin Eigenbrodt -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -N/A= +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Reginaldo L. Russinholi, Martin Eigenbrodt +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +N/A= diff --git a/core/src/main/resources/hudson/views/LastDurationColumn/column_ru.properties b/core/src/main/resources/hudson/views/LastDurationColumn/column_ru.properties index 1785b3d3d1289c4fb5073c0533517b7c9ddf1643..e49747e90ca38f7dd3feb90e7ac327b2ba2a1c8c 100644 --- a/core/src/main/resources/hudson/views/LastDurationColumn/column_ru.properties +++ b/core/src/main/resources/hudson/views/LastDurationColumn/column_ru.properties @@ -1,23 +1,23 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Mike Salnikov, Martin Eigenbrodt -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -N/A=\u041d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Mike Salnikov, Martin Eigenbrodt +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +N/A=\u041d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e diff --git a/core/src/main/resources/hudson/views/LastDurationColumn/column_tr.properties b/core/src/main/resources/hudson/views/LastDurationColumn/column_tr.properties index 48b4924e725abf64aa0a2e1f3922a0b20510300c..e2c05a3a06f2aed7813c494557b9c8e78d071ff0 100644 --- a/core/src/main/resources/hudson/views/LastDurationColumn/column_tr.properties +++ b/core/src/main/resources/hudson/views/LastDurationColumn/column_tr.properties @@ -1,23 +1,23 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Oguz Dag, Martin Eigenbrodt -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Oguz Dag, Martin Eigenbrodt +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + N/A=Mevcut De\u011fil \ No newline at end of file diff --git a/core/src/main/resources/hudson/views/LastFailureColumn/column.jelly b/core/src/main/resources/hudson/views/LastFailureColumn/column.jelly index 939f8226450abcd0f894680cd3f85f4deb725613..deb4565c8e383caf8707fa95afff25bbab08ccfe 100644 --- a/core/src/main/resources/hudson/views/LastFailureColumn/column.jelly +++ b/core/src/main/resources/hudson/views/LastFailureColumn/column.jelly @@ -1,37 +1,37 @@ - - - - - - - ${lfBuild.timestampString} - (#${lfBuild.number}) - - - ${%N/A} - - - + + + + + + + ${lfBuild.timestampString} + (#${lfBuild.number}) + + + ${%N/A} + + + \ No newline at end of file diff --git a/core/src/main/resources/hudson/views/LastFailureColumn/columnHeader.jelly b/core/src/main/resources/hudson/views/LastFailureColumn/columnHeader.jelly index dc5c441642872efe2e56ee0d97d9af36e9c8931c..8d7490afd7f35cc1cd90ee9c5b1c3bf8624bbd15 100644 --- a/core/src/main/resources/hudson/views/LastFailureColumn/columnHeader.jelly +++ b/core/src/main/resources/hudson/views/LastFailureColumn/columnHeader.jelly @@ -1,27 +1,27 @@ - - - - ${%Last Failure} + + + + ${%Last Failure} \ No newline at end of file diff --git a/core/src/main/resources/hudson/views/LastFailureColumn/columnHeader_ca.properties b/core/src/main/resources/hudson/views/LastFailureColumn/columnHeader_ca.properties new file mode 100644 index 0000000000000000000000000000000000000000..8f5c77a62dee45caad0f5de82f530a1a5ae8e88e --- /dev/null +++ b/core/src/main/resources/hudson/views/LastFailureColumn/columnHeader_ca.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Last\ Failure=\u00DAltim Frac\u00E0s diff --git a/core/src/main/resources/hudson/views/LastFailureColumn/columnHeader_cs.properties b/core/src/main/resources/hudson/views/LastFailureColumn/columnHeader_cs.properties new file mode 100644 index 0000000000000000000000000000000000000000..916ff52c9c4c07ac91e70a80b31c10805aeaca99 --- /dev/null +++ b/core/src/main/resources/hudson/views/LastFailureColumn/columnHeader_cs.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Last\ Failure=Posledn\u00ED ne\u00FAsp\u011B\u0161n\u00FD diff --git a/core/src/main/resources/hudson/views/LastFailureColumn/columnHeader_da.properties b/core/src/main/resources/hudson/views/LastFailureColumn/columnHeader_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..33fe4e46c51af7afd2d2fef0346bead2b7a62e6a --- /dev/null +++ b/core/src/main/resources/hudson/views/LastFailureColumn/columnHeader_da.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Last\ Failure=Seneste fejlede diff --git a/core/src/main/resources/hudson/views/LastFailureColumn/columnHeader_de.properties b/core/src/main/resources/hudson/views/LastFailureColumn/columnHeader_de.properties index 07abcec3ee2533a7e91483bf2b911d8829472e81..64c72feb1881267a923fe13c7e17ad4063fe8f76 100644 --- a/core/src/main/resources/hudson/views/LastFailureColumn/columnHeader_de.properties +++ b/core/src/main/resources/hudson/views/LastFailureColumn/columnHeader_de.properties @@ -1,23 +1,23 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest, Martin Eigenbrodt -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Last\ Failure=Letzter Fehlschlag +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest, Martin Eigenbrodt +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Last\ Failure=Letzter Fehlschlag diff --git a/core/src/main/resources/hudson/views/LastFailureColumn/columnHeader_el.properties b/core/src/main/resources/hudson/views/LastFailureColumn/columnHeader_el.properties new file mode 100644 index 0000000000000000000000000000000000000000..8fa6d6581e43732aed7ec637d2cc454137cb7cbd --- /dev/null +++ b/core/src/main/resources/hudson/views/LastFailureColumn/columnHeader_el.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Last\ Failure=\u03A4\u03B5\u03BB\u03B5\u03C5\u03C4\u03B1\u03AF\u03B1 \u03B1\u03C0\u03BF\u03C4\u03C5\u03C7\u03AF\u03B1 diff --git a/core/src/main/resources/hudson/views/LastFailureColumn/columnHeader_es.properties b/core/src/main/resources/hudson/views/LastFailureColumn/columnHeader_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..a2c2c9cbbbd034ec433a6771da976dab75f74bda --- /dev/null +++ b/core/src/main/resources/hudson/views/LastFailureColumn/columnHeader_es.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Last\ Failure=Último fallo diff --git a/core/src/main/resources/hudson/views/LastFailureColumn/columnHeader_fi.properties b/core/src/main/resources/hudson/views/LastFailureColumn/columnHeader_fi.properties new file mode 100644 index 0000000000000000000000000000000000000000..caa6de2cf6bf5461ab41188eb011ffa1bcbf5f8e --- /dev/null +++ b/core/src/main/resources/hudson/views/LastFailureColumn/columnHeader_fi.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Last\ Failure=Edellinen ep\u00E4onnistunut diff --git a/core/src/main/resources/hudson/views/LastFailureColumn/columnHeader_fr.properties b/core/src/main/resources/hudson/views/LastFailureColumn/columnHeader_fr.properties index 9781ac9bf87628626855daca187bb4d989ce7505..2bc53cd4896f8db561d78b0fd1e475f71ba060e6 100644 --- a/core/src/main/resources/hudson/views/LastFailureColumn/columnHeader_fr.properties +++ b/core/src/main/resources/hudson/views/LastFailureColumn/columnHeader_fr.properties @@ -1,23 +1,23 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Eric Lefevre-Ardant, Martin Eigenbrodt -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Last\ Failure=Dernier échec +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Eric Lefevre-Ardant, Martin Eigenbrodt +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Last\ Failure=Dernier échec diff --git a/core/src/main/resources/hudson/views/LastFailureColumn/columnHeader_hu.properties b/core/src/main/resources/hudson/views/LastFailureColumn/columnHeader_hu.properties new file mode 100644 index 0000000000000000000000000000000000000000..337c8ed3c2b9d2231e94f58be69145d8c951bfc3 --- /dev/null +++ b/core/src/main/resources/hudson/views/LastFailureColumn/columnHeader_hu.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Last\ Failure=Utols\u00F3 Sikertelen diff --git a/core/src/main/resources/hudson/views/LastFailureColumn/columnHeader_it.properties b/core/src/main/resources/hudson/views/LastFailureColumn/columnHeader_it.properties new file mode 100644 index 0000000000000000000000000000000000000000..0edcc4c7b021529c9f65ff81ce44b4fce4fbde73 --- /dev/null +++ b/core/src/main/resources/hudson/views/LastFailureColumn/columnHeader_it.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Last\ Failure=Ultimo fallimento diff --git a/core/src/main/resources/hudson/views/LastFailureColumn/columnHeader_ja.properties b/core/src/main/resources/hudson/views/LastFailureColumn/columnHeader_ja.properties index f5b085bc1805f1e4870add6d472b75477053e26f..356b64022bf1cb1911d09d473638e5018dbd7c55 100644 --- a/core/src/main/resources/hudson/views/LastFailureColumn/columnHeader_ja.properties +++ b/core/src/main/resources/hudson/views/LastFailureColumn/columnHeader_ja.properties @@ -1,23 +1,23 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe, id:cactusman, Martin Eigenbrodt -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Last\ Failure=\u6700\u5F8C\u306E\u5931\u6557\u30D3\u30EB\u30C9 +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe, id:cactusman, Martin Eigenbrodt +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Last\ Failure=\u6700\u65B0\u306E\u5931\u6557\u30D3\u30EB\u30C9 diff --git a/core/src/main/resources/hudson/views/LastFailureColumn/columnHeader_ko.properties b/core/src/main/resources/hudson/views/LastFailureColumn/columnHeader_ko.properties index 8d616ea1cc5c95b299c62bbb59e6cfe9682683ef..815a1a2397a729cbff87240d459d4d445746948d 100644 --- a/core/src/main/resources/hudson/views/LastFailureColumn/columnHeader_ko.properties +++ b/core/src/main/resources/hudson/views/LastFailureColumn/columnHeader_ko.properties @@ -1,23 +1,23 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Sung Kim, id:cactusman, Martin Eigenbrodt -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Last\ Failure=\uCD5C\uADFC \uC2E4\uD328 +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Sung Kim, id:cactusman, Martin Eigenbrodt +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Last\ Failure=\uCD5C\uADFC \uC2E4\uD328 diff --git a/core/src/main/resources/hudson/views/LastFailureColumn/columnHeader_lt.properties b/core/src/main/resources/hudson/views/LastFailureColumn/columnHeader_lt.properties new file mode 100644 index 0000000000000000000000000000000000000000..32fbe39236d3287ec5fbf7e595d4b22313c7c33a --- /dev/null +++ b/core/src/main/resources/hudson/views/LastFailureColumn/columnHeader_lt.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Last\ Failure=Paskutin\u0117 nepavykusi u\u017Eduotis diff --git a/core/src/main/resources/hudson/views/LastFailureColumn/columnHeader_nb_NO.properties b/core/src/main/resources/hudson/views/LastFailureColumn/columnHeader_nb_NO.properties new file mode 100644 index 0000000000000000000000000000000000000000..fc7e6bd4dfe0b988133e94d2264aa879688d0008 --- /dev/null +++ b/core/src/main/resources/hudson/views/LastFailureColumn/columnHeader_nb_NO.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Last\ Failure=Siste feil diff --git a/core/src/main/resources/hudson/views/LastFailureColumn/columnHeader_nl.properties b/core/src/main/resources/hudson/views/LastFailureColumn/columnHeader_nl.properties index 6ae4f5c901650b9cef18c332a74aed529fb2fcb1..3075233b338290cdbc0e302df9b9e2f7997a49ef 100644 --- a/core/src/main/resources/hudson/views/LastFailureColumn/columnHeader_nl.properties +++ b/core/src/main/resources/hudson/views/LastFailureColumn/columnHeader_nl.properties @@ -1,23 +1,23 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:sorokh, Martin Eigenbrodt -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Last\ Failure=Laatste gefaalde bouwpoging +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:sorokh, Martin Eigenbrodt +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Last\ Failure=Laatste gefaalde bouwpoging diff --git a/core/src/main/resources/hudson/views/LastFailureColumn/columnHeader_pt_BR.properties b/core/src/main/resources/hudson/views/LastFailureColumn/columnHeader_pt_BR.properties index 005691b8782c0d53d04936545aa73bb8183be387..6640157dfa2619ea38602740d965c50b37af1953 100644 --- a/core/src/main/resources/hudson/views/LastFailureColumn/columnHeader_pt_BR.properties +++ b/core/src/main/resources/hudson/views/LastFailureColumn/columnHeader_pt_BR.properties @@ -1,23 +1,23 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Reginaldo L. Russinholi, Martin Eigenbrodt -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Last\ Failure=\u00DAltima com Falha +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Reginaldo L. Russinholi, Martin Eigenbrodt +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Last\ Failure=\u00DAltima com Falha diff --git a/core/src/main/resources/hudson/views/LastFailureColumn/columnHeader_pt_PT.properties b/core/src/main/resources/hudson/views/LastFailureColumn/columnHeader_pt_PT.properties new file mode 100644 index 0000000000000000000000000000000000000000..516c322cd90eefba8786e17c74b682c66fc89660 --- /dev/null +++ b/core/src/main/resources/hudson/views/LastFailureColumn/columnHeader_pt_PT.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Last\ Failure=\u00DAltima Falha diff --git a/core/src/main/resources/hudson/views/LastFailureColumn/columnHeader_ru.properties b/core/src/main/resources/hudson/views/LastFailureColumn/columnHeader_ru.properties index 48e91eaa8494fbd1e04414caa34a66843875ff2c..b706f4c054257ec5e984a853ce430e7eccd2519c 100644 --- a/core/src/main/resources/hudson/views/LastFailureColumn/columnHeader_ru.properties +++ b/core/src/main/resources/hudson/views/LastFailureColumn/columnHeader_ru.properties @@ -1,23 +1,23 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Mike Salnikov, Martin Eigenbrodt -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Last\ Failure=\u041f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f \u043d\u0435\u0443\u0434\u0430\u0447\u0430 +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Mike Salnikov, Martin Eigenbrodt +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Last\ Failure=\u041f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f \u043d\u0435\u0443\u0434\u0430\u0447\u0430 diff --git a/core/src/main/resources/hudson/views/LastFailureColumn/columnHeader_sv_SE.properties b/core/src/main/resources/hudson/views/LastFailureColumn/columnHeader_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..59861245f01ee280e88b7fe68ec7c19c9fcbb4f0 --- /dev/null +++ b/core/src/main/resources/hudson/views/LastFailureColumn/columnHeader_sv_SE.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Last\ Failure=Senaste misslyckande diff --git a/core/src/main/resources/hudson/views/LastFailureColumn/columnHeader_tr.properties b/core/src/main/resources/hudson/views/LastFailureColumn/columnHeader_tr.properties index 4043d9cb50f6217ede4ed06d130d7e11ce9ed1b3..7b6dc1f26038f14dd18cd5883c2f3a9a6b8ad358 100644 --- a/core/src/main/resources/hudson/views/LastFailureColumn/columnHeader_tr.properties +++ b/core/src/main/resources/hudson/views/LastFailureColumn/columnHeader_tr.properties @@ -1,23 +1,23 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Oguz Dag, Martin Eigenbrodt -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Oguz Dag, Martin Eigenbrodt +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + Last\ Failure=En son ba\u015far\u0131s\u0131zl\u0131k \ No newline at end of file diff --git a/core/src/main/resources/hudson/views/LastFailureColumn/columnHeader_zh_CN.properties b/core/src/main/resources/hudson/views/LastFailureColumn/columnHeader_zh_CN.properties new file mode 100644 index 0000000000000000000000000000000000000000..6a2ab75e6678176bb7c1a1f379d95483ff77b299 --- /dev/null +++ b/core/src/main/resources/hudson/views/LastFailureColumn/columnHeader_zh_CN.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Last\ Failure=\u4E0A\u6B21\u5931\u8D25 diff --git a/core/src/main/resources/hudson/views/LastFailureColumn/columnHeader_zh_TW.properties b/core/src/main/resources/hudson/views/LastFailureColumn/columnHeader_zh_TW.properties new file mode 100644 index 0000000000000000000000000000000000000000..ed22fe7af33611cc7ff0b41166d56d287759e0a7 --- /dev/null +++ b/core/src/main/resources/hudson/views/LastFailureColumn/columnHeader_zh_TW.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Last\ Failure=\u4E0A\u6B21\u5931\u6557\u6642\u9593 diff --git a/core/src/main/resources/hudson/views/LastFailureColumn/column_ca.properties b/core/src/main/resources/hudson/views/LastFailureColumn/column_ca.properties new file mode 100644 index 0000000000000000000000000000000000000000..5972548e141c524d60fb50918bbd98e6678d0cbb --- /dev/null +++ b/core/src/main/resources/hudson/views/LastFailureColumn/column_ca.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +N/A=N/A diff --git a/core/src/main/resources/hudson/views/LastFailureColumn/column_cs.properties b/core/src/main/resources/hudson/views/LastFailureColumn/column_cs.properties new file mode 100644 index 0000000000000000000000000000000000000000..386a639940edba829b29b949ea4b4945e33fe878 --- /dev/null +++ b/core/src/main/resources/hudson/views/LastFailureColumn/column_cs.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +N/A=\u017E\u00E1dn\u00FD diff --git a/core/src/main/resources/hudson/views/LastFailureColumn/column_da.properties b/core/src/main/resources/hudson/views/LastFailureColumn/column_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..7346ac5ce312441866953479b03338f4e736ad9d --- /dev/null +++ b/core/src/main/resources/hudson/views/LastFailureColumn/column_da.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +N/A=N/A diff --git a/core/src/main/resources/hudson/views/LastFailureColumn/column_de.properties b/core/src/main/resources/hudson/views/LastFailureColumn/column_de.properties index 683edca45269ab6bb1fc376ca5ab7623f653b0cc..e6e5346fead8133dd14e92f7b0524a40de119c23 100644 --- a/core/src/main/resources/hudson/views/LastFailureColumn/column_de.properties +++ b/core/src/main/resources/hudson/views/LastFailureColumn/column_de.properties @@ -1,23 +1,23 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest, Martin Eigenbrodt -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -N/A=Unbekannt +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest, Martin Eigenbrodt +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +N/A=Unbekannt diff --git a/core/src/main/resources/hudson/views/LastFailureColumn/column_el.properties b/core/src/main/resources/hudson/views/LastFailureColumn/column_el.properties new file mode 100644 index 0000000000000000000000000000000000000000..e760a3ac0c1b99e0db980ea9d33e7504764c2a72 --- /dev/null +++ b/core/src/main/resources/hudson/views/LastFailureColumn/column_el.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +N/A=\u039C\u03B7 \u0394\u03B9\u03B1\u03B8\u03AD\u03C3\u03B8\u03B9\u03BC\u03BF diff --git a/core/src/main/resources/hudson/views/LastFailureColumn/column_es.properties b/core/src/main/resources/hudson/views/LastFailureColumn/column_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..7f59267d4213bf34863998fdad3159280ed96ca2 --- /dev/null +++ b/core/src/main/resources/hudson/views/LastFailureColumn/column_es.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +N/A=N/D diff --git a/core/src/main/resources/hudson/views/LastFailureColumn/column_fi.properties b/core/src/main/resources/hudson/views/LastFailureColumn/column_fi.properties new file mode 100644 index 0000000000000000000000000000000000000000..927ff16a193bf6015d356082397ca8314a52c700 --- /dev/null +++ b/core/src/main/resources/hudson/views/LastFailureColumn/column_fi.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +N/A=ei tietoa diff --git a/core/src/main/resources/hudson/views/LastFailureColumn/column_fr.properties b/core/src/main/resources/hudson/views/LastFailureColumn/column_fr.properties index 4a45b0bd573b9e6d5ce631aae31002143c175062..351768e68f5914e112ac0d79b73691e971806826 100644 --- a/core/src/main/resources/hudson/views/LastFailureColumn/column_fr.properties +++ b/core/src/main/resources/hudson/views/LastFailureColumn/column_fr.properties @@ -1,23 +1,23 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Eric Lefevre-Ardant, Martin Eigenbrodt -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -N/A= +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Eric Lefevre-Ardant, Martin Eigenbrodt +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +N/A=N/A diff --git a/core/src/main/resources/hudson/views/LastFailureColumn/column_hu.properties b/core/src/main/resources/hudson/views/LastFailureColumn/column_hu.properties new file mode 100644 index 0000000000000000000000000000000000000000..549708a83c7a6f7885940dda8ec7fb6dfa12964d --- /dev/null +++ b/core/src/main/resources/hudson/views/LastFailureColumn/column_hu.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +N/A=nincs adat diff --git a/core/src/main/resources/hudson/views/LastFailureColumn/column_it.properties b/core/src/main/resources/hudson/views/LastFailureColumn/column_it.properties new file mode 100644 index 0000000000000000000000000000000000000000..3760d7743ab416735f71ced7a8a4f600da1f0e23 --- /dev/null +++ b/core/src/main/resources/hudson/views/LastFailureColumn/column_it.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +N/A=N.D. diff --git a/core/src/main/resources/hudson/views/LastFailureColumn/column_ja.properties b/core/src/main/resources/hudson/views/LastFailureColumn/column_ja.properties index c98498895fbdbe4223eb39d81eb361c49a045703..ea760600649edaaba6506cd3e10086b7974b9d09 100644 --- a/core/src/main/resources/hudson/views/LastFailureColumn/column_ja.properties +++ b/core/src/main/resources/hudson/views/LastFailureColumn/column_ja.properties @@ -1,23 +1,23 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe, id:cactusman, Martin Eigenbrodt -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -N/A=\u2015 +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe, id:cactusman, Martin Eigenbrodt +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +N/A=\u2015 diff --git a/core/src/main/resources/hudson/views/LastFailureColumn/column_ko.properties b/core/src/main/resources/hudson/views/LastFailureColumn/column_ko.properties index 98e02f2db0acb2d475322f23fa8558980c89ae6d..66471cd3d02fdc2a8006a9488749a4c9f9c40119 100644 --- a/core/src/main/resources/hudson/views/LastFailureColumn/column_ko.properties +++ b/core/src/main/resources/hudson/views/LastFailureColumn/column_ko.properties @@ -1,23 +1,23 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Sung Kim, id:cactusman, Martin Eigenbrodt -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -N/A=\u2015 +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Sung Kim, id:cactusman, Martin Eigenbrodt +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +N/A=\u2015 diff --git a/core/src/main/resources/hudson/views/LastFailureColumn/column_nb_NO.properties b/core/src/main/resources/hudson/views/LastFailureColumn/column_nb_NO.properties new file mode 100644 index 0000000000000000000000000000000000000000..1d44665c978f7c8eed1e33a21420e79205d445eb --- /dev/null +++ b/core/src/main/resources/hudson/views/LastFailureColumn/column_nb_NO.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +N/A=Ikke tilgjengelig diff --git a/core/src/main/resources/hudson/views/LastFailureColumn/column_nl.properties b/core/src/main/resources/hudson/views/LastFailureColumn/column_nl.properties index 6fea545dac6d7b0d19c4de07e166f36ecde54493..819cac5d55f29e4816f12746930df7170e56d970 100644 --- a/core/src/main/resources/hudson/views/LastFailureColumn/column_nl.properties +++ b/core/src/main/resources/hudson/views/LastFailureColumn/column_nl.properties @@ -1,23 +1,23 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:sorokh, Martin Eigenbrodt -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -N/A=N.B. +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:sorokh, Martin Eigenbrodt +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +N/A=N.B. diff --git a/core/src/main/resources/hudson/views/LastFailureColumn/column_pt_BR.properties b/core/src/main/resources/hudson/views/LastFailureColumn/column_pt_BR.properties index c109520201aa11f0021c71663ad41cfd1b7a01dd..76aeff0f27cea3db31df31a84c7d75c4a92b62e9 100644 --- a/core/src/main/resources/hudson/views/LastFailureColumn/column_pt_BR.properties +++ b/core/src/main/resources/hudson/views/LastFailureColumn/column_pt_BR.properties @@ -1,23 +1,23 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Reginaldo L. Russinholi, Martin Eigenbrodt -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -N/A= +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Reginaldo L. Russinholi, Martin Eigenbrodt +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +N/A=N\u00E3o dispon\u00EDvel diff --git a/core/src/main/resources/hudson/views/LastFailureColumn/column_pt_PT.properties b/core/src/main/resources/hudson/views/LastFailureColumn/column_pt_PT.properties new file mode 100644 index 0000000000000000000000000000000000000000..5972548e141c524d60fb50918bbd98e6678d0cbb --- /dev/null +++ b/core/src/main/resources/hudson/views/LastFailureColumn/column_pt_PT.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +N/A=N/A diff --git a/core/src/main/resources/hudson/views/LastFailureColumn/column_ru.properties b/core/src/main/resources/hudson/views/LastFailureColumn/column_ru.properties index 1785b3d3d1289c4fb5073c0533517b7c9ddf1643..e49747e90ca38f7dd3feb90e7ac327b2ba2a1c8c 100644 --- a/core/src/main/resources/hudson/views/LastFailureColumn/column_ru.properties +++ b/core/src/main/resources/hudson/views/LastFailureColumn/column_ru.properties @@ -1,23 +1,23 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Mike Salnikov, Martin Eigenbrodt -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -N/A=\u041d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Mike Salnikov, Martin Eigenbrodt +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +N/A=\u041d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e diff --git a/core/src/main/resources/hudson/views/LastFailureColumn/column_sv_SE.properties b/core/src/main/resources/hudson/views/LastFailureColumn/column_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..e28f93a3b6fab31b3d7a76891797df0563978361 --- /dev/null +++ b/core/src/main/resources/hudson/views/LastFailureColumn/column_sv_SE.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +N/A=I/T diff --git a/core/src/main/resources/hudson/views/LastFailureColumn/column_tr.properties b/core/src/main/resources/hudson/views/LastFailureColumn/column_tr.properties index aeec38d49f4f657ce528e1c4361276b553c33937..36c1f2991279fab4f5f4bb1a2a1f1ac2ac57bfb5 100644 --- a/core/src/main/resources/hudson/views/LastFailureColumn/column_tr.properties +++ b/core/src/main/resources/hudson/views/LastFailureColumn/column_tr.properties @@ -1,23 +1,23 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Oguz Dag, Martin Eigenbrodt -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -N/A=Mevcut De\u011fil +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Oguz Dag, Martin Eigenbrodt +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +N/A=Mevcut De\u011fil diff --git a/core/src/main/resources/hudson/views/LastStableColumn/columnHeader_da.properties b/core/src/main/resources/hudson/views/LastStableColumn/columnHeader_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..e8f2987ca76adbaeb79c898816973b93caa3a7a0 --- /dev/null +++ b/core/src/main/resources/hudson/views/LastStableColumn/columnHeader_da.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Last\ Stable=Seneste Stabile diff --git a/core/src/main/resources/hudson/views/LastStableColumn/columnHeader_de.properties b/core/src/main/resources/hudson/views/LastStableColumn/columnHeader_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..67aab33c0c404660ecb32529086e4c912c6aed17 --- /dev/null +++ b/core/src/main/resources/hudson/views/LastStableColumn/columnHeader_de.properties @@ -0,0 +1 @@ +Last\ Stable=Letzter stabiler Build diff --git a/core/src/main/resources/hudson/views/LastStableColumn/columnHeader_el.properties b/core/src/main/resources/hudson/views/LastStableColumn/columnHeader_el.properties new file mode 100644 index 0000000000000000000000000000000000000000..4721ee2c66b8580264e22656bca95770dc67466e --- /dev/null +++ b/core/src/main/resources/hudson/views/LastStableColumn/columnHeader_el.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Last\ Stable=\u03A4\u03B5\u03BB\u03B5\u03C5\u03C4\u03B1\u03AF\u03BF \u03C3\u03C4\u03B1\u03B8\u03B5\u03C1\u03BF diff --git a/core/src/main/resources/hudson/views/LastStableColumn/columnHeader_es.properties b/core/src/main/resources/hudson/views/LastStableColumn/columnHeader_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..c5344cef1b91dcc5fa592799bc7c33e97eac96e2 --- /dev/null +++ b/core/src/main/resources/hudson/views/LastStableColumn/columnHeader_es.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Last\ Stable=Último estable diff --git a/core/src/main/resources/hudson/views/LastStableColumn/columnHeader_fr.properties b/core/src/main/resources/hudson/views/LastStableColumn/columnHeader_fr.properties new file mode 100644 index 0000000000000000000000000000000000000000..372ba6ab2321772b4501ddc2fe16f08ec0b88632 --- /dev/null +++ b/core/src/main/resources/hudson/views/LastStableColumn/columnHeader_fr.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Last\ Stable=Derni\u00E8re stable diff --git a/core/src/main/resources/hudson/views/LastStableColumn/columnHeader_ja.properties b/core/src/main/resources/hudson/views/LastStableColumn/columnHeader_ja.properties index 59e5db12b7fe1f8e74638a8262fb43641400c687..fcaa7fab8e7d245832fbc149b96c4ad837132c8c 100644 --- a/core/src/main/resources/hudson/views/LastStableColumn/columnHeader_ja.properties +++ b/core/src/main/resources/hudson/views/LastStableColumn/columnHeader_ja.properties @@ -20,4 +20,4 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Last\ Stable=\u6700\u5F8C\u306E\u5B89\u5B9A\u30D3\u30EB\u30C9 +Last\ Stable=\u6700\u65B0\u306E\u5B89\u5B9A\u30D3\u30EB\u30C9 diff --git a/core/src/main/resources/hudson/views/LastStableColumn/columnHeader_ko.properties b/core/src/main/resources/hudson/views/LastStableColumn/columnHeader_ko.properties new file mode 100644 index 0000000000000000000000000000000000000000..bea56564517bcb2c45456d9403630205814b8f71 --- /dev/null +++ b/core/src/main/resources/hudson/views/LastStableColumn/columnHeader_ko.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Last\ Stable=\uB9C8\uC9C0\uB9C9 \uC548\uC815\uD654 diff --git a/core/src/main/resources/hudson/views/LastStableColumn/columnHeader_pt_BR.properties b/core/src/main/resources/hudson/views/LastStableColumn/columnHeader_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..b795e663afb4c35a09a78fc0fbe78a8520aa9b46 --- /dev/null +++ b/core/src/main/resources/hudson/views/LastStableColumn/columnHeader_pt_BR.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Last\ Stable= diff --git a/core/src/main/resources/hudson/views/LastStableColumn/column_da.properties b/core/src/main/resources/hudson/views/LastStableColumn/column_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..7346ac5ce312441866953479b03338f4e736ad9d --- /dev/null +++ b/core/src/main/resources/hudson/views/LastStableColumn/column_da.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +N/A=N/A diff --git a/core/src/main/resources/hudson/views/LastStableColumn/column_de.properties b/core/src/main/resources/hudson/views/LastStableColumn/column_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..a06ee901bf2b5d1d690df4d3e56d78d904996e70 --- /dev/null +++ b/core/src/main/resources/hudson/views/LastStableColumn/column_de.properties @@ -0,0 +1 @@ +N/A=Unbekannt diff --git a/core/src/main/resources/hudson/views/LastStableColumn/column_es.properties b/core/src/main/resources/hudson/views/LastStableColumn/column_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..7f59267d4213bf34863998fdad3159280ed96ca2 --- /dev/null +++ b/core/src/main/resources/hudson/views/LastStableColumn/column_es.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +N/A=N/D diff --git a/core/src/main/resources/hudson/views/LastStableColumn/column_fr.properties b/core/src/main/resources/hudson/views/LastStableColumn/column_fr.properties new file mode 100644 index 0000000000000000000000000000000000000000..5972548e141c524d60fb50918bbd98e6678d0cbb --- /dev/null +++ b/core/src/main/resources/hudson/views/LastStableColumn/column_fr.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +N/A=N/A diff --git a/core/src/main/resources/hudson/views/LastStableColumn/column_ja.properties b/core/src/main/resources/hudson/views/LastStableColumn/column_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..4244c482f3878f45c9a3aad76fbf3f603dcf1a9d --- /dev/null +++ b/core/src/main/resources/hudson/views/LastStableColumn/column_ja.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +N/A=N/A diff --git a/core/src/main/resources/hudson/views/LastStableColumn/column_ko.properties b/core/src/main/resources/hudson/views/LastStableColumn/column_ko.properties new file mode 100644 index 0000000000000000000000000000000000000000..32c74371e298d3b934604ad69638c1bddea01ddc --- /dev/null +++ b/core/src/main/resources/hudson/views/LastStableColumn/column_ko.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +N/A=\u2015 diff --git a/core/src/main/resources/hudson/views/LastStableColumn/column_pt_BR.properties b/core/src/main/resources/hudson/views/LastStableColumn/column_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..39762721b1087a982d024596919ae35afc68f5f0 --- /dev/null +++ b/core/src/main/resources/hudson/views/LastStableColumn/column_pt_BR.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +N/A= diff --git a/core/src/main/resources/hudson/views/LastSuccessColumn/column.jelly b/core/src/main/resources/hudson/views/LastSuccessColumn/column.jelly index 8d860af47ea9b55fdb466cfa5a26e16ba9332602..1bf4eb94e8bdfba0653822ec6ecacbfcb2adcd05 100644 --- a/core/src/main/resources/hudson/views/LastSuccessColumn/column.jelly +++ b/core/src/main/resources/hudson/views/LastSuccessColumn/column.jelly @@ -1,37 +1,37 @@ - - - - - - - ${lsBuild.timestampString} - (#${lsBuild.number}) - - - ${%N/A} - - - + + + + + + + ${lsBuild.timestampString} + (#${lsBuild.number}) + + + ${%N/A} + + + \ No newline at end of file diff --git a/core/src/main/resources/hudson/views/LastSuccessColumn/columnHeader.jelly b/core/src/main/resources/hudson/views/LastSuccessColumn/columnHeader.jelly index d1ee6800c29c3e4cb5de13a83b5929d77a3957e3..42a03d4810b07f5bf8087141f4eef9d6bb04e1ed 100644 --- a/core/src/main/resources/hudson/views/LastSuccessColumn/columnHeader.jelly +++ b/core/src/main/resources/hudson/views/LastSuccessColumn/columnHeader.jelly @@ -1,27 +1,27 @@ - - - - ${%Last Success} + + + + ${%Last Success} \ No newline at end of file diff --git a/core/src/main/resources/hudson/views/LastSuccessColumn/columnHeader_ca.properties b/core/src/main/resources/hudson/views/LastSuccessColumn/columnHeader_ca.properties new file mode 100644 index 0000000000000000000000000000000000000000..422a33b2960d1080eef902217edf4bc457cc77c6 --- /dev/null +++ b/core/src/main/resources/hudson/views/LastSuccessColumn/columnHeader_ca.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Last\ Success=\u00DAltim \u00C8xit diff --git a/core/src/main/resources/hudson/views/LastSuccessColumn/columnHeader_cs.properties b/core/src/main/resources/hudson/views/LastSuccessColumn/columnHeader_cs.properties new file mode 100644 index 0000000000000000000000000000000000000000..0cd53dbb8178a6c687c61b10b558ef572c758af6 --- /dev/null +++ b/core/src/main/resources/hudson/views/LastSuccessColumn/columnHeader_cs.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Last\ Success=Posledn\u00ED \u00FAsp\u011B\u0161n\u00FD diff --git a/core/src/main/resources/hudson/views/LastSuccessColumn/columnHeader_da.properties b/core/src/main/resources/hudson/views/LastSuccessColumn/columnHeader_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..9693bf1135357ae9df90877e64cbddcead885a28 --- /dev/null +++ b/core/src/main/resources/hudson/views/LastSuccessColumn/columnHeader_da.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Last\ Success=Seneste succes diff --git a/core/src/main/resources/hudson/views/LastSuccessColumn/columnHeader_de.properties b/core/src/main/resources/hudson/views/LastSuccessColumn/columnHeader_de.properties index b4fd7928489c96015958da1a309221e80858f375..56fab3bc326d725955c0f1866b39e835e55fd924 100644 --- a/core/src/main/resources/hudson/views/LastSuccessColumn/columnHeader_de.properties +++ b/core/src/main/resources/hudson/views/LastSuccessColumn/columnHeader_de.properties @@ -1,23 +1,23 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest, Martin Eigenbrodt -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Last\ Success=Letzter Erfolg +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest, Martin Eigenbrodt +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Last\ Success=Letzter Erfolg diff --git a/core/src/main/resources/hudson/views/LastSuccessColumn/columnHeader_el.properties b/core/src/main/resources/hudson/views/LastSuccessColumn/columnHeader_el.properties new file mode 100644 index 0000000000000000000000000000000000000000..a83a9be7e314de302b5d5c1a3cdc13ff88637476 --- /dev/null +++ b/core/src/main/resources/hudson/views/LastSuccessColumn/columnHeader_el.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Last\ Success=\u03A4\u03B5\u03BB\u03B5\u03C5\u03C4\u03B1\u03AF\u03B1 \u03B5\u03C0\u03B9\u03C4\u03C5\u03C7\u03AF\u03B1 diff --git a/core/src/main/resources/hudson/views/LastSuccessColumn/columnHeader_es.properties b/core/src/main/resources/hudson/views/LastSuccessColumn/columnHeader_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..b3bda5583268d0c38354fa73265f28d8d6d63734 --- /dev/null +++ b/core/src/main/resources/hudson/views/LastSuccessColumn/columnHeader_es.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Last\ Success=Último éxito diff --git a/core/src/main/resources/hudson/views/LastSuccessColumn/columnHeader_fi.properties b/core/src/main/resources/hudson/views/LastSuccessColumn/columnHeader_fi.properties new file mode 100644 index 0000000000000000000000000000000000000000..6e663535a0bc83766c609a893099017c3bfe424f --- /dev/null +++ b/core/src/main/resources/hudson/views/LastSuccessColumn/columnHeader_fi.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Last\ Success=Edellinen onnistunut diff --git a/core/src/main/resources/hudson/views/LastSuccessColumn/columnHeader_fr.properties b/core/src/main/resources/hudson/views/LastSuccessColumn/columnHeader_fr.properties index 363bfb82c653604093872fa5adbf211bba43fbae..61e976967d9df4e0bc85213f091f266e9903ff77 100644 --- a/core/src/main/resources/hudson/views/LastSuccessColumn/columnHeader_fr.properties +++ b/core/src/main/resources/hudson/views/LastSuccessColumn/columnHeader_fr.properties @@ -1,23 +1,23 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Eric Lefevre-Ardant, Martin Eigenbrodt -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Last\ Success=Dernier succès +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Eric Lefevre-Ardant, Martin Eigenbrodt +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Last\ Success=Dernier succès diff --git a/core/src/main/resources/hudson/views/LastSuccessColumn/columnHeader_hu.properties b/core/src/main/resources/hudson/views/LastSuccessColumn/columnHeader_hu.properties new file mode 100644 index 0000000000000000000000000000000000000000..42131b8eac852626b2438c748edea5bde322725e --- /dev/null +++ b/core/src/main/resources/hudson/views/LastSuccessColumn/columnHeader_hu.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Last\ Success=Utols\u00F3 Sikeres diff --git a/core/src/main/resources/hudson/views/LastSuccessColumn/columnHeader_it.properties b/core/src/main/resources/hudson/views/LastSuccessColumn/columnHeader_it.properties new file mode 100644 index 0000000000000000000000000000000000000000..f9dd47a73734813df167a1cc96ff1d4d4c58013c --- /dev/null +++ b/core/src/main/resources/hudson/views/LastSuccessColumn/columnHeader_it.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Last\ Success=Ultimo successo diff --git a/core/src/main/resources/hudson/views/LastSuccessColumn/columnHeader_ja.properties b/core/src/main/resources/hudson/views/LastSuccessColumn/columnHeader_ja.properties index 12bb485af1bcfb05dbeaae54b4a0d15fe5ff7c4a..e684ce115fac21021fce6473fdbed01f2bfc2d7a 100644 --- a/core/src/main/resources/hudson/views/LastSuccessColumn/columnHeader_ja.properties +++ b/core/src/main/resources/hudson/views/LastSuccessColumn/columnHeader_ja.properties @@ -1,23 +1,23 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe, id:cactusman, Martin Eigenbrodt -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Last\ Success=\u6700\u5F8C\u306E\u6210\u529F\u30D3\u30EB\u30C9 +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe, id:cactusman, Martin Eigenbrodt +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Last\ Success=\u6700\u65B0\u306E\u6210\u529F\u30D3\u30EB\u30C9 diff --git a/core/src/main/resources/hudson/views/LastSuccessColumn/columnHeader_ko.properties b/core/src/main/resources/hudson/views/LastSuccessColumn/columnHeader_ko.properties index 9d3bec2b8d86370fc944817137c5b1cc3a1b50a4..29f7fdaddc8f5deb9a857a84ff0d649973610e51 100644 --- a/core/src/main/resources/hudson/views/LastSuccessColumn/columnHeader_ko.properties +++ b/core/src/main/resources/hudson/views/LastSuccessColumn/columnHeader_ko.properties @@ -1,23 +1,23 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Sung Kim, id:cactusman, Martin Eigenbrodt -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Last\ Success=\uCD5C\uADFC \uC131\uACF5 +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Sung Kim, id:cactusman, Martin Eigenbrodt +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Last\ Success=\uCD5C\uADFC \uC131\uACF5 diff --git a/core/src/main/resources/hudson/views/LastSuccessColumn/columnHeader_lt.properties b/core/src/main/resources/hudson/views/LastSuccessColumn/columnHeader_lt.properties new file mode 100644 index 0000000000000000000000000000000000000000..e300624b3db4065191d11204618bcc63c0d171b9 --- /dev/null +++ b/core/src/main/resources/hudson/views/LastSuccessColumn/columnHeader_lt.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Last\ Success=Paskutin\u0117 pavykusi u\u017Eduotis diff --git a/core/src/main/resources/hudson/views/LastSuccessColumn/columnHeader_nb_NO.properties b/core/src/main/resources/hudson/views/LastSuccessColumn/columnHeader_nb_NO.properties new file mode 100644 index 0000000000000000000000000000000000000000..50459a51a50edc9563a9e09a9506fefa351dc238 --- /dev/null +++ b/core/src/main/resources/hudson/views/LastSuccessColumn/columnHeader_nb_NO.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Last\ Success=Siste suksess diff --git a/core/src/main/resources/hudson/views/LastSuccessColumn/columnHeader_nl.properties b/core/src/main/resources/hudson/views/LastSuccessColumn/columnHeader_nl.properties index bd37ccabce22dbb48e2d60716fd597e2579eeef0..2a49b73c6cd2bc2d7980020d67f447b2634974f1 100644 --- a/core/src/main/resources/hudson/views/LastSuccessColumn/columnHeader_nl.properties +++ b/core/src/main/resources/hudson/views/LastSuccessColumn/columnHeader_nl.properties @@ -1,23 +1,23 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:sorokh, Martin Eigenbrodt -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Last\ Success=Laatste succesvolle bouwpoging +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:sorokh, Martin Eigenbrodt +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Last\ Success=Laatste succesvolle bouwpoging diff --git a/core/src/main/resources/hudson/views/LastSuccessColumn/columnHeader_pt_BR.properties b/core/src/main/resources/hudson/views/LastSuccessColumn/columnHeader_pt_BR.properties index 65deda9c5bef9f53d1e6ea3fc483f1d22ace5838..7075259b2560b58b04a35142dd6f0106e2b00f60 100644 --- a/core/src/main/resources/hudson/views/LastSuccessColumn/columnHeader_pt_BR.properties +++ b/core/src/main/resources/hudson/views/LastSuccessColumn/columnHeader_pt_BR.properties @@ -1,23 +1,23 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Reginaldo L. Russinholi, Martin Eigenbrodt -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Last\ Success=\u00DAltima de Sucesso +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Reginaldo L. Russinholi, Martin Eigenbrodt +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Last\ Success=\u00DAltima de Sucesso diff --git a/core/src/main/resources/hudson/views/LastSuccessColumn/columnHeader_pt_PT.properties b/core/src/main/resources/hudson/views/LastSuccessColumn/columnHeader_pt_PT.properties new file mode 100644 index 0000000000000000000000000000000000000000..5f53f1c19c26070030df870d853c6c788e5c7f9d --- /dev/null +++ b/core/src/main/resources/hudson/views/LastSuccessColumn/columnHeader_pt_PT.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Last\ Success=\u00DAltimo sucesso diff --git a/core/src/main/resources/hudson/views/LastSuccessColumn/columnHeader_ru.properties b/core/src/main/resources/hudson/views/LastSuccessColumn/columnHeader_ru.properties index f99b1d77df8460765c41a305c04d31597883cbbc..8b675a73d91a693745d5ba1628dce9e6f83bce94 100644 --- a/core/src/main/resources/hudson/views/LastSuccessColumn/columnHeader_ru.properties +++ b/core/src/main/resources/hudson/views/LastSuccessColumn/columnHeader_ru.properties @@ -1,23 +1,23 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Mike Salnikov, Martin Eigenbrodt -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Mike Salnikov, Martin Eigenbrodt +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + Last\ Success=\u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0443\u0441\u043f\u0435\u0445 \ No newline at end of file diff --git a/core/src/main/resources/hudson/views/LastSuccessColumn/columnHeader_sv_SE.properties b/core/src/main/resources/hudson/views/LastSuccessColumn/columnHeader_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..122593aeb29cccb66062645b75324683577a1f51 --- /dev/null +++ b/core/src/main/resources/hudson/views/LastSuccessColumn/columnHeader_sv_SE.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Last\ Success=Senaste lyckade diff --git a/core/src/main/resources/hudson/views/LastSuccessColumn/columnHeader_tr.properties b/core/src/main/resources/hudson/views/LastSuccessColumn/columnHeader_tr.properties index c44bf1038d5212907939b0d4de5e2d0c85cbc2a9..c1e9b0c22847b208e95d1acb194199736a5f1557 100644 --- a/core/src/main/resources/hudson/views/LastSuccessColumn/columnHeader_tr.properties +++ b/core/src/main/resources/hudson/views/LastSuccessColumn/columnHeader_tr.properties @@ -1,23 +1,23 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Oguz Dag, Martin Eigenbrodt -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Last\ Success=En son ba\u015far\u0131 +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Oguz Dag, Martin Eigenbrodt +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Last\ Success=En son ba\u015far\u0131 diff --git a/core/src/main/resources/hudson/views/LastSuccessColumn/columnHeader_zh_CN.properties b/core/src/main/resources/hudson/views/LastSuccessColumn/columnHeader_zh_CN.properties new file mode 100644 index 0000000000000000000000000000000000000000..eafe1f82a79d836bfcdba1728a544578c35738bd --- /dev/null +++ b/core/src/main/resources/hudson/views/LastSuccessColumn/columnHeader_zh_CN.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Last\ Success=\u4E0A\u6B21\u6210\u529F diff --git a/core/src/main/resources/hudson/views/LastSuccessColumn/columnHeader_zh_TW.properties b/core/src/main/resources/hudson/views/LastSuccessColumn/columnHeader_zh_TW.properties new file mode 100644 index 0000000000000000000000000000000000000000..a09162227f3921456b5150e668c545c2a6a9acc7 --- /dev/null +++ b/core/src/main/resources/hudson/views/LastSuccessColumn/columnHeader_zh_TW.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Last\ Success=\u4E0A\u6B21\u6210\u529F\u6642\u9593 diff --git a/core/src/main/resources/hudson/views/LastSuccessColumn/column_ca.properties b/core/src/main/resources/hudson/views/LastSuccessColumn/column_ca.properties new file mode 100644 index 0000000000000000000000000000000000000000..5972548e141c524d60fb50918bbd98e6678d0cbb --- /dev/null +++ b/core/src/main/resources/hudson/views/LastSuccessColumn/column_ca.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +N/A=N/A diff --git a/core/src/main/resources/hudson/views/LastSuccessColumn/column_cs.properties b/core/src/main/resources/hudson/views/LastSuccessColumn/column_cs.properties new file mode 100644 index 0000000000000000000000000000000000000000..386a639940edba829b29b949ea4b4945e33fe878 --- /dev/null +++ b/core/src/main/resources/hudson/views/LastSuccessColumn/column_cs.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +N/A=\u017E\u00E1dn\u00FD diff --git a/core/src/main/resources/hudson/views/LastSuccessColumn/column_da.properties b/core/src/main/resources/hudson/views/LastSuccessColumn/column_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..7346ac5ce312441866953479b03338f4e736ad9d --- /dev/null +++ b/core/src/main/resources/hudson/views/LastSuccessColumn/column_da.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +N/A=N/A diff --git a/core/src/main/resources/hudson/views/LastSuccessColumn/column_de.properties b/core/src/main/resources/hudson/views/LastSuccessColumn/column_de.properties index 96e05316ed240a6416176f9be71abee50969a62e..a06ee901bf2b5d1d690df4d3e56d78d904996e70 100644 --- a/core/src/main/resources/hudson/views/LastSuccessColumn/column_de.properties +++ b/core/src/main/resources/hudson/views/LastSuccessColumn/column_de.properties @@ -1 +1 @@ -N/A=Unbekannt +N/A=Unbekannt diff --git a/core/src/main/resources/hudson/views/LastSuccessColumn/column_es.properties b/core/src/main/resources/hudson/views/LastSuccessColumn/column_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..7f59267d4213bf34863998fdad3159280ed96ca2 --- /dev/null +++ b/core/src/main/resources/hudson/views/LastSuccessColumn/column_es.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +N/A=N/D diff --git a/core/src/main/resources/hudson/views/LastSuccessColumn/column_fi.properties b/core/src/main/resources/hudson/views/LastSuccessColumn/column_fi.properties new file mode 100644 index 0000000000000000000000000000000000000000..927ff16a193bf6015d356082397ca8314a52c700 --- /dev/null +++ b/core/src/main/resources/hudson/views/LastSuccessColumn/column_fi.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +N/A=ei tietoa diff --git a/core/src/main/resources/hudson/views/LastSuccessColumn/column_fr.properties b/core/src/main/resources/hudson/views/LastSuccessColumn/column_fr.properties index 4a45b0bd573b9e6d5ce631aae31002143c175062..351768e68f5914e112ac0d79b73691e971806826 100644 --- a/core/src/main/resources/hudson/views/LastSuccessColumn/column_fr.properties +++ b/core/src/main/resources/hudson/views/LastSuccessColumn/column_fr.properties @@ -1,23 +1,23 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Eric Lefevre-Ardant, Martin Eigenbrodt -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -N/A= +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Eric Lefevre-Ardant, Martin Eigenbrodt +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +N/A=N/A diff --git a/core/src/main/resources/hudson/views/LastSuccessColumn/column_it.properties b/core/src/main/resources/hudson/views/LastSuccessColumn/column_it.properties new file mode 100644 index 0000000000000000000000000000000000000000..3760d7743ab416735f71ced7a8a4f600da1f0e23 --- /dev/null +++ b/core/src/main/resources/hudson/views/LastSuccessColumn/column_it.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +N/A=N.D. diff --git a/core/src/main/resources/hudson/views/LastSuccessColumn/column_ja.properties b/core/src/main/resources/hudson/views/LastSuccessColumn/column_ja.properties index c98498895fbdbe4223eb39d81eb361c49a045703..ea760600649edaaba6506cd3e10086b7974b9d09 100644 --- a/core/src/main/resources/hudson/views/LastSuccessColumn/column_ja.properties +++ b/core/src/main/resources/hudson/views/LastSuccessColumn/column_ja.properties @@ -1,23 +1,23 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe, id:cactusman, Martin Eigenbrodt -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -N/A=\u2015 +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe, id:cactusman, Martin Eigenbrodt +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +N/A=\u2015 diff --git a/core/src/main/resources/hudson/views/LastSuccessColumn/column_ko.properties b/core/src/main/resources/hudson/views/LastSuccessColumn/column_ko.properties index 98e02f2db0acb2d475322f23fa8558980c89ae6d..66471cd3d02fdc2a8006a9488749a4c9f9c40119 100644 --- a/core/src/main/resources/hudson/views/LastSuccessColumn/column_ko.properties +++ b/core/src/main/resources/hudson/views/LastSuccessColumn/column_ko.properties @@ -1,23 +1,23 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Sung Kim, id:cactusman, Martin Eigenbrodt -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -N/A=\u2015 +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Sung Kim, id:cactusman, Martin Eigenbrodt +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +N/A=\u2015 diff --git a/core/src/main/resources/hudson/views/LastSuccessColumn/column_nl.properties b/core/src/main/resources/hudson/views/LastSuccessColumn/column_nl.properties index 6fea545dac6d7b0d19c4de07e166f36ecde54493..819cac5d55f29e4816f12746930df7170e56d970 100644 --- a/core/src/main/resources/hudson/views/LastSuccessColumn/column_nl.properties +++ b/core/src/main/resources/hudson/views/LastSuccessColumn/column_nl.properties @@ -1,23 +1,23 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:sorokh, Martin Eigenbrodt -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -N/A=N.B. +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:sorokh, Martin Eigenbrodt +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +N/A=N.B. diff --git a/core/src/main/resources/hudson/views/LastSuccessColumn/column_pt_BR.properties b/core/src/main/resources/hudson/views/LastSuccessColumn/column_pt_BR.properties index c109520201aa11f0021c71663ad41cfd1b7a01dd..9ccda83224782e30fc57b89f5beeb37d8efe8425 100644 --- a/core/src/main/resources/hudson/views/LastSuccessColumn/column_pt_BR.properties +++ b/core/src/main/resources/hudson/views/LastSuccessColumn/column_pt_BR.properties @@ -1,23 +1,23 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Reginaldo L. Russinholi, Martin Eigenbrodt -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -N/A= +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Reginaldo L. Russinholi, Martin Eigenbrodt +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +N/A= diff --git a/core/src/main/resources/hudson/views/LastSuccessColumn/column_ru.properties b/core/src/main/resources/hudson/views/LastSuccessColumn/column_ru.properties index 24729e4bfa93fcca7893898695a2ef334dad2f9f..56e24e0ba02178a0d1446d4820516e4a2f40bba0 100644 --- a/core/src/main/resources/hudson/views/LastSuccessColumn/column_ru.properties +++ b/core/src/main/resources/hudson/views/LastSuccessColumn/column_ru.properties @@ -1,23 +1,23 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Mike Salnikov, Martin Eigenbrodt -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Mike Salnikov, Martin Eigenbrodt +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + N/A=\u041d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e \ No newline at end of file diff --git a/core/src/main/resources/hudson/views/LastSuccessColumn/column_tr.properties b/core/src/main/resources/hudson/views/LastSuccessColumn/column_tr.properties index aeec38d49f4f657ce528e1c4361276b553c33937..36c1f2991279fab4f5f4bb1a2a1f1ac2ac57bfb5 100644 --- a/core/src/main/resources/hudson/views/LastSuccessColumn/column_tr.properties +++ b/core/src/main/resources/hudson/views/LastSuccessColumn/column_tr.properties @@ -1,23 +1,23 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Oguz Dag, Martin Eigenbrodt -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -N/A=Mevcut De\u011fil +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Oguz Dag, Martin Eigenbrodt +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +N/A=Mevcut De\u011fil diff --git a/core/src/main/resources/hudson/views/ListViewColumn/columnHeader.jelly b/core/src/main/resources/hudson/views/ListViewColumn/columnHeader.jelly index 3a285ca728e559e2e993511525b78b94eadee845..478d5588e8155fb083daab682a0fbe13c884a0d7 100644 --- a/core/src/main/resources/hudson/views/ListViewColumn/columnHeader.jelly +++ b/core/src/main/resources/hudson/views/ListViewColumn/columnHeader.jelly @@ -1,27 +1,27 @@ - - - - ${it.columnCaption} + + + + ${it.columnCaption} \ No newline at end of file diff --git a/core/src/main/resources/hudson/views/Messages.properties b/core/src/main/resources/hudson/views/Messages.properties index 11d8d05ab785646376dce2e1a6127c203b66b62a..b8ee8646a09caa90ff0599b737b312469905224d 100644 --- a/core/src/main/resources/hudson/views/Messages.properties +++ b/core/src/main/resources/hudson/views/Messages.properties @@ -28,3 +28,5 @@ LastStableColumn.DisplayName=Last Stable LastSuccessColumn.DisplayName=Last Success StatusColumn.DisplayName=Status WeatherColumn.DisplayName=Weather +DefaultViewsTabsBar.DisplayName=Default Views TabBar +DefaultMyViewsTabsBar.DisplayName=Default My Views TabBar diff --git a/core/src/main/resources/hudson/views/Messages_da.properties b/core/src/main/resources/hudson/views/Messages_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..8f3108b06a7e1e9f54655806a49e33ec97614805 --- /dev/null +++ b/core/src/main/resources/hudson/views/Messages_da.properties @@ -0,0 +1,30 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +LastDurationColumn.DisplayName=Seneste varighed +StatusColumn.DisplayName=Status +BuildButtonColumn.DisplayName=Byggeknap +WeatherColumn.DisplayName=Vejrudsigt +LastSuccessColumn.DisplayName=Seneste succes +LastFailureColumn.DisplayName=Seneste fejlede +LastStableColumn.DisplayName=Seneste stabile +JobColumn.DisplayName=Job diff --git a/core/src/main/resources/hudson/views/Messages_de.properties b/core/src/main/resources/hudson/views/Messages_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..de687ac54f597e36b48ec8a7d9fd22578960b3f4 --- /dev/null +++ b/core/src/main/resources/hudson/views/Messages_de.properties @@ -0,0 +1,30 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Seiji Sogabe, Simon Wiest +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +BuildButtonColumn.DisplayName=Build-Schaltfläche +JobColumn.DisplayName=Job +LastDurationColumn.DisplayName=Letzte Dauer +LastFailureColumn.DisplayName=Letzter Fehlschlag +LastStableColumn.DisplayName=Letzter stabiler Build +LastSuccessColumn.DisplayName=Letzter Erfolg +StatusColumn.DisplayName=Status +WeatherColumn.DisplayName=Wetter diff --git a/core/src/main/resources/hudson/views/Messages_es.properties b/core/src/main/resources/hudson/views/Messages_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..b886eaabd0a4b97bbe0681751cd6cb8c70467dea --- /dev/null +++ b/core/src/main/resources/hudson/views/Messages_es.properties @@ -0,0 +1,30 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +BuildButtonColumn.DisplayName=Botón de ejecución +JobColumn.DisplayName=Tarea +LastDurationColumn.DisplayName=Última duración +LastFailureColumn.DisplayName=Último fallo +LastStableColumn.DisplayName=Último estable +LastSuccessColumn.DisplayName=Último correcto +StatusColumn.DisplayName=Estado +WeatherColumn.DisplayName=Pronóstico diff --git a/core/src/main/resources/hudson/views/Messages_ja.properties b/core/src/main/resources/hudson/views/Messages_ja.properties index f5d8dfedad3ac13d785e2c2b90ff97f12914917c..35c728fee8d31f9bd67dd2434682dac2bd8e9b89 100644 --- a/core/src/main/resources/hudson/views/Messages_ja.properties +++ b/core/src/main/resources/hudson/views/Messages_ja.properties @@ -23,8 +23,8 @@ BuildButtonColumn.DisplayName=\u30D3\u30EB\u30C9\u30DC\u30BF\u30F3 JobColumn.DisplayName=\u30B8\u30E7\u30D6 LastDurationColumn.DisplayName=\u30D3\u30EB\u30C9\u6240\u8981\u6642\u9593 -LastFailureColumn.DisplayName=\u6700\u5F8C\u306E\u5931\u6557\u30D3\u30EB\u30C9 -LastStableColumn.DisplayName=\u6700\u5F8C\u306E\u5B89\u5B9A\u30D3\u30EB\u30C9 -LastSuccessColumn.DisplayName=\u6700\u5F8C\u306E\u6210\u529F\u30D3\u30EB\u30C9 +LastFailureColumn.DisplayName=\u6700\u65B0\u306E\u5931\u6557\u30D3\u30EB\u30C9 +LastStableColumn.DisplayName=\u6700\u65B0\u306E\u5B89\u5B9A\u30D3\u30EB\u30C9 +LastSuccessColumn.DisplayName=\u6700\u65B0\u306E\u6210\u529F\u30D3\u30EB\u30C9 StatusColumn.DisplayName=\u30B9\u30C6\u30FC\u30BF\u30B9 WeatherColumn.DisplayName=\u5929\u6C17\u4E88\u5831 diff --git a/core/src/main/resources/hudson/views/Messages_pt_BR.properties b/core/src/main/resources/hudson/views/Messages_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..7671af3d70767f6aae77ac666d77417100111c6b --- /dev/null +++ b/core/src/main/resources/hudson/views/Messages_pt_BR.properties @@ -0,0 +1,38 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +# Last Duration +LastDurationColumn.DisplayName= +# Status +StatusColumn.DisplayName= +# Build Button +BuildButtonColumn.DisplayName= +# Weather +WeatherColumn.DisplayName= +# Last Success +LastSuccessColumn.DisplayName= +# Last Failure +LastFailureColumn.DisplayName= +# Last Stable +LastStableColumn.DisplayName= +# Job +JobColumn.DisplayName= diff --git a/core/src/main/resources/hudson/views/StatusColumn/column.jelly b/core/src/main/resources/hudson/views/StatusColumn/column.jelly index 9ce3aded243b5e9d6cb596cf3d92f6619d90d2cf..0abb54f0c90c3777d18c0016a2d8032f86b411b3 100644 --- a/core/src/main/resources/hudson/views/StatusColumn/column.jelly +++ b/core/src/main/resources/hudson/views/StatusColumn/column.jelly @@ -1,27 +1,27 @@ - - - - + + + + \ No newline at end of file diff --git a/core/src/main/resources/hudson/views/StatusColumn/columnHeader.jelly b/core/src/main/resources/hudson/views/StatusColumn/columnHeader.jelly index 71fae7e908393c817c8888ab28ffef410c0c0616..9587cf39d7ecca8c6abf7ac5efe800c3c10eba6a 100644 --- a/core/src/main/resources/hudson/views/StatusColumn/columnHeader.jelly +++ b/core/src/main/resources/hudson/views/StatusColumn/columnHeader.jelly @@ -1,27 +1,27 @@ - - - - ${h.nbspIndent(iconSize)}S + + + + ${h.nbspIndent(iconSize)}S \ No newline at end of file diff --git a/core/src/main/resources/hudson/views/StatusColumn/columnHeader_ca.properties b/core/src/main/resources/hudson/views/StatusColumn/columnHeader_ca.properties new file mode 100644 index 0000000000000000000000000000000000000000..1c7d8deaf1f604f84706098abe7cf668f0f2bb12 --- /dev/null +++ b/core/src/main/resources/hudson/views/StatusColumn/columnHeader_ca.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Status\ of\ the\ last\ build=Estat de l''\u00FAltima construcci\u00F3 diff --git a/core/src/main/resources/hudson/views/StatusColumn/columnHeader_cs.properties b/core/src/main/resources/hudson/views/StatusColumn/columnHeader_cs.properties new file mode 100644 index 0000000000000000000000000000000000000000..ffd7415ff457228f4beeb159e29f53ddad25ba3f --- /dev/null +++ b/core/src/main/resources/hudson/views/StatusColumn/columnHeader_cs.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Status\ of\ the\ last\ build=V\u00FDsledek posledn\u00EDho buildu. diff --git a/core/src/main/resources/hudson/views/StatusColumn/columnHeader_da.properties b/core/src/main/resources/hudson/views/StatusColumn/columnHeader_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..b1babbcb46b536445cf6fefb1e4dbaba5c741b77 --- /dev/null +++ b/core/src/main/resources/hudson/views/StatusColumn/columnHeader_da.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Status\ of\ the\ last\ build=Status for det seneste byg diff --git a/core/src/main/resources/hudson/views/StatusColumn/columnHeader_de.properties b/core/src/main/resources/hudson/views/StatusColumn/columnHeader_de.properties index 9839e1c2a97c2d5df066f87f4c562f66f5c6e278..16bfaf7ce32e08aed93cc02f427c1b828453e55e 100644 --- a/core/src/main/resources/hudson/views/StatusColumn/columnHeader_de.properties +++ b/core/src/main/resources/hudson/views/StatusColumn/columnHeader_de.properties @@ -1,23 +1,23 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest, Martin Eigenbrodt -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Status\ of\ the\ last\ build=Status des letzten Builds +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest, Martin Eigenbrodt +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Status\ of\ the\ last\ build=Status des letzten Builds diff --git a/core/src/main/resources/hudson/views/StatusColumn/columnHeader_el.properties b/core/src/main/resources/hudson/views/StatusColumn/columnHeader_el.properties new file mode 100644 index 0000000000000000000000000000000000000000..cd938f9d6231ce51921f8dbabfddc626e9cc52d7 --- /dev/null +++ b/core/src/main/resources/hudson/views/StatusColumn/columnHeader_el.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Status\ of\ the\ last\ build=\u039A\u03B1\u03C4\u03AC\u03C3\u03C4\u03B1\u03C3\u03B7 \u03C4\u03BF\u03C5 \u03C4\u03B5\u03BB\u03B5\u03C5\u03C4\u03B1\u03AF\u03BF\u03C5 Build diff --git a/core/src/main/resources/hudson/views/StatusColumn/columnHeader_es.properties b/core/src/main/resources/hudson/views/StatusColumn/columnHeader_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..ad12f998c599e57e5749b884c74639ac53a9196a --- /dev/null +++ b/core/src/main/resources/hudson/views/StatusColumn/columnHeader_es.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Status\ of\ the\ last\ build=Estado de la última ejecución diff --git a/core/src/main/resources/hudson/views/StatusColumn/columnHeader_fi.properties b/core/src/main/resources/hudson/views/StatusColumn/columnHeader_fi.properties new file mode 100644 index 0000000000000000000000000000000000000000..db1754b810f604fab87af74b1917215d3dc3a081 --- /dev/null +++ b/core/src/main/resources/hudson/views/StatusColumn/columnHeader_fi.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Status\ of\ the\ last\ build=Edellisen k\u00E4\u00E4nn\u00F6ksen tila diff --git a/core/src/main/resources/hudson/views/StatusColumn/columnHeader_fr.properties b/core/src/main/resources/hudson/views/StatusColumn/columnHeader_fr.properties index 411de894c3e80e8a6aed198267ff55a7f73abf09..f3e5f3707dda699f7dfec0795f7a014661b30eef 100644 --- a/core/src/main/resources/hudson/views/StatusColumn/columnHeader_fr.properties +++ b/core/src/main/resources/hudson/views/StatusColumn/columnHeader_fr.properties @@ -1,23 +1,23 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Eric Lefevre-Ardant, Martin Eigenbrodt -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Status\ of\ the\ last\ build=Statut du dernier build +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Eric Lefevre-Ardant, Martin Eigenbrodt +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Status\ of\ the\ last\ build=Statut de la derni\u00E8re construction diff --git a/core/src/main/resources/hudson/views/StatusColumn/columnHeader_it.properties b/core/src/main/resources/hudson/views/StatusColumn/columnHeader_it.properties new file mode 100644 index 0000000000000000000000000000000000000000..f47a0d4075bebabeb1e692f8939bb7b17f9e88f8 --- /dev/null +++ b/core/src/main/resources/hudson/views/StatusColumn/columnHeader_it.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Status\ of\ the\ last\ build=Stato dell''ultimo build diff --git a/core/src/main/resources/hudson/views/StatusColumn/columnHeader_ja.properties b/core/src/main/resources/hudson/views/StatusColumn/columnHeader_ja.properties index e94d6cefaafbbd36dc1303110bbcf69c8678e32c..4b084c5752ef50e39241eb2bcb71d92efdc55f43 100644 --- a/core/src/main/resources/hudson/views/StatusColumn/columnHeader_ja.properties +++ b/core/src/main/resources/hudson/views/StatusColumn/columnHeader_ja.properties @@ -1,23 +1,23 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe, id:cactusman, Martin Eigenbrodt -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Status\ of\ the\ last\ build=\u6700\u65B0\u30D3\u30EB\u30C9\u306E\u30B9\u30C6\u30FC\u30BF\u30B9 +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe, id:cactusman, Martin Eigenbrodt +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Status\ of\ the\ last\ build=\u6700\u65B0\u30D3\u30EB\u30C9\u306E\u30B9\u30C6\u30FC\u30BF\u30B9 diff --git a/core/src/main/resources/hudson/views/StatusColumn/columnHeader_ko.properties b/core/src/main/resources/hudson/views/StatusColumn/columnHeader_ko.properties index 14efb60e52409f3c9cc944fe54a0876e32c77968..2c555fd3a2ded42dbf0891c76cad1886c7c82203 100644 --- a/core/src/main/resources/hudson/views/StatusColumn/columnHeader_ko.properties +++ b/core/src/main/resources/hudson/views/StatusColumn/columnHeader_ko.properties @@ -1,23 +1,23 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Sung Kim, id:cactusman, Martin Eigenbrodt -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Status\ of\ the\ last\ build= +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Sung Kim, id:cactusman, Martin Eigenbrodt +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Status\ of\ the\ last\ build=\uB9C8\uC9C0\uB9C9 \uBE4C\uB4DC \uC0C1\uD0DC diff --git a/core/src/main/resources/hudson/views/StatusColumn/columnHeader_lt.properties b/core/src/main/resources/hudson/views/StatusColumn/columnHeader_lt.properties new file mode 100644 index 0000000000000000000000000000000000000000..7f88bee57dda388bcdea3182fdb4fc44d4bb1982 --- /dev/null +++ b/core/src/main/resources/hudson/views/StatusColumn/columnHeader_lt.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Status\ of\ the\ last\ build=Paskutin\u0117s u\u017Eduoties b\u016Bsena diff --git a/core/src/main/resources/hudson/views/StatusColumn/columnHeader_nb_NO.properties b/core/src/main/resources/hudson/views/StatusColumn/columnHeader_nb_NO.properties new file mode 100644 index 0000000000000000000000000000000000000000..09b3b67abf93270be1eca2479173f6582b01aa78 --- /dev/null +++ b/core/src/main/resources/hudson/views/StatusColumn/columnHeader_nb_NO.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Status\ of\ the\ last\ build=Status p\u00E5 siste bygg diff --git a/core/src/main/resources/hudson/views/StatusColumn/columnHeader_nl.properties b/core/src/main/resources/hudson/views/StatusColumn/columnHeader_nl.properties index a946a752d89dea2ce1a44278fb29087e55f91b9c..983861312b51ef000647c9ba13f2e19dd038c20b 100644 --- a/core/src/main/resources/hudson/views/StatusColumn/columnHeader_nl.properties +++ b/core/src/main/resources/hudson/views/StatusColumn/columnHeader_nl.properties @@ -1,23 +1,23 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:sorokh, Martin Eigenbrodt -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Status\ of\ the\ last\ build= +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:sorokh, Martin Eigenbrodt +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Status\ of\ the\ last\ build=Status van de laatste bouwpoging diff --git a/core/src/main/resources/hudson/views/StatusColumn/columnHeader_pt_BR.properties b/core/src/main/resources/hudson/views/StatusColumn/columnHeader_pt_BR.properties index 9b37da5b816fb695247f0c97e96a7acf4d09615e..2a47a895cc6c7dbb409c71c272c62165782d0e4c 100644 --- a/core/src/main/resources/hudson/views/StatusColumn/columnHeader_pt_BR.properties +++ b/core/src/main/resources/hudson/views/StatusColumn/columnHeader_pt_BR.properties @@ -1,23 +1,23 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Reginaldo L. Russinholi, Martin Eigenbrodt -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Status\ of\ the\ last\ build= +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Reginaldo L. Russinholi, Martin Eigenbrodt +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Status\ of\ the\ last\ build=Estado da \u00FAltima constru\u00E7\u00E3o diff --git a/core/src/main/resources/hudson/views/StatusColumn/columnHeader_pt_PT.properties b/core/src/main/resources/hudson/views/StatusColumn/columnHeader_pt_PT.properties new file mode 100644 index 0000000000000000000000000000000000000000..b4317620c6452c011fd5c13c8495108d6451be2c --- /dev/null +++ b/core/src/main/resources/hudson/views/StatusColumn/columnHeader_pt_PT.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Status\ of\ the\ last\ build=Estado da \u00FAltima compila\u00E7\u00E3o diff --git a/core/src/main/resources/hudson/views/StatusColumn/columnHeader_ru.properties b/core/src/main/resources/hudson/views/StatusColumn/columnHeader_ru.properties index 21ddbed4e388b99e4983f89ee58325788f917507..4751d59915e042af8a79c3f800997c120e4871a1 100644 --- a/core/src/main/resources/hudson/views/StatusColumn/columnHeader_ru.properties +++ b/core/src/main/resources/hudson/views/StatusColumn/columnHeader_ru.properties @@ -1,23 +1,23 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Mike Salnikov, Martin Eigenbrodt -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Status\ of\ the\ last\ build= +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Mike Salnikov, Martin Eigenbrodt +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Status\ of\ the\ last\ build=\u0421\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0435 \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0435\u0439 \u0441\u0431\u043E\u0440\u043A\u0438 diff --git a/core/src/main/resources/hudson/views/StatusColumn/columnHeader_sv_SE.properties b/core/src/main/resources/hudson/views/StatusColumn/columnHeader_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..e1080379d1b6045182644545a2294d7640b6859d --- /dev/null +++ b/core/src/main/resources/hudson/views/StatusColumn/columnHeader_sv_SE.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Status\ of\ the\ last\ build=Status f\u00F6r senaste bygget diff --git a/core/src/main/resources/hudson/views/StatusColumn/columnHeader_tr.properties b/core/src/main/resources/hudson/views/StatusColumn/columnHeader_tr.properties index 8fcf53dade67303a74e64b827af761efc331b2f2..beacfc85fb31ec900f9a4c76da1254592dd31005 100644 --- a/core/src/main/resources/hudson/views/StatusColumn/columnHeader_tr.properties +++ b/core/src/main/resources/hudson/views/StatusColumn/columnHeader_tr.properties @@ -1,23 +1,23 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Oguz Dag, Martin Eigenbrodt -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Status\ of\ the\ last\ build= +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Oguz Dag, Martin Eigenbrodt +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Status\ of\ the\ last\ build= diff --git a/core/src/main/resources/hudson/views/StatusColumn/columnHeader_zh_CN.properties b/core/src/main/resources/hudson/views/StatusColumn/columnHeader_zh_CN.properties new file mode 100644 index 0000000000000000000000000000000000000000..2e377cd51b2f18a3d5c180ad6cb7c87b7cd05bec --- /dev/null +++ b/core/src/main/resources/hudson/views/StatusColumn/columnHeader_zh_CN.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Status\ of\ the\ last\ build=\u6700\u540e\u6784\u5efa\u72b6\u6001 diff --git a/core/src/main/resources/hudson/views/StatusColumn/columnHeader_zh_TW.properties b/core/src/main/resources/hudson/views/StatusColumn/columnHeader_zh_TW.properties new file mode 100644 index 0000000000000000000000000000000000000000..aec221f7bd3f0387a9daa351be652f73506b3307 --- /dev/null +++ b/core/src/main/resources/hudson/views/StatusColumn/columnHeader_zh_TW.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Status\ of\ the\ last\ build=\u6700\u5F8C\u4E00\u6B21\u5EFA\u69CB\u7684\u72C0\u614B diff --git a/core/src/main/resources/hudson/views/WeatherColumn/column.jelly b/core/src/main/resources/hudson/views/WeatherColumn/column.jelly index a6dc295b2660619330e518991cdf0a63d04c3420..92616c87e176119c3715662f7a8468b891f8d274 100644 --- a/core/src/main/resources/hudson/views/WeatherColumn/column.jelly +++ b/core/src/main/resources/hudson/views/WeatherColumn/column.jelly @@ -1,28 +1,28 @@ - - - - + + + + \ No newline at end of file diff --git a/core/src/main/resources/hudson/views/WeatherColumn/columnHeader.jelly b/core/src/main/resources/hudson/views/WeatherColumn/columnHeader.jelly index ba0eeaa8c57d6097137500ef87c56653eb65d135..7df330d39859f85bb728d0a6e206dd1dd5a5def3 100644 --- a/core/src/main/resources/hudson/views/WeatherColumn/columnHeader.jelly +++ b/core/src/main/resources/hudson/views/WeatherColumn/columnHeader.jelly @@ -1,27 +1,27 @@ - - - - ${h.nbspIndent(iconSize)}W + + + + ${h.nbspIndent(iconSize)}W \ No newline at end of file diff --git a/core/src/main/resources/hudson/views/WeatherColumn/columnHeader_cs.properties b/core/src/main/resources/hudson/views/WeatherColumn/columnHeader_cs.properties new file mode 100644 index 0000000000000000000000000000000000000000..58a0bd14dd4113a58d3e4ddfd2dc4c1bfc847e0e --- /dev/null +++ b/core/src/main/resources/hudson/views/WeatherColumn/columnHeader_cs.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Weather\ report\ showing\ aggregated\ status\ of\ recent\ builds=Pr\u016Fm\u011Br v\u00FDsledk\u016F z posledn\u00EDch build\u016F. diff --git a/core/src/main/resources/hudson/views/WeatherColumn/columnHeader_da.properties b/core/src/main/resources/hudson/views/WeatherColumn/columnHeader_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..148b0a36f0aff05076bdad0939f8251b84248d94 --- /dev/null +++ b/core/src/main/resources/hudson/views/WeatherColumn/columnHeader_da.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Weather\ report\ showing\ aggregated\ status\ of\ recent\ builds=Vejrudsigt der viser en samlet status dor de seneste byg diff --git a/core/src/main/resources/hudson/views/WeatherColumn/columnHeader_de.properties b/core/src/main/resources/hudson/views/WeatherColumn/columnHeader_de.properties index b9f73e0067b6b3e5cd6571fff334d6deb91f891c..cd35c39c2a03a20d58c08e62c501c52b014e8d31 100644 --- a/core/src/main/resources/hudson/views/WeatherColumn/columnHeader_de.properties +++ b/core/src/main/resources/hudson/views/WeatherColumn/columnHeader_de.properties @@ -1,23 +1,24 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest, Martin Eigenbrodt -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Weather\ report\ showing\ aggregated\ status\ of\ recent\ builds= +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest, Martin Eigenbrodt +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Weather\ report\ showing\ aggregated\ status\ of\ recent\ builds=\ + Wetterbericht, der die Ergebnisse der neuesten Builds zusammenfasst. diff --git a/core/src/main/resources/hudson/views/WeatherColumn/columnHeader_el.properties b/core/src/main/resources/hudson/views/WeatherColumn/columnHeader_el.properties new file mode 100644 index 0000000000000000000000000000000000000000..8fc2ed43fec92ff0017e0b38a11492a974ff1d0b --- /dev/null +++ b/core/src/main/resources/hudson/views/WeatherColumn/columnHeader_el.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Weather\ report\ showing\ aggregated\ status\ of\ recent\ builds=\u0391\u03BD\u03B1\u03C6\u03BF\u03C1\u03AC \u03BA\u03B1\u03B9\u03C1\u03BF\u03CD \u03C0\u03BF\u03C5 \u03B4\u03B5\u03AF\u03C7\u03BD\u03B5\u03B9 \u03C4\u03B7 \u03C3\u03C5\u03BD\u03BF\u03BB\u03B9\u03BA\u03AE \u03BA\u03B1\u03C4\u03AC\u03C3\u03C4\u03B1\u03C3\u03B7 \u03C4\u03C9\u03BD \u03C4\u03B5\u03BB. Builds diff --git a/core/src/main/resources/hudson/views/WeatherColumn/columnHeader_es.properties b/core/src/main/resources/hudson/views/WeatherColumn/columnHeader_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..955ce0b9bfdc4acd7548ac5035ee78bb141dece2 --- /dev/null +++ b/core/src/main/resources/hudson/views/WeatherColumn/columnHeader_es.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Weather\ report\ showing\ aggregated\ status\ of\ recent\ builds=Informe de estado de las ejecuciones mas recientes diff --git a/core/src/main/resources/hudson/views/WeatherColumn/columnHeader_fi.properties b/core/src/main/resources/hudson/views/WeatherColumn/columnHeader_fi.properties new file mode 100644 index 0000000000000000000000000000000000000000..8f6b1543dd78862a46edc5a6c75d92bf89510b16 --- /dev/null +++ b/core/src/main/resources/hudson/views/WeatherColumn/columnHeader_fi.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Weather\ report\ showing\ aggregated\ status\ of\ recent\ builds=S\u00E4\u00E4tila n\u00E4ytt\u00E4\u00E4 yhteenvedon viimeisimpien k\u00E4\u00E4nn\u00F6sten tilasta. diff --git a/core/src/main/resources/hudson/views/WeatherColumn/columnHeader_fr.properties b/core/src/main/resources/hudson/views/WeatherColumn/columnHeader_fr.properties index 8095c72e117bae375dc2b909be92398f9a3583f5..8c137326ecce0d481c1376158c716e846fcf8874 100644 --- a/core/src/main/resources/hudson/views/WeatherColumn/columnHeader_fr.properties +++ b/core/src/main/resources/hudson/views/WeatherColumn/columnHeader_fr.properties @@ -1,23 +1,23 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Eric Lefevre-Ardant, Martin Eigenbrodt -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Weather\ report\ showing\ aggregated\ status\ of\ recent\ builds=Graphe montrant les statuts de tous les builds récents +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Eric Lefevre-Ardant, Martin Eigenbrodt +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Weather\ report\ showing\ aggregated\ status\ of\ recent\ builds=Graphe montrant les statuts de toutes les construction r\u00E9centes diff --git a/core/src/main/resources/hudson/views/WeatherColumn/columnHeader_ja.properties b/core/src/main/resources/hudson/views/WeatherColumn/columnHeader_ja.properties index b00ebc71f8c87239e6bff2cd508728c656a8acca..de2f1aef3da69a75c2dd5c6669680adee9fbe7dc 100644 --- a/core/src/main/resources/hudson/views/WeatherColumn/columnHeader_ja.properties +++ b/core/src/main/resources/hudson/views/WeatherColumn/columnHeader_ja.properties @@ -1,24 +1,24 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe, id:cactusman, Martin Eigenbrodt -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Weather\ report\ showing\ aggregated\ status\ of\ recent\ builds=\ - \u6700\u8FD1\u306E\u30D3\u30EB\u30C9\u306E\u30B9\u30C6\u30FC\u30BF\u30B9\u3092\u96C6\u7D04\u3057\u305F\u5929\u6C17\u4E88\u5831 +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe, id:cactusman, Martin Eigenbrodt +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Weather\ report\ showing\ aggregated\ status\ of\ recent\ builds=\ + \u6700\u8FD1\u306E\u30D3\u30EB\u30C9\u306E\u30B9\u30C6\u30FC\u30BF\u30B9\u3092\u96C6\u7D04\u3057\u305F\u5929\u6C17\u4E88\u5831 diff --git a/core/src/main/resources/hudson/views/WeatherColumn/columnHeader_ko.properties b/core/src/main/resources/hudson/views/WeatherColumn/columnHeader_ko.properties index 67324db31e46835fbbb0ce4ee618ff9792e4ad3e..15f7f475b44e69aa6c55e1ae3ad88c797b6a8869 100644 --- a/core/src/main/resources/hudson/views/WeatherColumn/columnHeader_ko.properties +++ b/core/src/main/resources/hudson/views/WeatherColumn/columnHeader_ko.properties @@ -1,23 +1,23 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Sung Kim, id:cactusman, Martin Eigenbrodt -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Weather\ report\ showing\ aggregated\ status\ of\ recent\ builds= +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Sung Kim, id:cactusman, Martin Eigenbrodt +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Weather\ report\ showing\ aggregated\ status\ of\ recent\ builds=\uB0A0\uC528 \uBCF4\uACE0\uC11C\uB294 \uCD5C\uADFC \uBE4C\uB4DC\uC758 \uC885\uD569 \uC0C1\uD0DC\uB97C \uBCF4\uC5EC\uC90C diff --git a/core/src/main/resources/hudson/views/WeatherColumn/columnHeader_lt.properties b/core/src/main/resources/hudson/views/WeatherColumn/columnHeader_lt.properties new file mode 100644 index 0000000000000000000000000000000000000000..ede20329cfc09c1829fe9de0dc9ca59d97a1d594 --- /dev/null +++ b/core/src/main/resources/hudson/views/WeatherColumn/columnHeader_lt.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Weather\ report\ showing\ aggregated\ status\ of\ recent\ builds=Oro s\u0105lyg\u0173 ataskaita glaustai atvaizduojanti paskutini\u0173 u\u017Eduo\u010Di\u0173 b\u016Bsenas diff --git a/core/src/main/resources/hudson/views/WeatherColumn/columnHeader_nb_NO.properties b/core/src/main/resources/hudson/views/WeatherColumn/columnHeader_nb_NO.properties new file mode 100644 index 0000000000000000000000000000000000000000..2db7187cf751930377f14c316a2870e69a6016b3 --- /dev/null +++ b/core/src/main/resources/hudson/views/WeatherColumn/columnHeader_nb_NO.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Weather\ report\ showing\ aggregated\ status\ of\ recent\ builds=V\u00E6rsymbol som viser aggregert status p\u00E5 de siste byggene diff --git a/core/src/main/resources/hudson/views/WeatherColumn/columnHeader_nl.properties b/core/src/main/resources/hudson/views/WeatherColumn/columnHeader_nl.properties index 680210fead83b3fc27033fbbc29461cac4d36b69..b5e71f6bda060cdec0972d86d44fd9c89cf51343 100644 --- a/core/src/main/resources/hudson/views/WeatherColumn/columnHeader_nl.properties +++ b/core/src/main/resources/hudson/views/WeatherColumn/columnHeader_nl.properties @@ -1,23 +1,23 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:sorokh, Martin Eigenbrodt -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Weather\ report\ showing\ aggregated\ status\ of\ recent\ builds= +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:sorokh, Martin Eigenbrodt +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Weather\ report\ showing\ aggregated\ status\ of\ recent\ builds=Weerbericht dat de verzamelde status van de laatste bouwpogingen toont diff --git a/core/src/main/resources/hudson/views/WeatherColumn/columnHeader_pt_BR.properties b/core/src/main/resources/hudson/views/WeatherColumn/columnHeader_pt_BR.properties index 2b7d6032b6c2e7f3ca4f7b9d3fb30d78ca325ccb..1d2455951daeb6ce825b2cf60e8b2264d6354b97 100644 --- a/core/src/main/resources/hudson/views/WeatherColumn/columnHeader_pt_BR.properties +++ b/core/src/main/resources/hudson/views/WeatherColumn/columnHeader_pt_BR.properties @@ -1,23 +1,23 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Reginaldo L. Russinholi, Martin Eigenbrodt -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Weather\ report\ showing\ aggregated\ status\ of\ recent\ builds= +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Reginaldo L. Russinholi, Martin Eigenbrodt +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Weather\ report\ showing\ aggregated\ status\ of\ recent\ builds= diff --git a/core/src/main/resources/hudson/views/WeatherColumn/columnHeader_pt_PT.properties b/core/src/main/resources/hudson/views/WeatherColumn/columnHeader_pt_PT.properties new file mode 100644 index 0000000000000000000000000000000000000000..f5e9c8b4b53ed5e86d798c6ab1a004de65d1a3e7 --- /dev/null +++ b/core/src/main/resources/hudson/views/WeatherColumn/columnHeader_pt_PT.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Weather\ report\ showing\ aggregated\ status\ of\ recent\ builds=Estado tempo a mostrar o estado agregado de compila\u00E7\u00F5es recentes diff --git a/core/src/main/resources/hudson/views/WeatherColumn/columnHeader_ru.properties b/core/src/main/resources/hudson/views/WeatherColumn/columnHeader_ru.properties index 9eabc40b4754f2a816327ad30c71a4570125136d..37a8640470f239ca53fd527e25fe0b9ebce9f15f 100644 --- a/core/src/main/resources/hudson/views/WeatherColumn/columnHeader_ru.properties +++ b/core/src/main/resources/hudson/views/WeatherColumn/columnHeader_ru.properties @@ -1,23 +1,23 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Mike Salnikov, Martin Eigenbrodt -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Weather\ report\ showing\ aggregated\ status\ of\ recent\ builds= +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Mike Salnikov, Martin Eigenbrodt +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Weather\ report\ showing\ aggregated\ status\ of\ recent\ builds=\u041E\u0442\u0447\u0435\u0442 "\u041F\u043E\u0433\u043E\u0434\u0430" \u043F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u0435\u0442 \u0430\u0433\u0440\u0435\u0433\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u043E\u0435 \u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0435 \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0438\u0445 \u0441\u0431\u043E\u0440\u043E\u043A diff --git a/core/src/main/resources/hudson/views/WeatherColumn/columnHeader_sv_SE.properties b/core/src/main/resources/hudson/views/WeatherColumn/columnHeader_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..904b613a6bcccb2db272779ed8f5342aa6c2c70f --- /dev/null +++ b/core/src/main/resources/hudson/views/WeatherColumn/columnHeader_sv_SE.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Weather\ report\ showing\ aggregated\ status\ of\ recent\ builds=V\u00E4derrapport som visar sammanlagd status f\u00F6r senaste byggen diff --git a/core/src/main/resources/hudson/views/WeatherColumn/columnHeader_tr.properties b/core/src/main/resources/hudson/views/WeatherColumn/columnHeader_tr.properties index 3d8056267ac455a2014604244f29aa2644f6ae66..9bfb3119997be8b24297de4427b771fea87d4ee9 100644 --- a/core/src/main/resources/hudson/views/WeatherColumn/columnHeader_tr.properties +++ b/core/src/main/resources/hudson/views/WeatherColumn/columnHeader_tr.properties @@ -1,23 +1,23 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Oguz Dag, Martin Eigenbrodt -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Weather\ report\ showing\ aggregated\ status\ of\ recent\ builds= +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Oguz Dag, Martin Eigenbrodt +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Weather\ report\ showing\ aggregated\ status\ of\ recent\ builds= diff --git a/core/src/main/resources/hudson/views/WeatherColumn/columnHeader_zh_TW.properties b/core/src/main/resources/hudson/views/WeatherColumn/columnHeader_zh_TW.properties new file mode 100644 index 0000000000000000000000000000000000000000..4d621888acdebe3b7df83364ac6c8e767a305203 --- /dev/null +++ b/core/src/main/resources/hudson/views/WeatherColumn/columnHeader_zh_TW.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Weather\ report\ showing\ aggregated\ status\ of\ recent\ builds=\u8FD1\u671F\u5EFA\u69CB\u7684\u72C0\u614B\u6C23\u8C61\u5831\u544A diff --git a/core/src/main/resources/hudson/widgets/BuildHistoryWidget/entries.jelly b/core/src/main/resources/hudson/widgets/BuildHistoryWidget/entries.jelly index 687ed4b42059244ee4a96bf97b23b7873bb275a1..980943f284fdefc7abfc12aafa5e8a4f23dcf06c 100644 --- a/core/src/main/resources/hudson/widgets/BuildHistoryWidget/entries.jelly +++ b/core/src/main/resources/hudson/widgets/BuildHistoryWidget/entries.jelly @@ -35,21 +35,33 @@ THE SOFTWARE. ${%pending} - #${it.owner.nextBuildNumber+queuedItems.size()-i-1} + + #${queuedItems.size()==1 ? it.owner.nextBuildNumber + : it.owner.nextBuildNumber+queuedItems.size()-i-1} - (${%pending}${h.prepend(' - ',item.why)}) + + + + (${%pending} - + + ) + + + (${%pending}) + + - \ No newline at end of file + diff --git a/core/src/main/resources/hudson/widgets/BuildHistoryWidget/entries_da.properties b/core/src/main/resources/hudson/widgets/BuildHistoryWidget/entries_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..10a3abc1df881e407408528f5ef787f17d7779cc --- /dev/null +++ b/core/src/main/resources/hudson/widgets/BuildHistoryWidget/entries_da.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +cancel\ this\ build=annuller dette byg +pending=venter diff --git a/core/src/main/resources/hudson/widgets/BuildHistoryWidget/entries_de.properties b/core/src/main/resources/hudson/widgets/BuildHistoryWidget/entries_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..f68f1598a8bc6cdce164a0f7623e9025c2e16485 --- /dev/null +++ b/core/src/main/resources/hudson/widgets/BuildHistoryWidget/entries_de.properties @@ -0,0 +1 @@ +pending=in Bearbeitung diff --git a/core/src/main/resources/hudson/widgets/BuildHistoryWidget/entries_es.properties b/core/src/main/resources/hudson/widgets/BuildHistoryWidget/entries_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..003d058296fb0a987bf81b034627169e7d368c92 --- /dev/null +++ b/core/src/main/resources/hudson/widgets/BuildHistoryWidget/entries_es.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +pending=pendiente +cancel\ this\ build=Cancelar esta ejecución diff --git a/core/src/main/resources/hudson/widgets/BuildHistoryWidget/entries_fr.properties b/core/src/main/resources/hudson/widgets/BuildHistoryWidget/entries_fr.properties index 810caba8d007dbd88920f034ed9e557226c2fac8..c88137216e00040c4e65e4dcb7c0f73a73c7cb58 100644 --- a/core/src/main/resources/hudson/widgets/BuildHistoryWidget/entries_fr.properties +++ b/core/src/main/resources/hudson/widgets/BuildHistoryWidget/entries_fr.properties @@ -20,4 +20,4 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -pending=à lancer +pending=à lancer diff --git a/core/src/main/resources/hudson/widgets/BuildHistoryWidget/entries_nl.properties b/core/src/main/resources/hudson/widgets/BuildHistoryWidget/entries_nl.properties index e492d7777e79713b60ad745456d440e01145c6b1..b631de17d066229042f9c29120c3c14a4ab84ac6 100644 --- a/core/src/main/resources/hudson/widgets/BuildHistoryWidget/entries_nl.properties +++ b/core/src/main/resources/hudson/widgets/BuildHistoryWidget/entries_nl.properties @@ -20,5 +20,5 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -pending=gepland -cancel\ this\ build=annuleer deze bouwpoging +pending=gepland +cancel\ this\ build=annuleer deze bouwpoging diff --git a/core/src/main/resources/hudson/widgets/BuildHistoryWidget/entries_pt_BR.properties b/core/src/main/resources/hudson/widgets/BuildHistoryWidget/entries_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..3ca04aaf276f77f9588a1266c08e1656f01cbd52 --- /dev/null +++ b/core/src/main/resources/hudson/widgets/BuildHistoryWidget/entries_pt_BR.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +pending= +cancel\ this\ build= diff --git a/core/src/main/resources/hudson/widgets/BuildHistoryWidget/entries_sv_SE.properties b/core/src/main/resources/hudson/widgets/BuildHistoryWidget/entries_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..890b425bab4fb3d0e9426f290be4652c8b03ba62 --- /dev/null +++ b/core/src/main/resources/hudson/widgets/BuildHistoryWidget/entries_sv_SE.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +cancel\ this\ build=Avbryt detta bygge diff --git a/core/src/main/resources/hudson/widgets/HistoryWidget/entry.jelly b/core/src/main/resources/hudson/widgets/HistoryWidget/entry.jelly index 25102e03c1ac8a10162879c6c6b14b40018314a1..c27fa1aae2420c3333b9de8ec4854a5a5f3ed5bc 100644 --- a/core/src/main/resources/hudson/widgets/HistoryWidget/entry.jelly +++ b/core/src/main/resources/hudson/widgets/HistoryWidget/entry.jelly @@ -1,7 +1,7 @@ - - + + + ${build.iconColor.description} #${build.number} - + + + @@ -47,7 +50,7 @@ THE SOFTWARE. - + - + - diff --git a/core/src/main/resources/hudson/widgets/HistoryWidget/index.jelly b/core/src/main/resources/hudson/widgets/HistoryWidget/index.jelly index 2673fcd83a00f5d8b7865a7811fecd69e629e075..78ca3aacd56cd3cdd049612cc641381805bd7f2e 100644 --- a/core/src/main/resources/hudson/widgets/HistoryWidget/index.jelly +++ b/core/src/main/resources/hudson/widgets/HistoryWidget/index.jelly @@ -1,7 +1,8 @@ - + - - + + + + + + + + - + @@ -39,7 +46,7 @@ THE SOFTWARE. --> - - + + + - - ${description} @@ -82,4 +77,4 @@ THE SOFTWARE. - \ No newline at end of file + diff --git a/core/src/main/resources/lib/form/dropdownListBlock.jelly b/core/src/main/resources/lib/form/dropdownListBlock.jelly index b076da6cc732e105478b7204f04d31b571161ddf..8e62738dca366107720531484f0afd47dc9bf26d 100644 --- a/core/src/main/resources/lib/form/dropdownListBlock.jelly +++ b/core/src/main/resources/lib/form/dropdownListBlock.jelly @@ -21,35 +21,37 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --> - - + + Foldable block expanded when the corresponding item is selected in the drop-down list. + + + value of the list item. set to <option value="..."> + + + human readable text displayed for this list item. + + + is this value initially selected? + + + provide hint for stapler data binding. + typically set to ${descriptor.clazz.name} if dropdownList is for a list of descriptors. + + - ${title} + ${title} - - - - + + + + + + - - + - \ No newline at end of file + diff --git a/core/src/main/resources/lib/form/editableComboBox.jelly b/core/src/main/resources/lib/form/editableComboBox.jelly index 882451bb1b1f0612a986b6094782348db8414ae2..2ba8edd42562c85838022af3c157a5d0e038493e 100644 --- a/core/src/main/resources/lib/form/editableComboBox.jelly +++ b/core/src/main/resources/lib/form/editableComboBox.jelly @@ -1,7 +1,7 @@ - Editable drop-down combo box. + Editable drop-down combo box. Deprecated as of 1.356. Use f:combobox and databinding instead. - Additional CSS classes that the control gets. @@ -39,29 +38,23 @@ THE SOFTWARE. - - - \ No newline at end of file +
      + + + + + + +
      + diff --git a/core/src/main/resources/lib/form/editableComboBoxValue.jelly b/core/src/main/resources/lib/form/editableComboBoxValue.jelly index 5e97873830440cc75cb1abb0da243a0c4827caf0..639c8070fa8bfc5c245313d1c8e80e946a5406bb 100644 --- a/core/src/main/resources/lib/form/editableComboBoxValue.jelly +++ b/core/src/main/resources/lib/form/editableComboBoxValue.jelly @@ -1,7 +1,7 @@ - Used inside <f:editableComboBox/> to specify one value of a combobox. Normally one would use multiple values. - values.push("${value.toString().replace('"','\"')}"); +
      diff --git a/core/src/main/resources/lib/form/entry.jelly b/core/src/main/resources/lib/form/entry.jelly index 43c8a5a5af3853e829820e583d01c6fb1868a1eb..9e5bbed5b973c7e78cca6af6c0d98b7cc485d3aa 100644 --- a/core/src/main/resources/lib/form/entry.jelly +++ b/core/src/main/resources/lib/form/entry.jelly @@ -56,11 +56,13 @@ THE SOFTWARE. so it's normally something like "/plugin/foobar/help/abc.html". - + + +
      + + + \ No newline at end of file diff --git a/core/src/main/resources/lib/form/option.jelly b/core/src/main/resources/lib/form/option.jelly index 3cd9ec7f461b3be6645d8d906da85abd22f37c27..b1aae1a28885553e26459ab4e8d6e7ee611e35b5 100644 --- a/core/src/main/resources/lib/form/option.jelly +++ b/core/src/main/resources/lib/form/option.jelly @@ -1,7 +1,7 @@ - - + - <option> tag for the <select> element. + <option> tag for the <select> element that takes true/false for selected. - + The value to be sent when the form is submitted. - Due to the browser incompatibility between IE and Firefox, - this parameter is mandatory. + If omitted, the body of the tag will be placed in the value attribute as well + (due to the browser incompatibility between IE and Firefox, value attribute + must be included). If true, the option value appears as selected. - - + + + diff --git a/core/src/main/resources/lib/form/optionalBlock.jelly b/core/src/main/resources/lib/form/optionalBlock.jelly index b6795265de347e092ebb16f008f889b5ee1c8844..4bcbcc3cc485874ca3c78465916c20c1978524b2 100644 --- a/core/src/main/resources/lib/form/optionalBlock.jelly +++ b/core/src/main/resources/lib/form/optionalBlock.jelly @@ -26,17 +26,20 @@ THE SOFTWARE. Foldable block that can be expanded to show more controls by checking the checkbox. - + Name of the checkbox. Can be used by the server to determine if the block is collapsed or expanded at the time of submission. Note that when the block is collapsed, none of its child controls will send the values to the server (unlike <f:advanced>) - + Human readable text that follows the checkbox. - + + Used for databinding. TBD. Either this or @name/@title combo is required. + + initial checkbox status. true/false. @@ -46,18 +49,26 @@ THE SOFTWARE. if present, the foldable section expands when the checkbox is unchecked. + + if present, the foldable section will not be grouped into a separate JSON object upon submission + + + + + - + @@ -66,5 +77,5 @@ THE SOFTWARE. - + \ No newline at end of file diff --git a/core/src/main/resources/lib/form/optionalProperty.jelly b/core/src/main/resources/lib/form/optionalProperty.jelly new file mode 100644 index 0000000000000000000000000000000000000000..82658a6c4f6b2548e2c2c52c6048948782c5477f --- /dev/null +++ b/core/src/main/resources/lib/form/optionalProperty.jelly @@ -0,0 +1,45 @@ + + + + + Renders inline an optional single-value nested data-bound property of the current instance, + by using a <f:optionalBlock> + + This is useful when your object composes another data-bound object, and when that's optional, + where the absence of the value is signified as null (in which case the optionalBlock will be drawn unchecked), + and the presence of the value. + + + + + + + + + + \ No newline at end of file diff --git a/core/src/main/resources/lib/form/password.jelly b/core/src/main/resources/lib/form/password.jelly index a0b77d802c26bf51d94d07177ab0be293c9bb298..b0f71fde187f5d378c586cb5e7765e4642c42cda 100644 --- a/core/src/main/resources/lib/form/password.jelly +++ b/core/src/main/resources/lib/form/password.jelly @@ -1,7 +1,7 @@ + diff --git a/core/src/main/resources/lib/form/property.jelly b/core/src/main/resources/lib/form/property.jelly new file mode 100644 index 0000000000000000000000000000000000000000..e666f8139fcb9b8ce90467e936530811fb28df53 --- /dev/null +++ b/core/src/main/resources/lib/form/property.jelly @@ -0,0 +1,38 @@ + + + + + Renders inline a single-value nested data-bound property of the current instance. + This is useful when your object composes another data-bound object as a nested object, + yet your UI would still like to render it + + + + + + + + + \ No newline at end of file diff --git a/core/src/main/resources/lib/form/radioBlock.jelly b/core/src/main/resources/lib/form/radioBlock.jelly index 64631fc20b4f5d5ebfe931307b5a36bfa46b4e9d..2d59dc32ecb5626f73b86b256f6eabb08c809a04 100644 --- a/core/src/main/resources/lib/form/radioBlock.jelly +++ b/core/src/main/resources/lib/form/radioBlock.jelly @@ -27,10 +27,11 @@ THE SOFTWARE. Radio button with a label that hides additional controls. When checked, those additional controls are displayed. This is useful for presenting mutually exclusive options, where each option comes - with a subform that provides additional configuration. + with a sub-form that provides additional configuration. - Name of the radio button group. + Name of the radio button group. Radio buttons that are mutually exclusive need + to have the same name. @value of the <input> element. @@ -47,14 +48,12 @@ THE SOFTWARE. - - - + - - + \ No newline at end of file diff --git a/core/src/main/resources/lib/form/readOnlyTextbox.jelly b/core/src/main/resources/lib/form/readOnlyTextbox.jelly new file mode 100644 index 0000000000000000000000000000000000000000..239745975fe4f60b27945d57f512c282046995bd --- /dev/null +++ b/core/src/main/resources/lib/form/readOnlyTextbox.jelly @@ -0,0 +1,73 @@ + + + + + Generates an input field <input type="text" ... /> to be + used inside <f:entry/> + + + Used for databinding. TBD. + + + This becomes @name of the <input> tag. + If @field is specified, this value is inferred from it. + + + The initial value of the field. This becomes the @value of the <input> tag. + If @field is specified, the current property from the "instance" object + will be set as the initial value automatically, + which is the recommended approach. + + + The default value of the text box, in case both @value is and 'instance[field]' is null. + + + + Additional CSS class(es) to add (such as client-side validation clazz="required", + "number" or "positive-number"; these may be combined, as clazz="required number"). + + + Override the default error message when client-side validation fails, + as with clazz="required", etc. + + + If specified, the value entered in this input field will be checked (via AJAX) + against this URL, and errors will be rendered under the text field. + + If @field is specified, this will be inferred automatically, + which is the recommended approach. + + + + + diff --git a/core/src/main/resources/lib/form/repeatable.jelly b/core/src/main/resources/lib/form/repeatable.jelly index acdc94f4f124cf522f52a5c62d0745f770007f0a..c77391511c7bf6bb196efaf78fc1024c80f81337 100644 --- a/core/src/main/resources/lib/form/repeatable.jelly +++ b/core/src/main/resources/lib/form/repeatable.jelly @@ -1,7 +1,7 @@ - + + -
      +
      - +
      ${header}
      + + + +
      +
      ${header}
      - +
      +
      ${header}
      @@ -136,4 +151,4 @@ THE SOFTWARE.
      - \ No newline at end of file + diff --git a/core/src/main/resources/lib/form/repeatableDeleteButton.jelly b/core/src/main/resources/lib/form/repeatableDeleteButton.jelly index a05c7efa9eb906ac37d72e4465f1f4f6fc31be55..e11b05f2b3b418997abd6815a6046ba8f759d0d3 100644 --- a/core/src/main/resources/lib/form/repeatableDeleteButton.jelly +++ b/core/src/main/resources/lib/form/repeatableDeleteButton.jelly @@ -22,10 +22,13 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --> - - \ No newline at end of file + + Caption of the button. Defaults to 'Delete'. + + + + \ No newline at end of file diff --git a/core/src/main/resources/lib/form/repeatableDeleteButton_da.properties b/core/src/main/resources/lib/form/repeatableDeleteButton_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..bc73aa50e366384dad031fe94472d61afcbda0d5 --- /dev/null +++ b/core/src/main/resources/lib/form/repeatableDeleteButton_da.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Delete=Slet diff --git a/core/src/main/resources/lib/form/repeatableDeleteButton_es.properties b/core/src/main/resources/lib/form/repeatableDeleteButton_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..e8d5c88390c2d8fe5cb777f0e738f0a31fca4b45 --- /dev/null +++ b/core/src/main/resources/lib/form/repeatableDeleteButton_es.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Delete=Borrar diff --git a/core/src/main/resources/lib/form/repeatableDeleteButton_fi.properties b/core/src/main/resources/lib/form/repeatableDeleteButton_fi.properties new file mode 100644 index 0000000000000000000000000000000000000000..8faa80c3c12251620934668f75568d081e1f231d --- /dev/null +++ b/core/src/main/resources/lib/form/repeatableDeleteButton_fi.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Delete=Poista diff --git a/core/src/main/resources/lib/form/repeatableDeleteButton_zh_TW.properties b/core/src/main/resources/lib/form/repeatableDeleteButton_zh_TW.properties new file mode 100644 index 0000000000000000000000000000000000000000..4cb1a95bbcdf67bdce7098d81eb8ec84e5f40df3 --- /dev/null +++ b/core/src/main/resources/lib/form/repeatableDeleteButton_zh_TW.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Delete=\u522A\u9664 diff --git a/core/src/main/resources/lib/form/repeatable_da.properties b/core/src/main/resources/lib/form/repeatable_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..a2c107841e4c999199211dd6a68104974c9ec8be --- /dev/null +++ b/core/src/main/resources/lib/form/repeatable_da.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Add=Tilf\u00f8j diff --git a/core/src/main/resources/lib/form/repeatable_es.properties b/core/src/main/resources/lib/form/repeatable_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..9f535b58eccec0e72e09aabe31efd6783dcea700 --- /dev/null +++ b/core/src/main/resources/lib/form/repeatable_es.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Add=Añadir diff --git a/core/src/main/resources/lib/form/repeatable_fi.properties b/core/src/main/resources/lib/form/repeatable_fi.properties new file mode 100644 index 0000000000000000000000000000000000000000..7f8903f473329f72da12e89cea4cc80fc5b6e578 --- /dev/null +++ b/core/src/main/resources/lib/form/repeatable_fi.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Add=Lis\u00E4\u00E4 diff --git a/core/src/main/resources/lib/form/repeatable_sv_SE.properties b/core/src/main/resources/lib/form/repeatable_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..b504d4872b85e182d22d6e5ac70b40317135a3e4 --- /dev/null +++ b/core/src/main/resources/lib/form/repeatable_sv_SE.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Add=L\u00E4gg till diff --git a/core/src/main/resources/lib/form/repeatable_zh_TW.properties b/core/src/main/resources/lib/form/repeatable_zh_TW.properties new file mode 100644 index 0000000000000000000000000000000000000000..f5733ee16ced7af13ba785ea23d9652816471058 --- /dev/null +++ b/core/src/main/resources/lib/form/repeatable_zh_TW.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Add=\u65B0\u589E diff --git a/core/src/main/resources/lib/form/select.jelly b/core/src/main/resources/lib/form/select.jelly new file mode 100644 index 0000000000000000000000000000000000000000..eb410175ecf991febe5cf254ae54e773f65e7eaf --- /dev/null +++ b/core/src/main/resources/lib/form/select.jelly @@ -0,0 +1,49 @@ + + + + + + Glorified <select> control that supports the data binding and AJAX updates. + Your descriptor should have the 'doFillXyzItems' method, which returns a ListBoxModel + representation of the items in your drop-down list box, and your instance field should + hold the current value. + + + Additional CSS classes that the control gets. + + + Used for databinding. + + + + + + ${descriptor.calcFillSettings(field,attrs)} + + diff --git a/core/src/main/resources/lib/form/slave-mode_da.properties b/core/src/main/resources/lib/form/slave-mode_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..ca07512ceaaedb2a0eb1b294170141df62862e09 --- /dev/null +++ b/core/src/main/resources/lib/form/slave-mode_da.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Usage=Brug diff --git a/core/src/main/resources/lib/form/slave-mode_de.properties b/core/src/main/resources/lib/form/slave-mode_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..be5c828133dc1e5416b27e19bf6fecf94ab1f1ec --- /dev/null +++ b/core/src/main/resources/lib/form/slave-mode_de.properties @@ -0,0 +1 @@ +Usage=Auslastung diff --git a/core/src/main/resources/lib/form/slave-mode_es.properties b/core/src/main/resources/lib/form/slave-mode_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..d8da45646abf34e9e5fc62a8a8d6e25d33b3b444 --- /dev/null +++ b/core/src/main/resources/lib/form/slave-mode_es.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Usage=Usar diff --git a/core/src/main/resources/lib/form/slave-mode_fr.properties b/core/src/main/resources/lib/form/slave-mode_fr.properties index f79e9e6716246e6dae89b4715d2d34e9ad9ade19..d1798db0ad7058a83e982774384861870e8a7709 100644 --- a/core/src/main/resources/lib/form/slave-mode_fr.properties +++ b/core/src/main/resources/lib/form/slave-mode_fr.properties @@ -20,4 +20,4 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Usage=Utilisation +Usage=Utilisation diff --git a/core/src/main/resources/lib/form/slave-mode_nl.properties b/core/src/main/resources/lib/form/slave-mode_nl.properties index ad16d3502ed910585e3cad9861c2ae31632081be..0ff998aa3ae9c07aa3f3b6a2f3af149b45121e0b 100644 --- a/core/src/main/resources/lib/form/slave-mode_nl.properties +++ b/core/src/main/resources/lib/form/slave-mode_nl.properties @@ -1,22 +1,22 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Wim Rosseel -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. -Usage=Gebruik +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Wim Rosseel +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +Usage=Gebruik diff --git a/core/src/main/resources/lib/form/slave-mode_pt_BR.properties b/core/src/main/resources/lib/form/slave-mode_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..a39a87f1de509e57f2fa65028e1abe6ebde89a15 --- /dev/null +++ b/core/src/main/resources/lib/form/slave-mode_pt_BR.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Usage=Utilisation diff --git a/core/src/main/resources/lib/form/slave-mode_ru.properties b/core/src/main/resources/lib/form/slave-mode_ru.properties new file mode 100644 index 0000000000000000000000000000000000000000..1cb7a54179d7f73851db2b5405ed7c1422010803 --- /dev/null +++ b/core/src/main/resources/lib/form/slave-mode_ru.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Usage=\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435 diff --git a/core/src/main/resources/lib/form/slave-mode_sv_SE.properties b/core/src/main/resources/lib/form/slave-mode_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..80962fc1b841e8f3504fd6dc8568a86387903852 --- /dev/null +++ b/core/src/main/resources/lib/form/slave-mode_sv_SE.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Usage=Anv\u00E4ndande diff --git a/core/src/main/resources/lib/form/slave-mode_zh_CN.properties b/core/src/main/resources/lib/form/slave-mode_zh_CN.properties new file mode 100644 index 0000000000000000000000000000000000000000..710e37f698eca1d4a18a0df052f8a9b0a31cde0d --- /dev/null +++ b/core/src/main/resources/lib/form/slave-mode_zh_CN.properties @@ -0,0 +1 @@ +Usage=\u7528\u6cd5 diff --git a/core/src/main/resources/lib/form/submit.jelly b/core/src/main/resources/lib/form/submit.jelly index 87b025115ace473c8cb5e4a3fed635e53b034143..7ce870137e0386f435a5bbecfdf72b3f5fa7912b 100644 --- a/core/src/main/resources/lib/form/submit.jelly +++ b/core/src/main/resources/lib/form/submit.jelly @@ -1,7 +1,7 @@ - + Submit button themed by YUI. This should be always used instead of the plain <input tag. diff --git a/core/src/main/resources/lib/form/textarea.jelly b/core/src/main/resources/lib/form/textarea.jelly index 027160656aa295498bd71a95f89d396cfbbf1247..ef11b86f8e33e58250e0f8b3421f4bb7c61944c1 100644 --- a/core/src/main/resources/lib/form/textarea.jelly +++ b/core/src/main/resources/lib/form/textarea.jelly @@ -1,7 +1,7 @@
      - \ No newline at end of file + diff --git a/core/src/main/resources/lib/form/textbox.jelly b/core/src/main/resources/lib/form/textbox.jelly index 88111ad9c43c2432ae72cb274e415e9088b42e40..040e5e74c376e35f558ca2221d4fc41c1a0164b8 100644 --- a/core/src/main/resources/lib/form/textbox.jelly +++ b/core/src/main/resources/lib/form/textbox.jelly @@ -1,7 +1,7 @@ + + Additional CSS class(es) to add (such as client-side validation clazz="required", + "number" or "positive-number"; these may be combined, as clazz="required number"). + + + Override the default error message when client-side validation fails, + as with clazz="required", etc. + If specified, the value entered in this input field will be checked (via AJAX) against this URL, and errors will be rendered under the text field. @@ -47,13 +59,21 @@ THE SOFTWARE. If @field is specified, this will be inferred automatically, which is the recommended approach. + + A single character that can be used as a delimiter for autocompletion. Normal + autocomplete will replace the entire content of the text box with the autocomplete + selection. With this attribute set, the selection will be appended with the + delimiter to the existing value of the text box. + - + + + - \ No newline at end of file + ATTRIBUTES="${attrs}" EXCEPT="field clazz" /> + diff --git a/core/src/main/resources/lib/form/validateButton.jelly b/core/src/main/resources/lib/form/validateButton.jelly index 19b1d0c4e99c5628e459156e63b252f05f5ebfb4..f8969f88d8d218572fb31f4cab86483e95675b18 100644 --- a/core/src/main/resources/lib/form/validateButton.jelly +++ b/core/src/main/resources/lib/form/validateButton.jelly @@ -30,13 +30,27 @@ THE SOFTWARE. See http://hudson.gotdns.com/wiki/display/HUDSON/Jelly+form+controls for the reference. + + + Server-side method that handles the validation. For example, if this is 'foo', you need "doFoo" on + your descriptor class. + + + Caption of the validate button. Should be internationalized. + + + Caption of the text shown while the AJAX call is in progress. For example, "checking..." + + + ','-separated list of fields that are sent to the server. +
      - ${progress} + ${attrs.progress}
      diff --git a/core/src/main/resources/lib/hudson/artifactList.jelly b/core/src/main/resources/lib/hudson/artifactList.jelly index 121ff5fc38267de3370858cf30634e34d3e25adf..9b23cfa241a89e56fad216d3ca5eaf6086e048b3 100644 --- a/core/src/main/resources/lib/hudson/artifactList.jelly +++ b/core/src/main/resources/lib/hudson/artifactList.jelly @@ -1,7 +1,7 @@ - ${caption}
      - - - - - ${caption} - - - - - \ No newline at end of file + + + + + ${caption} + + + + + + + + + + + +
      + +
      + +
      +
      +
      +
      + diff --git a/core/src/main/resources/lib/hudson/artifactList_da.properties b/core/src/main/resources/lib/hudson/artifactList_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..e319c51d372109ea1d7fec06b229fee4f5bbb892 --- /dev/null +++ b/core/src/main/resources/lib/hudson/artifactList_da.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +View=Visning diff --git a/core/src/main/resources/lib/hudson/artifactList_de.properties b/core/src/main/resources/lib/hudson/artifactList_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..77a5aedb362729b61ceec47a33b4d8532a5cb7ae --- /dev/null +++ b/core/src/main/resources/lib/hudson/artifactList_de.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +View=anzeigen diff --git a/core/src/main/resources/lib/hudson/artifactList_es.properties b/core/src/main/resources/lib/hudson/artifactList_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..5a35d8de12b575f6a1048d61a4c094cef8ceaa07 --- /dev/null +++ b/core/src/main/resources/lib/hudson/artifactList_es.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +View=Ver diff --git a/core/src/main/resources/lib/hudson/artifactList_ja.properties b/core/src/main/resources/lib/hudson/artifactList_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..d4484339e4cea1d41f4eb6eaa5fe4d4fb2f9f348 --- /dev/null +++ b/core/src/main/resources/lib/hudson/artifactList_ja.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +View=\u30D3\u30E5\u30FC diff --git a/core/src/main/resources/lib/hudson/artifactList_pt_BR.properties b/core/src/main/resources/lib/hudson/artifactList_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..3b1ba141f7a7bd62e575a9c48ed2021e7e5c5d85 --- /dev/null +++ b/core/src/main/resources/lib/hudson/artifactList_pt_BR.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +View= diff --git a/core/src/main/resources/lib/hudson/buildCaption_da.properties b/core/src/main/resources/lib/hudson/buildCaption_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..b3045da1fcdfff943a88f51721ad23afa11e7a83 --- /dev/null +++ b/core/src/main/resources/lib/hudson/buildCaption_da.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +cancel=annuller +Progress=Fremdrift diff --git a/core/src/main/resources/lib/hudson/buildCaption_es.properties b/core/src/main/resources/lib/hudson/buildCaption_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..9cc4ffdae8c2c597f6ed5895cb42ab267cc26a71 --- /dev/null +++ b/core/src/main/resources/lib/hudson/buildCaption_es.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Progress=Progreso +cancel=cancelar diff --git a/core/src/main/resources/lib/hudson/buildCaption_fi.properties b/core/src/main/resources/lib/hudson/buildCaption_fi.properties new file mode 100644 index 0000000000000000000000000000000000000000..88cca04b528d9c291201529567a0c13921b7fb56 --- /dev/null +++ b/core/src/main/resources/lib/hudson/buildCaption_fi.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Progress=Edistyminen +cancel=peruuta diff --git a/core/src/main/resources/lib/hudson/buildCaption_fr.properties b/core/src/main/resources/lib/hudson/buildCaption_fr.properties index 4dc83a8587d2e05fca3fb9fed461d0cb3d4c7e93..4c822802949dde11e09a49b6365282e65c0c322b 100644 --- a/core/src/main/resources/lib/hudson/buildCaption_fr.properties +++ b/core/src/main/resources/lib/hudson/buildCaption_fr.properties @@ -20,5 +20,5 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Progress=Progrès +Progress=Progression cancel=Annuler diff --git a/core/src/main/resources/lib/hudson/buildCaption_hu.properties b/core/src/main/resources/lib/hudson/buildCaption_hu.properties new file mode 100644 index 0000000000000000000000000000000000000000..f266f104e7af5ce6583789595d07539a8f158a86 --- /dev/null +++ b/core/src/main/resources/lib/hudson/buildCaption_hu.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Progress=Folyamat +cancel=m\u00E9gsem diff --git a/core/src/main/resources/lib/hudson/buildCaption_it.properties b/core/src/main/resources/lib/hudson/buildCaption_it.properties new file mode 100644 index 0000000000000000000000000000000000000000..334da1178ff105cded1dbce6409117c2215e4941 --- /dev/null +++ b/core/src/main/resources/lib/hudson/buildCaption_it.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Progress=Avanzamento +cancel=annulla diff --git a/core/src/main/resources/lib/hudson/buildCaption_nb_NO.properties b/core/src/main/resources/lib/hudson/buildCaption_nb_NO.properties new file mode 100644 index 0000000000000000000000000000000000000000..45c6825f1c2cd5198be7e5280148131e63a1f59d --- /dev/null +++ b/core/src/main/resources/lib/hudson/buildCaption_nb_NO.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Progress=Progresjon +cancel=avbryt diff --git a/core/src/main/resources/lib/hudson/buildCaption_ru.properties b/core/src/main/resources/lib/hudson/buildCaption_ru.properties index 79905c684a230124b153bf6e9df8cb1534612d38..2ee9927e92c6bdaf9b9e85d56d62401fd62ebb91 100644 --- a/core/src/main/resources/lib/hudson/buildCaption_ru.properties +++ b/core/src/main/resources/lib/hudson/buildCaption_ru.properties @@ -21,4 +21,4 @@ # THE SOFTWARE. Progress=\u041f\u0440\u043e\u0433\u0440\u0435\u0441\u0441 -cancel=\u041f\u0440\u0435\u0440\u0432\u0430\u0442\u044c +cancel=\u043F\u0440\u0435\u0440\u0432\u0430\u0442\u044C diff --git a/core/src/main/resources/lib/hudson/buildCaption_sv_SE.properties b/core/src/main/resources/lib/hudson/buildCaption_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..8ae0eb2778ee15fef35876ebbda3eca73c0809ae --- /dev/null +++ b/core/src/main/resources/lib/hudson/buildCaption_sv_SE.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +cancel=avbryt diff --git a/core/src/main/resources/lib/hudson/buildHealth_cs.properties b/core/src/main/resources/lib/hudson/buildHealth_cs.properties new file mode 100644 index 0000000000000000000000000000000000000000..bf12c8432ef680b562e21ea89e286cc10ef53be7 --- /dev/null +++ b/core/src/main/resources/lib/hudson/buildHealth_cs.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Description=Popis diff --git a/core/src/main/resources/lib/hudson/buildHealth_da.properties b/core/src/main/resources/lib/hudson/buildHealth_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..7d63a64790f06969472eb1c10fdafbfd22c0b78b --- /dev/null +++ b/core/src/main/resources/lib/hudson/buildHealth_da.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Description=Beskrivelse diff --git a/core/src/main/resources/lib/hudson/buildHealth_de.properties b/core/src/main/resources/lib/hudson/buildHealth_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..cd0b934dc1f328d864fa6cc616608e9ceec43102 --- /dev/null +++ b/core/src/main/resources/lib/hudson/buildHealth_de.properties @@ -0,0 +1 @@ +Description=Beschreibung diff --git a/core/src/main/resources/lib/hudson/buildHealth_el.properties b/core/src/main/resources/lib/hudson/buildHealth_el.properties new file mode 100644 index 0000000000000000000000000000000000000000..89629ae86134b05b5acab7bdf51751128f745527 --- /dev/null +++ b/core/src/main/resources/lib/hudson/buildHealth_el.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Description=\u03A0\u03B5\u03C1\u03B9\u03B3\u03C1\u03B1\u03C6\u03AE diff --git a/core/src/main/resources/lib/hudson/buildHealth_es.properties b/core/src/main/resources/lib/hudson/buildHealth_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..73d6acf50b41b93373cfa6125132c40925c1d6cf --- /dev/null +++ b/core/src/main/resources/lib/hudson/buildHealth_es.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Description=descripción diff --git a/core/src/main/resources/lib/hudson/buildHealth_fi.properties b/core/src/main/resources/lib/hudson/buildHealth_fi.properties new file mode 100644 index 0000000000000000000000000000000000000000..43ebefde4d0849b4986ce2517ad17c2f9d07fd0b --- /dev/null +++ b/core/src/main/resources/lib/hudson/buildHealth_fi.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Description=Kuvaus diff --git a/core/src/main/resources/lib/hudson/buildHealth_fr.properties b/core/src/main/resources/lib/hudson/buildHealth_fr.properties index 3dd04b8abfd468f665f90becf517a1107bbab793..9c67bf4c52f4b6140cc2bfaf7f18a014882878f9 100644 --- a/core/src/main/resources/lib/hudson/buildHealth_fr.properties +++ b/core/src/main/resources/lib/hudson/buildHealth_fr.properties @@ -20,4 +20,4 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Description= +Description=Description diff --git a/core/src/main/resources/lib/hudson/buildHealth_it.properties b/core/src/main/resources/lib/hudson/buildHealth_it.properties new file mode 100644 index 0000000000000000000000000000000000000000..32ad1bd8fd1007607bed7d337b3ff9ab27ebf883 --- /dev/null +++ b/core/src/main/resources/lib/hudson/buildHealth_it.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Description=Descrizione diff --git a/core/src/main/resources/lib/hudson/buildHealth_ko.properties b/core/src/main/resources/lib/hudson/buildHealth_ko.properties new file mode 100644 index 0000000000000000000000000000000000000000..6d64ddc2b5aa568d4fc205f4978f4a279bc3ec8b --- /dev/null +++ b/core/src/main/resources/lib/hudson/buildHealth_ko.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Description=\uC124\uBA85 diff --git a/core/src/main/resources/lib/hudson/buildHealth_lt.properties b/core/src/main/resources/lib/hudson/buildHealth_lt.properties new file mode 100644 index 0000000000000000000000000000000000000000..d05375c1da68ed9807c1920173a0f5893491fcb1 --- /dev/null +++ b/core/src/main/resources/lib/hudson/buildHealth_lt.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Description=Apra\u0161ymas diff --git a/core/src/main/resources/lib/hudson/buildHealth_nb_NO.properties b/core/src/main/resources/lib/hudson/buildHealth_nb_NO.properties new file mode 100644 index 0000000000000000000000000000000000000000..002235f296c5630bb2e53cdbaf154314e7344cf7 --- /dev/null +++ b/core/src/main/resources/lib/hudson/buildHealth_nb_NO.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Description=Beskrivelse diff --git a/core/src/main/resources/lib/hudson/buildHealth_nl.properties b/core/src/main/resources/lib/hudson/buildHealth_nl.properties new file mode 100644 index 0000000000000000000000000000000000000000..62672f0212e6a08128a2b2ba35cc13f44c8f1b8f --- /dev/null +++ b/core/src/main/resources/lib/hudson/buildHealth_nl.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Description=Beschrijving diff --git a/core/src/main/resources/lib/hudson/buildHealth_pt_BR.properties b/core/src/main/resources/lib/hudson/buildHealth_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..a4439b655fb1779cd708483dee831642acac6712 --- /dev/null +++ b/core/src/main/resources/lib/hudson/buildHealth_pt_BR.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Description=Descri\u00E7\u00E3o diff --git a/core/src/main/resources/lib/hudson/buildHealth_pt_PT.properties b/core/src/main/resources/lib/hudson/buildHealth_pt_PT.properties new file mode 100644 index 0000000000000000000000000000000000000000..a4439b655fb1779cd708483dee831642acac6712 --- /dev/null +++ b/core/src/main/resources/lib/hudson/buildHealth_pt_PT.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Description=Descri\u00E7\u00E3o diff --git a/core/src/main/resources/lib/hudson/buildHealth_ru.properties b/core/src/main/resources/lib/hudson/buildHealth_ru.properties new file mode 100644 index 0000000000000000000000000000000000000000..bb5e44bfeb446c9614a9c6db69bab459d9e32322 --- /dev/null +++ b/core/src/main/resources/lib/hudson/buildHealth_ru.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Description=\u041E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 diff --git a/core/src/main/resources/lib/hudson/buildHealth_sl.properties b/core/src/main/resources/lib/hudson/buildHealth_sl.properties new file mode 100644 index 0000000000000000000000000000000000000000..00c09df3957ca9234097e9ea3237577ab9fec06f --- /dev/null +++ b/core/src/main/resources/lib/hudson/buildHealth_sl.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Description=Opis diff --git a/core/src/main/resources/lib/hudson/buildHealth_sv_SE.properties b/core/src/main/resources/lib/hudson/buildHealth_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..92274e38c08da968ea5da7bbf92cc5a78c402798 --- /dev/null +++ b/core/src/main/resources/lib/hudson/buildHealth_sv_SE.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Description=Beskrivning diff --git a/core/src/main/resources/lib/hudson/buildHealth_zh_CN.properties b/core/src/main/resources/lib/hudson/buildHealth_zh_CN.properties new file mode 100644 index 0000000000000000000000000000000000000000..2fe048142bdfb94bc8099edce18119909a04f838 --- /dev/null +++ b/core/src/main/resources/lib/hudson/buildHealth_zh_CN.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Description=\u8BF4\u660E diff --git a/core/src/main/resources/lib/hudson/buildHealth_zh_TW.properties b/core/src/main/resources/lib/hudson/buildHealth_zh_TW.properties new file mode 100644 index 0000000000000000000000000000000000000000..1acb271e70816e0a31e8ba3d72d9272cdf9dc8c1 --- /dev/null +++ b/core/src/main/resources/lib/hudson/buildHealth_zh_TW.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Description=\u63CF\u8FF0 diff --git a/core/src/main/resources/lib/hudson/buildListTable.jelly b/core/src/main/resources/lib/hudson/buildListTable.jelly index a289b229bce2a0f6d4c522d2d6d22c38ebb01b18..d4c0e0067cd8dba8d148cbb3ef1efb75a78d8b89 100644 --- a/core/src/main/resources/lib/hudson/buildListTable.jelly +++ b/core/src/main/resources/lib/hudson/buildListTable.jelly @@ -28,6 +28,9 @@ THE SOFTWARE. A collection of builds to be displayed. + + The base URL of all job/build links. Normally ${rootURL}/ + @@ -43,15 +46,15 @@ THE SOFTWARE.
      @@ -68,4 +71,4 @@ THE SOFTWARE.
      @@ -61,9 +64,9 @@ THE SOFTWARE.
      + ${build.truncatedDescription}
      + - \ No newline at end of file + diff --git a/core/src/main/resources/hudson/widgets/HistoryWidget/index_ca.properties b/core/src/main/resources/hudson/widgets/HistoryWidget/index_ca.properties new file mode 100644 index 0000000000000000000000000000000000000000..8bcdd34eae2fd9e7ff2a3b1a4d6786717e982153 --- /dev/null +++ b/core/src/main/resources/hudson/widgets/HistoryWidget/index_ca.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +for\ all=tots +for\ failures=fracassos +trend=tend\u00E8ncia diff --git a/core/src/main/resources/hudson/widgets/HistoryWidget/index_da.properties b/core/src/main/resources/hudson/widgets/HistoryWidget/index_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..5140dd72c640599acbc214b16818b8e5ce70a59b --- /dev/null +++ b/core/src/main/resources/hudson/widgets/HistoryWidget/index_da.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +for\ failures=for fejl +for\ all=for alle +More\ ...=Mere ... +trend=trend diff --git a/core/src/main/resources/hudson/widgets/HistoryWidget/index_de.properties b/core/src/main/resources/hudson/widgets/HistoryWidget/index_de.properties index df9b5d35cef561430c73803c92015e9ebce273e8..2ba8dd0638aa51467b50d8f84c3cc803c5b9d951 100644 --- a/core/src/main/resources/hudson/widgets/HistoryWidget/index_de.properties +++ b/core/src/main/resources/hudson/widgets/HistoryWidget/index_de.properties @@ -22,4 +22,5 @@ trend=Trend for\ all=Alle Builds -for\ failures=Nur Fehlschl\u00e4ge +for\ failures=Nur Fehlschläge +More\ ...=Mehr... diff --git a/core/src/main/resources/hudson/widgets/HistoryWidget/index_es.properties b/core/src/main/resources/hudson/widgets/HistoryWidget/index_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..38c6bfb39b557fb8c826f557cd12f551016109f9 --- /dev/null +++ b/core/src/main/resources/hudson/widgets/HistoryWidget/index_es.properties @@ -0,0 +1,27 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +trend=tendencia +More\ ...=Más ... +for\ all=para todos +for\ failures=para los fallos + diff --git a/core/src/main/resources/hudson/widgets/HistoryWidget/index_fi.properties b/core/src/main/resources/hudson/widgets/HistoryWidget/index_fi.properties new file mode 100644 index 0000000000000000000000000000000000000000..6009e450d9fbd1be3b4ad81caa668b737e0a978d --- /dev/null +++ b/core/src/main/resources/hudson/widgets/HistoryWidget/index_fi.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +More\ ...=Lis\u00E4\u00E4... +for\ all=kaikista +for\ failures=ep\u00E4onnistuneista +trend=trendi diff --git a/core/src/main/resources/hudson/widgets/HistoryWidget/index_hu.properties b/core/src/main/resources/hudson/widgets/HistoryWidget/index_hu.properties new file mode 100644 index 0000000000000000000000000000000000000000..4601ec2e8d17f67d9c1389a3b45b495181033a52 --- /dev/null +++ b/core/src/main/resources/hudson/widgets/HistoryWidget/index_hu.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +for\ all=mindegyikre +for\ failures=hib\u00E1kra diff --git a/core/src/main/resources/hudson/widgets/HistoryWidget/index_it.properties b/core/src/main/resources/hudson/widgets/HistoryWidget/index_it.properties new file mode 100644 index 0000000000000000000000000000000000000000..2507499608e8d2c3a0870f1574ec7550f3439fe6 --- /dev/null +++ b/core/src/main/resources/hudson/widgets/HistoryWidget/index_it.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +for\ all=per tutto +for\ failures=per i fallimenti +trend=andamento diff --git a/core/src/main/resources/hudson/widgets/HistoryWidget/index_nb_NO.properties b/core/src/main/resources/hudson/widgets/HistoryWidget/index_nb_NO.properties new file mode 100644 index 0000000000000000000000000000000000000000..3b0855457ca308be0ee51f3f1565d529e89e63cc --- /dev/null +++ b/core/src/main/resources/hudson/widgets/HistoryWidget/index_nb_NO.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +More\ ...=Mer ... +for\ all=for alle +for\ failures=for feil +trend=trend diff --git a/core/src/main/resources/hudson/widgets/HistoryWidget/index_nl.properties b/core/src/main/resources/hudson/widgets/HistoryWidget/index_nl.properties index ff0a1395d0e9c874808e0108c6233c2b179daae4..1998110e79e55ca42650ffb839787230eb3771f4 100644 --- a/core/src/main/resources/hudson/widgets/HistoryWidget/index_nl.properties +++ b/core/src/main/resources/hudson/widgets/HistoryWidget/index_nl.properties @@ -21,5 +21,6 @@ # THE SOFTWARE. trend=trend +More\ ...=Meer ... for\ all=alle for\ failures=enkel gefaalde diff --git a/core/src/main/resources/hudson/widgets/HistoryWidget/index_pt_BR.properties b/core/src/main/resources/hudson/widgets/HistoryWidget/index_pt_BR.properties index 075f972aee5bb937d2dbed8b1ec88bbd678b0944..a800828680a666268fe8a4940d9de91c3051d162 100644 --- a/core/src/main/resources/hudson/widgets/HistoryWidget/index_pt_BR.properties +++ b/core/src/main/resources/hudson/widgets/HistoryWidget/index_pt_BR.properties @@ -21,5 +21,6 @@ # THE SOFTWARE. trend=tend\u00EAncia +More\ ...=Mais ... for\ all=para todas for\ failures=para falhas diff --git a/core/src/main/resources/hudson/widgets/HistoryWidget/index_ru.properties b/core/src/main/resources/hudson/widgets/HistoryWidget/index_ru.properties index 30a37b7d793bfe67475eb6d62b7083b8cc1d47c8..ca798b1e4a0779adb98995f91655a50fbe669fc9 100644 --- a/core/src/main/resources/hudson/widgets/HistoryWidget/index_ru.properties +++ b/core/src/main/resources/hudson/widgets/HistoryWidget/index_ru.properties @@ -20,6 +20,7 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -trend=\u0413\u0440\u0430\u0444\u0438\u043a -for\ all=\u0412\u0441\u0435 \u0441\u0431\u043e\u0440\u043a\u0438 -for\ failures=\u0412\u0441\u0435 \u043d\u0435\u0443\u0434\u0430\u0447\u043d\u044b\u0435 +trend=\u0433\u0440\u0430\u0444\u0438\u043A +More\ ...=\u0411\u043E\u043B\u044C\u0448\u0435 ... +for\ all=\u0432\u0441\u0435 \u0441\u0431\u043E\u0440\u043A\u0438 +for\ failures=\u0432\u0441\u0435 \u043D\u0435\u0443\u0434\u0430\u0447\u043D\u044B\u0435 diff --git a/core/src/main/resources/hudson/widgets/HistoryWidget/index_sl.properties b/core/src/main/resources/hudson/widgets/HistoryWidget/index_sl.properties new file mode 100644 index 0000000000000000000000000000000000000000..8d33ce9a8f24f720a076aa98d440c83686f65e6c --- /dev/null +++ b/core/src/main/resources/hudson/widgets/HistoryWidget/index_sl.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +More\ ...=Ve\u010D ... +for\ all=za vse +for\ failures=za napake +trend=trend diff --git a/core/src/main/resources/hudson/widgets/HistoryWidget/index_sv_SE.properties b/core/src/main/resources/hudson/widgets/HistoryWidget/index_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..cb166c7585da78c872518fd656c16a45f65b8ae1 --- /dev/null +++ b/core/src/main/resources/hudson/widgets/HistoryWidget/index_sv_SE.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +More\ ...=Mer... +for\ all=f\u00F6r alla +for\ failures=f\u00F6r misslyckade +trend=trend diff --git a/core/src/main/resources/hudson/widgets/HistoryWidget/index_zh_CN.properties b/core/src/main/resources/hudson/widgets/HistoryWidget/index_zh_CN.properties new file mode 100644 index 0000000000000000000000000000000000000000..2616fb4822f448cbf6dcb2ee72e1b02f9df05b18 --- /dev/null +++ b/core/src/main/resources/hudson/widgets/HistoryWidget/index_zh_CN.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +for\ all=\u5168\u90E8 +for\ failures=\u5931\u8D25 +trend=\u8D8B\u52BF\u56FE diff --git a/core/src/main/resources/hudson/widgets/HistoryWidget/index_zh_TW.properties b/core/src/main/resources/hudson/widgets/HistoryWidget/index_zh_TW.properties new file mode 100644 index 0000000000000000000000000000000000000000..9be3dbbdc4918440c21cc3f2e71499c1f3881196 --- /dev/null +++ b/core/src/main/resources/hudson/widgets/HistoryWidget/index_zh_TW.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +for\ all=\u5168\u90E8 +for\ failures=\u5931\u6557 +trend=\u8DA8\u52E2 diff --git a/core/src/main/resources/hudson/widgets/Messages_da.properties b/core/src/main/resources/hudson/widgets/Messages_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..ca3f16866bdef942edb789e50e3f35c826113986 --- /dev/null +++ b/core/src/main/resources/hudson/widgets/Messages_da.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +BuildHistoryWidget.DisplayName=Bygge Historik diff --git a/core/src/main/resources/hudson/widgets/Messages_es.properties b/core/src/main/resources/hudson/widgets/Messages_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..4fca15726bbd48404408e8758814f1c474dc7faa --- /dev/null +++ b/core/src/main/resources/hudson/widgets/Messages_es.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +BuildHistoryWidget.DisplayName=Historia de tareas diff --git a/core/src/main/resources/hudson/win32errors.properties b/core/src/main/resources/hudson/win32errors.properties index 1e366cd7c24cf9dbcf3655601cf180212f579350..6b2f1ebc5360e47ee49848ef851753b7adaaeb8a 100644 --- a/core/src/main/resources/hudson/win32errors.properties +++ b/core/src/main/resources/hudson/win32errors.properties @@ -91,7 +91,7 @@ The process cannot access the file because it is being used by another process error33= \ The process cannot access the file because another process has locked a portion of the file error34= \ -The wrong diskette is in the drive. +The wrong diskette is in the drive. \ Insert %2 (Volume Serial Number: %3) into drive %1 error35= \ Unknown error (0x23) diff --git a/core/src/main/resources/hudson/win32errors_es.properties b/core/src/main/resources/hudson/win32errors_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..6b74c728b17f370cf3d232ba681391df44fa200a --- /dev/null +++ b/core/src/main/resources/hudson/win32errors_es.properties @@ -0,0 +1,2074 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +# Win32 error messages by error code +# +error0= \ +Operación correcta +error1= \ +Función incorrecta +error2= \ +El sistema no puede encontrar el fichero especificado +error3= \ +El sistema no puede encontrar la ruta especificada +error4= \ +El sistema no puede abrir el fichero +error5= \ +Acceso denegado +error6= \ +El controlador es inválido +error7= \ +Los bloques de control de capacidad se han destruido +error8= \ +No hay suficiente capacidad para procesar este comando +error9= \ +El block de control de capacidad es inválido +error10= \ +El entorno es incorrecto +error11= \ +Se ha hecho un intento de carga de un programa de formato incorrecto +error12= \ +El código de acceso es incorrecto +error13= \ +Los datos son inválidos +error14= \ +No hay suficiente capacidad para procesar realizar esta operación +error15= \ +El sistema no puede encontrar el dispositivo especificado +error16= \ +El directorio no se puede eliminar +error17= \ +El sistema no puede mover el fichero a un disco diferente +error18= \ +No hay mas ficheros +error19= \ +El soporte está protegido contra escritura +error20= \ +El sistema no puede encontrar el dispositivo especificado +error21= \ +El dispositivo no está listo +error22= \ +El dispositivo no reconoce el comando +error23= \ +Error de datos (CRC) +error24= \ +El programa intentó un comando, pero el tamaño del comando es incorrecto +error25= \ +El controlador no puede localizar un area o pista del disco +error26= \ +El disco o disquete especificado no es accesible +error27= \ +El controlador no puede localizar el sector +error28= \ +La impresora no tiene papel +error29= \ +El sistema no puede escribir en el dispositivo +error30= \ +El sistema no puede leer del dispositivo +error31= \ +Un dispositivo del sistema no está funcionando +error32= \ +El proceso no puede acceder al fichero porque lo está utilizando otro proceso +error33= \ +El proceso no puede acceder al fichero porque otro proceso lo tiene bloqueado +error34= \ +The wrong diskette is in the drive. \ +Insert %2 (Volume Serial Number: %3) into drive %1 +error35= \ +Error desconocido (0x23) +error36= \ +Demasiados archivos abiertos +error37= \ +Error desconocido (0x25) +error38= \ +Se ha llegado al final del archivo +error39= \ +El disco está lleno +error40= \ +Error desconocido (0x28) +error41= \ +Error desconocido (0x29) +error42= \ +Error desconocido (0x2a) +error43= \ +Error desconocido (0x2b) +error44= \ +Error desconocido (0x2c) +error45= \ +Error desconocido (0x2d) +error46= \ +Error desconocido (0x2e) +error47= \ +Error desconocido (0x2f) +error48= \ +Error desconocido (0x30) +error49= \ +Error desconocido (0x31) +error50= \ +La petición no está soportada +error51= \ +Windows no puede encontrar la ruta de red. Comprueba que la red está bien y la máquina de destino es accesible. +error52= \ +No estás conectado porque el nombre ya existe en la red +error53= \ +La ruta de red no se ha encontrado +error54= \ +La red está ocupada +error55= \ +El recurso o dispositivo de red especificado no está disponible +error56= \ +The network BIOS command limit has been reached +error57= \ +A network adapter hardware error occurred +error58= \ +The specified server cannot perform the requested operation +error59= \ +An unexpected network error occurred +error60= \ +The remote adapter is not compatible +error61= \ +The printer queue is full +error62= \ +Space to store the file waiting to be printed is not available on the server +error63= \ +Your file waiting to be printed was deleted +error64= \ +The specified network name is no longer available +error65= \ +Network access is denied +error66= \ +The network resource type is not correct +error67= \ +The network name cannot be found +error68= \ +The name limit for the local computer network adapter card was exceeded +error69= \ +The network BIOS session limit was exceeded +error70= \ +The remote server has been paused or is in the process of being started +error71= \ +No more connections can be made to this remote computer at this time because there are already as many connections as the computer can accept +error72= \ +The specified printer or disk device has been paused +error73= \ +Error desconocido (0x49) +error74= \ +Error desconocido (0x4a) +error75= \ +Error desconocido (0x4b) +error76= \ +Error desconocido (0x4c) +error77= \ +Error desconocido (0x4d) +error78= \ +Error desconocido (0x4e) +error79= \ +Error desconocido (0x4f) +error80= \ +The file exists +error81= \ +Error desconocido (0x51) +error82= \ +The directory or file cannot be created +error83= \ +Fail on INT 24 +error84= \ +Storage to process this request is not available +error85= \ +The local device name is already in use +error86= \ +The specified network password is not correct +error87= \ +The parameter is incorrect +error88= \ +A write fault occurred on the network +error89= \ +The system cannot start another process at this time +error90= \ +Error desconocido (0x5a) +error91= \ +Error desconocido (0x5b) +error92= \ +Error desconocido (0x5c) +error93= \ +Error desconocido (0x5d) +error94= \ +Error desconocido (0x5e) +error95= \ +Error desconocido (0x5f) +error96= \ +Error desconocido (0x60) +error97= \ +Error desconocido (0x61) +error98= \ +Error desconocido (0x62) +error99= \ +Error desconocido (0x63) +error100= \ +Cannot create another system semaphore +error101= \ +The exclusive semaphore is owned by another process +error102= \ +The semaphore is set and cannot be closed +error103= \ +The semaphore cannot be set again +error104= \ +Cannot request exclusive semaphores at interrupt time +error105= \ +The previous ownership of this semaphore has ended +error106= \ +Insert the diskette for drive %1 +error107= \ +The program stopped because an alternate diskette was not inserted +error108= \ +The disk is in use or locked by another process +error109= \ +The pipe has been ended +error110= \ +The system cannot open the device or file specified +error111= \ +The file name is too long +error112= \ +There is not enough space on the disk +error113= \ +No more internal file identifiers available +error114= \ +The target internal file identifier is incorrect +error115= \ +Error desconocido (0x73) +error116= \ +Error desconocido (0x74) +error117= \ +The IOCTL call made by the application program is not correct +error118= \ +The verify-on-write switch parameter value is not correct +error119= \ +The system does not support the command requested +error120= \ +This function is not supported on this system +error121= \ +The semaphore timeout period has expired +error122= \ +The data area passed to a system call is too small +error123= \ +The filename, directory name, or volume label syntax is incorrect +error124= \ +The system call level is not correct +error125= \ +The disk has no volume label +error126= \ +The specified module could not be found +error127= \ +The specified procedure could not be found +error128= \ +There are no child processes to wait for +error129= \ +The %1 application cannot be run in Win32 mode +error130= \ +Attempt to use a file handle to an open disk partition for an operation other than raw disk I/O +error131= \ +An attempt was made to move the file pointer before the beginning of the file +error132= \ +The file pointer cannot be set on the specified device or file +error133= \ +A JOIN or SUBST command cannot be used for a drive that contains previously joined drives +error134= \ +An attempt was made to use a JOIN or SUBST command on a drive that has already been joined +error135= \ +An attempt was made to use a JOIN or SUBST command on a drive that has already been substituted +error136= \ +The system tried to delete the JOIN of a drive that is not joined +error137= \ +The system tried to delete the substitution of a drive that is not substituted +error138= \ +The system tried to join a drive to a directory on a joined drive +error139= \ +The system tried to substitute a drive to a directory on a substituted drive +error140= \ +The system tried to join a drive to a directory on a substituted drive +error141= \ +The system tried to SUBST a drive to a directory on a joined drive +error142= \ +The system cannot perform a JOIN or SUBST at this time +error143= \ +The system cannot join or substitute a drive to or for a directory on the same drive +error144= \ +The directory is not a subdirectory of the root directory +error145= \ +The directory is not empty +error146= \ +The path specified is being used in a substitute +error147= \ +Not enough resources are available to process this command +error148= \ +The path specified cannot be used at this time +error149= \ +An attempt was made to join or substitute a drive for which a directory on the drive is the target of a previous substitute +error150= \ +System trace information was not specified in your CONFIG.SYS file, or tracing is disallowed +error151= \ +The number of specified semaphore events for DosMuxSemWait is not correct +error152= \ +DosMuxSemWait did not execute; too many semaphores are already set +error153= \ +The DosMuxSemWait list is not correct +error154= \ +The volume label you entered exceeds the label character limit of the target file system +error155= \ +Cannot create another thread +error156= \ +The recipient process has refused the signal +error157= \ +The segment is already discarded and cannot be locked +error158= \ +The segment is already unlocked +error159= \ +The address for the thread ID is not correct +error160= \ +One or more arguments are not correct +error161= \ +The specified path is invalid +error162= \ +A signal is already pending +error163= \ +Error desconocido (0xa3) +error164= \ +No more threads can be created in the system +error165= \ +Error desconocido (0xa5) +error166= \ +Error desconocido (0xa6) +error167= \ +Unable to lock a region of a file +error168= \ +Error desconocido (0xa8) +error169= \ +Error desconocido (0xa9) +error170= \ +The requested resource is in use +error171= \ +Error desconocido (0xab) +error172= \ +Error desconocido (0xac) +error173= \ +A lock request was not outstanding for the supplied cancel region +error174= \ +The file system does not support atomic changes to the lock type +error175= \ +Error desconocido (0xaf) +error176= \ +Error desconocido (0xb0) +error177= \ +Error desconocido (0xb1) +error178= \ +Error desconocido (0xb2) +error179= \ +Error desconocido (0xb3) +error180= \ +The system detected a segment number that was not correct +error181= \ +Error desconocido (0xb5) +error182= \ +The operating system cannot run %1 +error183= \ +Cannot create a file when that file already exists +error184= \ +Error desconocido (0xb8) +error185= \ +Error desconocido (0xb9) +error186= \ +The flag passed is not correct +error187= \ +The specified system semaphore name was not found +error188= \ +The operating system cannot run %1 +error189= \ +The operating system cannot run %1 +error190= \ +The operating system cannot run %1 +error191= \ +Cannot run %1 in Win32 mode +error192= \ +The operating system cannot run %1 +error193= \ +%1 is not a valid Win32 application +error194= \ +The operating system cannot run %1 +error195= \ +The operating system cannot run %1 +error196= \ +The operating system cannot run this application program +error197= \ +The operating system is not presently configured to run this application +error198= \ +The operating system cannot run %1 +error199= \ +The operating system cannot run this application program +error200= \ +The code segment cannot be greater than or equal to 64K +error201= \ +The operating system cannot run %1 +error202= \ +The operating system cannot run %1 +error203= \ +The system could not find the environment option that was entered +error204= \ +Error desconocido (0xcc) +error205= \ +No process in the command subtree has a signal handler +error206= \ +The filename or extension is too long +error207= \ +The ring 2 stack is in use +error208= \ +The global filename characters, * or ?, are entered incorrectly or too many global filename characters are specified +error209= \ +The signal being posted is not correct +error210= \ +The signal handler cannot be set +error211= \ +Error desconocido (0xd3) +error212= \ +The segment is locked and cannot be reallocated +error213= \ +Error desconocido (0xd5) +error214= \ +Too many dynamic-link modules are attached to this program or dynamic-link module +error215= \ +Cannot nest calls to LoadModule +error216= \ +The image file %1 is valid, but is for a machine type other than the current machine +error217= \ +Error desconocido (0xd9) +error218= \ +Error desconocido (0xda) +error219= \ +Error desconocido (0xdb) +error220= \ +Error desconocido (0xdc) +error221= \ +Error desconocido (0xdd) +error222= \ +Error desconocido (0xde) +error223= \ +Error desconocido (0xdf) +error224= \ +Error desconocido (0xe0) +error225= \ +Error desconocido (0xe1) +error226= \ +Error desconocido (0xe2) +error227= \ +Error desconocido (0xe3) +error228= \ +Error desconocido (0xe4) +error229= \ +Error desconocido (0xe5) +error230= \ +The pipe state is invalid +error231= \ +All pipe instances are busy +error232= \ +The pipe is being closed +error233= \ +No process is on the other end of the pipe +error234= \ +More data is available +error235= \ +Error desconocido (0xeb) +error236= \ +Error desconocido (0xec) +error237= \ +Error desconocido (0xed) +error238= \ +Error desconocido (0xee) +error239= \ +Error desconocido (0xef) +error240= \ +The session was canceled +error241= \ +Error desconocido (0xf1) +error242= \ +Error desconocido (0xf2) +error243= \ +Error desconocido (0xf3) +error244= \ +Error desconocido (0xf4) +error245= \ +Error desconocido (0xf5) +error246= \ +Error desconocido (0xf6) +error247= \ +Error desconocido (0xf7) +error248= \ +Error desconocido (0xf8) +error249= \ +Error desconocido (0xf9) +error250= \ +Error desconocido (0xfa) +error251= \ +Error desconocido (0xfb) +error252= \ +Error desconocido (0xfc) +error253= \ +Error desconocido (0xfd) +error254= \ +The specified extended attribute name was invalid +error255= \ +The extended attributes are inconsistent +error256= \ +Error desconocido (0x100) +error257= \ +Error desconocido (0x101) +error258= \ +The wait operation timed out +error259= \ +No more data is available +error260= \ +Error desconocido (0x104) +error261= \ +Error desconocido (0x105) +error262= \ +Error desconocido (0x106) +error263= \ +Error desconocido (0x107) +error264= \ +Error desconocido (0x108) +error265= \ +Error desconocido (0x109) +error266= \ +The copy functions cannot be used +error267= \ +The directory name is invalid +error268= \ +Error desconocido (0x10c) +error269= \ +Error desconocido (0x10d) +error270= \ +Error desconocido (0x10e) +error271= \ +Error desconocido (0x10f) +error272= \ +Error desconocido (0x110) +error273= \ +Error desconocido (0x111) +error274= \ +Error desconocido (0x112) +error275= \ +The extended attributes did not fit in the buffer +error276= \ +The extended attribute file on the mounted file system is corrupt +error277= \ +The extended attribute table file is full +error278= \ +The specified extended attribute handle is invalid +error279= \ +Error desconocido (0x117) +error280= \ +Error desconocido (0x118) +error281= \ +Error desconocido (0x119) +error282= \ +The mounted file system does not support extended attributes +error283= \ +Error desconocido (0x11b) +error284= \ +Error desconocido (0x11c) +error285= \ +Error desconocido (0x11d) +error286= \ +Error desconocido (0x11e) +error287= \ +Error desconocido (0x11f) +error288= \ +Attempt to release mutex not owned by caller +error289= \ +Error desconocido (0x121) +error290= \ +Error desconocido (0x122) +error291= \ +Error desconocido (0x123) +error292= \ +Error desconocido (0x124) +error293= \ +Error desconocido (0x125) +error294= \ +Error desconocido (0x126) +error295= \ +Error desconocido (0x127) +error296= \ +Error desconocido (0x128) +error297= \ +Error desconocido (0x129) +error298= \ +Too many posts were made to a semaphore +error299= \ +Only part of a ReadProcessMemory or WriteProcessMemory request was completed +error300= \ +The oplock request is denied +error301= \ +An invalid oplock acknowledgment was received by the system +error302= \ +The volume is too fragmented to complete this operation +error303= \ +The file cannot be opened because it is in the process of being deleted +error304= \ +Error desconocido (0x130) +error305= \ +Error desconocido (0x131) +error306= \ +Error desconocido (0x132) +error307= \ +Error desconocido (0x133) +error308= \ +Error desconocido (0x134) +error309= \ +Error desconocido (0x135) +error310= \ +Error desconocido (0x136) +error311= \ +Error desconocido (0x137) +error312= \ +Error desconocido (0x138) +error313= \ +Error desconocido (0x139) +error314= \ +Error desconocido (0x13a) +error315= \ +Error desconocido (0x13b) +error316= \ +Error desconocido (0x13c) +error317= \ +The system cannot find message text for message number 0x%1 in the message file for %2 +error318= \ +Error desconocido (0x13e) +error319= \ +Error desconocido (0x13f) +error320= \ +Error desconocido (0x140) +error321= \ +Error desconocido (0x141) +error322= \ +Error desconocido (0x142) +error323= \ +Error desconocido (0x143) +error324= \ +Error desconocido (0x144) +error325= \ +Error desconocido (0x145) +error326= \ +Error desconocido (0x146) +error327= \ +Error desconocido (0x147) +error328= \ +Error desconocido (0x148) +error329= \ +Error desconocido (0x149) +error330= \ +Error desconocido (0x14a) +error331= \ +Error desconocido (0x14b) +error332= \ +Error desconocido (0x14c) +error333= \ +Error desconocido (0x14d) +error334= \ +Error desconocido (0x14e) +error335= \ +Error desconocido (0x14f) +error336= \ +Error desconocido (0x150) +error337= \ +Error desconocido (0x151) +error338= \ +Error desconocido (0x152) +error339= \ +Error desconocido (0x153) +error340= \ +Error desconocido (0x154) +error341= \ +Error desconocido (0x155) +error342= \ +Error desconocido (0x156) +error343= \ +Error desconocido (0x157) +error344= \ +Error desconocido (0x158) +error345= \ +Error desconocido (0x159) +error346= \ +Error desconocido (0x15a) +error347= \ +Error desconocido (0x15b) +error348= \ +Error desconocido (0x15c) +error349= \ +Error desconocido (0x15d) +error350= \ +Error desconocido (0x15e) +error351= \ +Error desconocido (0x15f) +error352= \ +Error desconocido (0x160) +error353= \ +Error desconocido (0x161) +error354= \ +Error desconocido (0x162) +error355= \ +Error desconocido (0x163) +error356= \ +Error desconocido (0x164) +error357= \ +Error desconocido (0x165) +error358= \ +Error desconocido (0x166) +error359= \ +Error desconocido (0x167) +error360= \ +Error desconocido (0x168) +error361= \ +Error desconocido (0x169) +error362= \ +Error desconocido (0x16a) +error363= \ +Error desconocido (0x16b) +error364= \ +Error desconocido (0x16c) +error365= \ +Error desconocido (0x16d) +error366= \ +Error desconocido (0x16e) +error367= \ +Error desconocido (0x16f) +error368= \ +Error desconocido (0x170) +error369= \ +Error desconocido (0x171) +error370= \ +Error desconocido (0x172) +error371= \ +Error desconocido (0x173) +error372= \ +Error desconocido (0x174) +error373= \ +Error desconocido (0x175) +error374= \ +Error desconocido (0x176) +error375= \ +Error desconocido (0x177) +error376= \ +Error desconocido (0x178) +error377= \ +Error desconocido (0x179) +error378= \ +Error desconocido (0x17a) +error379= \ +Error desconocido (0x17b) +error380= \ +Error desconocido (0x17c) +error381= \ +Error desconocido (0x17d) +error382= \ +Error desconocido (0x17e) +error383= \ +Error desconocido (0x17f) +error384= \ +Error desconocido (0x180) +error385= \ +Error desconocido (0x181) +error386= \ +Error desconocido (0x182) +error387= \ +Error desconocido (0x183) +error388= \ +Error desconocido (0x184) +error389= \ +Error desconocido (0x185) +error390= \ +Error desconocido (0x186) +error391= \ +Error desconocido (0x187) +error392= \ +Error desconocido (0x188) +error393= \ +Error desconocido (0x189) +error394= \ +Error desconocido (0x18a) +error395= \ +Error desconocido (0x18b) +error396= \ +Error desconocido (0x18c) +error397= \ +Error desconocido (0x18d) +error398= \ +Error desconocido (0x18e) +error399= \ +Error desconocido (0x18f) +error400= \ +Error desconocido (0x190) +error401= \ +Error desconocido (0x191) +error402= \ +Error desconocido (0x192) +error403= \ +Error desconocido (0x193) +error404= \ +Error desconocido (0x194) +error405= \ +Error desconocido (0x195) +error406= \ +Error desconocido (0x196) +error407= \ +Error desconocido (0x197) +error408= \ +Error desconocido (0x198) +error409= \ +Error desconocido (0x199) +error410= \ +Error desconocido (0x19a) +error411= \ +Error desconocido (0x19b) +error412= \ +Error desconocido (0x19c) +error413= \ +Error desconocido (0x19d) +error414= \ +Error desconocido (0x19e) +error415= \ +Error desconocido (0x19f) +error416= \ +Error desconocido (0x1a0) +error417= \ +Error desconocido (0x1a1) +error418= \ +Error desconocido (0x1a2) +error419= \ +Error desconocido (0x1a3) +error420= \ +Error desconocido (0x1a4) +error421= \ +Error desconocido (0x1a5) +error422= \ +Error desconocido (0x1a6) +error423= \ +Error desconocido (0x1a7) +error424= \ +Error desconocido (0x1a8) +error425= \ +Error desconocido (0x1a9) +error426= \ +Error desconocido (0x1aa) +error427= \ +Error desconocido (0x1ab) +error428= \ +Error desconocido (0x1ac) +error429= \ +Error desconocido (0x1ad) +error430= \ +Error desconocido (0x1ae) +error431= \ +Error desconocido (0x1af) +error432= \ +Error desconocido (0x1b0) +error433= \ +Error desconocido (0x1b1) +error434= \ +Error desconocido (0x1b2) +error435= \ +Error desconocido (0x1b3) +error436= \ +Error desconocido (0x1b4) +error437= \ +Error desconocido (0x1b5) +error438= \ +Error desconocido (0x1b6) +error439= \ +Error desconocido (0x1b7) +error440= \ +Error desconocido (0x1b8) +error441= \ +Error desconocido (0x1b9) +error442= \ +Error desconocido (0x1ba) +error443= \ +Error desconocido (0x1bb) +error444= \ +Error desconocido (0x1bc) +error445= \ +Error desconocido (0x1bd) +error446= \ +Error desconocido (0x1be) +error447= \ +Error desconocido (0x1bf) +error448= \ +Error desconocido (0x1c0) +error449= \ +Error desconocido (0x1c1) +error450= \ +Error desconocido (0x1c2) +error451= \ +Error desconocido (0x1c3) +error452= \ +Error desconocido (0x1c4) +error453= \ +Error desconocido (0x1c5) +error454= \ +Error desconocido (0x1c6) +error455= \ +Error desconocido (0x1c7) +error456= \ +Error desconocido (0x1c8) +error457= \ +Error desconocido (0x1c9) +error458= \ +Error desconocido (0x1ca) +error459= \ +Error desconocido (0x1cb) +error460= \ +Error desconocido (0x1cc) +error461= \ +Error desconocido (0x1cd) +error462= \ +Error desconocido (0x1ce) +error463= \ +Error desconocido (0x1cf) +error464= \ +Error desconocido (0x1d0) +error465= \ +Error desconocido (0x1d1) +error466= \ +Error desconocido (0x1d2) +error467= \ +Error desconocido (0x1d3) +error468= \ +Error desconocido (0x1d4) +error469= \ +Error desconocido (0x1d5) +error470= \ +Error desconocido (0x1d6) +error471= \ +Error desconocido (0x1d7) +error472= \ +Error desconocido (0x1d8) +error473= \ +Error desconocido (0x1d9) +error474= \ +Error desconocido (0x1da) +error475= \ +Error desconocido (0x1db) +error476= \ +Error desconocido (0x1dc) +error477= \ +Error desconocido (0x1dd) +error478= \ +Error desconocido (0x1de) +error479= \ +Error desconocido (0x1df) +error480= \ +Error desconocido (0x1e0) +error481= \ +Error desconocido (0x1e1) +error482= \ +Error desconocido (0x1e2) +error483= \ +Error desconocido (0x1e3) +error484= \ +Error desconocido (0x1e4) +error485= \ +Error desconocido (0x1e5) +error486= \ +Error desconocido (0x1e6) +error487= \ +Attempt to access invalid address +error488= \ +Error desconocido (0x1e8) +error489= \ +Error desconocido (0x1e9) +error490= \ +Error desconocido (0x1ea) +error491= \ +Error desconocido (0x1eb) +error492= \ +Error desconocido (0x1ec) +error493= \ +Error desconocido (0x1ed) +error494= \ +Error desconocido (0x1ee) +error495= \ +Error desconocido (0x1ef) +error496= \ +Error desconocido (0x1f0) +error497= \ +Error desconocido (0x1f1) +error498= \ +Error desconocido (0x1f2) +error499= \ +Error desconocido (0x1f3) +error500= \ +Error desconocido (0x1f4) +error501= \ +Error desconocido (0x1f5) +error502= \ +Error desconocido (0x1f6) +error503= \ +Error desconocido (0x1f7) +error504= \ +Error desconocido (0x1f8) +error505= \ +Error desconocido (0x1f9) +error506= \ +Error desconocido (0x1fa) +error507= \ +Error desconocido (0x1fb) +error508= \ +Error desconocido (0x1fc) +error509= \ +Error desconocido (0x1fd) +error510= \ +Error desconocido (0x1fe) +error511= \ +Error desconocido (0x1ff) +error512= \ +Error desconocido (0x200) +error513= \ +Error desconocido (0x201) +error514= \ +Error desconocido (0x202) +error515= \ +Error desconocido (0x203) +error516= \ +Error desconocido (0x204) +error517= \ +Error desconocido (0x205) +error518= \ +Error desconocido (0x206) +error519= \ +Error desconocido (0x207) +error520= \ +Error desconocido (0x208) +error521= \ +Error desconocido (0x209) +error522= \ +Error desconocido (0x20a) +error523= \ +Error desconocido (0x20b) +error524= \ +Error desconocido (0x20c) +error525= \ +Error desconocido (0x20d) +error526= \ +Error desconocido (0x20e) +error527= \ +Error desconocido (0x20f) +error528= \ +Error desconocido (0x210) +error529= \ +Error desconocido (0x211) +error530= \ +Error desconocido (0x212) +error531= \ +Error desconocido (0x213) +error532= \ +Error desconocido (0x214) +error533= \ +Error desconocido (0x215) +error534= \ +Arithmetic result exceeded 32 bits +error535= \ +There is a process on other end of the pipe +error536= \ +Waiting for a process to open the other end of the pipe +error537= \ +Error desconocido (0x219) +error538= \ +Error desconocido (0x21a) +error539= \ +Error desconocido (0x21b) +error540= \ +Error desconocido (0x21c) +error541= \ +Error desconocido (0x21d) +error542= \ +Error desconocido (0x21e) +error543= \ +Error desconocido (0x21f) +error544= \ +Error desconocido (0x220) +error545= \ +Error desconocido (0x221) +error546= \ +Error desconocido (0x222) +error547= \ +Error desconocido (0x223) +error548= \ +Error desconocido (0x224) +error549= \ +Error desconocido (0x225) +error550= \ +Error desconocido (0x226) +error551= \ +Error desconocido (0x227) +error552= \ +Error desconocido (0x228) +error553= \ +Error desconocido (0x229) +error554= \ +Error desconocido (0x22a) +error555= \ +Error desconocido (0x22b) +error556= \ +Error desconocido (0x22c) +error557= \ +Error desconocido (0x22d) +error558= \ +Error desconocido (0x22e) +error559= \ +Error desconocido (0x22f) +error560= \ +Error desconocido (0x230) +error561= \ +Error desconocido (0x231) +error562= \ +Error desconocido (0x232) +error563= \ +Error desconocido (0x233) +error564= \ +Error desconocido (0x234) +error565= \ +Error desconocido (0x235) +error566= \ +Error desconocido (0x236) +error567= \ +Error desconocido (0x237) +error568= \ +Error desconocido (0x238) +error569= \ +Error desconocido (0x239) +error570= \ +Error desconocido (0x23a) +error571= \ +Error desconocido (0x23b) +error572= \ +Error desconocido (0x23c) +error573= \ +Error desconocido (0x23d) +error574= \ +Error desconocido (0x23e) +error575= \ +Error desconocido (0x23f) +error576= \ +Error desconocido (0x240) +error577= \ +Error desconocido (0x241) +error578= \ +Error desconocido (0x242) +error579= \ +Error desconocido (0x243) +error580= \ +Error desconocido (0x244) +error581= \ +Error desconocido (0x245) +error582= \ +Error desconocido (0x246) +error583= \ +Error desconocido (0x247) +error584= \ +Error desconocido (0x248) +error585= \ +Error desconocido (0x249) +error586= \ +Error desconocido (0x24a) +error587= \ +Error desconocido (0x24b) +error588= \ +Error desconocido (0x24c) +error589= \ +Error desconocido (0x24d) +error590= \ +Error desconocido (0x24e) +error591= \ +Error desconocido (0x24f) +error592= \ +Error desconocido (0x250) +error593= \ +Error desconocido (0x251) +error594= \ +Error desconocido (0x252) +error595= \ +Error desconocido (0x253) +error596= \ +Error desconocido (0x254) +error597= \ +Error desconocido (0x255) +error598= \ +Error desconocido (0x256) +error599= \ +Error desconocido (0x257) +error600= \ +Error desconocido (0x258) +error601= \ +Error desconocido (0x259) +error602= \ +Error desconocido (0x25a) +error603= \ +Error desconocido (0x25b) +error604= \ +Error desconocido (0x25c) +error605= \ +Error desconocido (0x25d) +error606= \ +Error desconocido (0x25e) +error607= \ +Error desconocido (0x25f) +error608= \ +Error desconocido (0x260) +error609= \ +Error desconocido (0x261) +error610= \ +Error desconocido (0x262) +error611= \ +Error desconocido (0x263) +error612= \ +Error desconocido (0x264) +error613= \ +Error desconocido (0x265) +error614= \ +Error desconocido (0x266) +error615= \ +Error desconocido (0x267) +error616= \ +Error desconocido (0x268) +error617= \ +Error desconocido (0x269) +error618= \ +Error desconocido (0x26a) +error619= \ +Error desconocido (0x26b) +error620= \ +Error desconocido (0x26c) +error621= \ +Error desconocido (0x26d) +error622= \ +Error desconocido (0x26e) +error623= \ +Error desconocido (0x26f) +error624= \ +Error desconocido (0x270) +error625= \ +Error desconocido (0x271) +error626= \ +Error desconocido (0x272) +error627= \ +Error desconocido (0x273) +error628= \ +Error desconocido (0x274) +error629= \ +Error desconocido (0x275) +error630= \ +Error desconocido (0x276) +error631= \ +Error desconocido (0x277) +error632= \ +Error desconocido (0x278) +error633= \ +Error desconocido (0x279) +error634= \ +Error desconocido (0x27a) +error635= \ +Error desconocido (0x27b) +error636= \ +Error desconocido (0x27c) +error637= \ +Error desconocido (0x27d) +error638= \ +Error desconocido (0x27e) +error639= \ +Error desconocido (0x27f) +error640= \ +Error desconocido (0x280) +error641= \ +Error desconocido (0x281) +error642= \ +Error desconocido (0x282) +error643= \ +Error desconocido (0x283) +error644= \ +Error desconocido (0x284) +error645= \ +Error desconocido (0x285) +error646= \ +Error desconocido (0x286) +error647= \ +Error desconocido (0x287) +error648= \ +Error desconocido (0x288) +error649= \ +Error desconocido (0x289) +error650= \ +Error desconocido (0x28a) +error651= \ +Error desconocido (0x28b) +error652= \ +Error desconocido (0x28c) +error653= \ +Error desconocido (0x28d) +error654= \ +Error desconocido (0x28e) +error655= \ +Error desconocido (0x28f) +error656= \ +Error desconocido (0x290) +error657= \ +Error desconocido (0x291) +error658= \ +Error desconocido (0x292) +error659= \ +Error desconocido (0x293) +error660= \ +Error desconocido (0x294) +error661= \ +Error desconocido (0x295) +error662= \ +Error desconocido (0x296) +error663= \ +Error desconocido (0x297) +error664= \ +Error desconocido (0x298) +error665= \ +Error desconocido (0x299) +error666= \ +Error desconocido (0x29a) +error667= \ +Error desconocido (0x29b) +error668= \ +Error desconocido (0x29c) +error669= \ +Error desconocido (0x29d) +error670= \ +Error desconocido (0x29e) +error671= \ +Error desconocido (0x29f) +error672= \ +Error desconocido (0x2a0) +error673= \ +Error desconocido (0x2a1) +error674= \ +Error desconocido (0x2a2) +error675= \ +Error desconocido (0x2a3) +error676= \ +Error desconocido (0x2a4) +error677= \ +Error desconocido (0x2a5) +error678= \ +Error desconocido (0x2a6) +error679= \ +Error desconocido (0x2a7) +error680= \ +Error desconocido (0x2a8) +error681= \ +Error desconocido (0x2a9) +error682= \ +Error desconocido (0x2aa) +error683= \ +Error desconocido (0x2ab) +error684= \ +Error desconocido (0x2ac) +error685= \ +Error desconocido (0x2ad) +error686= \ +Error desconocido (0x2ae) +error687= \ +Error desconocido (0x2af) +error688= \ +Error desconocido (0x2b0) +error689= \ +Error desconocido (0x2b1) +error690= \ +Error desconocido (0x2b2) +error691= \ +Error desconocido (0x2b3) +error692= \ +Error desconocido (0x2b4) +error693= \ +Error desconocido (0x2b5) +error694= \ +Error desconocido (0x2b6) +error695= \ +Error desconocido (0x2b7) +error696= \ +Error desconocido (0x2b8) +error697= \ +Error desconocido (0x2b9) +error698= \ +Error desconocido (0x2ba) +error699= \ +Error desconocido (0x2bb) +error700= \ +Error desconocido (0x2bc) +error701= \ +Error desconocido (0x2bd) +error702= \ +Error desconocido (0x2be) +error703= \ +Error desconocido (0x2bf) +error704= \ +Error desconocido (0x2c0) +error705= \ +Error desconocido (0x2c1) +error706= \ +Error desconocido (0x2c2) +error707= \ +Error desconocido (0x2c3) +error708= \ +Error desconocido (0x2c4) +error709= \ +Error desconocido (0x2c5) +error710= \ +Error desconocido (0x2c6) +error711= \ +Error desconocido (0x2c7) +error712= \ +Error desconocido (0x2c8) +error713= \ +Error desconocido (0x2c9) +error714= \ +Error desconocido (0x2ca) +error715= \ +Error desconocido (0x2cb) +error716= \ +Error desconocido (0x2cc) +error717= \ +Error desconocido (0x2cd) +error718= \ +Error desconocido (0x2ce) +error719= \ +Error desconocido (0x2cf) +error720= \ +Error desconocido (0x2d0) +error721= \ +Error desconocido (0x2d1) +error722= \ +Error desconocido (0x2d2) +error723= \ +Error desconocido (0x2d3) +error724= \ +Error desconocido (0x2d4) +error725= \ +Error desconocido (0x2d5) +error726= \ +Error desconocido (0x2d6) +error727= \ +Error desconocido (0x2d7) +error728= \ +Error desconocido (0x2d8) +error729= \ +Error desconocido (0x2d9) +error730= \ +Error desconocido (0x2da) +error731= \ +Error desconocido (0x2db) +error732= \ +Error desconocido (0x2dc) +error733= \ +Error desconocido (0x2dd) +error734= \ +Error desconocido (0x2de) +error735= \ +Error desconocido (0x2df) +error736= \ +Error desconocido (0x2e0) +error737= \ +Error desconocido (0x2e1) +error738= \ +Error desconocido (0x2e2) +error739= \ +Error desconocido (0x2e3) +error740= \ +Error desconocido (0x2e4) +error741= \ +Error desconocido (0x2e5) +error742= \ +Error desconocido (0x2e6) +error743= \ +Error desconocido (0x2e7) +error744= \ +Error desconocido (0x2e8) +error745= \ +Error desconocido (0x2e9) +error746= \ +Error desconocido (0x2ea) +error747= \ +Error desconocido (0x2eb) +error748= \ +Error desconocido (0x2ec) +error749= \ +Error desconocido (0x2ed) +error750= \ +Error desconocido (0x2ee) +error751= \ +Error desconocido (0x2ef) +error752= \ +Error desconocido (0x2f0) +error753= \ +Error desconocido (0x2f1) +error754= \ +Error desconocido (0x2f2) +error755= \ +Error desconocido (0x2f3) +error756= \ +Error desconocido (0x2f4) +error757= \ +Error desconocido (0x2f5) +error758= \ +Error desconocido (0x2f6) +error759= \ +Error desconocido (0x2f7) +error760= \ +Error desconocido (0x2f8) +error761= \ +Error desconocido (0x2f9) +error762= \ +Error desconocido (0x2fa) +error763= \ +Error desconocido (0x2fb) +error764= \ +Error desconocido (0x2fc) +error765= \ +Error desconocido (0x2fd) +error766= \ +Error desconocido (0x2fe) +error767= \ +Error desconocido (0x2ff) +error768= \ +Error desconocido (0x300) +error769= \ +Error desconocido (0x301) +error770= \ +Error desconocido (0x302) +error771= \ +Error desconocido (0x303) +error772= \ +Error desconocido (0x304) +error773= \ +Error desconocido (0x305) +error774= \ +Error desconocido (0x306) +error775= \ +Error desconocido (0x307) +error776= \ +Error desconocido (0x308) +error777= \ +Error desconocido (0x309) +error778= \ +Error desconocido (0x30a) +error779= \ +Error desconocido (0x30b) +error780= \ +Error desconocido (0x30c) +error781= \ +Error desconocido (0x30d) +error782= \ +Error desconocido (0x30e) +error783= \ +Error desconocido (0x30f) +error784= \ +Error desconocido (0x310) +error785= \ +Error desconocido (0x311) +error786= \ +Error desconocido (0x312) +error787= \ +Error desconocido (0x313) +error788= \ +Error desconocido (0x314) +error789= \ +Error desconocido (0x315) +error790= \ +Error desconocido (0x316) +error791= \ +Error desconocido (0x317) +error792= \ +Error desconocido (0x318) +error793= \ +Error desconocido (0x319) +error794= \ +Error desconocido (0x31a) +error795= \ +Error desconocido (0x31b) +error796= \ +Error desconocido (0x31c) +error797= \ +Error desconocido (0x31d) +error798= \ +Error desconocido (0x31e) +error799= \ +Error desconocido (0x31f) +error800= \ +Error desconocido (0x320) +error801= \ +Error desconocido (0x321) +error802= \ +Error desconocido (0x322) +error803= \ +Error desconocido (0x323) +error804= \ +Error desconocido (0x324) +error805= \ +Error desconocido (0x325) +error806= \ +Error desconocido (0x326) +error807= \ +Error desconocido (0x327) +error808= \ +Error desconocido (0x328) +error809= \ +Error desconocido (0x329) +error810= \ +Error desconocido (0x32a) +error811= \ +Error desconocido (0x32b) +error812= \ +Error desconocido (0x32c) +error813= \ +Error desconocido (0x32d) +error814= \ +Error desconocido (0x32e) +error815= \ +Error desconocido (0x32f) +error816= \ +Error desconocido (0x330) +error817= \ +Error desconocido (0x331) +error818= \ +Error desconocido (0x332) +error819= \ +Error desconocido (0x333) +error820= \ +Error desconocido (0x334) +error821= \ +Error desconocido (0x335) +error822= \ +Error desconocido (0x336) +error823= \ +Error desconocido (0x337) +error824= \ +Error desconocido (0x338) +error825= \ +Error desconocido (0x339) +error826= \ +Error desconocido (0x33a) +error827= \ +Error desconocido (0x33b) +error828= \ +Error desconocido (0x33c) +error829= \ +Error desconocido (0x33d) +error830= \ +Error desconocido (0x33e) +error831= \ +Error desconocido (0x33f) +error832= \ +Error desconocido (0x340) +error833= \ +Error desconocido (0x341) +error834= \ +Error desconocido (0x342) +error835= \ +Error desconocido (0x343) +error836= \ +Error desconocido (0x344) +error837= \ +Error desconocido (0x345) +error838= \ +Error desconocido (0x346) +error839= \ +Error desconocido (0x347) +error840= \ +Error desconocido (0x348) +error841= \ +Error desconocido (0x349) +error842= \ +Error desconocido (0x34a) +error843= \ +Error desconocido (0x34b) +error844= \ +Error desconocido (0x34c) +error845= \ +Error desconocido (0x34d) +error846= \ +Error desconocido (0x34e) +error847= \ +Error desconocido (0x34f) +error848= \ +Error desconocido (0x350) +error849= \ +Error desconocido (0x351) +error850= \ +Error desconocido (0x352) +error851= \ +Error desconocido (0x353) +error852= \ +Error desconocido (0x354) +error853= \ +Error desconocido (0x355) +error854= \ +Error desconocido (0x356) +error855= \ +Error desconocido (0x357) +error856= \ +Error desconocido (0x358) +error857= \ +Error desconocido (0x359) +error858= \ +Error desconocido (0x35a) +error859= \ +Error desconocido (0x35b) +error860= \ +Error desconocido (0x35c) +error861= \ +Error desconocido (0x35d) +error862= \ +Error desconocido (0x35e) +error863= \ +Error desconocido (0x35f) +error864= \ +Error desconocido (0x360) +error865= \ +Error desconocido (0x361) +error866= \ +Error desconocido (0x362) +error867= \ +Error desconocido (0x363) +error868= \ +Error desconocido (0x364) +error869= \ +Error desconocido (0x365) +error870= \ +Error desconocido (0x366) +error871= \ +Error desconocido (0x367) +error872= \ +Error desconocido (0x368) +error873= \ +Error desconocido (0x369) +error874= \ +Error desconocido (0x36a) +error875= \ +Error desconocido (0x36b) +error876= \ +Error desconocido (0x36c) +error877= \ +Error desconocido (0x36d) +error878= \ +Error desconocido (0x36e) +error879= \ +Error desconocido (0x36f) +error880= \ +Error desconocido (0x370) +error881= \ +Error desconocido (0x371) +error882= \ +Error desconocido (0x372) +error883= \ +Error desconocido (0x373) +error884= \ +Error desconocido (0x374) +error885= \ +Error desconocido (0x375) +error886= \ +Error desconocido (0x376) +error887= \ +Error desconocido (0x377) +error888= \ +Error desconocido (0x378) +error889= \ +Error desconocido (0x379) +error890= \ +Error desconocido (0x37a) +error891= \ +Error desconocido (0x37b) +error892= \ +Error desconocido (0x37c) +error893= \ +Error desconocido (0x37d) +error894= \ +Error desconocido (0x37e) +error895= \ +Error desconocido (0x37f) +error896= \ +Error desconocido (0x380) +error897= \ +Error desconocido (0x381) +error898= \ +Error desconocido (0x382) +error899= \ +Error desconocido (0x383) +error900= \ +Error desconocido (0x384) +error901= \ +Error desconocido (0x385) +error902= \ +Error desconocido (0x386) +error903= \ +Error desconocido (0x387) +error904= \ +Error desconocido (0x388) +error905= \ +Error desconocido (0x389) +error906= \ +Error desconocido (0x38a) +error907= \ +Error desconocido (0x38b) +error908= \ +Error desconocido (0x38c) +error909= \ +Error desconocido (0x38d) +error910= \ +Error desconocido (0x38e) +error911= \ +Error desconocido (0x38f) +error912= \ +Error desconocido (0x390) +error913= \ +Error desconocido (0x391) +error914= \ +Error desconocido (0x392) +error915= \ +Error desconocido (0x393) +error916= \ +Error desconocido (0x394) +error917= \ +Error desconocido (0x395) +error918= \ +Error desconocido (0x396) +error919= \ +Error desconocido (0x397) +error920= \ +Error desconocido (0x398) +error921= \ +Error desconocido (0x399) +error922= \ +Error desconocido (0x39a) +error923= \ +Error desconocido (0x39b) +error924= \ +Error desconocido (0x39c) +error925= \ +Error desconocido (0x39d) +error926= \ +Error desconocido (0x39e) +error927= \ +Error desconocido (0x39f) +error928= \ +Error desconocido (0x3a0) +error929= \ +Error desconocido (0x3a1) +error930= \ +Error desconocido (0x3a2) +error931= \ +Error desconocido (0x3a3) +error932= \ +Error desconocido (0x3a4) +error933= \ +Error desconocido (0x3a5) +error934= \ +Error desconocido (0x3a6) +error935= \ +Error desconocido (0x3a7) +error936= \ +Error desconocido (0x3a8) +error937= \ +Error desconocido (0x3a9) +error938= \ +Error desconocido (0x3aa) +error939= \ +Error desconocido (0x3ab) +error940= \ +Error desconocido (0x3ac) +error941= \ +Error desconocido (0x3ad) +error942= \ +Error desconocido (0x3ae) +error943= \ +Error desconocido (0x3af) +error944= \ +Error desconocido (0x3b0) +error945= \ +Error desconocido (0x3b1) +error946= \ +Error desconocido (0x3b2) +error947= \ +Error desconocido (0x3b3) +error948= \ +Error desconocido (0x3b4) +error949= \ +Error desconocido (0x3b5) +error950= \ +Error desconocido (0x3b6) +error951= \ +Error desconocido (0x3b7) +error952= \ +Error desconocido (0x3b8) +error953= \ +Error desconocido (0x3b9) +error954= \ +Error desconocido (0x3ba) +error955= \ +Error desconocido (0x3bb) +error956= \ +Error desconocido (0x3bc) +error957= \ +Error desconocido (0x3bd) +error958= \ +Error desconocido (0x3be) +error959= \ +Error desconocido (0x3bf) +error960= \ +Error desconocido (0x3c0) +error961= \ +Error desconocido (0x3c1) +error962= \ +Error desconocido (0x3c2) +error963= \ +Error desconocido (0x3c3) +error964= \ +Error desconocido (0x3c4) +error965= \ +Error desconocido (0x3c5) +error966= \ +Error desconocido (0x3c6) +error967= \ +Error desconocido (0x3c7) +error968= \ +Error desconocido (0x3c8) +error969= \ +Error desconocido (0x3c9) +error970= \ +Error desconocido (0x3ca) +error971= \ +Error desconocido (0x3cb) +error972= \ +Error desconocido (0x3cc) +error973= \ +Error desconocido (0x3cd) +error974= \ +Error desconocido (0x3ce) +error975= \ +Error desconocido (0x3cf) +error976= \ +Error desconocido (0x3d0) +error977= \ +Error desconocido (0x3d1) +error978= \ +Error desconocido (0x3d2) +error979= \ +Error desconocido (0x3d3) +error980= \ +Error desconocido (0x3d4) +error981= \ +Error desconocido (0x3d5) +error982= \ +Error desconocido (0x3d6) +error983= \ +Error desconocido (0x3d7) +error984= \ +Error desconocido (0x3d8) +error985= \ +Error desconocido (0x3d9) +error986= \ +Error desconocido (0x3da) +error987= \ +Error desconocido (0x3db) +error988= \ +Error desconocido (0x3dc) +error989= \ +Error desconocido (0x3dd) +error990= \ +Error desconocido (0x3de) +error991= \ +Error desconocido (0x3df) +error992= \ +Error desconocido (0x3e0) +error993= \ +Error desconocido (0x3e1) +error994= \ +Se ha denegado el acceso al atributo extendido +error995= \ +La operación de entrada/salida ha sido abortada porque un hilo ha terminado o por una petición de la aplicación. +error996= \ +Overlapped I/O event is not in a signaled state +error997= \ +Overlapped I/O operation is in progress +error998= \ +Invalid access to memory location +error999= \ +Error performing inpage operation +error1000= \ +Error desconocido (0x3e8) +error1001= \ +Recursion too deep; the stack overflowed +error1002= \ +The window cannot act on the sent message +error1003= \ +Cannot complete this function +error1004= \ +Invalid flags +error1005= \ +The volume does not contain a recognized file system. +Please make sure that all required file system drivers are loaded and that the volume is not corrupted +error1006= \ +The volume for a file has been externally altered so that the opened file is no longer valid +error1007= \ +The requested operation cannot be performed in full-screen mode +error1008= \ +An attempt was made to reference a token that does not exist +error1009= \ +The configuration registry database is corrupt +error1010= \ +The configuration registry key is invalid +error1011= \ +The configuration registry key could not be opened +error1012= \ +The configuration registry key could not be read +error1013= \ +The configuration registry key could not be written +error1014= \ +One of the files in the registry database had to be recovered by use of a log or alternate copy. The recovery was successful +error1015= \ +The registry is corrupted. The structure of one of the files containing registry data is corrupted, or the system''s memory image of the file is corrupted, or the file could not be recovered because the alternate copy or log was absent or corrupted +error1016= \ +An I/O operation initiated by the registry failed unrecoverably. The registry could not read in, or write out, or flush, one of the files that contain the system''s image of the registry +error1017= \ +The system has attempted to load or restore a file into the registry, but the specified file is not in a registry file format +error1018= \ +Illegal operation attempted on a registry key that has been marked for deletion +error1019= \ +System could not allocate the required space in a registry log +error1020= \ +Cannot create a symbolic link in a registry key that already has subkeys or values +error1021= \ +Cannot create a stable subkey under a volatile parent key +error1022= \ +A notify change request is being completed and the information is not being returned in the caller''s buffer. The caller now needs to enumerate the files to find the changes +error1023= \ +Error desconocido (0x3ff) diff --git a/core/src/main/resources/hudson/win32errors_ja.properties b/core/src/main/resources/hudson/win32errors_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..e5332c59037a73a4c1f91133ab4a23026a176c67 --- /dev/null +++ b/core/src/main/resources/hudson/win32errors_ja.properties @@ -0,0 +1,2081 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +# Win32 error messages by error code +# +error0= \ +\u3053\u306E\u64CD\u4F5C\u3092\u6B63\u3057\u304F\u7D42\u4E86\u3057\u307E\u3057\u305F\u3002 +error1= \ +\u30D5\u30A1\u30F3\u30AF\u30B7\u30E7\u30F3\u304C\u9593\u9055\u3063\u3066\u3044\u307E\u3059\u3002 +error2= \ +\u6307\u5B9A\u3055\u308C\u305F\u30D5\u30A1\u30A4\u30EB\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3002 +error3= \ +\u6307\u5B9A\u3055\u308C\u305F\u30D1\u30B9\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3002 +error4= \ +\u30D5\u30A1\u30A4\u30EB\u3092\u958B\u304F\u3053\u3068\u304C\u3067\u304D\u307E\u305B\u3093\u3002 +error5= \ +\u30A2\u30AF\u30BB\u30B9\u304C\u62D2\u5426\u3055\u308C\u307E\u3057\u305F\u3002 +error6= \ +\u30CF\u30F3\u30C9\u30EB\u304C\u7121\u52B9\u3067\u3059\u3002 +error7= \ +\u61B6\u57DF\u5236\u5FA1\u30D6\u30ED\u30C3\u30AF\u304C\u58CA\u308C\u3066\u3044\u307E\u3059\u3002 +error8= \ +\u3053\u306E\u30B3\u30DE\u30F3\u30C9\u3092\u5B9F\u884C\u3059\u308B\u306E\u306B\u5341\u5206\u306A\u8A18\u61B6\u57DF\u304C\u3042\u308A\u307E\u305B\u3093\u3002 +error9= \ +\u8A18\u61B6\u57DF\u5236\u5FA1\u30D6\u30ED\u30C3\u30AF\u306E\u30A2\u30C9\u30EC\u30B9\u304C\u7121\u52B9\u3067\u3059\u3002 +error10= \ +\u74B0\u5883\u304C\u9593\u9055\u3063\u3066\u3044\u307E\u3059\u3002 +error11= \ +\u9593\u9055\u3063\u305F\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u306E\u30D7\u30ED\u30B0\u30E9\u30E0\u3092\u8AAD\u307F\u8FBC\u3082\u3046\u3068\u3057\u307E\u3057\u305F\u3002 +error12= \ +\u30A2\u30AF\u30BB\u30B9 \u30B3\u30FC\u30C9\u304C\u7121\u52B9\u3067\u3059\u3002 +error13= \ +\u30C7\u30FC\u30BF\u304C\u7121\u52B9\u3067\u3059\u3002 +error14= \ +\u3053\u306E\u64CD\u4F5C\u3092\u5B8C\u4E86\u3059\u308B\u306E\u306B\u5341\u5206\u306A\u8A18\u61B6\u57DF\u304C\u3042\u308A\u307E\u305B\u3093\u3002 +error15= \ +\u5B9A\u3055\u308C\u305F\u30C9\u30E9\u30A4\u30D6\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3002 +error16= \ +\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3092\u524A\u9664\u3067\u304D\u307E\u305B\u3093\u3002 +error17= \ +\u30D5\u30A1\u30A4\u30EB\u3092\u5225\u306E\u30C7\u30A3\u30B9\u30AF \u30C9\u30E9\u30A4\u30D6\u306B\u79FB\u52D5\u3067\u304D\u307E\u305B\u3093\u3002 +error18= \ +\u3053\u308C\u4EE5\u4E0A\u30D5\u30A1\u30A4\u30EB\u304C\u3042\u308A\u307E\u305B\u3093\u3002 +error19= \ +\u3053\u306E\u30E1\u30C7\u30A3\u30A2\u306F\u66F8\u304D\u8FBC\u307F\u7981\u6B62\u306B\u306A\u3063\u3066\u3044\u307E\u3059\u3002 +error20= \ +\u6307\u5B9A\u3055\u308C\u305F\u30C7\u30D0\u30A4\u30B9\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3002 +error21= \ +\u30C7\u30D0\u30A4\u30B9\u306E\u6E96\u5099\u304C\u3067\u304D\u3066\u3044\u307E\u305B\u3093\u3002 +error22= \ +\u30C7\u30D0\u30A4\u30B9\u304C\u30B3\u30DE\u30F3\u30C9\u3092\u8A8D\u8B58\u3067\u304D\u307E\u305B\u3093\u3002 +error23= \ +\u30C7\u30FC\u30BF \u30A8\u30E9\u30FC (\u5DE1\u56DE\u5197\u9577\u691C\u67FB (CRC) \u30A8\u30E9\u30FC) \u3067\u3059\u3002 +error24= \ +\u30D7\u30ED\u30B0\u30E9\u30E0\u306F\u30B3\u30DE\u30F3\u30C9\u3092\u767A\u884C\u3057\u307E\u3057\u305F\u304C\u3001\u30B3\u30DE\u30F3\u30C9\u306E\u9577\u3055\u304C\u9593\u9055\u3063\u3066\u3044\u307E\u3059\u3002 +error25= \ +\u6307\u5B9A\u3055\u308C\u305F\u30C7\u30A3\u30B9\u30AF\u306E\u9818\u57DF\u307E\u305F\u306F\u30C8\u30E9\u30C3\u30AF\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3002 +error26= \ +\u6307\u5B9A\u3055\u308C\u305F\u30C7\u30A3\u30B9\u30AF\u307E\u305F\u306F\u30D5\u30ED\u30C3\u30D4\u30FC \u30C7\u30A3\u30B9\u30AF\u306B\u30A2\u30AF\u30BB\u30B9\u3067\u304D\u307E\u305B\u3093\u3002 +error27= \ +\u8981\u6C42\u3055\u308C\u305F\u30BB\u30AF\u30BF\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3002 +error28= \ +\u30D7\u30EA\u30F3\u30BF\u306F\u7528\u7D19\u5207\u308C\u3067\u3059\u3002 +error29= \ +\u6307\u5B9A\u3055\u308C\u305F\u30C7\u30D0\u30A4\u30B9\u306B\u66F8\u304D\u8FBC\u3081\u307E\u305B\u3093\u3002 +error30= \ +\u6307\u5B9A\u3055\u308C\u305F\u30C7\u30D0\u30A4\u30B9\u304B\u3089\u8AAD\u307F\u53D6\u308C\u307E\u305B\u3093\u3002 +error31= \ +\u30B7\u30B9\u30C6\u30E0\u306B\u63A5\u7D9A\u3055\u308C\u305F\u30C7\u30D0\u30A4\u30B9\u304C\u6A5F\u80FD\u3057\u3066\u3044\u307E\u305B\u3093\u3002 +error32= \ +\u30D7\u30ED\u30BB\u30B9\u306F\u30D5\u30A1\u30A4\u30EB\u306B\u30A2\u30AF\u30BB\u30B9\u3067\u304D\u307E\u305B\u3093\u3002\u5225\u306E\u30D7\u30ED\u30BB\u30B9\u304C\u4F7F\u7528\u4E2D\u3067\u3059\u3002 +error33= \ +\u30D7\u30ED\u30BB\u30B9\u306F\u30D5\u30A1\u30A4\u30EB\u306B\u30A2\u30AF\u30BB\u30B9\u3067\u304D\u307E\u305B\u3093\u3002\u5225\u306E\u30D7\u30ED\u30BB\u30B9\u304C\u30D5\u30A1\u30A4\u30EB\u306E\u4E00\u90E8\u3092\u30ED\u30C3\u30AF\u3057\u3066\u3044\u307E\u3059\u3002 +error34= \ +\u9593\u9055\u3063\u305F\u30D5\u30ED\u30C3\u30D4\u30FC \u30C7\u30A3\u30B9\u30AF\u304C\u30C9\u30E9\u30A4\u30D6\u306B\u633F\u5165\u3055\u308C\u3066\u3044\u307E\u3059\u3002\ +%2 (\u30DC\u30EA\u30E5\u30FC\u30E0 \u30B7\u30EA\u30A2\u30EB\u756A\u53F7: %3) \u3092\u30C9\u30E9\u30A4\u30D6 %1 \u306B\u633F\u5165\u3057\u3066\u304F\u3060\u3055\u3044\u3002 +error35= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x23) +error36= \ +\u958B\u304B\u308C\u3066\u3044\u308B\u5171\u6709\u30D5\u30A1\u30A4\u30EB\u304C\u591A\u3059\u304E\u307E\u3059\u3002 +error37= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x25) +error38= \ +\u30D5\u30A1\u30A4\u30EB\u306E\u7D42\u308F\u308A\u3067\u3059\u3002 +error39= \ +\u30C7\u30A3\u30B9\u30AF\u304C\u3044\u3063\u3071\u3044\u3067\u3059\u3002 +error40= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x28) +error41= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x29) +error42= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2a) +error43= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2b) +error44= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2c) +error45= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2d) +error46= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2e) +error47= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2f) +error48= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x30) +error49= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x31) +error50= \ +\u3053\u306E\u8981\u6C42\u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002 +error51= \ +\u30CD\u30C3\u30C8\u30EF\u30FC\u30AF \u30D1\u30B9\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3002\u30CD\u30C3\u30C8\u30EF\u30FC\u30AF \u30D1\u30B9\u304C\u6B63\u3057\u304F\u3001\u5B9B\u5148\u306E\u30B3\u30F3\u30D4\u30E5\u30FC\u30BF\u304C\u30D3\u30B8\u30FC\u72B6\u614B\u3067\u306F\u306A\u304F\u30AA\u30F3\u306B\u306A\u3063\u3066\u3044\u308B\u3053\u3068\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002\ +\u305D\u308C\u3067\u3082\u30CD\u30C3\u30C8\u30EF\u30FC\u30AF \u30D1\u30B9\u304C\u691C\u51FA\u3055\u308C\u306A\u3044\u5834\u5408\u306F\u3001\u30CD\u30C3\u30C8\u30EF\u30FC\u30AF\u7BA1\u7406\u8005\u306B\u554F\u3044\u5408\u308F\u305B\u3066\u304F\u3060\u3055\u3044\u3002 +error52= \ +\u30CD\u30C3\u30C8\u30EF\u30FC\u30AF\u306B\u91CD\u8907\u3057\u305F\u540D\u524D\u304C\u3042\u308B\u305F\u3081\u63A5\u7D9A\u3055\u308C\u307E\u305B\u3093\u3067\u3057\u305F\u3002\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB \u30D1\u30CD\u30EB\u306E\u30B7\u30B9\u30C6\u30E0\u3067\u30B3\u30F3\u30D4\u30E5\u30FC\u30BF\u540D\u3092\u5909\u66F4\u3057\u3066\u518D\u5B9F\u884C\u3057\u3066\u304F\u3060\u3055\u3044\u3002 +error53= \ +\u30CD\u30C3\u30C8\u30EF\u30FC\u30AF \u30D1\u30B9\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3002 +error54= \ +\u30CD\u30C3\u30C8\u30EF\u30FC\u30AF\u304C\u30D3\u30B8\u30FC\u3067\u3059\u3002 +error55= \ +\u6307\u5B9A\u3055\u308C\u305F\u30CD\u30C3\u30C8\u30EF\u30FC\u30AF \u30EA\u30BD\u30FC\u30B9\u307E\u305F\u306F\u30C7\u30D0\u30A4\u30B9\u306F\u5229\u7528\u3067\u304D\u307E\u305B\u3093\u3002 +error56= \ +\u30CD\u30C3\u30C8\u30EF\u30FC\u30AF BIOS \u30B3\u30DE\u30F3\u30C9\u304C\u5236\u9650\u5024\u306B\u9054\u3057\u307E\u3057\u305F\u3002 +error57= \ +\u30CD\u30C3\u30C8\u30EF\u30FC\u30AF \u30A2\u30C0\u30D7\u30BF\u306E\u30CF\u30FC\u30C9\u30A6\u30A7\u30A2 \u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002 +error58= \ +\u6307\u5B9A\u3055\u308C\u305F\u30B5\u30FC\u30D0\u30FC\u306F\u3001\u8981\u6C42\u3055\u308C\u305F\u64CD\u4F5C\u3092\u5B9F\u884C\u3067\u304D\u307E\u305B\u3093\u3002 +error59= \ +\u4E88\u671F\u3057\u306A\u3044\u30CD\u30C3\u30C8\u30EF\u30FC\u30AF \u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002 +error60= \ +\u30EA\u30E2\u30FC\u30C8 \u30A2\u30C0\u30D7\u30BF\u306F\u4E92\u63DB\u6027\u304C\u3042\u308A\u307E\u305B\u3093\u3002 +error61= \ +\u30D7\u30EA\u30F3\u30BF \u30AD\u30E5\u30FC\u304C\u3044\u3063\u3071\u3044\u3067\u3059\u3002 +error62= \ +\u30B5\u30FC\u30D0\u30FC\u4E0A\u306E\u5370\u5237\u5F85\u3061\u30D5\u30A1\u30A4\u30EB\u3092\u683C\u7D0D\u3059\u308B\u305F\u3081\u306E\u30C7\u30A3\u30B9\u30AF\u9818\u57DF\u304C\u3042\u308A\u307E\u305B\u3093\u3002 +error63= \ +\u5370\u5237\u5F85\u3061\u3060\u3063\u305F\u30D5\u30A1\u30A4\u30EB\u306F\u524A\u9664\u3055\u308C\u307E\u3057\u305F\u3002 +error64= \ +\u6307\u5B9A\u3055\u308C\u305F\u30CD\u30C3\u30C8\u30EF\u30FC\u30AF\u540D\u306F\u5229\u7528\u3067\u304D\u307E\u305B\u3093\u3002 +error65= \ +\u30CD\u30C3\u30C8\u30EF\u30FC\u30AF \u30A2\u30AF\u30BB\u30B9\u306F\u62D2\u5426\u3055\u308C\u307E\u3057\u305F\u3002 +error66= \ +\u30CD\u30C3\u30C8\u30EF\u30FC\u30AF \u30EA\u30BD\u30FC\u30B9\u306E\u7A2E\u985E\u304C\u6B63\u3057\u304F\u3042\u308A\u307E\u305B\u3093\u3002 +error67= \ +\u30CD\u30C3\u30C8\u30EF\u30FC\u30AF\u540D\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3002 +error68= \ +\u30ED\u30FC\u30AB\u30EB \u30B3\u30F3\u30D4\u30E5\u30FC\u30BF\u306E\u30CD\u30C3\u30C8\u30EF\u30FC\u30AF \u30A2\u30C0\u30D7\u30BF \u30AB\u30FC\u30C9\u306B\u5BFE\u3059\u308B\u540D\u524D\u306E\u6570\u304C\u5236\u9650\u5024\u3092\u8D85\u3048\u307E\u3057\u305F\u3002 +error69= \ +\u30CD\u30C3\u30C8\u30EF\u30FC\u30AF BIOS \u30BB\u30C3\u30B7\u30E7\u30F3\u306E\u6570\u304C\u5236\u9650\u5024\u3092\u8D85\u3048\u307E\u3057\u305F\u3002 +error70= \ +\u30EA\u30E2\u30FC\u30C8 \u30B5\u30FC\u30D0\u30FC\u306F\u4E00\u6642\u505C\u6B62\u3055\u308C\u3066\u3044\u308B\u304B\u3001\u8D77\u52D5\u9014\u4E2D\u3067\u3059\u3002 +error71= \ +\u30B3\u30F3\u30D4\u30E5\u30FC\u30BF\u3078\u306E\u63A5\u7D9A\u6570\u304C\u6700\u5927\u5024\u306B\u9054\u3057\u3066\u3044\u308B\u305F\u3081\u3001\u3053\u308C\u4EE5\u4E0A\u3053\u306E\u30EA\u30E2\u30FC\u30C8 \u30B3\u30F3\u30D4\u30E5\u30FC\u30BF\u306B\u63A5\u7D9A\u3067\u304D\u307E\u305B\u3093\u3002 +error72= \ +\u6307\u5B9A\u3055\u308C\u305F\u30D7\u30EA\u30F3\u30BF\u307E\u305F\u306F\u30C7\u30A3\u30B9\u30AF \u30C7\u30D0\u30A4\u30B9\u306F\u4E00\u6642\u505C\u6B62\u3055\u308C\u3066\u3044\u307E\u3059\u3002 +error73= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x49) +error74= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x4a) +error75= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x4b) +error76= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x4c) +error77= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x4d) +error78= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x4e) +error79= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x4f) +error80= \ +\u30D5\u30A1\u30A4\u30EB\u304C\u3042\u308A\u307E\u3059\u3002 +error81= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x51) +error82= \ +\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u307E\u305F\u306F\u30D5\u30A1\u30A4\u30EB\u3092\u4F5C\u6210\u3067\u304D\u307E\u305B\u3093\u3002 +error83= \ +INT 24 \u3067\u30A8\u30E9\u30FC\u3002 +error84= \ +\u3053\u306E\u8981\u6C42\u3092\u51E6\u7406\u3059\u308B\u305F\u3081\u306E\u8A18\u61B6\u57DF\u304C\u3042\u308A\u307E\u305B\u3093\u3002 +error85= \ +\u30ED\u30FC\u30AB\u30EB \u30C7\u30D0\u30A4\u30B9\u540D\u306F\u65E2\u306B\u4F7F\u7528\u3055\u308C\u3066\u3044\u307E\u3059\u3002 +error86= \ +\u6307\u5B9A\u3055\u308C\u305F\u30CD\u30C3\u30C8\u30EF\u30FC\u30AF \u30D1\u30B9\u30EF\u30FC\u30C9\u304C\u9593\u9055\u3063\u3066\u3044\u307E\u3059\u3002 +error87= \ +\u30D1\u30E9\u30E1\u30FC\u30BF\u304C\u9593\u9055\u3063\u3066\u3044\u307E\u3059\u3002 +error88= \ +\u30CD\u30C3\u30C8\u30EF\u30FC\u30AF\u3067\u66F8\u304D\u8FBC\u307F\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002 +error89= \ +\u73FE\u5728\u3001\u307B\u304B\u306E\u30D7\u30ED\u30BB\u30B9\u3092\u8D77\u52D5\u3067\u304D\u307E\u305B\u3093\u3002 +error90= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x5a) +error91= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x5b) +error92= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x5c) +error93= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x5d) +error94= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x5e) +error95= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x5f) +error96= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x60) +error97= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x61) +error98= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x62) +error99= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x63) +error100= \ +\u307B\u304B\u306E\u30B7\u30B9\u30C6\u30E0 \u30BB\u30DE\u30D5\u30A9\u3092\u4F5C\u6210\u3067\u304D\u307E\u305B\u3093\u3002 +error101= \ +\u6392\u4ED6\u30BB\u30DE\u30D5\u30A9\u306F\u3001\u307B\u304B\u306E\u30D7\u30ED\u30BB\u30B9\u304C\u6240\u6709\u3057\u3066\u3044\u307E\u3059\u3002 +error102= \ +\u30BB\u30DE\u30D5\u30A9\u304C\u8A2D\u5B9A\u3055\u308C\u3066\u3044\u307E\u3059\u3002\u9589\u3058\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u305B\u3093\u3002 +error103= \ +\u30BB\u30DE\u30D5\u30A9\u3092\u518D\u8A2D\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002 +error104= \ +\u5272\u308A\u8FBC\u307F\u6642\u9593\u306B\u306F\u6392\u4ED6\u30BB\u30DE\u30D5\u30A9\u3092\u8981\u6C42\u3067\u304D\u307E\u305B\u3093\u3002 +error105= \ +\u3053\u306E\u30BB\u30DE\u30D5\u30A9\u306E\u4EE5\u524D\u306E\u6240\u6709\u6A29\u306F\u7D42\u4E86\u3057\u307E\u3057\u305F\u3002 +error106= \ +\u30C9\u30E9\u30A4\u30D6 %1 \u306B\u30D5\u30ED\u30C3\u30D4\u30FC \u30C7\u30A3\u30B9\u30AF\u3092\u633F\u5165\u3057\u3066\u304F\u3060\u3055\u3044\u3002 +error107= \ +\u5225\u306E\u30D5\u30ED\u30C3\u30D4\u30FC \u30C7\u30A3\u30B9\u30AF\u304C\u633F\u5165\u3055\u308C\u306A\u304B\u3063\u305F\u305F\u3081\u3001\u30D7\u30ED\u30B0\u30E9\u30E0\u306F\u505C\u6B62\u3057\u307E\u3057\u305F\u3002 +error108= \ +\u30C7\u30A3\u30B9\u30AF\u306F\u4F7F\u7528\u4E2D\u304B\u3001\u307B\u304B\u306E\u30D7\u30ED\u30BB\u30B9\u306B\u3088\u3063\u3066\u30ED\u30C3\u30AF\u3055\u308C\u3066\u3044\u307E\u3059\u3002 +error109= \ +\u30D1\u30A4\u30D7\u306F\u7D42\u4E86\u3057\u307E\u3057\u305F\u3002 +error110= \ +\u6307\u5B9A\u3055\u308C\u305F\u30C7\u30D0\u30A4\u30B9\u307E\u305F\u306F\u30D5\u30A1\u30A4\u30EB\u3092\u958B\u3051\u307E\u305B\u3093\u3002 +error111= \ +\u30D5\u30A1\u30A4\u30EB\u540D\u304C\u9577\u3059\u304E\u307E\u3059\u3002 +error112= \ +\u30C7\u30A3\u30B9\u30AF\u306B\u5341\u5206\u306A\u7A7A\u304D\u9818\u57DF\u304C\u3042\u308A\u307E\u305B\u3093\u3002 +error113= \ +\u5185\u90E8\u30D5\u30A1\u30A4\u30EB\u8B58\u5225\u5B50\u304C\u3053\u308C\u4EE5\u4E0A\u3042\u308A\u307E\u305B\u3093\u3002 +error114= \ +\u30BF\u30FC\u30B2\u30C3\u30C8\u5185\u90E8\u30D5\u30A1\u30A4\u30EB\u8B58\u5225\u5B50\u304C\u9593\u9055\u3063\u3066\u3044\u307E\u3059\u3002 +error115= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x73) +error116= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x74) +error117= \ +\u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u306E\u767A\u884C\u3057\u305F IOCTL \u547C\u3073\u51FA\u3057\u304C\u9593\u9055\u3063\u3066\u3044\u307E\u3059\u3002 +error118= \ +verify-on-write \u30B9\u30A4\u30C3\u30C1\u306E\u30D1\u30E9\u30E1\u30FC\u30BF\u306E\u5024\u304C\u9593\u9055\u3063\u3066\u3044\u307E\u3059\u3002 +error119= \ +\u8981\u6C42\u3055\u308C\u305F\u30B3\u30DE\u30F3\u30C9\u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002 +error120= \ +\u3053\u306E\u30B7\u30B9\u30C6\u30E0\u3067\u306F\u3053\u306E\u95A2\u6570\u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u307E\u305B\u3093\u3002 +error121= \ +\u30BB\u30DE\u30D5\u30A9\u304C\u30BF\u30A4\u30E0\u30A2\u30A6\u30C8\u3057\u307E\u3057\u305F\u3002 +error122= \ +\u30B7\u30B9\u30C6\u30E0 \u30B3\u30FC\u30EB\u306B\u6E21\u3055\u308C\u308B\u30C7\u30FC\u30BF\u9818\u57DF\u304C\u5C0F\u3055\u3059\u304E\u307E\u3059\u3002 +error123= \ +\u30D5\u30A1\u30A4\u30EB\u540D\u3001\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u540D\u3001\u307E\u305F\u306F\u30DC\u30EA\u30E5\u30FC\u30E0 \u30E9\u30D9\u30EB\u306E\u69CB\u6587\u304C\u9593\u9055\u3063\u3066\u3044\u307E\u3059\u3002 +error124= \ +\u30B7\u30B9\u30C6\u30E0 \u30B3\u30FC\u30EB \u30EC\u30D9\u30EB\u304C\u9593\u9055\u3063\u3066\u3044\u307E\u3059\u3002 +error125= \ +\u30C7\u30A3\u30B9\u30AF\u306B\u30DC\u30EA\u30E5\u30FC\u30E0 \u30E9\u30D9\u30EB\u304C\u3042\u308A\u307E\u305B\u3093\u3002 +error126= \ +\u6307\u5B9A\u3055\u308C\u305F\u30E2\u30B8\u30E5\u30FC\u30EB\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3002 +error127= \ +\u6307\u5B9A\u3055\u308C\u305F\u30D7\u30ED\u30B7\u30FC\u30B8\u30E3\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3002 +error128= \ +\u5B50\u30D7\u30ED\u30BB\u30B9\u3092\u5F85\u3064\u5FC5\u8981\u306F\u3042\u308A\u307E\u305B\u3093\u3002 +error129= \ +%1 \u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u306F Win32 \u30E2\u30FC\u30C9\u3067\u5B9F\u884C\u3067\u304D\u307E\u305B\u3093\u3002 +error130= \ +\u76F4\u63A5\u30C7\u30A3\u30B9\u30AF I/O \u4EE5\u5916\u306E\u64CD\u4F5C\u306B\u5BFE\u3057\u3066\u30AA\u30FC\u30D7\u30F3 \u30C7\u30A3\u30B9\u30AF \u30D1\u30FC\u30C6\u30A3\u30B7\u30E7\u30F3\u306E\u30D5\u30A1\u30A4\u30EB \u30CF\u30F3\u30C9\u30EB\u3092\u4F7F\u7528\u3057\u3088\u3046\u3068\u3057\u3066\u3044\u307E\u3059\u3002 +error131= \ +\u30D5\u30A1\u30A4\u30EB\u306E\u5148\u982D\u3088\u308A\u3082\u524D\u306B\u30D5\u30A1\u30A4\u30EB \u30DD\u30A4\u30F3\u30BF\u3092\u79FB\u52D5\u3057\u3088\u3046\u3068\u3057\u307E\u3057\u305F\u3002 +error132= \ +\u6307\u5B9A\u3055\u308C\u305F\u30C7\u30D0\u30A4\u30B9\u307E\u305F\u306F\u30D5\u30A1\u30A4\u30EB\u306B\u30DD\u30A4\u30F3\u30BF\u3092\u8A2D\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002 +error133= \ +JOIN \u307E\u305F\u306F SUBST \u30B3\u30DE\u30F3\u30C9\u306F\u4EE5\u524D\u63A5\u7D9A\u3055\u308C\u305F\u30C9\u30E9\u30A4\u30D6\u3092\u542B\u3080\u30C9\u30E9\u30A4\u30D6\u306B\u5BFE\u3057\u3066\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002 +error134= \ +\u65E2\u306B\u63A5\u7D9A\u3055\u308C\u3066\u3044\u308B\u30C9\u30E9\u30A4\u30D6\u306B\u5BFE\u3057\u3066 JOIN \u307E\u305F\u306F SUBST \u30B3\u30DE\u30F3\u30C9\u3092\u4F7F\u7528\u3057\u3088\u3046\u3068\u3057\u307E\u3057\u305F\u3002 +error135= \ +\u65E2\u306B\u30D1\u30B9\u304C\u7F6E\u304D\u63DB\u3048\u3089\u308C\u3066\u3044\u308B\u30C9\u30E9\u30A4\u30D6\u306B\u5BFE\u3057\u3066 JOIN \u307E\u305F\u306F SUBST \u30B3\u30DE\u30F3\u30C9\u3092\u4F7F\u7528\u3057\u3088\u3046\u3068\u3057\u307E\u3057\u305F\u3002 +error136= \ +\u63A5\u7D9A\u3055\u308C\u3066\u3044\u306A\u3044\u30C9\u30E9\u30A4\u30D6\u306B\u5BFE\u3057\u3066\u63A5\u7D9A\u3092\u524A\u9664\u3057\u3088\u3046\u3068\u3057\u307E\u3057\u305F\u3002 +error137= \ +\u7F6E\u304D\u63DB\u3048\u3089\u308C\u3066\u3044\u306A\u3044\u30C9\u30E9\u30A4\u30D6\u306B\u5BFE\u3057\u3066\u30D1\u30B9\u306E\u7F6E\u304D\u63DB\u3048\u3092\u524A\u9664\u3057\u3088\u3046\u3068\u3057\u307E\u3057\u305F\u3002 +error138= \ +\u65E2\u306B\u63A5\u7D9A\u3055\u308C\u3066\u3044\u308B\u30C9\u30E9\u30A4\u30D6\u4E0A\u306E\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306B\u30C9\u30E9\u30A4\u30D6\u3092\u63A5\u7D9A\u3057\u3088\u3046\u3068\u3057\u307E\u3057\u305F\u3002 +error139= \ +\u65E2\u306B\u30D1\u30B9\u304C\u7F6E\u304D\u63DB\u3048\u3089\u308C\u3066\u3044\u308B\u30C9\u30E9\u30A4\u30D6\u4E0A\u306E\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3092\u30C9\u30E9\u30A4\u30D6\u306B\u7F6E\u304D\u63DB\u3048\u3088\u3046\u3068\u3057\u307E\u3057\u305F\u3002 +error140= \ +\u65E2\u306B\u30D1\u30B9\u304C\u7F6E\u304D\u63DB\u3048\u3089\u308C\u3066\u3044\u308B\u30C9\u30E9\u30A4\u30D6\u4E0A\u306E\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306B\u30C9\u30E9\u30A4\u30D6\u3092\u63A5\u7D9A\u3057\u3088\u3046\u3068\u3057\u307E\u3057\u305F\u3002 +error141= \ +\u65E2\u306B\u63A5\u7D9A\u3055\u308C\u3066\u3044\u308B\u30C9\u30E9\u30A4\u30D6\u4E0A\u306E\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3092\u30C9\u30E9\u30A4\u30D6\u306B\u7F6E\u304D\u63DB\u3048\u3088\u3046\u3068\u3057\u307E\u3057\u305F\u3002 +error142= \ +\u73FE\u5728\u3001JOIN \u307E\u305F\u306F SUBST \u3092\u5B9F\u884C\u3067\u304D\u307E\u305B\u3093\u3002 +error143= \ +\u540C\u3058\u30C9\u30E9\u30A4\u30D6\u4E0A\u306E\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3092\u30C9\u30E9\u30A4\u30D6\u306B\u63A5\u7D9A\u307E\u305F\u306F\u7F6E\u304D\u63DB\u3048\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3002 +error144= \ +\u3053\u306E\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306F\u30EB\u30FC\u30C8 \u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306E\u30B5\u30D6\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002 +error145= \ +\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u304C\u7A7A\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002 +error146= \ +\u6307\u5B9A\u3055\u308C\u305F\u30D1\u30B9\u306F\u7F6E\u304D\u63DB\u3048\u3066\u4F7F\u7528\u4E2D\u3067\u3059\u3002 +error147= \ +\u3053\u306E\u30B3\u30DE\u30F3\u30C9\u3092\u51E6\u7406\u3059\u308B\u306B\u306F\u30EA\u30BD\u30FC\u30B9\u304C\u8DB3\u308A\u307E\u305B\u3093\u3002 +error148= \ +\u6307\u5B9A\u3055\u308C\u305F\u30D1\u30B9\u306F\u73FE\u5728\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002 +error149= \ +\u4EE5\u524D\u306E\u7F6E\u304D\u63DB\u3048\u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u3060\u3063\u305F\u30C9\u30E9\u30A4\u30D6\u4E0A\u306E\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306B\u5BFE\u3057\u3066\u3001\u30C9\u30E9\u30A4\u30D6\u306E\u63A5\u7D9A\u307E\u305F\u306F\u7F6E\u304D\u63DB\u3048\u3092\u3057\u3088\u3046\u3068\u3057\u307E\u3057\u305F\u3002 +error150= \ +CONFIG.SYS \u30D5\u30A1\u30A4\u30EB\u3067\u30B7\u30B9\u30C6\u30E0 \u30C8\u30EC\u30FC\u30B9\u60C5\u5831\u304C\u6307\u5B9A\u3055\u308C\u3066\u3044\u306A\u3044\u304B\u3001\u307E\u305F\u306F\u30C8\u30EC\u30FC\u30B9\u304C\u8A31\u53EF\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002 +error151= \ +DosMuxSemWait \u306B\u5BFE\u3057\u3066\u6307\u5B9A\u3055\u308C\u305F\u30BB\u30DE\u30D5\u30A9 \u30A4\u30D9\u30F3\u30C8\u306E\u6570\u304C\u6B63\u3057\u304F\u3042\u308A\u307E\u305B\u3093\u3002 +error152= \ +DosMuxSemWait \u306F\u5B9F\u884C\u3055\u308C\u307E\u305B\u3093\u3067\u3057\u305F\u3002\u65E2\u306B\u8A2D\u5B9A\u3055\u308C\u3066\u3044\u308B\u30BB\u30DE\u30D5\u30A9\u306E\u6570\u304C\u591A\u3059\u304E\u307E\u3059\u3002 +error153= \ +DosMuxSemWait \u4E00\u89A7\u306F\u9593\u9055\u3063\u3066\u3044\u307E\u3059\u3002 +error154= \ +\u5165\u529B\u3055\u308C\u305F\u30DC\u30EA\u30E5\u30FC\u30E0 \u30E9\u30D9\u30EB\u306F\u3001\u30BF\u30FC\u30B2\u30C3\u30C8 \u30D5\u30A1\u30A4\u30EB \u30B7\u30B9\u30C6\u30E0\u306E\u6587\u5B57\u6570\u5236\u9650\u3092\u8D85\u3048\u3066\u3044\u307E\u3059\u3002 +error155= \ +\u307B\u304B\u306E\u30B9\u30EC\u30C3\u30C9\u3092\u4F5C\u6210\u3067\u304D\u307E\u305B\u3093\u3002 +error156= \ +\u53D7\u3051\u5074\u306E\u30D7\u30ED\u30BB\u30B9\u306F\u30B7\u30B0\u30CA\u30EB\u3092\u62D2\u5426\u3057\u307E\u3057\u305F\u3002 +error157= \ +\u30BB\u30B0\u30E1\u30F3\u30C8\u306F\u65E2\u306B\u7834\u68C4\u3055\u308C\u3066\u3044\u307E\u3059\u3002\u30ED\u30C3\u30AF\u306F\u3067\u304D\u307E\u305B\u3093\u3002 +error158= \ +\u30BB\u30B0\u30E1\u30F3\u30C8\u306E\u30ED\u30C3\u30AF\u306F\u65E2\u306B\u89E3\u9664\u3055\u308C\u3066\u3044\u307E\u3059\u3002 +error159= \ +\u30B9\u30EC\u30C3\u30C9 ID \u306E\u30A2\u30C9\u30EC\u30B9\u304C\u9593\u9055\u3063\u3066\u3044\u307E\u3059\u3002 +error160= \ +\u9593\u9055\u3063\u305F\u5F15\u6570\u304C\u3042\u308A\u307E\u3059\u3002 +error161= \ +\u6307\u5B9A\u3055\u308C\u305F\u30D1\u30B9\u306F\u7121\u52B9\u3067\u3059\u3002 +error162= \ +\u65E2\u306B\u4FDD\u7559\u306B\u3055\u308C\u3066\u3044\u308B\u30B7\u30B0\u30CA\u30EB\u304C\u3042\u308A\u307E\u3059\u3002 +error163= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0xa3) +error164= \ +\u3053\u306E\u30B7\u30B9\u30C6\u30E0\u3067\u306F\u3001\u3053\u308C\u4EE5\u4E0A\u306E\u30B9\u30EC\u30C3\u30C9\u3092\u4F5C\u6210\u3067\u304D\u307E\u305B\u3093\u3002 +error165= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0xa5) +error166= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0xa6) +error167= \ +\u30D5\u30A1\u30A4\u30EB\u306E\u9818\u57DF\u3092\u30ED\u30C3\u30AF\u3067\u304D\u307E\u305B\u3093\u3002 +error168= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0xa8) +error169= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0xa9) +error170= \ +\u8981\u6C42\u3055\u308C\u305F\u30EA\u30BD\u30FC\u30B9\u306F\u4F7F\u7528\u4E2D\u3067\u3059\u3002 +error171= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0xab) +error172= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0xac) +error173= \ +\u30AD\u30E3\u30F3\u30BB\u30EB\u9818\u57DF\u306B\u5BFE\u3059\u308B\u30ED\u30C3\u30AF\u8981\u6C42\u306F\u672A\u89E3\u6C7A\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3067\u3057\u305F\u3002 +error174= \ +\u30D5\u30A1\u30A4\u30EB \u30B7\u30B9\u30C6\u30E0\u306F\u30ED\u30C3\u30AF \u30BF\u30A4\u30D7\u3078\u306E\u30A2\u30C8\u30DF\u30C3\u30AF \u30C1\u30A7\u30F3\u30B8\u3092\u30B5\u30DD\u30FC\u30C8\u3057\u3066\u3044\u307E\u305B\u3093\u3002 +error175= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0xaf) +error176= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0xb0) +error177= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0xb1) +error178= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0xb2) +error179= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0xb3) +error180= \ +\u9593\u9055\u3063\u305F\u30BB\u30B0\u30E1\u30F3\u30C8\u756A\u53F7\u304C\u691C\u51FA\u3055\u308C\u307E\u3057\u305F\u3002 +error181= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0xb5) +error182= \ +\u3053\u306E\u30AA\u30DA\u30EC\u30FC\u30C6\u30A3\u30F3\u30B0 \u30B7\u30B9\u30C6\u30E0\u3067\u306F %1 \u306F\u5B9F\u884C\u3055\u308C\u307E\u305B\u3093\u3002 +error183= \ +\u65E2\u306B\u5B58\u5728\u3059\u308B\u30D5\u30A1\u30A4\u30EB\u3092\u4F5C\u6210\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3002 +error184= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0xb8) +error185= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0xb9) +error186= \ +\u6E21\u3055\u308C\u305F\u30D5\u30E9\u30B0\u306F\u9593\u9055\u3063\u3066\u3044\u307E\u3059\u3002 +error187= \ +\u6307\u5B9A\u3055\u308C\u305F\u30B7\u30B9\u30C6\u30E0 \u30BB\u30DE\u30D5\u30A9\u540D\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3002 +error188= \ +\u3053\u306E\u30AA\u30DA\u30EC\u30FC\u30C6\u30A3\u30F3\u30B0 \u30B7\u30B9\u30C6\u30E0\u3067\u306F %1 \u306F\u5B9F\u884C\u3055\u308C\u307E\u305B\u3093\u3002 +error189= \ +\u3053\u306E\u30AA\u30DA\u30EC\u30FC\u30C6\u30A3\u30F3\u30B0 \u30B7\u30B9\u30C6\u30E0\u3067\u306F %1 \u306F\u5B9F\u884C\u3055\u308C\u307E\u305B\u3093\u3002 +error190= \ +\u3053\u306E\u30AA\u30DA\u30EC\u30FC\u30C6\u30A3\u30F3\u30B0 \u30B7\u30B9\u30C6\u30E0\u3067\u306F %1 \u306F\u5B9F\u884C\u3055\u308C\u307E\u305B\u3093\u3002 +error191= \ +%1 \u306F Win32 \u30E2\u30FC\u30C9\u3067\u5B9F\u884C\u3067\u304D\u307E\u305B\u3093\u3002 +error192= \ +\u3053\u306E\u30AA\u30DA\u30EC\u30FC\u30C6\u30A3\u30F3\u30B0 \u30B7\u30B9\u30C6\u30E0\u3067\u306F %1 \u306F\u5B9F\u884C\u3055\u308C\u307E\u305B\u3093\u3002 +error193= \ +%1 \u306F\u6709\u52B9\u306A Win32 \u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002 +error194= \ +\u3053\u306E\u30AA\u30DA\u30EC\u30FC\u30C6\u30A3\u30F3\u30B0 \u30B7\u30B9\u30C6\u30E0\u3067\u306F %1 \u306F\u5B9F\u884C\u3055\u308C\u307E\u305B\u3093\u3002 +error195= \ +\u3053\u306E\u30AA\u30DA\u30EC\u30FC\u30C6\u30A3\u30F3\u30B0 \u30B7\u30B9\u30C6\u30E0\u3067\u306F %1 \u306F\u5B9F\u884C\u3055\u308C\u307E\u305B\u3093\u3002 +error196= \ +\u3053\u306E\u30AA\u30DA\u30EC\u30FC\u30C6\u30A3\u30F3\u30B0 \u30B7\u30B9\u30C6\u30E0\u3067\u306F\u3053\u306E\u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3 \u30D7\u30ED\u30B0\u30E9\u30E0\u306F\u5B9F\u884C\u3055\u308C\u307E\u305B\u3093\u3002 +error197= \ +\u30AA\u30DA\u30EC\u30FC\u30C6\u30A3\u30F3\u30B0 \u30B7\u30B9\u30C6\u30E0\u306F\u73FE\u5728\u3053\u306E\u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u3092\u5B9F\u884C\u3059\u308B\u3088\u3046\u306B\u69CB\u6210\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002 +error198= \ +\u3053\u306E\u30AA\u30DA\u30EC\u30FC\u30C6\u30A3\u30F3\u30B0 \u30B7\u30B9\u30C6\u30E0\u3067\u306F %1 \u306F\u5B9F\u884C\u3055\u308C\u307E\u305B\u3093\u3002 +error199= \ +\u3053\u306E\u30AA\u30DA\u30EC\u30FC\u30C6\u30A3\u30F3\u30B0 \u30B7\u30B9\u30C6\u30E0\u3067\u306F\u3053\u306E\u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3 \u30D7\u30ED\u30B0\u30E9\u30E0\u306F\u5B9F\u884C\u3055\u308C\u307E\u305B\u3093\u3002 +error200= \ +\u30B3\u30FC\u30C9 \u30BB\u30B0\u30E1\u30F3\u30C8\u306F 64K \u4EE5\u4E0A\u306B\u306F\u3067\u304D\u307E\u305B\u3093\u3002 +error201= \ +\u3053\u306E\u30AA\u30DA\u30EC\u30FC\u30C6\u30A3\u30F3\u30B0 \u30B7\u30B9\u30C6\u30E0\u3067\u306F %1 \u306F\u5B9F\u884C\u3055\u308C\u307E\u305B\u3093\u3002 +error202= \ +\u3053\u306E\u30AA\u30DA\u30EC\u30FC\u30C6\u30A3\u30F3\u30B0 \u30B7\u30B9\u30C6\u30E0\u3067\u306F %1 \u306F\u5B9F\u884C\u3055\u308C\u307E\u305B\u3093\u3002 +error203= \ +\u5165\u529B\u3055\u308C\u305F\u74B0\u5883\u30AA\u30D7\u30B7\u30E7\u30F3\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3067\u3057\u305F\u3002 +error204= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0xcc) +error205= \ +\u30B3\u30DE\u30F3\u30C9 \u30B5\u30D6\u30C4\u30EA\u30FC\u306E\u30D7\u30ED\u30BB\u30B9\u3067\u3001\u30B7\u30B0\u30CA\u30EB \u30CF\u30F3\u30C9\u30E9\u3092\u6301\u3063\u3066\u3044\u308B\u3082\u306E\u304C\u3042\u308A\u307E\u305B\u3093\u3002 +error206= \ +\u30D5\u30A1\u30A4\u30EB\u540D\u307E\u305F\u306F\u62E1\u5F35\u5B50\u304C\u9577\u3059\u304E\u307E\u3059\u3002 +error207= \ +\u30EA\u30F3\u30B0 2 \u30B9\u30BF\u30C3\u30AF\u306F\u4F7F\u7528\u4E2D\u3067\u3059\u3002 +error208= \ +\u30B0\u30ED\u30FC\u30D0\u30EB\u306A\u30D5\u30A1\u30A4\u30EB\u540D\u6587\u5B57\u3001* \u307E\u305F\u306F ? \u304C\u9593\u9055\u3063\u3066\u5165\u529B\u3055\u308C\u305F\u304B\u3001\u6307\u5B9A\u3055\u308C\u305F\u30B0\u30ED\u30FC\u30D0\u30EB\u306A\u30D5\u30A1\u30A4\u30EB\u540D\u6587\u5B57\u304C\u591A\u3059\u304E\u307E\u3059\u3002 +error209= \ +\u30DD\u30B9\u30C8\u3055\u308C\u305F\u30B7\u30B0\u30CA\u30EB\u304C\u9593\u9055\u3063\u3066\u3044\u307E\u3059\u3002 +error210= \ +\u30B7\u30B0\u30CA\u30EB \u30CF\u30F3\u30C9\u30E9\u3092\u8A2D\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002 +error211= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0xd3) +error212= \ +\u30BB\u30B0\u30E1\u30F3\u30C8\u304C\u30ED\u30C3\u30AF\u3055\u308C\u3066\u3044\u307E\u3059\u3002\u518D\u5272\u308A\u5F53\u3066\u3067\u304D\u307E\u305B\u3093\u3002 +error213= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0xd5) +error214= \ +\u3053\u306E\u30D7\u30ED\u30B0\u30E9\u30E0\u307E\u305F\u306F\u30C0\u30A4\u30CA\u30DF\u30C3\u30AF\u30EA\u30F3\u30AF \u30E2\u30B8\u30E5\u30FC\u30EB\u306B\u7D50\u5408\u3055\u308C\u3066\u3044\u308B\u30C0\u30A4\u30CA\u30DF\u30C3\u30AF\u30EA\u30F3\u30AF \u30E2\u30B8\u30E5\u30FC\u30EB\u304C\u591A\u3059\u304E\u307E\u3059\u3002 +error215= \ +LoadModule \u3078\u306E\u547C\u3073\u51FA\u3057\u3092\u5165\u308C\u5B50\u306B\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3002 +error216= \ +\u30A4\u30E1\u30FC\u30B8 \u30D5\u30A1\u30A4\u30EB %1 \u306F\u6709\u52B9\u3067\u3059\u304C\u3001\u3053\u306E\u30B3\u30F3\u30D4\u30E5\u30FC\u30BF\u3067\u306F\u6271\u3048\u306A\u3044\u30D5\u30A1\u30A4\u30EB\u5F62\u5F0F\u3067\u3059\u3002 +error217= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0xd9) +error218= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0xda) +error219= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0xdb) +error220= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0xdc) +error221= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0xdd) +error222= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0xde) +error223= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0xdf) +error224= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0xe0) +error225= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0xe1) +error226= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0xe2) +error227= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0xe3) +error228= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0xe4) +error229= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0xe5) +error230= \ +\u30D1\u30A4\u30D7\u306E\u72B6\u614B\u304C\u7121\u52B9\u3067\u3059\u3002 +error231= \ +\u3059\u3079\u3066\u306E\u30D1\u30A4\u30D7 \u30A4\u30F3\u30B9\u30BF\u30F3\u30B9\u304C\u30D3\u30B8\u30FC\u3067\u3059\u3002 +error232= \ +\u30D1\u30A4\u30D7\u3092\u9589\u3058\u3066\u3044\u307E\u3059\u3002 +error233= \ +\u30D1\u30A4\u30D7\u306E\u4ED6\u7AEF\u306B\u30D7\u30ED\u30BB\u30B9\u304C\u3042\u308A\u307E\u305B\u3093\u3002 +error234= \ +\u30C7\u30FC\u30BF\u304C\u3055\u3089\u306B\u3042\u308A\u307E\u3059\u3002 +error235= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0xeb) +error236= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0xec) +error237= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0xed) +error238= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0xee) +error239= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0xef) +error240= \ +\u30BB\u30C3\u30B7\u30E7\u30F3\u306F\u53D6\u308A\u6D88\u3055\u308C\u307E\u3057\u305F\u3002 +error241= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0xf1) +error242= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0xf2) +error243= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0xf3) +error244= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0xf4) +error245= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0xf5) +error246= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0xf6) +error247= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0xf7) +error248= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0xf8) +error249= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0xf9) +error250= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0xfa) +error251= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0xfb) +error252= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0xfc) +error253= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0xfd) +error254= \ +\u6307\u5B9A\u3055\u308C\u305F\u62E1\u5F35\u5C5E\u6027\u306E\u540D\u524D\u304C\u7121\u52B9\u3067\u3059\u3002 +error255= \ +\u62E1\u5F35\u5C5E\u6027\u304C\u77DB\u76FE\u3057\u3066\u3044\u307E\u3059\u3002 +error256= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x100) +error257= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x101) +error258= \ +\u5F85\u3061\u64CD\u4F5C\u304C\u30BF\u30A4\u30E0\u30A2\u30A6\u30C8\u306B\u306A\u308A\u307E\u3057\u305F\u3002 +error259= \ +\u30C7\u30FC\u30BF\u306F\u3053\u308C\u4EE5\u4E0A\u3042\u308A\u307E\u305B\u3093\u3002 +error260= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x104) +error261= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x105) +error262= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x106) +error263= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x107) +error264= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x108) +error265= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x109) +error266= \ +\u30B3\u30D4\u30FC\u95A2\u6570\u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002 +error267= \ +\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u540D\u304C\u7121\u52B9\u3067\u3059\u3002 +error268= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x10c) +error269= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x10d) +error270= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x10e) +error271= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x10f) +error272= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x110) +error273= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x111) +error274= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x112) +error267= \ +\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u540D\u304C\u7121\u52B9\u3067\u3059\u3002 +error275= \ +\u62E1\u5F35\u5C5E\u6027\u304C\u30D0\u30C3\u30D5\u30A1\u306B\u304A\u3055\u307E\u308A\u307E\u305B\u3093\u3067\u3057\u305F\u3002 +error276= \ +\u30DE\u30A6\u30F3\u30C8\u3055\u308C\u305F\u30D5\u30A1\u30A4\u30EB \u30B7\u30B9\u30C6\u30E0\u306E\u62E1\u5F35\u5C5E\u6027\u30D5\u30A1\u30A4\u30EB\u304C\u58CA\u308C\u3066\u3044\u307E\u3059\u3002 +error277= \ +\u62E1\u5F35\u5C5E\u6027\u30C6\u30FC\u30D6\u30EB \u30D5\u30A1\u30A4\u30EB\u304C\u3044\u3063\u3071\u3044\u3067\u3059\u3002 +error278= \ +\u6307\u5B9A\u3055\u308C\u305F\u62E1\u5F35\u5C5E\u6027\u30CF\u30F3\u30C9\u30EB\u304C\u7121\u52B9\u3067\u3059\u3002 +error279= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x117) +error280= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x118) +error281= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x119) +error282= \ +\u30DE\u30A6\u30F3\u30C8\u3055\u308C\u305F\u30D5\u30A1\u30A4\u30EB \u30B7\u30B9\u30C6\u30E0\u306F\u62E1\u5F35\u5C5E\u6027\u3092\u30B5\u30DD\u30FC\u30C8\u3057\u3066\u3044\u307E\u305B\u3093\u3002 +error283= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x11b) +error284= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x11c) +error285= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x11d) +error286= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x11e) +error287= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x11f) +error288= \ +\u547C\u3073\u51FA\u3057\u5074\u304C\u6240\u6709\u3057\u3066\u3044\u306A\u3044\u30DF\u30E5\u30FC\u30C6\u30C3\u30AF\u30B9\u3092\u89E3\u653E\u3057\u3088\u3046\u3068\u3057\u3066\u3044\u307E\u3059\u3002 +error289= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x121) +error290= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x122) +error291= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x123) +error292= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x124) +error293= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x125) +error294= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x126) +error295= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x127) +error296= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x128) +error297= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x129) +error298= \ +1 \u3064\u306E\u30BB\u30DE\u30D5\u30A9\u306B\u5BFE\u3059\u308B\u30DD\u30B9\u30C8\u304C\u591A\u3059\u304E\u307E\u3059\u3002 +error299= \ +ReadProcessMemory \u8981\u6C42\u307E\u305F\u306F WriteProcessMemory \u8981\u6C42\u306E\u4E00\u90E8\u3060\u3051\u3092\u5B8C\u4E86\u3057\u307E\u3057\u305F\u3002 +error300= \ +Oplock \u8981\u6C42\u306F\u62D2\u5426\u3055\u308C\u307E\u3057\u305F\u3002 +error301= \ +\u30B7\u30B9\u30C6\u30E0\u3067\u7121\u52B9\u306A oplock \u901A\u77E5\u3092\u53D7\u4FE1\u3057\u307E\u3057\u305F\u3002 +error302= \ +\u3053\u306E\u30DC\u30EA\u30E5\u30FC\u30E0\u306F\u65AD\u7247\u5316\u3055\u308C\u3059\u304E\u3066\u3044\u308B\u305F\u3081\u3001\u3053\u306E\u64CD\u4F5C\u3092\u5B8C\u4E86\u3067\u304D\u307E\u305B\u3093\u3002 +error303= \ +\u3053\u306E\u30D5\u30A1\u30A4\u30EB\u306F\u524A\u9664\u4E2D\u306E\u305F\u3081\u958B\u304F\u3053\u3068\u304C\u3067\u304D\u307E\u305B\u3093\u3002 +error304= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x130) +error305= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x131) +error306= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x132) +error307= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x133) +error308= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x134) +error309= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x135) +error310= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x136) +error311= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x137) +error312= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x138) +error313= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x139) +error314= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x13a) +error315= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x13b) +error316= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x13c) +error317= \ +\u30E1\u30C3\u30BB\u30FC\u30B8\u756A\u53F7 0x%1 \u306E\u30E1\u30C3\u30BB\u30FC\u30B8\u6587\u304C %2 \u306E\u30E1\u30C3\u30BB\u30FC\u30B8 \u30D5\u30A1\u30A4\u30EB\u306B\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3002 +error318= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x13e) +error319= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x13f) +error320= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x140) +error321= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x141) +error322= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x142) +error323= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x143) +error324= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x144) +error325= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x145) +error326= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x146) +error327= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x147) +error328= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x148) +error329= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x149) +error330= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x14a) +error331= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x14b) +error332= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x14c) +error333= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x14d) +error334= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x14e) +error335= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x14f) +error336= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x150) +error337= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x151) +error338= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x152) +error339= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x153) +error340= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x154) +error341= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x155) +error342= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x156) +error343= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x157) +error344= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x158) +error345= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x159) +error346= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x15a) +error347= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x15b) +error348= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x15c) +error349= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x15d) +error350= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x15e) +error351= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x15f) +error352= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x160) +error353= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x161) +error354= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x162) +error355= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x163) +error356= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x164) +error357= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x165) +error358= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x166) +error359= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x167) +error360= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x168) +error361= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x169) +error362= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x16a) +error363= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x16b) +error364= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x16c) +error365= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x16d) +error366= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x16e) +error367= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x16f) +error368= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x170) +error369= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x171) +error370= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x172) +error371= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x173) +error372= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x174) +error373= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x175) +error374= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x176) +error375= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x177) +error376= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x178) +error377= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x179) +error378= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x17a) +error379= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x17b) +error380= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x17c) +error381= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x17d) +error382= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x17e) +error383= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x17f) +error384= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x180) +error385= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x181) +error386= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x182) +error387= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x183) +error388= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x184) +error389= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x185) +error390= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x186) +error391= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x187) +error392= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x188) +error393= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x189) +error394= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x18a) +error395= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x18b) +error396= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x18c) +error397= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x18d) +error398= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x18e) +error399= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x18f) +error400= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x190) +error401= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x191) +error402= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x192) +error403= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x193) +error404= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x194) +error405= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x195) +error406= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x196) +error407= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x197) +error408= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x198) +error409= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x199) +error410= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x19a) +error411= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x19b) +error412= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x19c) +error413= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x19d) +error414= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x19e) +error415= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x19f) +error416= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x1a0) +error417= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x1a1) +error418= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x1a2) +error419= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x1a3) +error420= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x1a4) +error421= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x1a5) +error422= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x1a6) +error423= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x1a7) +error424= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x1a8) +error425= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x1a9) +error426= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x1aa) +error427= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x1ab) +error428= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x1ac) +error429= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x1ad) +error430= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x1ae) +error431= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x1af) +error432= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x1b0) +error433= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x1b1) +error434= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x1b2) +error435= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x1b3) +error436= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x1b4) +error437= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x1b5) +error438= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x1b6) +error439= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x1b7) +error440= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x1b8) +error441= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x1b9) +error442= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x1ba) +error443= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x1bb) +error444= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x1bc) +error445= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x1bd) +error446= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x1be) +error447= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x1bf) +error448= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x1c0) +error449= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x1c1) +error450= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x1c2) +error451= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x1c3) +error452= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x1c4) +error453= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x1c5) +error454= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x1c6) +error455= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x1c7) +error456= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x1c8) +error457= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x1c9) +error458= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x1ca) +error459= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x1cb) +error460= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x1cc) +error461= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x1cd) +error462= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x1ce) +error463= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x1cf) +error464= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x1d0) +error465= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x1d1) +error466= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x1d2) +error467= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x1d3) +error468= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x1d4) +error469= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x1d5) +error470= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x1d6) +error471= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x1d7) +error472= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x1d8) +error473= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x1d9) +error474= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x1da) +error475= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x1db) +error476= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x1dc) +error477= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x1dd) +error478= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x1de) +error479= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x1df) +error480= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x1e0) +error481= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x1e1) +error482= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x1e2) +error483= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x1e3) +error484= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x1e4) +error485= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x1e5) +error486= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x1e6) +error487= \ +\u7121\u52B9\u306A\u30A2\u30C9\u30EC\u30B9\u306B\u30A2\u30AF\u30BB\u30B9\u3057\u3088\u3046\u3068\u3057\u3066\u3044\u307E\u3059\u3002 +error488= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x1e8) +error489= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x1e9) +error490= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x1ea) +error491= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x1eb) +error492= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x1ec) +error493= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x1ed) +error494= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x1ee) +error495= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x1ef) +error496= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x1f0) +error497= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x1f1) +error498= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x1f2) +error499= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x1f3) +error500= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x1f4) +error501= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x1f5) +error502= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x1f6) +error503= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x1f7) +error504= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x1f8) +error505= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x1f9) +error506= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x1fa) +error507= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x1fb) +error508= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x1fc) +error509= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x1fd) +error510= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x1fe) +error511= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x1ff) +error512= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x200) +error513= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x201) +error514= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x202) +error515= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x203) +error516= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x204) +error517= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x205) +error518= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x206) +error519= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x207) +error520= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x208) +error521= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x209) +error522= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x20a) +error523= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x20b) +error524= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x20c) +error525= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x20d) +error526= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x20e) +error527= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x20f) +error528= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x210) +error529= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x211) +error530= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x212) +error531= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x213) +error532= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x214) +error533= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x215) +error534= \ +\u7B97\u8853\u7D50\u679C\u304C 32 \u30D3\u30C3\u30C8\u3092\u8D85\u3048\u3066\u3044\u307E\u3059\u3002 +error535= \ +\u30D1\u30A4\u30D7\u306E\u4ED6\u7AEF\u306B\u30D7\u30ED\u30BB\u30B9\u304C\u3042\u308A\u307E\u3059\u3002 +error536= \ +\u30D7\u30ED\u30BB\u30B9\u304C\u30D1\u30A4\u30D7\u306E\u4ED6\u7AEF\u3092\u958B\u304F\u306E\u3092\u5F85\u3063\u3066\u3044\u307E\u3059\u3002 +error537= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x219) +error538= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x21a) +error539= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x21b) +error540= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x21c) +error541= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x21d) +error542= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x21e) +error543= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x21f) +error544= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x220) +error545= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x221) +error546= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x222) +error547= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x223) +error548= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x224) +error549= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x225) +error550= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x226) +error551= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x227) +error552= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x228) +error553= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x229) +error554= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x22a) +error555= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x22b) +error556= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x22c) +error557= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x22d) +error558= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x22e) +error559= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x22f) +error560= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x230) +error561= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x231) +error562= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x232) +error563= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x233) +error564= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x234) +error565= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x235) +error566= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x236) +error567= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x237) +error568= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x238) +error569= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x239) +error570= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x23a) +error571= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x23b) +error572= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x23c) +error573= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x23d) +error574= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x23e) +error575= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x23f) +error576= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x240) +error577= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x241) +error578= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x242) +error579= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x243) +error580= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x244) +error581= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x245) +error582= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x246) +error583= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x247) +error584= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x248) +error585= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x249) +error586= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x24a) +error587= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x24b) +error588= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x24c) +error589= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x24d) +error590= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x24e) +error591= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x24f) +error592= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x250) +error593= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x251) +error594= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x252) +error595= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x253) +error596= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x254) +error597= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x255) +error598= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x256) +error599= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x257) +error600= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x258) +error601= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x259) +error602= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x25a) +error603= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x25b) +error604= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x25c) +error605= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x25d) +error606= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x25e) +error607= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x25f) +error608= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x260) +error609= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x261) +error610= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x262) +error611= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x263) +error612= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x264) +error613= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x265) +error614= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x266) +error615= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x267) +error616= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x268) +error617= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x269) +error618= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x26a) +error619= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x26b) +error620= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x26c) +error621= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x26d) +error622= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x26e) +error623= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x26f) +error624= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x270) +error625= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x271) +error626= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x272) +error627= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x273) +error628= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x274) +error629= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x275) +error630= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x276) +error631= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x277) +error632= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x278) +error633= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x279) +error634= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x27a) +error635= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x27b) +error636= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x27c) +error637= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x27d) +error638= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x27e) +error639= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x27f) +error640= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x280) +error641= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x281) +error642= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x282) +error643= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x283) +error644= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x284) +error645= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x285) +error646= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x286) +error647= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x287) +error648= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x288) +error649= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x289) +error650= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x28a) +error651= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x28b) +error652= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x28c) +error653= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x28d) +error654= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x28e) +error655= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x28f) +error656= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x290) +error657= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x291) +error658= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x292) +error659= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x293) +error660= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x294) +error661= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x295) +error662= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x296) +error663= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x297) +error664= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x298) +error665= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x299) +error666= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x29a) +error667= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x29b) +error668= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x29c) +error669= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x29d) +error670= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x29e) +error671= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x29f) +error672= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2a0) +error673= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2a1) +error674= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2a2) +error675= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2a3) +error676= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2a4) +error677= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2a5) +error678= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2a6) +error679= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2a7) +error680= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2a8) +error681= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2a9) +error682= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2aa) +error683= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2ab) +error684= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2ac) +error685= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2ad) +error686= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2ae) +error687= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2af) +error688= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2b0) +error689= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2b1) +error690= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2b2) +error691= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2b3) +error692= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2b4) +error693= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2b5) +error694= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2b6) +error695= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2b7) +error696= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2b8) +error697= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2b9) +error698= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2ba) +error699= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2bb) +error700= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2bc) +error701= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2bd) +error702= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2be) +error703= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2bf) +error704= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2c0) +error705= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2c1) +error706= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2c2) +error707= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2c3) +error708= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2c4) +error709= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2c5) +error710= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2c6) +error711= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2c7) +error712= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2c8) +error713= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2c9) +error714= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2ca) +error715= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2cb) +error716= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2cc) +error717= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2cd) +error718= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2ce) +error719= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2cf) +error720= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2d0) +error721= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2d1) +error722= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2d2) +error723= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2d3) +error724= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2d4) +error725= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2d5) +error726= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2d6) +error727= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2d7) +error728= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2d8) +error729= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2d9) +error730= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2da) +error731= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2db) +error732= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2dc) +error733= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2dd) +error734= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2de) +error735= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2df) +error736= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2e0) +error737= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2e1) +error738= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2e2) +error739= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2e3) +error740= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2e4) +error741= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2e5) +error742= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2e6) +error743= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2e7) +error744= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2e8) +error745= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2e9) +error746= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2ea) +error747= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2eb) +error748= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2ec) +error749= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2ed) +error750= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2ee) +error751= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2ef) +error752= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2f0) +error753= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2f1) +error754= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2f2) +error755= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2f3) +error756= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2f4) +error757= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2f5) +error758= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2f6) +error759= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2f7) +error760= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2f8) +error761= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2f9) +error762= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2fa) +error763= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2fb) +error764= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2fc) +error765= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2fd) +error766= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2fe) +error767= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x2ff) +error768= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x300) +error769= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x301) +error770= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x302) +error771= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x303) +error772= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x304) +error773= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x305) +error774= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x306) +error775= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x307) +error776= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x308) +error777= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x309) +error778= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x30a) +error779= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x30b) +error780= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x30c) +error781= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x30d) +error782= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x30e) +error783= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x30f) +error784= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x310) +error785= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x311) +error786= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x312) +error787= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x313) +error788= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x314) +error789= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x315) +error790= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x316) +error791= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x317) +error792= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x318) +error793= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x319) +error794= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x31a) +error795= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x31b) +error796= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x31c) +error797= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x31d) +error798= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x31e) +error799= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x31f) +error800= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x320) +error801= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x321) +error802= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x322) +error803= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x323) +error804= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x324) +error805= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x325) +error806= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x326) +error807= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x327) +error808= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x328) +error809= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x329) +error810= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x32a) +error811= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x32b) +error812= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x32c) +error813= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x32d) +error814= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x32e) +error815= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x32f) +error816= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x330) +error817= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x331) +error818= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x332) +error819= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x333) +error820= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x334) +error821= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x335) +error822= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x336) +error823= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x337) +error824= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x338) +error825= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x339) +error826= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x33a) +error827= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x33b) +error828= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x33c) +error829= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x33d) +error830= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x33e) +error831= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x33f) +error832= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x340) +error833= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x341) +error834= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x342) +error835= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x343) +error836= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x344) +error837= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x345) +error838= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x346) +error839= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x347) +error840= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x348) +error841= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x349) +error842= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x34a) +error843= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x34b) +error844= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x34c) +error845= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x34d) +error846= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x34e) +error847= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x34f) +error848= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x350) +error849= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x351) +error850= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x352) +error851= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x353) +error852= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x354) +error853= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x355) +error854= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x356) +error855= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x357) +error856= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x358) +error857= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x359) +error858= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x35a) +error859= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x35b) +error860= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x35c) +error861= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x35d) +error862= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x35e) +error863= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x35f) +error864= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x360) +error865= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x361) +error866= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x362) +error867= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x363) +error868= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x364) +error869= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x365) +error870= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x366) +error871= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x367) +error872= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x368) +error873= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x369) +error874= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x36a) +error875= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x36b) +error876= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x36c) +error877= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x36d) +error878= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x36e) +error879= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x36f) +error880= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x370) +error881= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x371) +error882= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x372) +error883= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x373) +error884= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x374) +error885= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x375) +error886= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x376) +error887= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x377) +error888= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x378) +error889= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x379) +error890= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x37a) +error891= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x37b) +error892= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x37c) +error893= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x37d) +error894= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x37e) +error895= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x37f) +error896= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x380) +error897= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x381) +error898= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x382) +error899= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x383) +error900= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x384) +error901= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x385) +error902= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x386) +error903= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x387) +error904= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x388) +error905= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x389) +error906= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x38a) +error907= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x38b) +error908= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x38c) +error909= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x38d) +error910= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x38e) +error911= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x38f) +error912= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x390) +error913= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x391) +error914= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x392) +error915= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x393) +error916= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x394) +error917= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x395) +error918= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x396) +error919= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x397) +error920= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x398) +error921= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x399) +error922= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x39a) +error923= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x39b) +error924= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x39c) +error925= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x39d) +error926= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x39e) +error927= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x39f) +error928= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x3a0) +error929= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x3a1) +error930= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x3a2) +error931= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x3a3) +error932= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x3a4) +error933= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x3a5) +error934= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x3a6) +error935= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x3a7) +error936= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x3a8) +error937= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x3a9) +error938= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x3aa) +error939= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x3ab) +error940= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x3ac) +error941= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x3ad) +error942= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x3ae) +error943= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x3af) +error944= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x3b0) +error945= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x3b1) +error946= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x3b2) +error947= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x3b3) +error948= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x3b4) +error949= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x3b5) +error950= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x3b6) +error951= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x3b7) +error952= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x3b8) +error953= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x3b9) +error954= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x3ba) +error955= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x3bb) +error956= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x3bc) +error957= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x3bd) +error958= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x3be) +error959= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x3bf) +error960= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x3c0) +error961= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x3c1) +error962= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x3c2) +error963= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x3c3) +error964= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x3c4) +error965= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x3c5) +error966= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x3c6) +error967= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x3c7) +error968= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x3c8) +error969= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x3c9) +error970= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x3ca) +error971= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x3cb) +error972= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x3cc) +error973= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x3cd) +error974= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x3ce) +error975= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x3cf) +error976= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x3d0) +error977= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x3d1) +error978= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x3d2) +error979= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x3d3) +error980= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x3d4) +error981= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x3d5) +error982= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x3d6) +error983= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x3d7) +error984= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x3d8) +error985= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x3d9) +error986= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x3da) +error987= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x3db) +error988= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x3dc) +error989= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x3dd) +error990= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x3de) +error991= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x3df) +error992= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x3e0) +error993= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x3e1) +error994= \ +\u62E1\u5F35\u5C5E\u6027\u3078\u306E\u30A2\u30AF\u30BB\u30B9\u304C\u62D2\u5426\u3055\u308C\u307E\u3057\u305F\u3002 +error995= \ +\u30B9\u30EC\u30C3\u30C9\u306E\u7D42\u4E86\u307E\u305F\u306F\u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u306E\u8981\u6C42\u306B\u3088\u3063\u3066\u3001I/O \u51E6\u7406\u306F\u4E2D\u6B62\u3055\u308C\u307E\u3057\u305F\u3002 +error996= \ +\u91CD\u8907\u3057\u305F I/O \u30A4\u30D9\u30F3\u30C8\u306F\u30B7\u30B0\u30CA\u30EB\u3055\u308C\u305F\u72B6\u614B\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002 +error997= \ +\u91CD\u8907\u3057\u305F I/O \u51E6\u7406\u3092\u5B9F\u884C\u3057\u3066\u3044\u307E\u3059\u3002 +error998= \ +\u30E1\u30E2\u30EA \u30ED\u30B1\u30FC\u30B7\u30E7\u30F3\u3078\u306E\u30A2\u30AF\u30BB\u30B9\u304C\u7121\u52B9\u3067\u3059\u3002 +error999= \ +\u30A4\u30F3\u30DA\u30FC\u30B8\u64CD\u4F5C\u306E\u5B9F\u884C\u30A8\u30E9\u30FC\u3002 +error1000= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x3e8) +error1001= \ +\u518D\u5E30\u304C\u6DF1\u3059\u304E\u307E\u3059\u3002\u30B9\u30BF\u30C3\u30AF\u304C\u30AA\u30FC\u30D0\u30FC\u30D5\u30ED\u30FC\u3057\u307E\u3057\u305F\u3002 +error1002= \ +\u30A6\u30A3\u30F3\u30C9\u30A6\u304C\u9001\u4FE1\u3055\u308C\u305F\u30E1\u30C3\u30BB\u30FC\u30B8\u306B\u5F93\u3063\u3066\u52D5\u4F5C\u3067\u304D\u307E\u305B\u3093\u3002 +error1003= \ +\u3053\u306E\u95A2\u6570\u3092\u5B8C\u4E86\u3067\u304D\u307E\u305B\u3093\u3002 +error1004= \ +\u30D5\u30E9\u30B0\u304C\u7121\u52B9\u3067\u3059\u3002 +error1005= \ +\u3053\u306E\u30DC\u30EA\u30E5\u30FC\u30E0\u306F\u8A8D\u8B58\u53EF\u80FD\u306A\u30D5\u30A1\u30A4\u30EB \u30B7\u30B9\u30C6\u30E0\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002\u5FC5\u8981\u306A\u30D5\u30A1\u30A4\u30EB \u30B7\u30B9\u30C6\u30E0 \u30C9\u30E9\u30A4\u30D0\u304C\u3059\u3079\u3066\u8AAD\u307F\u8FBC\u307E\u308C\u3066\u3044\u308B\u304B\u3001\ +\u30DC\u30EA\u30E5\u30FC\u30E0\u304C\u58CA\u308C\u3066\u3044\u306A\u3044\u304B\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002 +error1006= \ +\u30D5\u30A1\u30A4\u30EB\u3092\u683C\u7D0D\u3057\u3066\u3044\u308B\u30DC\u30EA\u30E5\u30FC\u30E0\u304C\u5916\u90E8\u7684\u306B\u5909\u66F4\u3055\u308C\u305F\u305F\u3081\u3001\u958B\u304B\u308C\u3066\u3044\u308B\u30D5\u30A1\u30A4\u30EB\u304C\u7121\u52B9\u306B\u306A\u308A\u307E\u3057\u305F\u3002 +error1007= \ +\u8981\u6C42\u3055\u308C\u305F\u64CD\u4F5C\u306F\u30D5\u30EB\u30B9\u30AF\u30EA\u30FC\u30F3 \u30E2\u30FC\u30C9\u3067\u306F\u5B9F\u884C\u3067\u304D\u307E\u305B\u3093\u3002 +error1008= \ +\u5B58\u5728\u3057\u306A\u3044\u30C8\u30FC\u30AF\u30F3\u3092\u53C2\u7167\u3057\u3088\u3046\u3068\u3057\u307E\u3057\u305F\u3002 +error1009= \ +\u69CB\u6210\u30EC\u30B8\u30B9\u30C8\u30EA \u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u304C\u58CA\u308C\u3066\u3044\u307E\u3059\u3002 +error1010= \ +\u69CB\u6210\u30EC\u30B8\u30B9\u30C8\u30EA \u30AD\u30FC\u304C\u7121\u52B9\u3067\u3059\u3002 +error1011= \ +\u69CB\u6210\u30EC\u30B8\u30B9\u30C8\u30EA \u30AD\u30FC\u3092\u958B\u3051\u307E\u305B\u3093\u3002 +error1012= \ +\u69CB\u6210\u30EC\u30B8\u30B9\u30C8\u30EA \u30AD\u30FC\u3092\u8AAD\u307F\u53D6\u308C\u307E\u305B\u3093\u3002 +error1013= \ +\u69CB\u6210\u30EC\u30B8\u30B9\u30C8\u30EA \u30AD\u30FC\u306B\u66F8\u304D\u8FBC\u3081\u307E\u305B\u3093\u3002 +error1014= \ +\u30ED\u30B0\u307E\u305F\u306F\u4EE3\u66FF\u30B3\u30D4\u30FC\u3092\u4F7F\u7528\u3057\u3066\u3001\u30EC\u30B8\u30B9\u30C8\u30EA \u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u5185\u306E\u30D5\u30A1\u30A4\u30EB\u306E 1 \u3064\u3092\u56DE\u5FA9\u3057\u306A\u3051\u308C\u3070\u306A\u308A\u307E\u305B\u3093\u3067\u3057\u305F\u3002\ +\u30D5\u30A1\u30A4\u30EB\u306F\u6B63\u3057\u304F\u56DE\u5FA9\u3055\u308C\u307E\u3057\u305F\u3002 +error1015= \ +\u30EC\u30B8\u30B9\u30C8\u30EA\u304C\u58CA\u308C\u3066\u3044\u307E\u3059\u3002\u30EC\u30B8\u30B9\u30C8\u30EA \u30C7\u30FC\u30BF\u3092\u683C\u7D0D\u3057\u3066\u3044\u308B\u30D5\u30A1\u30A4\u30EB\u306E 1 \u3064\u306E\u69CB\u9020\u304C\u58CA\u308C\u3066\u3044\u308B\u304B\u3001\u30D5\u30A1\u30A4\u30EB\u306E\u30B7\u30B9\u30C6\u30E0 \u30E1\u30E2\u30EA \u30A4\u30E1\u30FC\u30B8\u304C\u58CA\u308C\u3066\u3044\u307E\u3059\u3002\ +\u307E\u305F\u306F\u3001\u4EE3\u66FF\u30B3\u30D4\u30FC\u304B\u30ED\u30B0\u304C\u5B58\u5728\u3057\u306A\u3044\u3001\u3042\u308B\u3044\u306F\u58CA\u308C\u3066\u3044\u308B\u305F\u3081\u306B\u3001\u30D5\u30A1\u30A4\u30EB\u3092\u56DE\u5FA9\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002 +error1016= \ +\u30EC\u30B8\u30B9\u30C8\u30EA\u304C\u958B\u59CB\u3057\u305F I/O \u64CD\u4F5C\u3067\u56DE\u5FA9\u4E0D\u53EF\u80FD\u306A\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002\ +\u30EC\u30B8\u30B9\u30C8\u30EA\u306E\u30B7\u30B9\u30C6\u30E0 \u30A4\u30E1\u30FC\u30B8\u3092\u767B\u9332\u3057\u3066\u3044\u308B\u30D5\u30A1\u30A4\u30EB\u306E 1 \u3064\u3092\u30EC\u30B8\u30B9\u30C8\u30EA\u304C\u8AAD\u307F\u53D6\u308B\u3053\u3068\u304C\u3067\u304D\u306A\u3044\u304B\u3001\u66F8\u304D\u8FBC\u3080\u3053\u3068\u304C\u3067\u304D\u306A\u3044\u304B\u3001\u307E\u305F\u306F\u6D88\u53BB\u3067\u304D\u307E\u305B\u3093\u3002 +error1017= \ +\u30EC\u30B8\u30B9\u30C8\u30EA\u3078\u306E\u30D5\u30A1\u30A4\u30EB\u306E\u8AAD\u307F\u8FBC\u307F\u307E\u305F\u306F\u5FA9\u5143\u3092\u5B9F\u884C\u3057\u3088\u3046\u3068\u3057\u307E\u3057\u305F\u304C\u3001\u6307\u5B9A\u3055\u308C\u305F\u30D5\u30A1\u30A4\u30EB\u306F\u30EC\u30B8\u30B9\u30C8\u30EA \u30D5\u30A1\u30A4\u30EB\u306E\u5F62\u5F0F\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002 +error1018= \ +\u524A\u9664\u306E\u5BFE\u8C61\u3068\u3057\u3066\u30DE\u30FC\u30AF\u3055\u308C\u3066\u3044\u308B\u30EC\u30B8\u30B9\u30C8\u30EA \u30AD\u30FC\u306B\u5BFE\u3057\u3066\u4E0D\u6B63\u64CD\u4F5C\u3092\u5B9F\u884C\u3057\u3088\u3046\u3068\u3057\u307E\u3057\u305F\u3002 +error1019= \ +\u8981\u6C42\u3055\u308C\u305F\u7A7A\u9593\u3092\u30EC\u30B8\u30B9\u30C8\u30EA \u30ED\u30B0\u306B\u5272\u308A\u5F53\u3066\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002 +error1020= \ +\u65E2\u306B\u30B5\u30D6\u30AD\u30FC\u307E\u305F\u306F\u5024\u304C\u5272\u308A\u5F53\u3066\u3089\u308C\u3066\u3044\u308B\u30EC\u30B8\u30B9\u30C8\u30EA \u30AD\u30FC\u306B\u30B7\u30F3\u30DC\u30EA\u30C3\u30AF \u30EA\u30F3\u30AF\u3092\u4F5C\u6210\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3002 +error1021= \ +\u63EE\u767A\u6027\u89AA\u30AD\u30FC\u306E\u4E0B\u306B\u5B89\u5B9A\u3057\u305F\u30B5\u30D6\u30AD\u30FC\u3092\u4F5C\u6210\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3002 +error1022= \ +\u901A\u77E5\u5909\u66F4\u8981\u6C42\u304C\u7D42\u4E86\u3057\u3088\u3046\u3068\u3057\u3066\u3044\u307E\u3059\u304C\u3001\u60C5\u5831\u306F\u547C\u3073\u51FA\u3057\u5074\u306E\u30D0\u30C3\u30D5\u30A1\u306B\u8FD4\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002\ +\u547C\u3073\u51FA\u3057\u5074\u306F\u3001\u5909\u66F4\u7D50\u679C\u3092\u691C\u7D22\u3059\u308B\u305F\u3081\u306B\u30D5\u30A1\u30A4\u30EB\u3092\u5217\u6319\u3057\u306A\u3051\u308C\u3070\u306A\u308A\u307E\u305B\u3093\u3002 +error1023= \ +\u672A\u77E5\u306E\u30A8\u30E9\u30FC (0x3ff) diff --git a/core/src/main/resources/lib/form/advanced_da.properties b/core/src/main/resources/lib/form/advanced_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..35ceb717db71dc28e5fa65d59b3be72c42032dea --- /dev/null +++ b/core/src/main/resources/lib/form/advanced_da.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Advanced=Avanceret diff --git a/core/src/main/resources/lib/form/advanced_de.properties b/core/src/main/resources/lib/form/advanced_de.properties index d684ccccaf109c3357bdc12cc42d9b844b274196..1a8514d4fa4908a40d4af53fe486843d744b3a1d 100644 --- a/core/src/main/resources/lib/form/advanced_de.properties +++ b/core/src/main/resources/lib/form/advanced_de.properties @@ -20,4 +20,4 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Advanced=Erweitert... +Advanced=Erweitert diff --git a/core/src/main/resources/lib/form/advanced_es.properties b/core/src/main/resources/lib/form/advanced_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..3356d0df76df35d36f5f07dbdef5c45c22f28f28 --- /dev/null +++ b/core/src/main/resources/lib/form/advanced_es.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Advanced=Avanzado diff --git a/core/src/main/resources/lib/form/advanced_it.properties b/core/src/main/resources/lib/form/advanced_it.properties new file mode 100644 index 0000000000000000000000000000000000000000..83c6f8114b51be1eed5d118f04adecb1835cfd19 --- /dev/null +++ b/core/src/main/resources/lib/form/advanced_it.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Advanced=Avanzate diff --git a/core/src/main/resources/lib/form/advanced_sv_SE.properties b/core/src/main/resources/lib/form/advanced_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..07cf74df0433b719feb6d4aba31508b4e32dfcd4 --- /dev/null +++ b/core/src/main/resources/lib/form/advanced_sv_SE.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Advanced=Avancerat diff --git a/core/src/main/resources/lib/form/booleanRadio.jelly b/core/src/main/resources/lib/form/booleanRadio.jelly new file mode 100644 index 0000000000000000000000000000000000000000..7fe168cdb25de0ba96dbbcb9cb334b33d3eee897 --- /dev/null +++ b/core/src/main/resources/lib/form/booleanRadio.jelly @@ -0,0 +1,46 @@ + + + + + Binds a boolean field to two radio buttons that say Yes/No OK/Cancel Top/Bottom. + + + Databinding field. + + + Text to be displayed for the 'true' value. Defaults to 'Yes'. + + + Text to be displayed for the 'false' value. Defaults to 'No'. + + + + + + + + + \ No newline at end of file diff --git a/core/src/main/resources/lib/form/booleanRadio_da.properties b/core/src/main/resources/lib/form/booleanRadio_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..a85a0846d9b5c02d18a189a343408e8be22fb073 --- /dev/null +++ b/core/src/main/resources/lib/form/booleanRadio_da.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Yes=Ja +No=Nej diff --git a/core/src/main/resources/lib/form/booleanRadio_es.properties b/core/src/main/resources/lib/form/booleanRadio_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..f640084696f8f10da96582959d637066b2bec56c --- /dev/null +++ b/core/src/main/resources/lib/form/booleanRadio_es.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Yes=Sí +No=No diff --git a/core/src/main/resources/lib/form/booleanRadio_ja.properties b/core/src/main/resources/lib/form/booleanRadio_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..3cf88137dc38dcda71bbad91756ab85293331d8c --- /dev/null +++ b/core/src/main/resources/lib/form/booleanRadio_ja.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +Yes=\u306F\u3044 +No=\u3044\u3044\u3048 \ No newline at end of file diff --git a/core/src/main/resources/lib/form/booleanRadio_pt_BR.properties b/core/src/main/resources/lib/form/booleanRadio_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..ad2ab9d580f59ed2213b76456c59b2b725c46b0b --- /dev/null +++ b/core/src/main/resources/lib/form/booleanRadio_pt_BR.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Yes=Sim +No= diff --git a/core/src/main/resources/lib/form/checkbox.jelly b/core/src/main/resources/lib/form/checkbox.jelly index e8f95a7a4ca54e633a975e06aa098df230a34aed..5e9ba3894b381111d96fbd73aed72a3fa232fb44 100644 --- a/core/src/main/resources/lib/form/checkbox.jelly +++ b/core/src/main/resources/lib/form/checkbox.jelly @@ -29,6 +29,12 @@ THE SOFTWARE. + + Normally, the submitted JSON will be boolean indicating whether the checkbox was checked or not. + This is sometimes inconvenient if you have a UI that lets user select a subset of a set. + If this attribute is present, the submitted JSON will have this as a string value if the checkbox is checked, + and none otherwise, making the subset selection easier. + The default value of the check box, in case both @checked and @instance are null. If this attribute is unspecified or null, it defaults to unchecked, otherwise checked. @@ -36,6 +42,7 @@ THE SOFTWARE. + Used for databinding. TBD. @@ -45,6 +52,6 @@ THE SOFTWARE. name="${attrs.name?:'_.'+attrs.field}" value="${attrs.value}" onclick="${attrs.onclick}" id="${attrs.id}" class="${attrs.negative!=null ? 'negative' : null} ${attrs.checkUrl!=null?'validated':''}" - checkUrl="${attrs.checkUrl}" + checkUrl="${attrs.checkUrl}" json="${attrs.json}" checked="${(attrs.checked ?: instance[attrs.field] ?: attrs.default) ? 'true' : null}"/> \ No newline at end of file diff --git a/core/src/main/resources/lib/form/combobox.jelly b/core/src/main/resources/lib/form/combobox.jelly new file mode 100644 index 0000000000000000000000000000000000000000..d25c7390ddf0524739649e51881196a39426cd7b --- /dev/null +++ b/core/src/main/resources/lib/form/combobox.jelly @@ -0,0 +1,53 @@ + + + + + + Editable drop-down combo box that supports the data binding and AJAX updates. + Your descriptor should have the 'doFillXyzItems' method, which returns a ComboBoxModel + representation of the items in your combo box, and your instance field should + hold the current value. + + + Additional CSS classes that the control gets. + + + Used for databinding. + + + + + @@ -63,17 +59,16 @@ THE SOFTWARE.
      diff --git a/core/src/main/resources/lib/form/enum.jelly b/core/src/main/resources/lib/form/enum.jelly index 06fc52e1d0320ea07fb80fdafed1baf6a05d3d13..a554ff72a92cf7d9add9aa4f9623cbae313a159e 100644 --- a/core/src/main/resources/lib/form/enum.jelly +++ b/core/src/main/resources/lib/form/enum.jelly @@ -33,7 +33,7 @@ THE SOFTWARE. + + + + + \ No newline at end of file diff --git a/core/src/main/resources/lib/form/expandableTextbox.jelly b/core/src/main/resources/lib/form/expandableTextbox.jelly index de42c3e6914c52dfa06bdabbe2279fb016734462..6568e09cb13b9159f2d72ecd0b61aabe45b05721 100644 --- a/core/src/main/resources/lib/form/expandableTextbox.jelly +++ b/core/src/main/resources/lib/form/expandableTextbox.jelly @@ -54,6 +54,7 @@ THE SOFTWARE. which is the recommended approach. + @@ -67,7 +68,7 @@ THE SOFTWARE. - \ No newline at end of file + diff --git a/core/src/main/resources/lib/form/expandableTextbox_da.properties b/core/src/main/resources/lib/form/expandableTextbox_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..7a0d627e55608f8b066f89daecc44c30f16dcfc9 --- /dev/null +++ b/core/src/main/resources/lib/form/expandableTextbox_da.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +tooltip=Klik for at udvide til flere linjer
      hvor du kan bruge nye linjer i stedet for mellemrum.
      \ +For at skifte tilbage til en linje skriv alt p\u00e5 en linje og gem. diff --git a/core/src/main/resources/lib/form/expandableTextbox_de.properties b/core/src/main/resources/lib/form/expandableTextbox_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..3e6e014f56a982943370b738e7d2598d456cfd54 --- /dev/null +++ b/core/src/main/resources/lib/form/expandableTextbox_de.properties @@ -0,0 +1,6 @@ +tooltip=\ + Klicken Sie hier für ein größeres Texteingabefeld,
      \ + in dem Sie Zeilenvorschübe statt Leerzeichen
      \ + verwenden können. Um wieder zu einer Textzeile
      \ + zurückzukehren, schreiben Sie alles in eine Zeile,
      \ + bevor Sie Ihre Änderungen übernehmen. diff --git a/core/src/main/resources/lib/form/expandableTextbox_es.properties b/core/src/main/resources/lib/form/expandableTextbox_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..6f1e5674a436b26400034f05d74ee3cd72f5f0d0 --- /dev/null +++ b/core/src/main/resources/lib/form/expandableTextbox_es.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +tooltip=\ + Pulse para usar múltiples líneas
      y usar así ''nuevas lineas'' en lugar de ''espacios''.
      \ + Para volver a usar sólo una línea, escribe todo en una línea y después envía. + diff --git a/core/src/main/resources/lib/form/expandableTextbox_fr.properties b/core/src/main/resources/lib/form/expandableTextbox_fr.properties index 4813a51c5bf9893aade5db5bb0ac9a174fad3bfd..81407b108366548fdd1cee0f964b30a72d10d6f9 100644 --- a/core/src/main/resources/lib/form/expandableTextbox_fr.properties +++ b/core/src/main/resources/lib/form/expandableTextbox_fr.properties @@ -20,6 +20,6 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -tooltip=\ - Cliquez pour obtenir des lignes multiples
      et pouvoir utiliser des nouvelles lignes plutôt que des espaces.
      \ - Pour retourner sur une ligne unique, écrivez tout sur une seule ligne et envoyez vos changements. +tooltip=\ + Cliquez pour obtenir des lignes multiples
      et pouvoir utiliser des nouvelles lignes plutôt que des espaces.
      \ + Pour retourner sur une ligne unique, écrivez tout sur une seule ligne et envoyez vos changements. diff --git a/core/src/main/resources/lib/form/expandableTextbox_nl.properties b/core/src/main/resources/lib/form/expandableTextbox_nl.properties index b9cb7c930aa00abeda482298f2144e2fd4537966..711c25c725eb2c0ccd6fe15013d4d23028d9feee 100644 --- a/core/src/main/resources/lib/form/expandableTextbox_nl.properties +++ b/core/src/main/resources/lib/form/expandableTextbox_nl.properties @@ -1,24 +1,24 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Wim Rosseel -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. -tooltip=\ - Klik om meerdere lijnen te krijgen,
      waarbij u nieuwe lijnen kunt gebruiken i.p.v. spaties.
      \ - Om terug te keren naar enkelelijnsmodus, geeft u alles in op 1 lijn en stuurt dit door. +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Wim Rosseel +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +tooltip=\ + Klik om meerdere lijnen te krijgen,
      waarbij u nieuwe lijnen kunt gebruiken i.p.v. spaties.
      \ + Om terug te keren naar enkelelijnsmodus, geeft u alles in op 1 lijn en stuurt dit door. diff --git a/core/src/main/resources/lib/form/expandableTextbox_pt_BR.properties b/core/src/main/resources/lib/form/expandableTextbox_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..c3eaae4d45b2ccaccc811ebdd8fe0be58a0eebb1 --- /dev/null +++ b/core/src/main/resources/lib/form/expandableTextbox_pt_BR.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +# \ +# Click to expand to multiple lines
      where you can use new lines instead of space.
      \ +# To revert back to single line, write everything in one line then submit. +tooltip= diff --git a/core/src/main/resources/lib/form/form.jelly b/core/src/main/resources/lib/form/form.jelly index 3c0bb91ad2cbb07963397625a2e028f32c675326..f59017dd51a8c9b2ce0f17966683d82e873a8c8f 100644 --- a/core/src/main/resources/lib/form/form.jelly +++ b/core/src/main/resources/lib/form/form.jelly @@ -44,10 +44,13 @@ THE SOFTWARE. @target of the <form> HTML element. Works like <a target="..."> and controls which window the result of the submission goes to. + + Optional class attribute for <table> that is created in the form. + -
      - - -
      -
      - \ No newline at end of file +
      + + +
      +
      + diff --git a/core/src/main/resources/lib/form/helpArea_da.properties b/core/src/main/resources/lib/form/helpArea_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..d0ca7425ec588a0a1023b04bc148d65564079611 --- /dev/null +++ b/core/src/main/resources/lib/form/helpArea_da.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Loading...=Indl\u00e6ser... diff --git a/core/src/main/resources/lib/form/helpArea_de.properties b/core/src/main/resources/lib/form/helpArea_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..324814fac4809f84bd8f30064ee97f62e89a2094 --- /dev/null +++ b/core/src/main/resources/lib/form/helpArea_de.properties @@ -0,0 +1 @@ +Loading...=Daten werden geladen... diff --git a/core/src/main/resources/lib/form/helpArea_es.properties b/core/src/main/resources/lib/form/helpArea_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..9345e9b40095aebdc7d215dea514827dde58d7b0 --- /dev/null +++ b/core/src/main/resources/lib/form/helpArea_es.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Loading...=Cargando... diff --git a/core/src/main/resources/lib/form/helpArea_fi.properties b/core/src/main/resources/lib/form/helpArea_fi.properties new file mode 100644 index 0000000000000000000000000000000000000000..e2bf3e879989d899ac72b6615ff1c1f628318a17 --- /dev/null +++ b/core/src/main/resources/lib/form/helpArea_fi.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Loading...=Ladataan... diff --git a/core/src/main/resources/lib/form/helpArea_fr.properties b/core/src/main/resources/lib/form/helpArea_fr.properties index a8f4447fcb7ae075555987dc13e5b374097e72d7..abadf9e931fb2e1cb106db87c7d802de0c1d575d 100644 --- a/core/src/main/resources/lib/form/helpArea_fr.properties +++ b/core/src/main/resources/lib/form/helpArea_fr.properties @@ -20,4 +20,4 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Loading...=Chargement... +Loading...=Chargement... diff --git a/core/src/main/resources/lib/form/helpArea_hu.properties b/core/src/main/resources/lib/form/helpArea_hu.properties new file mode 100644 index 0000000000000000000000000000000000000000..6abcfc46d98035cf8228fb615b3e9f5490095b83 --- /dev/null +++ b/core/src/main/resources/lib/form/helpArea_hu.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Loading...=Bet\u00F6lt\u00E9s... diff --git a/core/src/main/resources/lib/form/helpArea_it.properties b/core/src/main/resources/lib/form/helpArea_it.properties new file mode 100644 index 0000000000000000000000000000000000000000..1e626e3e72e6c557bd3fd9809d2389540b2588b2 --- /dev/null +++ b/core/src/main/resources/lib/form/helpArea_it.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Loading...=Carico... diff --git a/core/src/main/resources/lib/form/helpArea_nb_NO.properties b/core/src/main/resources/lib/form/helpArea_nb_NO.properties new file mode 100644 index 0000000000000000000000000000000000000000..70fe9aca5019e57e6cc0d60241e2b27a3070616e --- /dev/null +++ b/core/src/main/resources/lib/form/helpArea_nb_NO.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Loading...=Laster... diff --git a/core/src/main/resources/lib/form/helpArea_nl.properties b/core/src/main/resources/lib/form/helpArea_nl.properties index d8d083e80e432d061090a0327aecb8bc81efa994..ef0b3e4f3ecafbe4fc261bfbc4ef464b490762f1 100644 --- a/core/src/main/resources/lib/form/helpArea_nl.properties +++ b/core/src/main/resources/lib/form/helpArea_nl.properties @@ -1,22 +1,22 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Wim Rosseel -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. -Loading...=Ophalen... +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Wim Rosseel +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +Loading...=Ophalen... diff --git a/core/src/main/resources/lib/form/helpArea_pt_BR.properties b/core/src/main/resources/lib/form/helpArea_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..987f260096fe69961f67ee43d4e53353b86eeb62 --- /dev/null +++ b/core/src/main/resources/lib/form/helpArea_pt_BR.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Loading...= diff --git a/core/src/main/resources/lib/form/helpArea_ru.properties b/core/src/main/resources/lib/form/helpArea_ru.properties new file mode 100644 index 0000000000000000000000000000000000000000..25bbb16f8371c188bc65002a509b154bf4b912c2 --- /dev/null +++ b/core/src/main/resources/lib/form/helpArea_ru.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Loading...=\u0417\u0430\u0433\u0440\u0443\u0437\u043A\u0430... diff --git a/core/src/main/resources/lib/form/helpArea_sv_SE.properties b/core/src/main/resources/lib/form/helpArea_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..a24a689bb6075eb808edfbeb86b840860d9e37e3 --- /dev/null +++ b/core/src/main/resources/lib/form/helpArea_sv_SE.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Loading...=Laddar... diff --git a/core/src/main/resources/lib/form/helpArea_zh_CN.properties b/core/src/main/resources/lib/form/helpArea_zh_CN.properties new file mode 100644 index 0000000000000000000000000000000000000000..7fc222b374d016d98de0945156d61b63a60c2d4b --- /dev/null +++ b/core/src/main/resources/lib/form/helpArea_zh_CN.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Loading...=\u8BFB\u53D6\u4E2D... diff --git a/core/src/main/resources/lib/form/helpArea_zh_TW.properties b/core/src/main/resources/lib/form/helpArea_zh_TW.properties new file mode 100644 index 0000000000000000000000000000000000000000..afa57c125d061ba76b02231bff61a1a31459b2b8 --- /dev/null +++ b/core/src/main/resources/lib/form/helpArea_zh_TW.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Loading...=\u8F09\u5165\u4E2D... diff --git a/core/src/main/resources/lib/form/hetero-list.jelly b/core/src/main/resources/lib/form/hetero-list.jelly index 8df6f558cac5946df64bcd59c828cdb322c5c358..bb2f554b3722ffb92ea9264da8913b62239dc1cd 100644 --- a/core/src/main/resources/lib/form/hetero-list.jelly +++ b/core/src/main/resources/lib/form/hetero-list.jelly @@ -1,7 +1,7 @@ - + + Outer most tag for creating a heterogeneous list, where the user can choose arbitrary number of + arbitrary items from the given list of descriptors, and configure them independently. + + The submission can be data-bound into List<T> where T is the common base type for the describable instances. + + + form name that receives an array for all the items in the heterogeneous list. + + + existing items to be displayed. Something iterable, such as array or collection. + + + all types that the user can add. + + + caption of the 'add' button. + + + caption of the 'delete' button. + + + the type for which descriptors will be configured. Defaults to ${it.class} (optional) + + + For each item, add a caption from descriptor.getDisplayName(). + This also activates drag&drop (where the header is a grip), and help text support. + + @@ -63,7 +74,10 @@ THE SOFTWARE. - + +
      @@ -76,13 +90,13 @@ THE SOFTWARE. -
      +
      - +
      @@ -92,13 +106,13 @@ THE SOFTWARE.
      - +
      - +
      diff --git a/core/src/main/resources/lib/form/hetero-list_da.properties b/core/src/main/resources/lib/form/hetero-list_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..a2c107841e4c999199211dd6a68104974c9ec8be --- /dev/null +++ b/core/src/main/resources/lib/form/hetero-list_da.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Add=Tilf\u00f8j diff --git a/core/src/main/resources/lib/form/hetero-list_de.properties b/core/src/main/resources/lib/form/hetero-list_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..4dc144df45707194a59c976a63a28fcf8f753d46 --- /dev/null +++ b/core/src/main/resources/lib/form/hetero-list_de.properties @@ -0,0 +1 @@ +Add=Hinzufügen diff --git a/core/src/main/resources/lib/form/hetero-list_es.properties b/core/src/main/resources/lib/form/hetero-list_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..9f535b58eccec0e72e09aabe31efd6783dcea700 --- /dev/null +++ b/core/src/main/resources/lib/form/hetero-list_es.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Add=Añadir diff --git a/core/src/main/resources/lib/form/hetero-list_ja.properties b/core/src/main/resources/lib/form/hetero-list_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..26be1530bd5182124ca194e52ab8f12cfb7d80b8 --- /dev/null +++ b/core/src/main/resources/lib/form/hetero-list_ja.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Add=\u8FFD\u52A0 \ No newline at end of file diff --git a/core/src/main/resources/lib/form/hetero-list_pt_BR.properties b/core/src/main/resources/lib/form/hetero-list_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..a9e7108ebdbd939786389a95f24ec8ff3d751381 --- /dev/null +++ b/core/src/main/resources/lib/form/hetero-list_pt_BR.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Add=Adicionar diff --git a/core/src/main/resources/lib/form/hetero-list_zh_TW.properties b/core/src/main/resources/lib/form/hetero-list_zh_TW.properties new file mode 100644 index 0000000000000000000000000000000000000000..f5733ee16ced7af13ba785ea23d9652816471058 --- /dev/null +++ b/core/src/main/resources/lib/form/hetero-list_zh_TW.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Add=\u65B0\u589E diff --git a/core/src/main/resources/lib/form/hetero-radio.jelly b/core/src/main/resources/lib/form/hetero-radio.jelly new file mode 100644 index 0000000000000000000000000000000000000000..1a768b961059ea1fd40db56de930d2c6a8c9924f --- /dev/null +++ b/core/src/main/resources/lib/form/hetero-radio.jelly @@ -0,0 +1,55 @@ + + + + + Sibling of hetero-list, which only allows the user to pick one type from the list of descriptors and configure it. + + + Field name in the parent object where databinding happens. + + + all types that the user can add. + + + + + +
      + + + + + + + + + + + + + +
      +
      diff --git a/core/src/main/resources/lib/form/invisibleEntry.jelly b/core/src/main/resources/lib/form/invisibleEntry.jelly new file mode 100644 index 0000000000000000000000000000000000000000..053518e1e481b53f09dac1ee395a5ea7cf1a8e0e --- /dev/null +++ b/core/src/main/resources/lib/form/invisibleEntry.jelly @@ -0,0 +1,34 @@ + + + + + Invisible <f:entry> type. Useful for adding hidden field values. + +
      + +
      - + - Help for feature: ${title} + Help for feature: ${title}
      + class="radio-block-control" checked="${checked?'true':null}" /> - + @@ -67,7 +66,5 @@ THE SOFTWARE. -
      - + ${b.iconColor.description} - ${b.parent.displayName} + ${b.parent.fullDisplayName} - #${b.number} + #${b.number} ${b.timestampString} @@ -60,7 +63,7 @@ THE SOFTWARE. - + ${%Console output}
      -
      \ No newline at end of file +
      diff --git a/core/src/main/resources/lib/hudson/buildListTable_da.properties b/core/src/main/resources/lib/hudson/buildListTable_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..d29a5734126a85e4b88f20551a2770fc4db098a9 --- /dev/null +++ b/core/src/main/resources/lib/hudson/buildListTable_da.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Build=Byg +Status=Status +Date=Dato +Console\ output=Konsol output diff --git a/core/src/main/resources/lib/hudson/buildListTable_de.properties b/core/src/main/resources/lib/hudson/buildListTable_de.properties index aaa58f0a93f9999c6c3ba621e363475f5e02a3dc..364f85fd15c83d121fd0a1f43d3731eeca89a7bd 100644 --- a/core/src/main/resources/lib/hudson/buildListTable_de.properties +++ b/core/src/main/resources/lib/hudson/buildListTable_de.properties @@ -23,3 +23,4 @@ Date=Datum Status=Status Build=Build +Console\ output=Konsolenausgabe diff --git a/core/src/main/resources/lib/hudson/buildListTable_es.properties b/core/src/main/resources/lib/hudson/buildListTable_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..72ca2df0a625ebdfc9fbae8994d7b6fee9dc04bd --- /dev/null +++ b/core/src/main/resources/lib/hudson/buildListTable_es.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Build=Ejecución +Date=Fecha +Status=Estado +Console\ output=Salida de consola diff --git a/core/src/main/resources/lib/hudson/buildListTable_fr.properties b/core/src/main/resources/lib/hudson/buildListTable_fr.properties index 01a02335b2514d2a4dd7ce684f4aff174a1214cb..c15fed8f546d5811c8f623795215b26b255396f5 100644 --- a/core/src/main/resources/lib/hudson/buildListTable_fr.properties +++ b/core/src/main/resources/lib/hudson/buildListTable_fr.properties @@ -20,7 +20,7 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Date= +Date=Date Status=Statut -Build= +Build=Build Console\ output=Sortie console diff --git a/core/src/main/resources/lib/hudson/buildListTable_it.properties b/core/src/main/resources/lib/hudson/buildListTable_it.properties new file mode 100644 index 0000000000000000000000000000000000000000..e433b296ec4007176f12339ff444f66a7a3e19ab --- /dev/null +++ b/core/src/main/resources/lib/hudson/buildListTable_it.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Build=Build +Console\ output=Output console +Date=Data +Status=Stato diff --git a/core/src/main/resources/lib/hudson/buildListTable_ko.properties b/core/src/main/resources/lib/hudson/buildListTable_ko.properties new file mode 100644 index 0000000000000000000000000000000000000000..5eaf7267df13a61719ea31a6b581862ba869b3bc --- /dev/null +++ b/core/src/main/resources/lib/hudson/buildListTable_ko.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Build=\uBE4C\uB4DC +Console\ output=\uCF58\uC194 \uCD9C\uB825 +Date=\uB0A0\uC790 +Status=\uC0C1\uD0DC diff --git a/core/src/main/resources/lib/hudson/buildListTable_nb_NO.properties b/core/src/main/resources/lib/hudson/buildListTable_nb_NO.properties new file mode 100644 index 0000000000000000000000000000000000000000..245b9863a769c6c8c47a70736ea3c6749bf585a1 --- /dev/null +++ b/core/src/main/resources/lib/hudson/buildListTable_nb_NO.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Build=Bygg +Console\ output=Konsoll output +Date=Dato +Status=Status diff --git a/core/src/main/resources/lib/hudson/buildListTable_nl.properties b/core/src/main/resources/lib/hudson/buildListTable_nl.properties index e48771ed2c2cf0009083220e1c65b891a52cc5b4..194c3afeffe029b96c4cb4ed22ee73b2e696ca0f 100755 --- a/core/src/main/resources/lib/hudson/buildListTable_nl.properties +++ b/core/src/main/resources/lib/hudson/buildListTable_nl.properties @@ -20,6 +20,7 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. +Console\ output=Console-uitvoer Date=Datum Status=Status Build=Bouwpoging diff --git a/core/src/main/resources/lib/hudson/buildListTable_pt_BR.properties b/core/src/main/resources/lib/hudson/buildListTable_pt_BR.properties index c057b3f1d44def0e36551a4f99706c4ef9e2363c..55dcd57a4985964f7e95c289188395b23c1a302a 100644 --- a/core/src/main/resources/lib/hudson/buildListTable_pt_BR.properties +++ b/core/src/main/resources/lib/hudson/buildListTable_pt_BR.properties @@ -22,3 +22,5 @@ Date=Data Status=Estado +Build= +Console\ output= diff --git a/core/src/main/resources/lib/hudson/buildListTable_ru.properties b/core/src/main/resources/lib/hudson/buildListTable_ru.properties index 8c25eaf7b629857d75aa6b286422f05dce06e8a9..128bdcae5e6d421d868d1e48edc009c530f80a82 100644 --- a/core/src/main/resources/lib/hudson/buildListTable_ru.properties +++ b/core/src/main/resources/lib/hudson/buildListTable_ru.properties @@ -21,5 +21,6 @@ # THE SOFTWARE. Build=\u0421\u0431\u043e\u0440\u043a\u0430 +Console\ output=\u041A\u043E\u043D\u0441\u043E\u043B\u044C\u043D\u044B\u0439 \u0432\u044B\u0432\u043E\u0434 Date=\u0414\u0430\u0442\u0430 Status=\u0421\u0442\u0430\u0442\u0443\u0441 diff --git a/core/src/main/resources/lib/hudson/buildListTable_sv_SE.properties b/core/src/main/resources/lib/hudson/buildListTable_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..54e1e58b3be1bffb504ba6c8f460b18e8085442e --- /dev/null +++ b/core/src/main/resources/lib/hudson/buildListTable_sv_SE.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Build=Bygge +Date=Datum +Status=Status diff --git a/core/src/main/resources/lib/hudson/buildListTable_zh_CN.properties b/core/src/main/resources/lib/hudson/buildListTable_zh_CN.properties new file mode 100644 index 0000000000000000000000000000000000000000..c29c49ceb51370541e1b84eead121626a8c249f9 --- /dev/null +++ b/core/src/main/resources/lib/hudson/buildListTable_zh_CN.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Build=\u6784\u5efa +Console\ output=\u547d\u4ee4\u884c\u8f93\u51fa +Date=\u65e5\u671f +Status=\u72b6\u6001 diff --git a/core/src/main/resources/lib/hudson/buildListTable_zh_TW.properties b/core/src/main/resources/lib/hudson/buildListTable_zh_TW.properties new file mode 100644 index 0000000000000000000000000000000000000000..9dd506ec9eb1709548308d178af4da4d9ab51488 --- /dev/null +++ b/core/src/main/resources/lib/hudson/buildListTable_zh_TW.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Build=\u5EFA\u69CB +Console\ output=\u756B\u9762\u8F38\u51FA +Date=\u65E5\u671F +Status=\u72C0\u614B diff --git a/core/src/main/resources/lib/hudson/buildProgressBar.jelly b/core/src/main/resources/lib/hudson/buildProgressBar.jelly index 5b2fc9d14da0acd517b6918cc47d93176af6e456..6f1f53247afc4071ce8c197f8cf592bb0be79136 100644 --- a/core/src/main/resources/lib/hudson/buildProgressBar.jelly +++ b/core/src/main/resources/lib/hudson/buildProgressBar.jelly @@ -21,15 +21,19 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --> - - - + + Progress bar for a build in progress. + + + Build in progress. + + + Executor that's carrying out the build. If null, defaults to "build.executor" + + + + \ No newline at end of file diff --git a/core/src/main/resources/lib/hudson/buildProgressBar_da.properties b/core/src/main/resources/lib/hudson/buildProgressBar_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..bda3ece677cda008e960347312d4246e4e73006f --- /dev/null +++ b/core/src/main/resources/lib/hudson/buildProgressBar_da.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +text=Startet for {0} siden
      Estimeret resterende tid: {1} diff --git a/core/src/main/resources/lib/hudson/buildProgressBar_es.properties b/core/src/main/resources/lib/hudson/buildProgressBar_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..0e761da6ac8f57b29bae4addf2d6e431d1e65dfb --- /dev/null +++ b/core/src/main/resources/lib/hudson/buildProgressBar_es.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +text=Comenzó hace {0}
      y falta aproximadamente: {1} + diff --git a/core/src/main/resources/lib/hudson/buildProgressBar_fi.properties b/core/src/main/resources/lib/hudson/buildProgressBar_fi.properties new file mode 100644 index 0000000000000000000000000000000000000000..8288d47bad9dd2acd21fdd8798a6a020bcda00cc --- /dev/null +++ b/core/src/main/resources/lib/hudson/buildProgressBar_fi.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +text=Aloitettiin {0} sitten
      Arvioitu valmistumis aika: {1} diff --git a/core/src/main/resources/lib/hudson/buildProgressBar_fr.properties b/core/src/main/resources/lib/hudson/buildProgressBar_fr.properties index 9605b97ae75af7d398d2ded3fc03eab938583c5d..7a162d8700bdaa38fc1cfecce8c80ff98a06b73c 100644 --- a/core/src/main/resources/lib/hudson/buildProgressBar_fr.properties +++ b/core/src/main/resources/lib/hudson/buildProgressBar_fr.properties @@ -20,4 +20,4 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -text=Démarré il y a {0}
      Temps restant estimé: {1} +text=D\u00E9marr\u00E9 il y a {0}
      Temps restant estim\u00E9 : {1} diff --git a/core/src/main/resources/lib/hudson/buildProgressBar_hu.properties b/core/src/main/resources/lib/hudson/buildProgressBar_hu.properties new file mode 100644 index 0000000000000000000000000000000000000000..cb48be5c803e644a221ac941d5ddd29c4654c7d1 --- /dev/null +++ b/core/src/main/resources/lib/hudson/buildProgressBar_hu.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +text={0} perce indult
      K\u00F6r\u00FClbel\u00FCl {1} van h\u00E1tra diff --git a/core/src/main/resources/lib/hudson/buildProgressBar_it.properties b/core/src/main/resources/lib/hudson/buildProgressBar_it.properties new file mode 100644 index 0000000000000000000000000000000000000000..c9a3b072f2d4a980c40fbfd71da3064564483e56 --- /dev/null +++ b/core/src/main/resources/lib/hudson/buildProgressBar_it.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +text=Avviato {0} fa
      Tempo residuo stimato: {1} diff --git a/core/src/main/resources/lib/hudson/buildProgressBar_sv_SE.properties b/core/src/main/resources/lib/hudson/buildProgressBar_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..0934e6e6d738987cb5ecc7daec52c59a9712fd48 --- /dev/null +++ b/core/src/main/resources/lib/hudson/buildProgressBar_sv_SE.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +text=Startad {0} sedan
      Ber\u00E4knad \u00E5terst\u00E5ende tid: {1} diff --git a/core/src/main/resources/lib/hudson/buildProgressBar_zh_TW.properties b/core/src/main/resources/lib/hudson/buildProgressBar_zh_TW.properties new file mode 100644 index 0000000000000000000000000000000000000000..118f951d122b1ac306e10c954237828956c75a07 --- /dev/null +++ b/core/src/main/resources/lib/hudson/buildProgressBar_zh_TW.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +text="{0}\u524D\u555F\u52D5 \u4F30\u8A08\u9084\u9700\u8981:{1}" diff --git a/core/src/main/resources/lib/hudson/buildStatusSummary.groovy b/core/src/main/resources/lib/hudson/buildStatusSummary.groovy deleted file mode 100644 index b517357920917e0aece621f40555ec3243ae8953..0000000000000000000000000000000000000000 --- a/core/src/main/resources/lib/hudson/buildStatusSummary.groovy +++ /dev/null @@ -1,36 +0,0 @@ -/* - * The MIT License - * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ -// displays one line HTML summary of the build, which includes the difference -// from the previous build -// -// Usage: - -jelly { - def s = build.getBuildStatusSummary(); - if(s.isWorse) { - output.write("${s.message}"); - } else { - output.write(s.message); - } -} diff --git a/core/src/main/resources/lib/hudson/buildStatusSummary.jelly b/core/src/main/resources/lib/hudson/buildStatusSummary.jelly new file mode 100644 index 0000000000000000000000000000000000000000..757b4c3d0e1aba6d8d94141d5397b69497ba7e2d --- /dev/null +++ b/core/src/main/resources/lib/hudson/buildStatusSummary.jelly @@ -0,0 +1,35 @@ + + + + + + + ${summary.message} + + + ${summary.message} + + + diff --git a/core/src/main/resources/lib/hudson/editableDescription.jelly b/core/src/main/resources/lib/hudson/editableDescription.jelly index 65131513e9ce717a8d31fe59387b0577f1a22f18..415959711d1ab90808cde42382c47c073f38a42f 100644 --- a/core/src/main/resources/lib/hudson/editableDescription.jelly +++ b/core/src/main/resources/lib/hudson/editableDescription.jelly @@ -1,7 +1,7 @@ + + - - ${%Dead} (!) - - - - - - - - - ${%Offline} - - - ${%Idle} - - - - - - - -
      ${%Building} +
      ${%Building} + - - ${e.currentExecutable} - + + ${exe.parent.fullDisplayName} #${exe.number} + ${%Unknown Task} @@ -107,21 +82,58 @@ THE SOFTWARE.
      - - - ${%terminate this build} - - - - - - - + + + + ${%terminate this build} + + + + + + + + + + + + + + + # + +
      + + + ${%Status} + + + + + +
      + +
      + + + + + +
      + + + + + + + +
      +
      - diff --git a/core/src/main/resources/lib/hudson/executors_ca.properties b/core/src/main/resources/lib/hudson/executors_ca.properties new file mode 100644 index 0000000000000000000000000000000000000000..c04cfaf7809d6876984d5163718f0496d89b6341 --- /dev/null +++ b/core/src/main/resources/lib/hudson/executors_ca.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Status=Estat diff --git a/core/src/main/resources/lib/hudson/executors_cs.properties b/core/src/main/resources/lib/hudson/executors_cs.properties new file mode 100644 index 0000000000000000000000000000000000000000..32417106ea7e6faefa52dad2643f79beff0706c6 --- /dev/null +++ b/core/src/main/resources/lib/hudson/executors_cs.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Idle=Voln\u00FD +Master=Hlavn\u00ED diff --git a/core/src/main/resources/lib/hudson/executors_da.properties b/core/src/main/resources/lib/hudson/executors_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..3c10675ba4e944f0d23ff8272456c702cceded1a --- /dev/null +++ b/core/src/main/resources/lib/hudson/executors_da.properties @@ -0,0 +1,31 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +terminate\ this\ build=annuller dette byg +Dead=D\u00f8dt +suspended=suspenderet +Offline=Offline +Status=Status +Build\ Executor\ Status=Byggeafviklerstatus +Idle=Tomgang +Master=Master +offline=offline diff --git a/core/src/main/resources/lib/hudson/executors_de.properties b/core/src/main/resources/lib/hudson/executors_de.properties index 3ba2497a5d29b7110189c4618d9fcad758ea79d6..ab2ef6c45cfd8e0856e52174fb6e697e69275ae9 100644 --- a/core/src/main/resources/lib/hudson/executors_de.properties +++ b/core/src/main/resources/lib/hudson/executors_de.properties @@ -29,3 +29,5 @@ Idle=Bereit Building=Baue terminate\ this\ build=Diesen Build abbrechen suspended=eingestellt +Offline=Offline +Unknown\ Task=Unbekannter Task diff --git a/core/src/main/resources/lib/hudson/executors_el.properties b/core/src/main/resources/lib/hudson/executors_el.properties new file mode 100644 index 0000000000000000000000000000000000000000..77a36ef17059c358c7b57e59abf62d32971fce5a --- /dev/null +++ b/core/src/main/resources/lib/hudson/executors_el.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Build\ Executor\ Status=\u039A\u03B1\u03C4\u03AC\u03C3\u03C4\u03B1\u03C3\u03B7 \u03B5\u03BA\u03C4\u03AD\u03BB\u03B5\u03C3\u03B7\u03C2 Build +Idle=\u0391\u03BD\u03B5\u03BD\u03B5\u03C1\u03B3\u03CC +Status=\u039A\u03B1\u03C4\u03AC\u03C3\u03C4\u03B1\u03C3\u03B7 diff --git a/core/src/main/resources/lib/hudson/executors_es.properties b/core/src/main/resources/lib/hudson/executors_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..cb3c4f859062f840d3efe6a2050952d199ba745f --- /dev/null +++ b/core/src/main/resources/lib/hudson/executors_es.properties @@ -0,0 +1,36 @@ +### +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +offline=fuera de linea +suspended=suspendido +Dead=Colgado +Offline=Fuera de linea +Idle=Disponible +Building=Ejecutándose +Unknown\ Task=Tarea desconocida +terminate\ this\ build=Terminar este proceso +Build\ Executor\ Status=Estado de los nodos +Status=Estado +Master=Principal + + diff --git a/core/src/main/resources/lib/hudson/executors_fi.properties b/core/src/main/resources/lib/hudson/executors_fi.properties new file mode 100644 index 0000000000000000000000000000000000000000..19e2d5e9f037a20693fdeb800574b9f643c73f80 --- /dev/null +++ b/core/src/main/resources/lib/hudson/executors_fi.properties @@ -0,0 +1,30 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Build\ Executor\ Status=Suorittajien tila +Building=K\u00E4\u00E4nnet\u00E4\u00E4n +Idle=Joutilas +Master=P\u00E4\u00E4llikk\u00F6 +Offline=ei yhteytt\u00E4 +Status=Status +offline=ei yhteytt\u00E4 +terminate\ this\ build=Keskeyt\u00E4 k\u00E4\u00E4nt\u00E4minen diff --git a/core/src/main/resources/lib/hudson/executors_fr.properties b/core/src/main/resources/lib/hudson/executors_fr.properties index 57f34cef10aff085362d73c703f5fd61206c88ea..846bff3acae98678fec71a49e9e2c1d4592c3b7e 100644 --- a/core/src/main/resources/lib/hudson/executors_fr.properties +++ b/core/src/main/resources/lib/hudson/executors_fr.properties @@ -20,8 +20,8 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Build\ Executor\ Status=Etat du lanceur de build -Status=Etat +Build\ Executor\ Status=\u00C9tat du lanceur de construction +Status=\u00C9tat Master=Maître offline=Déconnecté Dead=Hors service diff --git a/core/src/main/resources/lib/hudson/executors_hu.properties b/core/src/main/resources/lib/hudson/executors_hu.properties new file mode 100644 index 0000000000000000000000000000000000000000..0bc729eb4b191dd95d1b25a5e8e8c1841ba6e3ee --- /dev/null +++ b/core/src/main/resources/lib/hudson/executors_hu.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Build\ Executor\ Status=\u00C9p\u00EDt\u00E9s Futtat\u00F3 \u00C1llapota +Status=\u00C1llapot diff --git a/core/src/main/resources/lib/hudson/executors_it.properties b/core/src/main/resources/lib/hudson/executors_it.properties new file mode 100644 index 0000000000000000000000000000000000000000..9fe68814580bb844caf0c370f29d0f7b104d9ff8 --- /dev/null +++ b/core/src/main/resources/lib/hudson/executors_it.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Build\ Executor\ Status=Stato esecutore build +Idle=Inattivo +Status=Stato +terminate\ this\ build=termina questa build diff --git a/core/src/main/resources/lib/hudson/executors_ja.properties b/core/src/main/resources/lib/hudson/executors_ja.properties index b12c18c84e0643d29095955220fdfce416a20459..272834ee7b8c26d7c15e06fd275488f0175f86e0 100644 --- a/core/src/main/resources/lib/hudson/executors_ja.properties +++ b/core/src/main/resources/lib/hudson/executors_ja.properties @@ -1,6 +1,6 @@ # The MIT License # -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:cactusman +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:cactusman # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -29,4 +29,5 @@ Master=\u30DE\u30B9\u30BF\u30FC offline=\u30AA\u30D5\u30E9\u30A4\u30F3 Offline=\u30AA\u30D5\u30E9\u30A4\u30F3 Dead=\u6B7B\u4EA1 -suspended=\u4E00\u6642\u4E2D\u6B62 \ No newline at end of file +suspended=\u4E00\u6642\u4E2D\u6B62 +Unknown\ Task=\u672A\u77E5\u306E\u30BF\u30B9\u30AF \ No newline at end of file diff --git a/core/src/main/resources/lib/hudson/executors_ko.properties b/core/src/main/resources/lib/hudson/executors_ko.properties index 36e12f67f52f248e95a4d84b310db30879b17e68..210ba2603312dff0dc1c0887a66a42fe21c85865 100644 --- a/core/src/main/resources/lib/hudson/executors_ko.properties +++ b/core/src/main/resources/lib/hudson/executors_ko.properties @@ -20,12 +20,12 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Build\ Executor\ Status=\uBE4C\uB4DC \uC2E4\uD589 \uC0C1\uD0DC -Status=\uC0C1\uD0DC -Master=\uB9C8\uC2A4\uD130 -offline=\uC624\uD504\uB77C\uC778 -suspended=\uC77C\uC2DC \uC911\uC9C0 -Dead=\uBE44\uC815\uC0C1 \uC885\uB8CC -Idle=\uB300\uAE30 \uC911 -Building=\uBE4C\uB4DC \uC911 -terminate\ this\ build=\uBE4C\uB4DC \uC885\uB8CC +Build\ Executor\ Status=\uBE4C\uB4DC \uC2E4\uD589 \uC0C1\uD0DC +Status=\uC0C1\uD0DC +Master=\uB9C8\uC2A4\uD130 +offline=\uC624\uD504\uB77C\uC778 +suspended=\uC77C\uC2DC \uC911\uC9C0 +Dead=\uBE44\uC815\uC0C1 \uC885\uB8CC +Idle=\uB300\uAE30 \uC911 +Building=\uBE4C\uB4DC \uC911 +terminate\ this\ build=\uBE4C\uB4DC \uC885\uB8CC diff --git a/core/src/main/resources/lib/hudson/executors_lt.properties b/core/src/main/resources/lib/hudson/executors_lt.properties new file mode 100644 index 0000000000000000000000000000000000000000..02eb5d961ad1fad5b8ee9285f5116de30f93fd6f --- /dev/null +++ b/core/src/main/resources/lib/hudson/executors_lt.properties @@ -0,0 +1,28 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Build\ Executor\ Status=U\u017Eduoties vykdytojo b\u016Bsena +Idle=Nenaudojamas +Master=Master +Offline=Nepasiekiamas +Status=B\u016Bsena +offline=nepasiekiamas diff --git a/core/src/main/resources/lib/hudson/executors_nb_NO.properties b/core/src/main/resources/lib/hudson/executors_nb_NO.properties new file mode 100644 index 0000000000000000000000000000000000000000..9843298b72758f9e33a1b6ccbcbb85874b0e59ee --- /dev/null +++ b/core/src/main/resources/lib/hudson/executors_nb_NO.properties @@ -0,0 +1,29 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Build\ Executor\ Status=Byggutf\u00F8rer status +Building=Bygger +Idle=Hviler +Offline=Ikke tilgjengelig +Status=Status +offline=ikke tilgjengelig +terminate\ this\ build=avbryt dette bygget diff --git a/core/src/main/resources/lib/hudson/executors_nl.properties b/core/src/main/resources/lib/hudson/executors_nl.properties index 0068bb2b524cb71524046efabfd2c3f3ba5e95b9..00b001cd345f96899fa612da4f91619e145da4eb 100755 --- a/core/src/main/resources/lib/hudson/executors_nl.properties +++ b/core/src/main/resources/lib/hudson/executors_nl.properties @@ -21,10 +21,11 @@ # THE SOFTWARE. Build\ Executor\ Status=Status uitvoerders +Offline=Niet verbonden Status=Status Master=Hoofdnode offline=Niet verbonden Dead=Niet actief Idle=Wachtend -Building=Er wordt gebouwd. +Building=Er wordt gebouwd terminate\ this\ build=Stop bouwpoging diff --git a/core/src/main/resources/lib/hudson/executors_pt_BR.properties b/core/src/main/resources/lib/hudson/executors_pt_BR.properties index ee7037b4321335edf879469442721b4ecc4045d0..580db2cecafd5b6344ea490422182efb3e3df8db 100644 --- a/core/src/main/resources/lib/hudson/executors_pt_BR.properties +++ b/core/src/main/resources/lib/hudson/executors_pt_BR.properties @@ -28,3 +28,6 @@ Dead=Morto Idle=Dispon\u00EDvel Building=Construindo terminate\ this\ build=terminar esta constru\u00E7\u00E3o +Unknown\ Task= +suspended= +Offline= diff --git a/core/src/main/resources/lib/hudson/executors_pt_PT.properties b/core/src/main/resources/lib/hudson/executors_pt_PT.properties new file mode 100644 index 0000000000000000000000000000000000000000..43ee4ee1a38db26e0bdc364dacafc614f824797c --- /dev/null +++ b/core/src/main/resources/lib/hudson/executors_pt_PT.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Build\ Executor\ Status=Estado de execu\u00E7\u00E3o de compila\u00E7\u00F5es +Idle=Parado +Status=Estado diff --git a/core/src/main/resources/lib/hudson/executors_ru.properties b/core/src/main/resources/lib/hudson/executors_ru.properties index c4fe9f2ec03e6a34d20d81ca3019e0448047b670..267f45bd9b49befb6dfdfc335b5e7d0ddc3cb57a 100644 --- a/core/src/main/resources/lib/hudson/executors_ru.properties +++ b/core/src/main/resources/lib/hudson/executors_ru.properties @@ -21,6 +21,7 @@ # THE SOFTWARE. Build\ Executor\ Status=\u0421\u0442\u0430\u0442\u0443\u0441 \u0441\u0431\u043e\u0440\u0449\u0438\u043a\u0430 +Offline=\u0412\u044B\u043A\u043B\u044E\u0447\u0435\u043D Status=\u0421\u0442\u0430\u0442\u0443\u0441 Master=\u041c\u0430\u0441\u0442\u0435\u0440 offline=\u0412\u044b\u043a\u043b\u044e\u0447\u0435\u043d diff --git a/core/src/main/resources/lib/hudson/executors_sv_SE.properties b/core/src/main/resources/lib/hudson/executors_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..faec19f65c887667ae895057df15bce02ccf8fbe --- /dev/null +++ b/core/src/main/resources/lib/hudson/executors_sv_SE.properties @@ -0,0 +1,29 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Build\ Executor\ Status=Status f\u00F6r Byggexekverare +Building=Bygger +Idle=Inaktiv +Offline=Offline +Status=Status +offline=offline +terminate\ this\ build=avbryt bygget diff --git a/core/src/main/resources/lib/hudson/executors_zh_CN.properties b/core/src/main/resources/lib/hudson/executors_zh_CN.properties new file mode 100644 index 0000000000000000000000000000000000000000..1698afc1685f7fe186aafea89f797af4cd52808d --- /dev/null +++ b/core/src/main/resources/lib/hudson/executors_zh_CN.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Build\ Executor\ Status=\u6784\u5efa\u72b6\u6001 +Idle=\u7a7a\u95f2 +Status=\u72b6\u6001 diff --git a/core/src/main/resources/lib/hudson/executors_zh_TW.properties b/core/src/main/resources/lib/hudson/executors_zh_TW.properties new file mode 100644 index 0000000000000000000000000000000000000000..8317ac799c5872363de974cadd2e0aa976b46b15 --- /dev/null +++ b/core/src/main/resources/lib/hudson/executors_zh_TW.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Build\ Executor\ Status=\u5EFA\u69CB\u57F7\u884C\u5E8F\u72C0\u614B +Building=\u5EFA\u69CB\u4E2D +Idle=\u9592\u7F6E +Status=\u72C0\u614B diff --git a/core/src/main/resources/lib/hudson/iconSize.jelly b/core/src/main/resources/lib/hudson/iconSize.jelly new file mode 100644 index 0000000000000000000000000000000000000000..386e4492a84821f4df4f03f119f0e5a08549c598 --- /dev/null +++ b/core/src/main/resources/lib/hudson/iconSize.jelly @@ -0,0 +1,51 @@ + + + + + + + + + + + ${title} + + + ${title} + + + + + + + +
      ${%Icon}: + + + + + +
      +
      diff --git a/core/src/main/resources/lib/hudson/iconSize_ca.properties b/core/src/main/resources/lib/hudson/iconSize_ca.properties new file mode 100644 index 0000000000000000000000000000000000000000..f46712e0624b3dcd8c2c42cc29dbac342c9ac4bb --- /dev/null +++ b/core/src/main/resources/lib/hudson/iconSize_ca.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Icon=Icon diff --git a/core/src/main/resources/lib/hudson/iconSize_da.properties b/core/src/main/resources/lib/hudson/iconSize_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..1b02b7c5a979dbb8b4adee06c194d393de7e98ac --- /dev/null +++ b/core/src/main/resources/lib/hudson/iconSize_da.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Icon=Ikon diff --git a/core/src/main/resources/lib/hudson/rssBar-with-iconSize_de.properties b/core/src/main/resources/lib/hudson/iconSize_de.properties similarity index 100% rename from core/src/main/resources/lib/hudson/rssBar-with-iconSize_de.properties rename to core/src/main/resources/lib/hudson/iconSize_de.properties diff --git a/core/src/main/resources/lib/hudson/iconSize_el.properties b/core/src/main/resources/lib/hudson/iconSize_el.properties new file mode 100644 index 0000000000000000000000000000000000000000..33c5158012a8b80c651ec8e2fdd47ad09bfb46ee --- /dev/null +++ b/core/src/main/resources/lib/hudson/iconSize_el.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Icon=\u0395\u03B9\u03BA\u03BF\u03BD\u03AF\u03B4\u03B9\u03BF diff --git a/core/src/main/resources/lib/hudson/iconSize_es.properties b/core/src/main/resources/lib/hudson/iconSize_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..661362bf2e314fd3a6efe198bfed0a5796e14b9b --- /dev/null +++ b/core/src/main/resources/lib/hudson/iconSize_es.properties @@ -0,0 +1,24 @@ +### +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Icon=Icono diff --git a/core/src/main/resources/lib/hudson/iconSize_fi.properties b/core/src/main/resources/lib/hudson/iconSize_fi.properties new file mode 100644 index 0000000000000000000000000000000000000000..59ded19330d4c3fd3621476b49402eb4db9bba59 --- /dev/null +++ b/core/src/main/resources/lib/hudson/iconSize_fi.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Icon=Ikoni koko diff --git a/core/src/main/resources/lib/hudson/iconSize_fr.properties b/core/src/main/resources/lib/hudson/iconSize_fr.properties new file mode 100644 index 0000000000000000000000000000000000000000..957287968508faa245b306cd90e474a952820e86 --- /dev/null +++ b/core/src/main/resources/lib/hudson/iconSize_fr.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Eric Lefevre-Ardant +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Icon=Ic\u00F4ne diff --git a/core/src/main/resources/lib/hudson/iconSize_it.properties b/core/src/main/resources/lib/hudson/iconSize_it.properties new file mode 100644 index 0000000000000000000000000000000000000000..1588055f58078e1a0058e0635fc5612eaacaca72 --- /dev/null +++ b/core/src/main/resources/lib/hudson/iconSize_it.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Icon=Icona diff --git a/core/src/main/resources/lib/hudson/rssBar-with-iconSize_ja.properties b/core/src/main/resources/lib/hudson/iconSize_ja.properties similarity index 100% rename from core/src/main/resources/lib/hudson/rssBar-with-iconSize_ja.properties rename to core/src/main/resources/lib/hudson/iconSize_ja.properties diff --git a/core/src/main/resources/lib/hudson/iconSize_ko.properties b/core/src/main/resources/lib/hudson/iconSize_ko.properties new file mode 100644 index 0000000000000000000000000000000000000000..166be095ef59ada5e276de157918cbdfa4e8874b --- /dev/null +++ b/core/src/main/resources/lib/hudson/iconSize_ko.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Sung Kim, id:cactusman +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Icon=\uC544\uC774\uCF58 diff --git a/core/src/main/resources/lib/hudson/iconSize_lt.properties b/core/src/main/resources/lib/hudson/iconSize_lt.properties new file mode 100644 index 0000000000000000000000000000000000000000..6abb048a9ab3cc169ef0329f4f94d52be877e9a4 --- /dev/null +++ b/core/src/main/resources/lib/hudson/iconSize_lt.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Icon=Paveiksl\u0117lis diff --git a/core/src/main/resources/lib/hudson/iconSize_nb_NO.properties b/core/src/main/resources/lib/hudson/iconSize_nb_NO.properties new file mode 100644 index 0000000000000000000000000000000000000000..01ff6cb0b46430431800fdf6f4569b0e0cda17a0 --- /dev/null +++ b/core/src/main/resources/lib/hudson/iconSize_nb_NO.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Icon=Bilde diff --git a/core/src/main/resources/lib/hudson/rssBar-with-iconSize_nl.properties b/core/src/main/resources/lib/hudson/iconSize_nl.properties similarity index 100% rename from core/src/main/resources/lib/hudson/rssBar-with-iconSize_nl.properties rename to core/src/main/resources/lib/hudson/iconSize_nl.properties diff --git a/core/src/main/resources/lib/hudson/rssBar-with-iconSize_pt_BR.properties b/core/src/main/resources/lib/hudson/iconSize_pt_BR.properties similarity index 100% rename from core/src/main/resources/lib/hudson/rssBar-with-iconSize_pt_BR.properties rename to core/src/main/resources/lib/hudson/iconSize_pt_BR.properties diff --git a/core/src/main/resources/lib/hudson/iconSize_pt_PT.properties b/core/src/main/resources/lib/hudson/iconSize_pt_PT.properties new file mode 100644 index 0000000000000000000000000000000000000000..f46712e0624b3dcd8c2c42cc29dbac342c9ac4bb --- /dev/null +++ b/core/src/main/resources/lib/hudson/iconSize_pt_PT.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Icon=Icon diff --git a/core/src/main/resources/lib/hudson/iconSize_ru.properties b/core/src/main/resources/lib/hudson/iconSize_ru.properties new file mode 100644 index 0000000000000000000000000000000000000000..81ab7a1d8041f7c8a195fcc52c4fa384063e21ea --- /dev/null +++ b/core/src/main/resources/lib/hudson/iconSize_ru.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Mike Salnikov +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Icon=\u0417\u043D\u0430\u0447\u043E\u043A diff --git a/core/src/main/resources/lib/hudson/iconSize_sv_SE.properties b/core/src/main/resources/lib/hudson/iconSize_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..c4185df59afca9472daeded1976761e89c4c567c --- /dev/null +++ b/core/src/main/resources/lib/hudson/iconSize_sv_SE.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Icon=Ikon diff --git a/core/src/main/resources/lib/hudson/rssBar-with-iconSize_tr.properties b/core/src/main/resources/lib/hudson/iconSize_tr.properties similarity index 100% rename from core/src/main/resources/lib/hudson/rssBar-with-iconSize_tr.properties rename to core/src/main/resources/lib/hudson/iconSize_tr.properties diff --git a/core/src/main/resources/lib/hudson/iconSize_zh_CN.properties b/core/src/main/resources/lib/hudson/iconSize_zh_CN.properties new file mode 100644 index 0000000000000000000000000000000000000000..aee5eefc648a480c20d95832a37cce077b020eab --- /dev/null +++ b/core/src/main/resources/lib/hudson/iconSize_zh_CN.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Icon=\u56FE\u6807 diff --git a/core/src/main/resources/lib/hudson/iconSize_zh_TW.properties b/core/src/main/resources/lib/hudson/iconSize_zh_TW.properties new file mode 100644 index 0000000000000000000000000000000000000000..5427cb0d4ee90e72012045176ecd10244af330c5 --- /dev/null +++ b/core/src/main/resources/lib/hudson/iconSize_zh_TW.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Icon=\u5716\u793A diff --git a/core/src/main/resources/lib/hudson/listScmBrowsers.jelly b/core/src/main/resources/lib/hudson/listScmBrowsers.jelly index 512fd14edc43bf6b1de089f757879cfa29225353..1bf46f79f2dc125c2b6acf5568534e4664b6b737 100644 --- a/core/src/main/resources/lib/hudson/listScmBrowsers.jelly +++ b/core/src/main/resources/lib/hudson/listScmBrowsers.jelly @@ -28,18 +28,16 @@ THE SOFTWARE. form field name. - + - + - - - - \ No newline at end of file + diff --git a/core/src/main/resources/lib/hudson/listScmBrowsers_da.properties b/core/src/main/resources/lib/hudson/listScmBrowsers_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..d8de96644d69ace074953574278722137c8d1575 --- /dev/null +++ b/core/src/main/resources/lib/hudson/listScmBrowsers_da.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Auto=Auto +Repository\ browser=Kildekodestyringsbrowser diff --git a/core/src/main/resources/lib/hudson/listScmBrowsers_es.properties b/core/src/main/resources/lib/hudson/listScmBrowsers_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..3a4c7f6bbe1b9baee6a49c1721d3cf89251a7449 --- /dev/null +++ b/core/src/main/resources/lib/hudson/listScmBrowsers_es.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Repository\ browser=Navegador del repositorio +Auto=Auto diff --git a/core/src/main/resources/lib/hudson/newFromList/form.jelly b/core/src/main/resources/lib/hudson/newFromList/form.jelly index 929f192db848747985a1fcb7d954f85b39e324db..341c4d95e35ea44fd621a274d7bf733824b371a7 100644 --- a/core/src/main/resources/lib/hudson/newFromList/form.jelly +++ b/core/src/main/resources/lib/hudson/newFromList/form.jelly @@ -1,7 +1,7 @@ - + + Displays a link to a node. + + - + ${value.nodeName} - (${%master}) + ${%master} \ No newline at end of file diff --git a/core/src/main/resources/lib/hudson/node_da.properties b/core/src/main/resources/lib/hudson/node_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..199e3db8bc187272fa294ef0ba18239e10969a76 --- /dev/null +++ b/core/src/main/resources/lib/hudson/node_da.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +master=master diff --git a/core/src/main/resources/lib/hudson/node_es.properties b/core/src/main/resources/lib/hudson/node_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..9269e6a688ff18d371f0c3b3638162261a65b00b --- /dev/null +++ b/core/src/main/resources/lib/hudson/node_es.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +master=principal diff --git a/core/src/main/resources/lib/hudson/progressiveText.jelly b/core/src/main/resources/lib/hudson/progressiveText.jelly index ea3a5b82936333884a5dd2ffed621cb8587fba98..1a9c1f7e6415b07862feadfd43a5948487329a85 100644 --- a/core/src/main/resources/lib/hudson/progressiveText.jelly +++ b/core/src/main/resources/lib/hudson/progressiveText.jelly @@ -1,7 +1,7 @@ + function fetchNext(e,href) { + var headers = {}; + if (e.consoleAnnotator!=undefined) + headers["X-ConsoleAnnotator"] = e.consoleAnnotator; + new Ajax.Request(href,{ method: "post", - parameters: "start="+e.fetchedBytes, + parameters: {"start":e.fetchedBytes}, + requestHeaders: headers, onComplete: function(rsp,_) { var stickToBottom = scroller.isSticking(); var text = rsp.responseText; if(text!="") { - e.appendChild(document.createTextNode(text)); + var p = document.createElement("DIV"); + e.appendChild(p); // Needs to be first for IE + // Use "outerHTML" for IE; workaround for: + // http://www.quirksmode.org/bugreports/archives/2004/11/innerhtml_and_t.html + if (p.outerHTML) p.outerHTML = '
      '+text+'
      '; + else p.innerHTML = text; + Behaviour.applySubtree(p); if(stickToBottom) scroller.scrollToBottom(); } - e.fetchedBytes = rsp.getResponseHeader("X-Text-Size"); + e.fetchedBytes = rsp.getResponseHeader("X-Text-Size"); + e.consoleAnnotator = rsp.getResponseHeader("X-ConsoleAnnotator"); if(rsp.getResponseHeader("X-More-Data")=="true") setTimeout(function(){fetchNext(e,href);},1000); diff --git a/core/src/main/resources/lib/hudson/project/build-permalink_da.properties b/core/src/main/resources/lib/hudson/project/build-permalink_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..bb7491113e7e9d2f7c8d1950a2f2ba6f2e4495ba --- /dev/null +++ b/core/src/main/resources/lib/hudson/project/build-permalink_da.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +format={0} (#{1}), {2} siden diff --git a/core/src/main/resources/lib/hudson/project/build-permalink_es.properties b/core/src/main/resources/lib/hudson/project/build-permalink_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..d0ac6b1679234250b3e821b209daeb6c71727a51 --- /dev/null +++ b/core/src/main/resources/lib/hudson/project/build-permalink_es.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +format=hace {0} (#{1}), {2} + diff --git a/core/src/main/resources/lib/hudson/project/config-blockWhenUpstreamBuilding.jelly b/core/src/main/resources/lib/hudson/project/config-blockWhenUpstreamBuilding.jelly new file mode 100644 index 0000000000000000000000000000000000000000..69794835a263edd6e816b44240514e4128052512 --- /dev/null +++ b/core/src/main/resources/lib/hudson/project/config-blockWhenUpstreamBuilding.jelly @@ -0,0 +1,31 @@ + + + + + + \ No newline at end of file diff --git a/core/src/main/resources/lib/hudson/project/config-blockWhenUpstreamBuilding_da.properties b/core/src/main/resources/lib/hudson/project/config-blockWhenUpstreamBuilding_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..1d02b516348ad6aee0e437e7fca1298d447116ba --- /dev/null +++ b/core/src/main/resources/lib/hudson/project/config-blockWhenUpstreamBuilding_da.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Block\ build\ when\ upstream\ project\ is\ building=Blocker byg n\u00e5r upstream projektet bygger diff --git a/core/src/main/resources/lib/hudson/project/config-blockWhenUpstreamBuilding_de.properties b/core/src/main/resources/lib/hudson/project/config-blockWhenUpstreamBuilding_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..07a22594f09e9472b37d4249459485eba0ad75d1 --- /dev/null +++ b/core/src/main/resources/lib/hudson/project/config-blockWhenUpstreamBuilding_de.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Block\ build\ when\ upstream\ project\ is\ building=Build blockieren, solange vorgelagertes Projekt gebaut wird. \ No newline at end of file diff --git a/core/src/main/resources/lib/hudson/project/config-blockWhenUpstreamBuilding_es.properties b/core/src/main/resources/lib/hudson/project/config-blockWhenUpstreamBuilding_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..d0d17455bc29c7eb8370a25ccc75906279c2a48d --- /dev/null +++ b/core/src/main/resources/lib/hudson/project/config-blockWhenUpstreamBuilding_es.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Block\ build\ when\ upstream\ project\ is\ building=Congelar el lanzamiento cuando haya un proyecto padre ejecutándose diff --git a/core/src/main/resources/lib/hudson/project/config-blockWhenUpstreamBuilding_fr.properties b/core/src/main/resources/lib/hudson/project/config-blockWhenUpstreamBuilding_fr.properties new file mode 100644 index 0000000000000000000000000000000000000000..486597112869100d94fde94d163c27460dcd504b --- /dev/null +++ b/core/src/main/resources/lib/hudson/project/config-blockWhenUpstreamBuilding_fr.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Block\ build\ when\ upstream\ project\ is\ building=Emp\u00EAcher le build quand un projet en amont est en cours de build diff --git a/core/src/main/resources/lib/hudson/project/config-blockWhenUpstreamBuilding_ja.properties b/core/src/main/resources/lib/hudson/project/config-blockWhenUpstreamBuilding_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..96f513edaebc86e5e0a1d3989dbc1a683aecce62 --- /dev/null +++ b/core/src/main/resources/lib/hudson/project/config-blockWhenUpstreamBuilding_ja.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Block\ build\ when\ upstream\ project\ is\ building=\u4F9D\u5B58\u3059\u308B\u30D3\u30EB\u30C9\u304C\u30D3\u30EB\u30C9\u4E2D\u306E\u5834\u5408\u306F\u30D3\u30EB\u30C9\u3057\u306A\u3044 diff --git a/core/src/main/resources/lib/hudson/project/config-blockWhenUpstreamBuilding_pt_BR.properties b/core/src/main/resources/lib/hudson/project/config-blockWhenUpstreamBuilding_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..1296d9532dc681374967cd5f218f168c4d4a3d7a --- /dev/null +++ b/core/src/main/resources/lib/hudson/project/config-blockWhenUpstreamBuilding_pt_BR.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Block\ build\ when\ upstream\ project\ is\ building= diff --git a/core/src/main/resources/lib/hudson/project/config-buildWrappers_da.properties b/core/src/main/resources/lib/hudson/project/config-buildWrappers_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..e80a83b92d437ce51a9a3ad4a4455ea21ce0162c --- /dev/null +++ b/core/src/main/resources/lib/hudson/project/config-buildWrappers_da.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Build\ Environment=Bygge Milj\u00f8 diff --git a/core/src/main/resources/lib/hudson/project/config-buildWrappers_de.properties b/core/src/main/resources/lib/hudson/project/config-buildWrappers_de.properties index 3c2c408a18e349a1632f63e80cac90a0abd3ab75..47c1b9808585bb9c26051e9d5aa01fa8ab1f4622 100644 --- a/core/src/main/resources/lib/hudson/project/config-buildWrappers_de.properties +++ b/core/src/main/resources/lib/hudson/project/config-buildWrappers_de.properties @@ -20,4 +20,4 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Build\ Environment=Build Umgebung +Build\ Environment=Buildumgebung diff --git a/core/src/main/resources/lib/hudson/project/config-buildWrappers_es.properties b/core/src/main/resources/lib/hudson/project/config-buildWrappers_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..25dc2380539ca29ced450809a6ad5ff6e8541ef0 --- /dev/null +++ b/core/src/main/resources/lib/hudson/project/config-buildWrappers_es.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Build\ Environment=Entorno de ejecución diff --git a/core/src/main/resources/lib/hudson/project/config-builders_da.properties b/core/src/main/resources/lib/hudson/project/config-builders_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..f810680311e96a5ff3ac7cc78efbd18794c70138 --- /dev/null +++ b/core/src/main/resources/lib/hudson/project/config-builders_da.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Add\ build\ step=Tilf\u00f8j byggetrin +Build=Byg diff --git a/core/src/main/resources/lib/hudson/project/config-builders_de.properties b/core/src/main/resources/lib/hudson/project/config-builders_de.properties index 754fbca51ba2b12f7993f559a5c17407248ef4bd..7457549ebdbb6de8d71138e239edcf8474bf5b06 100644 --- a/core/src/main/resources/lib/hudson/project/config-builders_de.properties +++ b/core/src/main/resources/lib/hudson/project/config-builders_de.properties @@ -20,5 +20,5 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Build=Build Verfahren +Build=Buildverfahren Add\ build\ step=Build-Schritt hinzufügen diff --git a/core/src/main/resources/lib/hudson/project/config-builders_es.properties b/core/src/main/resources/lib/hudson/project/config-builders_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..5c6ed34fc6c222de43c2b6c3d23de179358d6744 --- /dev/null +++ b/core/src/main/resources/lib/hudson/project/config-builders_es.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Build=Ejecutar +Add\ build\ step=Añadir un nuevo paso diff --git a/core/src/main/resources/lib/hudson/project/config-builders_pt_BR.properties b/core/src/main/resources/lib/hudson/project/config-builders_pt_BR.properties index e9a07994b5da6bdb1ff924cd76110061a2f51895..8a7f4ba1bdf0a5d2d1053622ef8fbdb6248a9841 100644 --- a/core/src/main/resources/lib/hudson/project/config-builders_pt_BR.properties +++ b/core/src/main/resources/lib/hudson/project/config-builders_pt_BR.properties @@ -21,3 +21,4 @@ # THE SOFTWARE. Build=Constru\u00E7\u00E3o +Add\ build\ step= diff --git a/core/src/main/resources/lib/hudson/project/config-customWorkspace.jelly b/core/src/main/resources/lib/hudson/project/config-customWorkspace.jelly new file mode 100644 index 0000000000000000000000000000000000000000..cd2be7ccff83211d371a92d2bcbccbf89a6e6c89 --- /dev/null +++ b/core/src/main/resources/lib/hudson/project/config-customWorkspace.jelly @@ -0,0 +1,32 @@ + + + + + + + + + + diff --git a/core/src/main/resources/lib/hudson/project/config-customWorkspace_da.properties b/core/src/main/resources/lib/hudson/project/config-customWorkspace_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..4008cecd0602549b39c2e6ccbb7d8ce9447675d1 --- /dev/null +++ b/core/src/main/resources/lib/hudson/project/config-customWorkspace_da.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Use\ custom\ workspace=Benyt s\u00e6rligt arbejdsomr\u00e5de +Directory=Direktorie diff --git a/core/src/main/resources/lib/hudson/project/config-customWorkspace_de.properties b/core/src/main/resources/lib/hudson/project/config-customWorkspace_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..90dedf07b1204c288cdfc319c5c58dd3c5452f0e --- /dev/null +++ b/core/src/main/resources/lib/hudson/project/config-customWorkspace_de.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Use\ custom\ workspace=Verzeichnis des Arbeitsbereichs anpassen +Directory=Verzeichnis diff --git a/core/src/main/resources/lib/hudson/project/config-customWorkspace_es.properties b/core/src/main/resources/lib/hudson/project/config-customWorkspace_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..4acd0e4cd2e920ed12223bdf6585c8e47299d03c --- /dev/null +++ b/core/src/main/resources/lib/hudson/project/config-customWorkspace_es.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Use\ custom\ workspace=Utilizar un directorio de trabajo personalizado +Directory=Directorio diff --git a/core/src/main/resources/lib/hudson/project/config-customWorkspace_fr.properties b/core/src/main/resources/lib/hudson/project/config-customWorkspace_fr.properties new file mode 100644 index 0000000000000000000000000000000000000000..88362840f2a7c3154e8a4113185887e51b831f32 --- /dev/null +++ b/core/src/main/resources/lib/hudson/project/config-customWorkspace_fr.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Eric Lefevre-Ardant +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Use\ custom\ workspace=Utiliser un répertoire de travail spécifique +Directory=Répertoire diff --git a/core/src/main/resources/lib/hudson/project/config-customWorkspace_ja.properties b/core/src/main/resources/lib/hudson/project/config-customWorkspace_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..d216c3b62d5119663bab35b7e77500814773c221 --- /dev/null +++ b/core/src/main/resources/lib/hudson/project/config-customWorkspace_ja.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Use\ custom\ workspace=\u30ab\u30b9\u30bf\u30e0\u30ef\u30fc\u30af\u30b9\u30da\u30fc\u30b9\u306e\u4f7f\u7528 +Directory=\u30c7\u30a3\u30ec\u30af\u30c8\u30ea \ No newline at end of file diff --git a/core/src/main/resources/lib/hudson/project/config-customWorkspace_pt_BR.properties b/core/src/main/resources/lib/hudson/project/config-customWorkspace_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..7ac5f1a89e669bf2e44ee447f6522710eaf29bb5 --- /dev/null +++ b/core/src/main/resources/lib/hudson/project/config-customWorkspace_pt_BR.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Reginaldo L. Russinholi +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Use\ custom\ workspace=Usar workspace customizado +Directory=Diret\u00F3rio diff --git a/core/src/main/resources/hudson/model/FreeStyleProject/configure-advanced_ru.properties b/core/src/main/resources/lib/hudson/project/config-customWorkspace_ru.properties similarity index 100% rename from core/src/main/resources/hudson/model/FreeStyleProject/configure-advanced_ru.properties rename to core/src/main/resources/lib/hudson/project/config-customWorkspace_ru.properties diff --git a/core/src/main/resources/lib/hudson/project/config-customWorkspace_tr.properties b/core/src/main/resources/lib/hudson/project/config-customWorkspace_tr.properties new file mode 100644 index 0000000000000000000000000000000000000000..23ee276e49682ad5c70933dd61a438c62bad75a1 --- /dev/null +++ b/core/src/main/resources/lib/hudson/project/config-customWorkspace_tr.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Oguz Dag +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Use\ custom\ workspace=\u00d6zel \u00e7al\u0131\u015fma alan\u0131n\u0131 kullan +Directory=Dizin diff --git a/core/src/main/resources/lib/hudson/project/config-customWorkspace_zh_TW.properties b/core/src/main/resources/lib/hudson/project/config-customWorkspace_zh_TW.properties new file mode 100644 index 0000000000000000000000000000000000000000..d586fe5812a42324f94bfc1016af3de1b836cbef --- /dev/null +++ b/core/src/main/resources/lib/hudson/project/config-customWorkspace_zh_TW.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Directory=\u76EE\u9304 diff --git a/core/src/main/resources/lib/hudson/project/config-disableBuild_da.properties b/core/src/main/resources/lib/hudson/project/config-disableBuild_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..a3677c10af2dc6cf3d518a6e0d7bca568e90a15a --- /dev/null +++ b/core/src/main/resources/lib/hudson/project/config-disableBuild_da.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Disable\ Build=Sl\u00e5 Byg Fra +No\ new\ builds\ will\ be\ executed\ until\ the\ project\ is\ re-enabled.=Der vil ikke blive udf\u00f8rt flere byg f\u00f8r projektet bliver sl\u00e5et til igen. diff --git a/core/src/main/resources/lib/hudson/project/config-disableBuild_es.properties b/core/src/main/resources/lib/hudson/project/config-disableBuild_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..9005dc80a70edc71a5e4b6cb4a7efeb392b7d7b5 --- /dev/null +++ b/core/src/main/resources/lib/hudson/project/config-disableBuild_es.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Disable\ Build=Desactivar la ejecución +No\ new\ builds\ will\ be\ executed\ until\ the\ project\ is\ re-enabled.=No se ejecutará nuevamente hasta que el proyecto sea reactivado. diff --git a/core/src/main/resources/lib/hudson/project/config-disableBuild_fr.properties b/core/src/main/resources/lib/hudson/project/config-disableBuild_fr.properties index 3b37b29165ccdc751fc0b81d768e8151523107c5..49d1515bfd1483b91574b9e954cb6039c07222a3 100644 --- a/core/src/main/resources/lib/hudson/project/config-disableBuild_fr.properties +++ b/core/src/main/resources/lib/hudson/project/config-disableBuild_fr.properties @@ -21,4 +21,4 @@ # THE SOFTWARE. Disable\ Build=Désactiver le Build -No\ new\ builds\ will\ be\ executed\ until\ the\ project\ is\ re-enabled.=Aucun nouveau build ne sera exécuté, jusqu''à ce que le projet soit réactivé. +No\ new\ builds\ will\ be\ executed\ until\ the\ project\ is\ re-enabled.=Aucun nouveau build ne sera ex\u00E9cut\u00E9 jusqu''''\u00E0 ce que le projet soit r\u00E9activ\u00E9. diff --git a/core/src/main/resources/lib/hudson/project/config-publishers_da.properties b/core/src/main/resources/lib/hudson/project/config-publishers_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..46da1bce1eae6987bd0992e1ae55d33a248649c6 --- /dev/null +++ b/core/src/main/resources/lib/hudson/project/config-publishers_da.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Post-build\ Actions=Post-byg Handlinger diff --git a/core/src/main/resources/lib/hudson/project/config-publishers_de.properties b/core/src/main/resources/lib/hudson/project/config-publishers_de.properties index f887a7d70abe3f3e384dda594a3f780c113d5234..71e28b307e388c9f77fb018fe857074aa0fece9f 100644 --- a/core/src/main/resources/lib/hudson/project/config-publishers_de.properties +++ b/core/src/main/resources/lib/hudson/project/config-publishers_de.properties @@ -20,4 +20,4 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Post-build\ Actions=Post-Build Aktionen +Post-build\ Actions=Post-Build-Aktionen diff --git a/core/src/main/resources/lib/hudson/project/config-publishers_es.properties b/core/src/main/resources/lib/hudson/project/config-publishers_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..a7f21c53e6fcc99dae26ceceb9bc7ef35d3d5659 --- /dev/null +++ b/core/src/main/resources/lib/hudson/project/config-publishers_es.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Post-build\ Actions=Acciones para ejecutar después. diff --git a/core/src/main/resources/lib/hudson/project/config-quietPeriod.jelly b/core/src/main/resources/lib/hudson/project/config-quietPeriod.jelly index 1eb969ce2c29101c984c36fbd71ed1682e55cac0..8bfe02bdbec7ddbb95e5e1b41aaeee0d23d116ed 100644 --- a/core/src/main/resources/lib/hudson/project/config-quietPeriod.jelly +++ b/core/src/main/resources/lib/hudson/project/config-quietPeriod.jelly @@ -28,8 +28,7 @@ THE SOFTWARE. help="/help/project-config/quietPeriod.html"> - + - \ No newline at end of file + diff --git a/core/src/main/resources/lib/hudson/project/config-quietPeriod_da.properties b/core/src/main/resources/lib/hudson/project/config-quietPeriod_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..b58912c7c4d65bfa28ee20aaf970f4bebefd8eba --- /dev/null +++ b/core/src/main/resources/lib/hudson/project/config-quietPeriod_da.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Quiet\ period=Stilleperiode +Number\ of\ seconds=Antal sekunder diff --git a/core/src/main/resources/lib/hudson/project/config-quietPeriod_es.properties b/core/src/main/resources/lib/hudson/project/config-quietPeriod_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..9fa5d98a8c97deeb4c1a3b1da7854c7c134501e6 --- /dev/null +++ b/core/src/main/resources/lib/hudson/project/config-quietPeriod_es.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Quiet\ period=Periodo de espera +Number\ of\ seconds=Segundos diff --git a/core/src/main/resources/lib/hudson/project/config-retryCount.jelly b/core/src/main/resources/lib/hudson/project/config-retryCount.jelly new file mode 100644 index 0000000000000000000000000000000000000000..da0e7c53d272521018e36bc491bd93d36559b608 --- /dev/null +++ b/core/src/main/resources/lib/hudson/project/config-retryCount.jelly @@ -0,0 +1,33 @@ + + + + + + + + + + \ No newline at end of file diff --git a/core/src/main/resources/lib/hudson/project/config-retryCount_da.properties b/core/src/main/resources/lib/hudson/project/config-retryCount_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..7634c486c0ba9a30ad2c930dae2eef7c53bb4d3a --- /dev/null +++ b/core/src/main/resources/lib/hudson/project/config-retryCount_da.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Retry\ Count=Fors\u00f8g igen t\u00e6ller +SCM\ checkout\ retry\ count=Antal SCM checkout fors\u00f8g diff --git a/core/src/main/resources/lib/hudson/project/config-retryCount_de.properties b/core/src/main/resources/lib/hudson/project/config-retryCount_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..ada5935e1cf5b6cf12f91ccd8b5b0658a921be23 --- /dev/null +++ b/core/src/main/resources/lib/hudson/project/config-retryCount_de.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Shinod Mohandas, Simon Wiest +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Retry\ Count=Fehlgeschlagene SCM-Checkouts wiederholen +SCM\ checkout\ retry\ count=Anzahl Checkout Wiederholungsversuche diff --git a/core/src/main/resources/lib/hudson/project/config-retryCount_es.properties b/core/src/main/resources/lib/hudson/project/config-retryCount_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..bb979fba0f1e3959bdedf402d1c02c52fb15b0bc --- /dev/null +++ b/core/src/main/resources/lib/hudson/project/config-retryCount_es.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Retry\ Count=Contador de reintentos +SCM\ checkout\ retry\ count=Contador de reintentos cuando se pregunta al repositorio (SCM checkout) diff --git a/core/src/main/resources/lib/hudson/project/config-retryCount_fr.properties b/core/src/main/resources/lib/hudson/project/config-retryCount_fr.properties new file mode 100644 index 0000000000000000000000000000000000000000..762124e6b476610dde876bb4bd96ca3a72bc3c23 --- /dev/null +++ b/core/src/main/resources/lib/hudson/project/config-retryCount_fr.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Shinod Mohandas +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + + +Retry\ Count=Nombre de r\u00E9-essais +Number\ of\ Retrys\ needed\ if\ checkout\ fails=Nombre de Réessayer n'est pas nécessaire si la caisse +SCM\ checkout\ retry\ count=Nombre de retentatives de checkout du SCM diff --git a/core/src/main/resources/lib/hudson/project/config-retryCount_ja.properties b/core/src/main/resources/lib/hudson/project/config-retryCount_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..137d55e9ff58bb5113069d358dab041a65dfb1ab --- /dev/null +++ b/core/src/main/resources/lib/hudson/project/config-retryCount_ja.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Shinod Mohandas +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Retry\ Count=\u30EA\u30C8\u30E9\u30A4\u6570 +SCM\ checkout\ retry\ count=SCM\u30C1\u30A7\u30C3\u30AF\u30A2\u30A6\u30C8 \u30EA\u30C8\u30E9\u30A4\u6570 diff --git a/core/src/main/resources/lib/hudson/project/config-retryCount_nl.properties b/core/src/main/resources/lib/hudson/project/config-retryCount_nl.properties new file mode 100644 index 0000000000000000000000000000000000000000..a2540fbdd2462c8de610210343458109f1ca88be --- /dev/null +++ b/core/src/main/resources/lib/hudson/project/config-retryCount_nl.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Shinod Mohandas +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + + +Retry\ Count=Aantal pogingen +Number\ of\ Retrys\ needed\ if\ checkout\ fails=Aantal toegelaten pogingen voor het ophalen uit versiecontrole diff --git a/core/src/main/resources/lib/hudson/project/config-retryCount_pt_BR.properties b/core/src/main/resources/lib/hudson/project/config-retryCount_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..7a11aeeb859f13033d854a195580f13e786c9dcf --- /dev/null +++ b/core/src/main/resources/lib/hudson/project/config-retryCount_pt_BR.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Shinod Mohandas +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + + +Retry\ Count= +SCM\ checkout\ retry\ count= diff --git a/core/src/main/resources/lib/hudson/project/config-retryCount_ru.properties b/core/src/main/resources/lib/hudson/project/config-retryCount_ru.properties new file mode 100644 index 0000000000000000000000000000000000000000..eab05d77f462f1a791c6010bd152b432c613dd7e --- /dev/null +++ b/core/src/main/resources/lib/hudson/project/config-retryCount_ru.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Shinod Mohandas +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + + +Retry\ Count= +Number\ of\ Retrys\ needed\ if\ checkout\ fails= diff --git a/core/src/main/resources/lib/hudson/project/config-retryCount_tr.properties b/core/src/main/resources/lib/hudson/project/config-retryCount_tr.properties new file mode 100644 index 0000000000000000000000000000000000000000..eab05d77f462f1a791c6010bd152b432c613dd7e --- /dev/null +++ b/core/src/main/resources/lib/hudson/project/config-retryCount_tr.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Shinod Mohandas +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + + +Retry\ Count= +Number\ of\ Retrys\ needed\ if\ checkout\ fails= diff --git a/core/src/main/resources/lib/hudson/project/config-scm_da.properties b/core/src/main/resources/lib/hudson/project/config-scm_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..524ddfdd1db5ff1311b71b20cd567c0d532d771b --- /dev/null +++ b/core/src/main/resources/lib/hudson/project/config-scm_da.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Source\ Code\ Management=Kildekodestyring (SCM) diff --git a/core/src/main/resources/lib/hudson/project/config-scm_de.properties b/core/src/main/resources/lib/hudson/project/config-scm_de.properties index 80ed2e7a7c7e636390905ca0cc07681116ce5017..5ee19e2beba2ee4f1c4f9083e08a7376e52b04a8 100644 --- a/core/src/main/resources/lib/hudson/project/config-scm_de.properties +++ b/core/src/main/resources/lib/hudson/project/config-scm_de.properties @@ -20,4 +20,4 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Source\ Code\ Management=Source Code Management +Source\ Code\ Management=Source-Code-Management diff --git a/core/src/main/resources/lib/hudson/project/config-scm_es.properties b/core/src/main/resources/lib/hudson/project/config-scm_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..aa217507f683a367e42bc13b0bd8d12dc2a167e3 --- /dev/null +++ b/core/src/main/resources/lib/hudson/project/config-scm_es.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Source\ Code\ Management=Configurar el origen del código fuente diff --git a/core/src/main/resources/lib/hudson/project/config-trigger_da.properties b/core/src/main/resources/lib/hudson/project/config-trigger_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..aaf8f624692945e9d6f6fa5cc93e444a2a095486 --- /dev/null +++ b/core/src/main/resources/lib/hudson/project/config-trigger_da.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Build\ Triggers=Byggestartere diff --git a/core/src/main/resources/lib/hudson/project/config-trigger_de.properties b/core/src/main/resources/lib/hudson/project/config-trigger_de.properties index fbae1093425371bd16fc8ac169671496db08c6da..8ebc9ddd91bfbe9ef62eb84b6871b1b7c55f1d9f 100644 --- a/core/src/main/resources/lib/hudson/project/config-trigger_de.properties +++ b/core/src/main/resources/lib/hudson/project/config-trigger_de.properties @@ -20,4 +20,4 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Build\ Triggers=Build Auslöser +Build\ Triggers=Build-Ausl\u00F6ser diff --git a/core/src/main/resources/lib/hudson/project/config-trigger_es.properties b/core/src/main/resources/lib/hudson/project/config-trigger_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..5b69df43763c1da3ed293ff0edcfa37944ec3c18 --- /dev/null +++ b/core/src/main/resources/lib/hudson/project/config-trigger_es.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Build\ Triggers=Disparadores de ejecuciones diff --git a/core/src/main/resources/lib/hudson/project/config-trigger_zh_TW.properties b/core/src/main/resources/lib/hudson/project/config-trigger_zh_TW.properties new file mode 100644 index 0000000000000000000000000000000000000000..baeaeea9f84d2092a061fb1504a921b76cf768bf --- /dev/null +++ b/core/src/main/resources/lib/hudson/project/config-trigger_zh_TW.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Build\ Triggers=Build Triggers(\u4F7F\u7528Cron\u8A9E\u6CD5) diff --git a/core/src/main/resources/lib/hudson/project/config-upstream-pseudo-trigger.jelly b/core/src/main/resources/lib/hudson/project/config-upstream-pseudo-trigger.jelly index e0ebab1271e1758ce0604c5e233d58ff06404572..4f39fed86cd12d996929ce682fa90911b447f58c 100644 --- a/core/src/main/resources/lib/hudson/project/config-upstream-pseudo-trigger.jelly +++ b/core/src/main/resources/lib/hudson/project/config-upstream-pseudo-trigger.jelly @@ -36,9 +36,8 @@ THE SOFTWARE. checked="${!empty(up)}"> - + - \ No newline at end of file + diff --git a/core/src/main/resources/lib/hudson/project/config-upstream-pseudo-trigger_da.properties b/core/src/main/resources/lib/hudson/project/config-upstream-pseudo-trigger_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..063a1795b55da4650eea0d1664298a17eee5f640 --- /dev/null +++ b/core/src/main/resources/lib/hudson/project/config-upstream-pseudo-trigger_da.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Multiple\ projects\ can\ be\ specified\ like\ ''abc,\ def''=Flere projekter kan specificeres, som ''abc,\ def'' +Projects\ names=Projektnavne +Build\ after\ other\ projects\ are\ built=Byg efter andre projekter har bygget diff --git a/core/src/main/resources/lib/hudson/project/config-upstream-pseudo-trigger_es.properties b/core/src/main/resources/lib/hudson/project/config-upstream-pseudo-trigger_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..77b7da2dccb68f690079551ea59f9852167f566e --- /dev/null +++ b/core/src/main/resources/lib/hudson/project/config-upstream-pseudo-trigger_es.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Build\ after\ other\ projects\ are\ built=Ejecutar después de que otros proyectos se hayan ejecutado +Projects\ names=Nombre de los proyectos +Multiple\ projects\ can\ be\ specified\ like\ ''abc,\ def''=Se pueden especificar múltiples proyectos. (abc, def, ...) + diff --git a/core/src/main/resources/lib/hudson/project/config-upstream-pseudo-trigger_ja.properties b/core/src/main/resources/lib/hudson/project/config-upstream-pseudo-trigger_ja.properties index b92deeacd5c20c296bc2ab10817182633ad5b429..cf4a93de84b8a4d4bc7658e6fc9fbda0be7926a6 100644 --- a/core/src/main/resources/lib/hudson/project/config-upstream-pseudo-trigger_ja.properties +++ b/core/src/main/resources/lib/hudson/project/config-upstream-pseudo-trigger_ja.properties @@ -1,6 +1,6 @@ # The MIT License # -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -22,4 +22,4 @@ Build\ after\ other\ projects\ are\ built=\u4ed6\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u30d3\u30eb\u30c9\u5f8c\u306b\u30d3\u30eb\u30c9 Projects\ names=\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u540d -Multiple\ projects\ can\ be\ specified\ like\ 'abc,\ def'=\u8907\u6570\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3092\u6307\u5b9a\u3059\u308b\u306b\u306fabc, def\u306e\u69d8\u306b\u30ab\u30f3\u30de\u3067\u533a\u5207\u308a\u307e\u3059 +Multiple\ projects\ can\ be\ specified\ like\ 'abc,\ def'=\u8907\u6570\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3092\u6307\u5b9a\u3059\u308b\u306b\u306fabc, def\u306e\u3088\u3046\u306b\u30ab\u30f3\u30de\u3067\u533a\u5207\u308a\u307e\u3059 \ No newline at end of file diff --git a/core/src/main/resources/lib/hudson/project/config-upstream-pseudo-trigger_pt_BR.properties b/core/src/main/resources/lib/hudson/project/config-upstream-pseudo-trigger_pt_BR.properties index cbbc2ee37c3e845bc527ebf674f1b90106fee0f0..3e4246dd64ba0ac8edc9cb9c422255cc06b599ed 100644 --- a/core/src/main/resources/lib/hudson/project/config-upstream-pseudo-trigger_pt_BR.properties +++ b/core/src/main/resources/lib/hudson/project/config-upstream-pseudo-trigger_pt_BR.properties @@ -22,4 +22,5 @@ Build\ after\ other\ projects\ are\ built=Construir ap\u00F3s os outros projetos serem constru\u00EDdos Projects\ names=Nomes dos projetos -Multiple\ projects\ can\ be\ specified\ like\ 'abc,\ def'=Projetos m\u00FAltiplos pode ser especificados como 'abc, def' +Multiple\ projects\ can\ be\ specified\ like\ ''abc,\ def''= +Multiple\ projects\ can\ be\ specified\ like\ 'abc,\ def'= diff --git a/core/src/main/resources/lib/hudson/project/matrix.jelly b/core/src/main/resources/lib/hudson/project/matrix.jelly index f41ee185701ca324a70af742c5f609afd6e69f09..b8338f6f75cac393aba59e73a58a79e0defbeeb7 100644 --- a/core/src/main/resources/lib/hudson/project/matrix.jelly +++ b/core/src/main/resources/lib/hudson/project/matrix.jelly @@ -1,7 +1,7 @@ - + - - ${v} + + + ${v} + diff --git a/core/src/main/resources/lib/hudson/project/matrix_da.properties b/core/src/main/resources/lib/hudson/project/matrix_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..4309fde13fb5b01709c6863b050cc7c3f262194f --- /dev/null +++ b/core/src/main/resources/lib/hudson/project/matrix_da.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Configurations=Konfigurationer +Configuration\ Matrix=Konfigurationsmatrice diff --git a/core/src/main/resources/lib/hudson/project/matrix_es.properties b/core/src/main/resources/lib/hudson/project/matrix_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..e532e7283ec857699b83977aa7e65b536be9bfff --- /dev/null +++ b/core/src/main/resources/lib/hudson/project/matrix_es.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Configurations=Configuraciones +Configuration\ Matrix=Matriz de configuración diff --git a/core/src/main/resources/lib/hudson/project/matrix_fi.properties b/core/src/main/resources/lib/hudson/project/matrix_fi.properties new file mode 100644 index 0000000000000000000000000000000000000000..42c66e45f66a3b0861bf73ecf182b5b6870498f6 --- /dev/null +++ b/core/src/main/resources/lib/hudson/project/matrix_fi.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Configurations=Konfiguraatiot diff --git a/core/src/main/resources/lib/hudson/project/matrix_pt_PT.properties b/core/src/main/resources/lib/hudson/project/matrix_pt_PT.properties new file mode 100644 index 0000000000000000000000000000000000000000..47da6b2726d8b3b2055657e2c30791d990ab1a4b --- /dev/null +++ b/core/src/main/resources/lib/hudson/project/matrix_pt_PT.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Configuration\ Matrix=Matrix de Configura\u00E7\u00F5es diff --git a/core/src/main/resources/lib/hudson/project/projectActionFloatingBox.jelly b/core/src/main/resources/lib/hudson/project/projectActionFloatingBox.jelly index 24044c6b0e2b048002340fdfa32981bfa1c45ad5..b8ea52938108bdc2556eb3ba9e6903a69bec371b 100644 --- a/core/src/main/resources/lib/hudson/project/projectActionFloatingBox.jelly +++ b/core/src/main/resources/lib/hudson/project/projectActionFloatingBox.jelly @@ -28,6 +28,12 @@ THE SOFTWARE.
      + +
      diff --git a/core/src/main/resources/lib/hudson/project/upstream-downstream.jelly b/core/src/main/resources/lib/hudson/project/upstream-downstream.jelly index 2a1c3c4b4b6d53d71f001affc77d2ab30b2b5e84..8fd4795bf33e95e755a1ef8cf389be83810f64cc 100644 --- a/core/src/main/resources/lib/hudson/project/upstream-downstream.jelly +++ b/core/src/main/resources/lib/hudson/project/upstream-downstream.jelly @@ -36,7 +36,7 @@ THE SOFTWARE.
      - +

      ${title}

        @@ -44,7 +44,7 @@ THE SOFTWARE.
      • - +
      • @@ -53,7 +53,6 @@ THE SOFTWARE. - - - - \ No newline at end of file + + + diff --git a/core/src/main/resources/lib/hudson/project/upstream-downstream_da.properties b/core/src/main/resources/lib/hudson/project/upstream-downstream_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..12a5c9e187e3028ddf526ab2ae760406123e47df --- /dev/null +++ b/core/src/main/resources/lib/hudson/project/upstream-downstream_da.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Upstream\ Projects=Upstream Projekter +Downstream\ Projects=Downstream Projekter diff --git a/core/src/main/resources/lib/hudson/project/upstream-downstream_es.properties b/core/src/main/resources/lib/hudson/project/upstream-downstream_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..6162d09b18c6adb8d0017b137d9b2abf03f1f04f --- /dev/null +++ b/core/src/main/resources/lib/hudson/project/upstream-downstream_es.properties @@ -0,0 +1,25 @@ +### +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Downstream\ Projects=Proyectos Hijos +Upstream\ Projects=Proyectos Padres diff --git a/core/src/main/resources/lib/hudson/project/upstream-downstream_fi.properties b/core/src/main/resources/lib/hudson/project/upstream-downstream_fi.properties new file mode 100644 index 0000000000000000000000000000000000000000..184b2600bee1c48afab5ae7d11be0304c33f3be2 --- /dev/null +++ b/core/src/main/resources/lib/hudson/project/upstream-downstream_fi.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Downstream\ Projects=Alavirran projektit +Upstream\ Projects=Yl\u00E4virran projektit diff --git a/core/src/main/resources/lib/hudson/project/upstream-downstream_it.properties b/core/src/main/resources/lib/hudson/project/upstream-downstream_it.properties new file mode 100644 index 0000000000000000000000000000000000000000..4054cfb66f5800fb849a7999b6a5685fcbc040a9 --- /dev/null +++ b/core/src/main/resources/lib/hudson/project/upstream-downstream_it.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Downstream\ Projects=Progetti a valle +Upstream\ Projects=Progetti a monte diff --git a/core/src/main/resources/lib/hudson/project/upstream-downstream_sl.properties b/core/src/main/resources/lib/hudson/project/upstream-downstream_sl.properties new file mode 100644 index 0000000000000000000000000000000000000000..0ae7e0c31284bc7e7dfa9f03e3637675cb23b636 --- /dev/null +++ b/core/src/main/resources/lib/hudson/project/upstream-downstream_sl.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Downstream\ Projects=Projekti spodaj +Upstream\ Projects=Projekti zgoraj diff --git a/core/src/main/resources/lib/hudson/project/upstream-downstream_sv_SE.properties b/core/src/main/resources/lib/hudson/project/upstream-downstream_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..8ac8f43bd514f42350900d0628878aa488d8b8b5 --- /dev/null +++ b/core/src/main/resources/lib/hudson/project/upstream-downstream_sv_SE.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Downstream\ Projects=Underordnade jobb +Upstream\ Projects=\u00D6verordnande jobb diff --git a/core/src/main/resources/lib/hudson/project/upstream-downstream_zh_CN.properties b/core/src/main/resources/lib/hudson/project/upstream-downstream_zh_CN.properties new file mode 100644 index 0000000000000000000000000000000000000000..42ffafccb439881db984b81caf3ca12aa7885f47 --- /dev/null +++ b/core/src/main/resources/lib/hudson/project/upstream-downstream_zh_CN.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Downstream\ Projects=\u4E0B\u6E38\u9879\u76EE +Upstream\ Projects=\u4E0A\u6E38\u9879\u76EE diff --git a/core/src/main/resources/lib/hudson/projectView.jelly b/core/src/main/resources/lib/hudson/projectView.jelly index a25c2508932f4cbad14a81d49c55ac060d408610..731ebbcf76dc9c531c13fbc96a725f867aec6fe5 100644 --- a/core/src/main/resources/lib/hudson/projectView.jelly +++ b/core/src/main/resources/lib/hudson/projectView.jelly @@ -1,7 +1,7 @@ - + + Renders a list of jobs and their key information. + + + Items to disable. + + + The base URL of all job links. Normally ${rootURL}/ + + + If the caller rendered a view tabes, set this to true so that CSS is adjusted accordingly. + + + If non-null, render nested views. + + + Optional Indenter instance used to indent items. + + + List view columns to render. If omitted, the default ones from ListView.getDefaultColumns() are used. + + +
        - - + - + @@ -67,7 +77,7 @@ THE SOFTWARE. - +
        -
        \ No newline at end of file + diff --git a/core/src/main/resources/lib/hudson/propertyTable_da.properties b/core/src/main/resources/lib/hudson/propertyTable_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..2f5ed39b698f5fe983820d8057013e7085863f45 --- /dev/null +++ b/core/src/main/resources/lib/hudson/propertyTable_da.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Value=V\u00e6rdi +Name=Navn diff --git a/core/src/main/resources/lib/hudson/propertyTable_es.properties b/core/src/main/resources/lib/hudson/propertyTable_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..446bd87c837485f959b46e2a955c1c734c3ae49f --- /dev/null +++ b/core/src/main/resources/lib/hudson/propertyTable_es.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Name=Nombre +Value=Valor diff --git a/core/src/main/resources/lib/hudson/propertyTable_ko.properties b/core/src/main/resources/lib/hudson/propertyTable_ko.properties new file mode 100644 index 0000000000000000000000000000000000000000..14e62a0ef9a8cfd73ff4c8a9c5a74a7865a6362b --- /dev/null +++ b/core/src/main/resources/lib/hudson/propertyTable_ko.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Name=\uC774\uB984 +Value=\uAC12 diff --git a/core/src/main/resources/lib/hudson/propertyTable_sv_SE.properties b/core/src/main/resources/lib/hudson/propertyTable_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..34d3ee4d4b9631106cf92265534764bfc9371316 --- /dev/null +++ b/core/src/main/resources/lib/hudson/propertyTable_sv_SE.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Name=Namn +Value=V\u00E4rde diff --git a/core/src/main/resources/lib/hudson/propertyTable_zh_CN.properties b/core/src/main/resources/lib/hudson/propertyTable_zh_CN.properties new file mode 100644 index 0000000000000000000000000000000000000000..3872910d9e3b266eb384c25b7e82aca818a9aa71 --- /dev/null +++ b/core/src/main/resources/lib/hudson/propertyTable_zh_CN.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Name=\u540D\u79F0 +Value=\u503C diff --git a/core/src/main/resources/lib/hudson/propertyTable_zh_TW.properties b/core/src/main/resources/lib/hudson/propertyTable_zh_TW.properties new file mode 100644 index 0000000000000000000000000000000000000000..23753688997af91b92522eed4f34c9b52c68ef98 --- /dev/null +++ b/core/src/main/resources/lib/hudson/propertyTable_zh_TW.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Name=\u540D\u7A31 diff --git a/core/src/main/resources/lib/hudson/queue.jelly b/core/src/main/resources/lib/hudson/queue.jelly index e50114408c1478f27db70fa20f11a1476b4af16b..b04405b4070d9639129622a493c32f7c6acfdbaf 100644 --- a/core/src/main/resources/lib/hudson/queue.jelly +++ b/core/src/main/resources/lib/hudson/queue.jelly @@ -1,7 +1,7 @@ - - - - \ No newline at end of file + + + + + diff --git a/core/src/main/resources/lib/hudson/queue_cs.properties b/core/src/main/resources/lib/hudson/queue_cs.properties new file mode 100644 index 0000000000000000000000000000000000000000..d401f8b0cb4f0bd3821b65e5cc1183c77321eb19 --- /dev/null +++ b/core/src/main/resources/lib/hudson/queue_cs.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Build\ Queue=Fronta \u010Dekaj\u00EDc\u00EDch build\u016F +No\ builds\ in\ the\ queue.=\u017D\u00E1dn\u00FD \u010Dekaj\u00EDc\u00ED build diff --git a/core/src/main/resources/lib/hudson/queue_da.properties b/core/src/main/resources/lib/hudson/queue_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..9e29641e3c19e2cef986b8dd35428587cbb310ac --- /dev/null +++ b/core/src/main/resources/lib/hudson/queue_da.properties @@ -0,0 +1,27 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Unknown\ Task=Ukendt Opgave +No\ builds\ in\ the\ queue.=Ingen byg i k\u00f8en. +Hudson\ is\ going\ to\ shut\ down.\ No\ further\ builds\ will\ be\ performed.=Hudson vil lukke ned, der vil ikke blive udf\u00f8rt flere byg. +cancel=annuller +Build\ Queue=Byggek\u00f8 diff --git a/core/src/main/resources/lib/hudson/queue_de.properties b/core/src/main/resources/lib/hudson/queue_de.properties index ba5b803c81641d69f5fcdffd4e95a62e060f0d82..a8473b765b63ff2e1e37dd7c687d350460fb67fb 100644 --- a/core/src/main/resources/lib/hudson/queue_de.properties +++ b/core/src/main/resources/lib/hudson/queue_de.properties @@ -21,6 +21,7 @@ # THE SOFTWARE. Build\ Queue=Geplante Builds -No\ builds\ in\ the\ queue.=Keine Builds geplant. +No\ builds\ in\ the\ queue.=Keine Builds geplant Hudson\ is\ going\ to\ shut\ down.\ No\ further\ builds\ will\ be\ performed.=Hudson fährt gerade herunter. Es werden keine weiteren Builds ausgeführt. cancel=Abbrechen +Unknown\ Task=Unbekannter Task diff --git a/core/src/main/resources/lib/hudson/queue_el.properties b/core/src/main/resources/lib/hudson/queue_el.properties new file mode 100644 index 0000000000000000000000000000000000000000..05687539d16682618a860c734369ac63d45dbaf5 --- /dev/null +++ b/core/src/main/resources/lib/hudson/queue_el.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Build\ Queue=\u039F\u03C5\u03C1\u03AC Build +No\ builds\ in\ the\ queue.=\u0394\u03B5\u03BD \u03C5\u03C0\u03AC\u03C1\u03C7\u03BF\u03C5\u03BD build \u03C3\u03C4\u03B7\u03BD \u03BF\u03C5\u03C1\u03AC diff --git a/core/src/main/resources/lib/hudson/queue_es.properties b/core/src/main/resources/lib/hudson/queue_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..c95318a20330fdfd4b648e1dfa2b54752f7b2348 --- /dev/null +++ b/core/src/main/resources/lib/hudson/queue_es.properties @@ -0,0 +1,30 @@ +### +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Build\ Queue=Trabajos en la cola +Hudson\ is\ going\ to\ shut\ down.\ No\ further\ builds\ will\ be\ performed.=Hudson va a ser apagado. No se procesarán nuevas tareas. +cancel=cancelar +No\ builds\ in\ the\ queue.=No hay tareas pendientes +Unknown\ Task=Tarea desconocida + + diff --git a/core/src/main/resources/lib/hudson/queue_fi.properties b/core/src/main/resources/lib/hudson/queue_fi.properties new file mode 100644 index 0000000000000000000000000000000000000000..651c9b447369d826af0aab1186c37beeb26fc8d2 --- /dev/null +++ b/core/src/main/resources/lib/hudson/queue_fi.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Build\ Queue=K\u00E4\u00E4nn\u00F6sjono +No\ builds\ in\ the\ queue.=Ei k\u00E4\u00E4nn\u00F6ksi\u00E4 jonossa diff --git a/core/src/main/resources/lib/hudson/queue_fr.properties b/core/src/main/resources/lib/hudson/queue_fr.properties index 1ddca8dc7c27e665c53c5167ca6f8f10b32ef42f..ab6dcbb51b7d908fa07c2e17e73bdc10bd2d6e1a 100644 --- a/core/src/main/resources/lib/hudson/queue_fr.properties +++ b/core/src/main/resources/lib/hudson/queue_fr.properties @@ -1,6 +1,6 @@ # The MIT License # -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Eric Lefevre-Ardant +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Eric Lefevre-Ardant # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -20,8 +20,8 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Build\ Queue=File d''attente des builds -No\ builds\ in\ the\ queue.=Pas de build en attente. +Build\ Queue=File d''attente des constructions +No\ builds\ in\ the\ queue.=Pas de construction en attente. Hudson\ is\ going\ to\ shut\ down.\ No\ further\ builds\ will\ be\ performed.=Hudson est en cours de fermeture. Aucun nouveau build ne sera lancé. cancel=Annuler appears\ to\ be\ stuck=semble être bloqué diff --git a/core/src/main/resources/lib/hudson/queue_hu.properties b/core/src/main/resources/lib/hudson/queue_hu.properties new file mode 100644 index 0000000000000000000000000000000000000000..d3cbf805049c0d884bf39bc6a9a37ebffea26779 --- /dev/null +++ b/core/src/main/resources/lib/hudson/queue_hu.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Build\ Queue=\u00C9p\u00E9t\u00E9si Sor diff --git a/core/src/main/resources/lib/hudson/queue_it.properties b/core/src/main/resources/lib/hudson/queue_it.properties new file mode 100644 index 0000000000000000000000000000000000000000..e7809389b2b21c3661be2b73b0cb857c7ea50477 --- /dev/null +++ b/core/src/main/resources/lib/hudson/queue_it.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Build\ Queue=Coda di build +No\ builds\ in\ the\ queue.=Nessuna build in coda. diff --git a/core/src/main/resources/lib/hudson/queue_ja.properties b/core/src/main/resources/lib/hudson/queue_ja.properties index 28d444e837f22a398d1d6ac8b977f58ed76d654e..ac6d143bdb2b61e9be02fbfa49d10e410d14df09 100644 --- a/core/src/main/resources/lib/hudson/queue_ja.properties +++ b/core/src/main/resources/lib/hudson/queue_ja.properties @@ -1,6 +1,6 @@ # The MIT License # -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe, id:cactusman +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe, id:cactusman # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -25,4 +25,4 @@ No\ builds\ in\ the\ queue.=\u306A\u3057 Hudson\ is\ going\ to\ shut\ down.\ No\ further\ builds\ will\ be\ performed.=\ Hudson\u306F\u7D42\u4E86\u6E96\u5099\u4E2D\u306E\u305F\u3081\u30D3\u30EB\u30C9\u306F\u5B9F\u884C\u3055\u308C\u307E\u305B\u3093\u3002 cancel=\u30AD\u30E3\u30F3\u30BB\u30EB -appears\ to\ be\ stuck=\u30B9\u30BF\u30C3\u30AF \ No newline at end of file +Unknown\ Task=\u672A\u77E5\u306E\u30BF\u30B9\u30AF diff --git a/core/src/main/resources/lib/hudson/queue_ko.properties b/core/src/main/resources/lib/hudson/queue_ko.properties index 04aa9ef1e2975972ae5c8911c53b52cec9b89e1f..0ca9f607dcccc2eca8d891d620f6b4ea76c7d6c8 100644 --- a/core/src/main/resources/lib/hudson/queue_ko.properties +++ b/core/src/main/resources/lib/hudson/queue_ko.properties @@ -20,8 +20,8 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Build\ Queue=\uBE4C\uB4DC \uB300\uAE30 \uBAA9\uB85D -Hudson\ is\ going\ to\ shut\ down.\ No\ further\ builds\ will\ be\ performed.=\ - Hudson\uC774 \uC885\uB8CC \uC900\uBE44\uC911\uC774\uAE30 \uB54C\uBB38\uC5D0 \uBE4C\uB4DC\uB97C \uC2E4\uD589\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. -cancel=\uCDE8\uC18C -No\ builds\ in\ the\ queue.=\uBE4C\uB4DC \uB300\uAE30 \uD56D\uBAA9 \uC5C6\uC2B5\uB2C8\uB2E4. +Build\ Queue=\uBE4C\uB4DC \uB300\uAE30 \uBAA9\uB85D +Hudson\ is\ going\ to\ shut\ down.\ No\ further\ builds\ will\ be\ performed.=\ + Hudson\uC774 \uC885\uB8CC \uC900\uBE44\uC911\uC774\uAE30 \uB54C\uBB38\uC5D0 \uBE4C\uB4DC\uB97C \uC2E4\uD589\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. +cancel=\uCDE8\uC18C +No\ builds\ in\ the\ queue.=\uBE4C\uB4DC \uB300\uAE30 \uD56D\uBAA9\uC774 \uC5C6\uC2B5\uB2C8\uB2E4. diff --git a/core/src/main/resources/lib/hudson/queue_lt.properties b/core/src/main/resources/lib/hudson/queue_lt.properties new file mode 100644 index 0000000000000000000000000000000000000000..cb631a8e20f248bec9b080da87e05c5c22861761 --- /dev/null +++ b/core/src/main/resources/lib/hudson/queue_lt.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Build\ Queue=U\u017Eduo\u010Di\u0173 eil\u0117 +No\ builds\ in\ the\ queue.=U\u017Eduo\u010Di\u0173 eil\u0117 tu\u0161\u010Dia. diff --git a/core/src/main/resources/lib/hudson/queue_nb_NO.properties b/core/src/main/resources/lib/hudson/queue_nb_NO.properties new file mode 100644 index 0000000000000000000000000000000000000000..a479e2a12295584d82b7fcc44a97be193588e441 --- /dev/null +++ b/core/src/main/resources/lib/hudson/queue_nb_NO.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Build\ Queue=Byggk\u00F8 +No\ builds\ in\ the\ queue.=Ingen bygger er i k\u00F8en. diff --git a/core/src/main/resources/lib/hudson/queue_pt_BR.properties b/core/src/main/resources/lib/hudson/queue_pt_BR.properties index c4f23c4667fe693393cdab92cb030f06acee850d..bf209c723b4ce9e14f70bff04bd587af00f94670 100644 --- a/core/src/main/resources/lib/hudson/queue_pt_BR.properties +++ b/core/src/main/resources/lib/hudson/queue_pt_BR.properties @@ -24,3 +24,4 @@ Build\ Queue=Fila de Constru\u00E7\u00E3o No\ builds\ in\ the\ queue.=Nenhuma constru\u00E7\u00E3o na fila. Hudson\ is\ going\ to\ shut\ down.\ No\ further\ builds\ will\ be\ performed.=Hudson est\u00E1 sendo desligado. Nenhuma constru\u00E7\u00E3o futura ser\u00E1 executada. cancel=cancelar +Unknown\ Task= diff --git a/core/src/main/resources/lib/hudson/queue_pt_PT.properties b/core/src/main/resources/lib/hudson/queue_pt_PT.properties new file mode 100644 index 0000000000000000000000000000000000000000..3a9989748684098610943ecfe51745f5bb3cf93c --- /dev/null +++ b/core/src/main/resources/lib/hudson/queue_pt_PT.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Build\ Queue=Fila de Compila\u00E7\u00F5es +No\ builds\ in\ the\ queue.=Sem compila\u00E7\u00F5es em espera. diff --git a/core/src/main/resources/lib/hudson/queue_sv_SE.properties b/core/src/main/resources/lib/hudson/queue_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..2138867477e9635c0eee59bb5bbc288dbc671306 --- /dev/null +++ b/core/src/main/resources/lib/hudson/queue_sv_SE.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Build\ Queue=Byggk\u00F6 +No\ builds\ in\ the\ queue.=Inga byggen \u00E4r k\u00F6ade. +cancel=avbryt diff --git a/core/src/main/resources/lib/hudson/queue_zh_CN.properties b/core/src/main/resources/lib/hudson/queue_zh_CN.properties new file mode 100644 index 0000000000000000000000000000000000000000..a83b288e7eb31cbe61299ac5f3221e90d3550edd --- /dev/null +++ b/core/src/main/resources/lib/hudson/queue_zh_CN.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Build\ Queue=\u6784\u5efa\u961f\u5217 +Hudson\ is\ going\ to\ shut\ down.\ No\ further\ builds\ will\ be\ performed.=\u7cfb\u7edf\u6b63\u5728\u5173\u95ed\u3002\u6ca1\u6709\u66f4\u591a\u7684\u6784\u5efa\u4f1a\u88ab\u6267\u884c\u3002 +No\ builds\ in\ the\ queue.=\u5f53\u524d\u961f\u5217\u6ca1\u6709\u6784\u5efa\u4efb\u52a1 +cancel=\u53d6\u6d88 diff --git a/core/src/main/resources/lib/hudson/queue_zh_TW.properties b/core/src/main/resources/lib/hudson/queue_zh_TW.properties new file mode 100644 index 0000000000000000000000000000000000000000..dcafb3797d6b16c0261168ffade9c14688e7bdd2 --- /dev/null +++ b/core/src/main/resources/lib/hudson/queue_zh_TW.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Build\ Queue=\u5EFA\u69CB\u4F47\u5217 +No\ builds\ in\ the\ queue.=\u4F47\u5217\u4E2D\u6C92\u6709\u5EFA\u69CB diff --git a/core/src/main/resources/lib/hudson/rssBar-with-iconSize.jelly b/core/src/main/resources/lib/hudson/rssBar-with-iconSize.jelly index 2f0b574ec8e328149162903128ef7cb7e72e533a..1bf647316dd33434d162173ebe6b22bd934b5ea7 100644 --- a/core/src/main/resources/lib/hudson/rssBar-with-iconSize.jelly +++ b/core/src/main/resources/lib/hudson/rssBar-with-iconSize.jelly @@ -1,7 +1,7 @@ - - - - - - - - - ${title} - - - ${title} - - - - - - - -
        ${%Icon}: - - - - - -
        -
        \ No newline at end of file + + + + diff --git a/core/src/main/resources/lib/hudson/rssBar-with-iconSize_fr.properties b/core/src/main/resources/lib/hudson/rssBar-with-iconSize_fr.properties deleted file mode 100644 index df07dbdf51860f77191c2d1aba35c87d627c7805..0000000000000000000000000000000000000000 --- a/core/src/main/resources/lib/hudson/rssBar-with-iconSize_fr.properties +++ /dev/null @@ -1,23 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Eric Lefevre-Ardant -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Icon=Icônes diff --git a/core/src/main/resources/lib/hudson/rssBar-with-iconSize_ko.properties b/core/src/main/resources/lib/hudson/rssBar-with-iconSize_ko.properties deleted file mode 100644 index a5e7cea48cb322a02dfaa8e4170595b894d477c6..0000000000000000000000000000000000000000 --- a/core/src/main/resources/lib/hudson/rssBar-with-iconSize_ko.properties +++ /dev/null @@ -1,23 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Sung Kim, id:cactusman -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Icon=\uC544\uC774\uCF58 diff --git a/core/src/main/resources/lib/hudson/rssBar-with-iconSize_ru.properties b/core/src/main/resources/lib/hudson/rssBar-with-iconSize_ru.properties index 29ccaeddb131af4c2e8ef1ff250187d708538571..01d1fd8059e0aeba388698e2181e21e3d672a67f 100644 --- a/core/src/main/resources/lib/hudson/rssBar-with-iconSize_ru.properties +++ b/core/src/main/resources/lib/hudson/rssBar-with-iconSize_ru.properties @@ -1,17 +1,17 @@ # The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Mike Salnikov -# +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal # in the Software without restriction, including without limitation the rights # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell # copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: -# +# # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. -# +# # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -20,4 +20,4 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Icon=\u0421\u0438\u043c\u0432\u043e\u043b +Icon=\u0417\u043D\u0430\u0447\u043E\u043A diff --git a/core/src/main/resources/lib/hudson/rssBar_ca.properties b/core/src/main/resources/lib/hudson/rssBar_ca.properties new file mode 100644 index 0000000000000000000000000000000000000000..8c751c051cb925931c50bf9fbb78c8fadf61a593 --- /dev/null +++ b/core/src/main/resources/lib/hudson/rssBar_ca.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Legend=Llegenda +for\ all=tots +for\ failures=fracassos diff --git a/core/src/main/resources/lib/hudson/rssBar_da.properties b/core/src/main/resources/lib/hudson/rssBar_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..20668ce13036880a394adb8c5b9d514671bb32ee --- /dev/null +++ b/core/src/main/resources/lib/hudson/rssBar_da.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +for\ just\ latest\ builds=kun for seneste byg +for\ failures=kun for fejlede byg +for\ all=for alle byg +Legend=Overskrift diff --git a/core/src/main/resources/lib/hudson/rssBar_de.properties b/core/src/main/resources/lib/hudson/rssBar_de.properties index e8d1e7f45cfc0eb2519f0b3d7116f70ff7f76f96..30babbf953a3bb15d7b24b604dc35896366f7efd 100644 --- a/core/src/main/resources/lib/hudson/rssBar_de.properties +++ b/core/src/main/resources/lib/hudson/rssBar_de.properties @@ -23,4 +23,4 @@ Legend=Legende for\ all=Alle Builds for\ failures=Nur Fehlschläge -for\ just\ latest\ builds=Nur jeweils letzte Builds \ No newline at end of file +for\ just\ latest\ builds=Nur jeweils letzte Builds diff --git a/core/src/main/resources/lib/hudson/rssBar_el.properties b/core/src/main/resources/lib/hudson/rssBar_el.properties new file mode 100644 index 0000000000000000000000000000000000000000..57e2a294f59a76ec9c243e86c2bde5bebbfb134d --- /dev/null +++ b/core/src/main/resources/lib/hudson/rssBar_el.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Legend=\u03A5\u03C0\u03CC\u03BC\u03BD\u03B7\u03BC\u03B1 +for\ all=\u03B3\u03B9\u03B1 \u03CC\u03BB\u03B1 +for\ failures=\u03B3\u03B9\u03B1 \u03C4\u03B9\u03C2 \u03B1\u03C0\u03BF\u03C4\u03C5\u03C7\u03AF\u03B5\u03C2 +for\ just\ latest\ builds=\u03B3\u03B9\u03B1 \u03C4\u03B1 \u03C4\u03B5\u03BB\u03B5\u03C5\u03C4\u03B1\u03AF\u03B1 Build diff --git a/core/src/main/resources/lib/hudson/rssBar_es.properties b/core/src/main/resources/lib/hudson/rssBar_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..c199eabafff66c85300141a08350184830a2d948 --- /dev/null +++ b/core/src/main/resources/lib/hudson/rssBar_es.properties @@ -0,0 +1,28 @@ +### +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Legend=Suscribirse a RSS de: +for\ all=todos los trabajos +for\ failures=sólo los fallidos +for\ just\ latest\ builds=los más recientes + diff --git a/core/src/main/resources/lib/hudson/rssBar_fi.properties b/core/src/main/resources/lib/hudson/rssBar_fi.properties new file mode 100644 index 0000000000000000000000000000000000000000..60543dcc57c0d74a31b002489197e3d873fa2f7d --- /dev/null +++ b/core/src/main/resources/lib/hudson/rssBar_fi.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Legend=Selite +for\ all=kaikista +for\ failures=ep\u00E4onnistuneista +for\ just\ latest\ builds=viimeisimmist\u00E4 diff --git a/core/src/main/resources/lib/hudson/rssBar_fr.properties b/core/src/main/resources/lib/hudson/rssBar_fr.properties index 2258687df576f75a669996c063c55ef5752a8c00..29627e43bf2423ddefa6b06666438131609c61a4 100644 --- a/core/src/main/resources/lib/hudson/rssBar_fr.properties +++ b/core/src/main/resources/lib/hudson/rssBar_fr.properties @@ -21,7 +21,7 @@ # THE SOFTWARE. Legend=Légende -for\ all=tous les builds +for\ all=toutes les constructions for\ failures=tous les échecs -for\ just\ latest\ builds=pour les derniers builds seulement +for\ just\ latest\ builds=pour les derni\u00E8res constructions seulement diff --git a/core/src/main/resources/lib/hudson/rssBar_hu.properties b/core/src/main/resources/lib/hudson/rssBar_hu.properties new file mode 100644 index 0000000000000000000000000000000000000000..089bfb6a8bd7c629f7de7ac7f71886ee28f112f1 --- /dev/null +++ b/core/src/main/resources/lib/hudson/rssBar_hu.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Legend=Jelmagyar\u00E1zat +for\ all=mindegyikre +for\ failures=sikertelenekre +for\ just\ latest\ builds=ut\u00F3bbi \u00E9p\u00EDt\u00E9sekre diff --git a/core/src/main/resources/lib/hudson/rssBar_it.properties b/core/src/main/resources/lib/hudson/rssBar_it.properties new file mode 100644 index 0000000000000000000000000000000000000000..785450a801dfca3c76e1382aa1e12e969c7ca7ef --- /dev/null +++ b/core/src/main/resources/lib/hudson/rssBar_it.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Legend=Legenda +for\ all=tutti +for\ failures=solo fallimenti +for\ just\ latest\ builds=solo le ultime build diff --git a/core/src/main/resources/lib/hudson/rssBar_ko.properties b/core/src/main/resources/lib/hudson/rssBar_ko.properties new file mode 100644 index 0000000000000000000000000000000000000000..63a1ba8867c7cdbbbd856eb683cae31db9bfc2b4 --- /dev/null +++ b/core/src/main/resources/lib/hudson/rssBar_ko.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Legend=\uBC94\uB840 +for\ all=\uBAA8\uB4E0 \uAC83\uC5D0 \uB300\uD574 +for\ failures=\uC2E4\uD328\uC5D0 \uB300\uD574 +for\ just\ latest\ builds=\uB9C8\uC9C0\uB9C9 \uBE4C\uB4DC\uC5D0 \uB300\uD574 diff --git a/core/src/main/resources/lib/hudson/rssBar_lt.properties b/core/src/main/resources/lib/hudson/rssBar_lt.properties new file mode 100644 index 0000000000000000000000000000000000000000..5f439b233096ba67559bf397b35fa6b9eafbdaac --- /dev/null +++ b/core/src/main/resources/lib/hudson/rssBar_lt.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Legend=Legenda +for\ all=visiems +for\ failures=nepavykusios u\u017Eduotims +for\ just\ latest\ builds=tik paskutinioms u\u017Eduotims diff --git a/core/src/main/resources/lib/hudson/rssBar_nb_NO.properties b/core/src/main/resources/lib/hudson/rssBar_nb_NO.properties new file mode 100644 index 0000000000000000000000000000000000000000..011269ae4563fd278e7a5e076432370498f01d7b --- /dev/null +++ b/core/src/main/resources/lib/hudson/rssBar_nb_NO.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Legend=Beskrivelse +for\ all=for alle +for\ failures=for feil +for\ just\ latest\ builds=bare for de siste byggene diff --git a/core/src/main/resources/lib/hudson/rssBar_nl.properties b/core/src/main/resources/lib/hudson/rssBar_nl.properties index d806303b97f62111f0ae63add57b19ade6287e96..8bbf14a2714dfffb1eaace21419a94d0d0f3f83e 100644 --- a/core/src/main/resources/lib/hudson/rssBar_nl.properties +++ b/core/src/main/resources/lib/hudson/rssBar_nl.properties @@ -20,6 +20,7 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Legend=Legende +Legend=Legenda for\ all=alle for\ failures=enkel gefaalde +for\ just\ latest\ builds=enkel voor de laatste bouwpogingen diff --git a/core/src/main/resources/lib/hudson/rssBar_pt_BR.properties b/core/src/main/resources/lib/hudson/rssBar_pt_BR.properties index 7368f83ae13a5d68f365a08fcbe60227901706a0..86b2deb3798a56bba8c1607d4738991b381d81ae 100644 --- a/core/src/main/resources/lib/hudson/rssBar_pt_BR.properties +++ b/core/src/main/resources/lib/hudson/rssBar_pt_BR.properties @@ -23,3 +23,4 @@ Legend=Legenda for\ all=para todos for\ failures=para falhas +for\ just\ latest\ builds=apenas as \u00FAltimas constru\u00E7\u00F5es diff --git a/core/src/main/resources/lib/hudson/rssBar_pt_PT.properties b/core/src/main/resources/lib/hudson/rssBar_pt_PT.properties new file mode 100644 index 0000000000000000000000000000000000000000..fea972cb1abe3edd4fb0c822d69a20c5d58fecbc --- /dev/null +++ b/core/src/main/resources/lib/hudson/rssBar_pt_PT.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Legend=Legenda +for\ all=para todos +for\ failures=para falhas +for\ just\ latest\ builds=s\u00F3 para \u00FAltimas compila\u00E7\u00F5es diff --git a/core/src/main/resources/lib/hudson/rssBar_ru.properties b/core/src/main/resources/lib/hudson/rssBar_ru.properties index ab4d3c7e40d09030e4fea6e909f1ea3e41bd7bb7..da3e3fd8e5962bc18702f3508c22e1dcd04b6753 100644 --- a/core/src/main/resources/lib/hudson/rssBar_ru.properties +++ b/core/src/main/resources/lib/hudson/rssBar_ru.properties @@ -23,3 +23,4 @@ Legend=\u041b\u0435\u0433\u0435\u043d\u0434\u0430 for\ all=\u0412\u0441\u0435 \u0441\u0431\u043e\u0440\u043a\u0438 for\ failures=\u0412\u0441\u0435 \u043d\u0435\u0443\u0434\u0430\u0447\u043d\u044b\u0435 +for\ just\ latest\ builds=\u041F\u043E\u0441\u043B\u0435\u0434\u043D\u0438\u0435 \u0441\u0431\u043E\u0440\u043A\u0438 diff --git a/core/src/main/resources/lib/hudson/rssBar_sv_SE.properties b/core/src/main/resources/lib/hudson/rssBar_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..5568c7112f516a6fcc3c8e3ced9da5199f00ef24 --- /dev/null +++ b/core/src/main/resources/lib/hudson/rssBar_sv_SE.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Legend=F\u00F6rklaring +for\ all=f\u00F6r alla +for\ failures=f\u00F6r misslyckade +for\ just\ latest\ builds=f\u00F6r senaste byggen diff --git a/core/src/main/resources/lib/hudson/rssBar_zh_CN.properties b/core/src/main/resources/lib/hudson/rssBar_zh_CN.properties new file mode 100644 index 0000000000000000000000000000000000000000..4c8655f849edbe0c2726ca6b6780734ec68516d0 --- /dev/null +++ b/core/src/main/resources/lib/hudson/rssBar_zh_CN.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Legend=\u56FE\u4F8B +for\ all=\u5168\u90E8 +for\ failures=\u5931\u8D25 +for\ just\ latest\ builds=\u6700\u540E\u4E00\u6B21 diff --git a/core/src/main/resources/lib/hudson/rssBar_zh_TW.properties b/core/src/main/resources/lib/hudson/rssBar_zh_TW.properties new file mode 100644 index 0000000000000000000000000000000000000000..11fed315f493e030dbf44105795ff108c60916d6 --- /dev/null +++ b/core/src/main/resources/lib/hudson/rssBar_zh_TW.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Legend=\u5716\u4F8B +for\ all=\u5168\u90E8 +for\ failures=\u5931\u6557 +for\ just\ latest\ builds=\u6700\u65B0 diff --git a/core/src/main/resources/lib/hudson/scriptConsole.jelly b/core/src/main/resources/lib/hudson/scriptConsole.jelly index 5eb09724c9c91f5ddfba66ae4c4b7733b39c89d5..05f7e6ac2d7ca7967adb7d0e77ec9acb3ceaa39d 100644 --- a/core/src/main/resources/lib/hudson/scriptConsole.jelly +++ b/core/src/main/resources/lib/hudson/scriptConsole.jelly @@ -1,7 +1,7 @@ - + diff --git a/core/src/main/resources/lib/hudson/scriptConsole_da.properties b/core/src/main/resources/lib/hudson/scriptConsole_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..4593448d0097efb52f5803bb662db0de579df4a2 --- /dev/null +++ b/core/src/main/resources/lib/hudson/scriptConsole_da.properties @@ -0,0 +1,29 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Result=Resultat +Run=K\u00f8r +Script\ Console=Skriptkonsol +description=Indtast et Groovyskript og \ +k\u00f8r det p\u00e5 serveren. Nyttigt til fejlfinding og diagnostik. \ +Benyt ''println'' kommandoen for at se output (hvis du bruger System.out, \ +vil output g\u00e5 til serverens stdout, hvilket kan v\u00e6re sv\u00e6rere at finde.) Eksempel: diff --git a/core/src/main/resources/lib/hudson/scriptConsole_de.properties b/core/src/main/resources/lib/hudson/scriptConsole_de.properties index 4635c4173deca2904dd8e9d2c0fb24c4d50f942e..73e2b0cc853041cc7b750606bc6f44b4549b1a05 100644 --- a/core/src/main/resources/lib/hudson/scriptConsole_de.properties +++ b/core/src/main/resources/lib/hudson/scriptConsole_de.properties @@ -23,3 +23,8 @@ Script\ Console=Skript-Konsole Result=Ergebnis Run=Ausführen +description=Geben Sie ein beliebiges Groovy-Skript \ + ein und führen Sie dieses auf dem Server aus. Dies ist nützlich bei der Fehlersuche und zur Diagnostik. \ + Verwenden Sie das ''println''-Kommando, um Ausgaben sichtbar zu machen (wenn Sie System.out \ + verwenden, gehen die Ausgaben auf die Standardausgabe (STDOUT) des Servers, die schwieriger \ + einzusehen ist). Beispiel: diff --git a/core/src/main/resources/lib/hudson/scriptConsole_es.properties b/core/src/main/resources/lib/hudson/scriptConsole_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..ed09489291466d4db1d71a1c66d6fa97d30a84fd --- /dev/null +++ b/core/src/main/resources/lib/hudson/scriptConsole_es.properties @@ -0,0 +1,31 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +description=\ + Escribe un ''script'' Groovy script y \ + ejecutaló en el servidor. Es útil para depurar e investigar problemas. \ + Usa ''println'' para ver la salida (si usas System.out, se escribirá \ + en la salida ''stdout'' del servidor, lo que es más difícil de visualizar). Ejemplo: + +Result=Resultado +Run=Ejecutar +Script\ Console=Consola de scripts diff --git a/core/src/main/resources/lib/hudson/scriptConsole_it.properties b/core/src/main/resources/lib/hudson/scriptConsole_it.properties new file mode 100644 index 0000000000000000000000000000000000000000..2637aa3780c00f1c7845a7d38e926bb99df293fa --- /dev/null +++ b/core/src/main/resources/lib/hudson/scriptConsole_it.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Result=Risultato +Run=Esegui +Script\ Console=Console Script diff --git a/core/src/main/resources/lib/hudson/scriptConsole_ja.properties b/core/src/main/resources/lib/hudson/scriptConsole_ja.properties index aca50d489b3d9e218dcee66ce7bbe534ded24c6f..662ac273a1937ee7de3a7d774462883ff72d9d1b 100644 --- a/core/src/main/resources/lib/hudson/scriptConsole_ja.properties +++ b/core/src/main/resources/lib/hudson/scriptConsole_ja.properties @@ -26,5 +26,5 @@ Result=\u7D50\u679C description=\ \u4EFB\u610F\u306EGroovy\u30B9\u30AF\u30EA\u30D7\u30C8\u3092\u5165\u529B\u3057\u3066\u3001\ \u30B5\u30FC\u30D0\u30FC\u4E0A\u3067\u5B9F\u884C\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u30C8\u30E9\u30D6\u30EB\u30B7\u30E5\u30FC\u30C6\u30A3\u30F3\u30B0\u3084\u8A3A\u65AD\u306B\u4FBF\u5229\u3067\u3059\u3002\ - \u51FA\u529B\u3092\u898B\u308B\u306B\u306F''printrn''\u30B3\u30DE\u30F3\u30C9\u3092\u4F7F\u7528\u3057\u307E\u3059\ + \u51FA\u529B\u3092\u898B\u308B\u306B\u306F''println''\u30B3\u30DE\u30F3\u30C9\u3092\u4F7F\u7528\u3057\u307E\u3059\ (System.out\u3092\u4F7F\u7528\u3059\u308B\u3068\u30B5\u30FC\u30D0\u30FC\u306E\u6A19\u6E96\u51FA\u529B\u306B\u51FA\u529B\u3055\u308C\u307E\u3059\u304C\u3001\u898B\u306B\u304F\u3044\u3067\u3059\uFF09\u3002\u4F8B: \ No newline at end of file diff --git a/core/src/main/resources/lib/hudson/scriptConsole_ko.properties b/core/src/main/resources/lib/hudson/scriptConsole_ko.properties new file mode 100644 index 0000000000000000000000000000000000000000..0005c2f67f7baec310525cc5816faf4c96b75294 --- /dev/null +++ b/core/src/main/resources/lib/hudson/scriptConsole_ko.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Run=\uC2E4\uD589 +Script\ Console=\uC2A4\uD06C\uB9BD\uD2B8 \uCF58\uC194 diff --git a/core/src/main/resources/lib/hudson/scriptConsole_nl.properties b/core/src/main/resources/lib/hudson/scriptConsole_nl.properties index 4510fcf07f13ac1be823b18e14b421ad76585ac2..68b9130c6f38bdc9358edfbc6dd749b512814afd 100644 --- a/core/src/main/resources/lib/hudson/scriptConsole_nl.properties +++ b/core/src/main/resources/lib/hudson/scriptConsole_nl.properties @@ -23,3 +23,4 @@ Script\ Console=Scriptconsole Run=Voer uit Result=Resultaat +description=Geef een willekeurig Groovy script in en voer het uit op de server. Dit is nuttig voor troubleshooting en het stellen van diagnoses. Gebruik het "println"-commando om uitvoer te zien (wanneer je System.out gebruikt, gaat de uitvoer naar de stdout van de server, en deze is moeilijker te bekijken.) Bijvoorbeeld: diff --git a/core/src/main/resources/lib/hudson/scriptConsole_pt_BR.properties b/core/src/main/resources/lib/hudson/scriptConsole_pt_BR.properties index 2dfc8ecafe4fd924b3f5e67b3c4ac15becd2abda..9b13d81e24ea2b73caedd827c3728d56dd4e752f 100644 --- a/core/src/main/resources/lib/hudson/scriptConsole_pt_BR.properties +++ b/core/src/main/resources/lib/hudson/scriptConsole_pt_BR.properties @@ -23,3 +23,9 @@ Script\ Console=Console de Script Run=Executar Result=Resultado +# \ +# Type in an arbitrary Groovy script and \ +# execute it on the server. Useful for trouble-shooting and diagnostics. \ +# Use the ''println'' command to see the output (if you use System.out, \ +# it will go to the server''s stdout, which is harder to see.) Example: +description= diff --git a/core/src/main/resources/lib/hudson/scriptConsole_sv_SE.properties b/core/src/main/resources/lib/hudson/scriptConsole_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..d3afc28963f1b99c8e9a3f8e4d96f5019393ab5c --- /dev/null +++ b/core/src/main/resources/lib/hudson/scriptConsole_sv_SE.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Run=K\u00F6r +Script\ Console=Skriptkonsoll +description=Skriv in ett godtyckligt Groovy skript och k\u00F6r den p\u00E5 noden. Detta \u00E4r anv\u00E4ndbart vid fels\u00F6kning och diagnostik. Anv\u00E4nd''''println''''kommandot f\u00F6r att se resultatet (om du anv\u00E4nder System.out kommer det att g\u00E5 till serverns standard ut, som \u00E4r sv\u00E5rare att se.) Exempel: diff --git a/core/src/main/resources/lib/hudson/scriptConsole_zh_CN.properties b/core/src/main/resources/lib/hudson/scriptConsole_zh_CN.properties new file mode 100644 index 0000000000000000000000000000000000000000..233f2f11b125e4e67033ff644b4bf0cb92a5aad4 --- /dev/null +++ b/core/src/main/resources/lib/hudson/scriptConsole_zh_CN.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Run=\u8FD0\u884C +Script\ Console=\u811A\u672C\u547D\u4EE4\u884C diff --git a/core/src/main/resources/lib/hudson/test-result.jelly b/core/src/main/resources/lib/hudson/test-result.jelly index b09efc989bdbb31155531e3a0cd805fe967314fc..817401cce4bd08de438be2214d473eeff670665c 100644 --- a/core/src/main/resources/lib/hudson/test-result.jelly +++ b/core/src/main/resources/lib/hudson/test-result.jelly @@ -22,12 +22,13 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --> - + + Evaluates to a sstring that reports the test result number in text, like "(5 failures / +3)". + + Either the "it" has to be available in the context or specified as an attribute. + + (${%no tests}) diff --git a/core/src/main/resources/lib/hudson/test-result_da.properties b/core/src/main/resources/lib/hudson/test-result_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..466fc050c00f9c2772e0de3321473e2ca39ac112 --- /dev/null +++ b/core/src/main/resources/lib/hudson/test-result_da.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +no\ failures=ingen fejlede +1failure=1 fejlet {0} +multifailures={0} fejlede {1} +no\ tests=ingen test diff --git a/core/src/main/resources/lib/hudson/test-result_es.properties b/core/src/main/resources/lib/hudson/test-result_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..a65beaebe4c2cb89fbd91a42ad1564649deef51d --- /dev/null +++ b/core/src/main/resources/lib/hudson/test-result_es.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +1failure=1 fallo {0} +multifailures={0} fallos {1} +no\ failures=Sin fallos +no\ tests=Sin tests diff --git a/core/src/main/resources/lib/hudson/test-result_fi.properties b/core/src/main/resources/lib/hudson/test-result_fi.properties new file mode 100644 index 0000000000000000000000000000000000000000..14ac93b17956cc199002eb8ef9e6a3c3048be753 --- /dev/null +++ b/core/src/main/resources/lib/hudson/test-result_fi.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +1failure=1 ep\u00E4onnistunut {0} +no\ failures=ei virheit\u00E4 +no\ tests=ei testej\u00E4 diff --git a/core/src/main/resources/lib/hudson/test-result_it.properties b/core/src/main/resources/lib/hudson/test-result_it.properties new file mode 100644 index 0000000000000000000000000000000000000000..18a231612dc3a7114c0da319d5d7f265d6629214 --- /dev/null +++ b/core/src/main/resources/lib/hudson/test-result_it.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +multifailures="{0} fallimenti {1}" +no\ failures=nessun errore diff --git a/core/src/main/resources/lib/hudson/test-result_nl.properties b/core/src/main/resources/lib/hudson/test-result_nl.properties index ef8d3884cb6f56304fc5426d61c12e75a23690fc..0a2d14455663f58a665fbff3fb6a721ee4d68616 100644 --- a/core/src/main/resources/lib/hudson/test-result_nl.properties +++ b/core/src/main/resources/lib/hudson/test-result_nl.properties @@ -21,6 +21,6 @@ # THE SOFTWARE. no\ tests=Geen testen beschikbaar -no\ failures=Geen gefaalde testen. +no\ failures=geen gefaalde testen 1failure=Er faalde 1 test: {0} multifailures= {0} gefaalde testen {1} diff --git a/core/src/main/resources/lib/hudson/test-result_sv_SE.properties b/core/src/main/resources/lib/hudson/test-result_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..873bf6dd3e68d51005033bdb61d4690c0c25fe32 --- /dev/null +++ b/core/src/main/resources/lib/hudson/test-result_sv_SE.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +1failure=1 fel {0} +multifailures="{0} fel {1}" +no\ failures=inga fallerande tester diff --git a/core/src/main/resources/lib/hudson/test-result_zh_TW.properties b/core/src/main/resources/lib/hudson/test-result_zh_TW.properties new file mode 100644 index 0000000000000000000000000000000000000000..bb734813cbaf0ce0d7b1ce4c9fcf24b74cf11b15 --- /dev/null +++ b/core/src/main/resources/lib/hudson/test-result_zh_TW.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +multifailures="{0} \u5931\u6557 {1}" diff --git a/core/src/main/resources/lib/layout/header.jelly b/core/src/main/resources/lib/layout/header.jelly index fb229c3d0d383e9d580898fe313d46fb2f7f0905..53f2667da525a3d32a0ab60c9c0b86d3a35c909a 100644 --- a/core/src/main/resources/lib/layout/header.jelly +++ b/core/src/main/resources/lib/layout/header.jelly @@ -27,6 +27,8 @@ THE SOFTWARE. Header portion of the HTML page, that gets rendered into the <head> tag. Multiple <l:header> elements can be specified, and can even come after <l:main-panel>. + + This tag can be placed inside <l:layout>. diff --git a/core/src/main/resources/lib/layout/layout.jelly b/core/src/main/resources/lib/layout/layout.jelly index 9d332b23a3537f6ed17b2bb70a27a2159f591916..b4b51ad409eb421270aac20eede5c3137451670e 100644 --- a/core/src/main/resources/lib/layout/layout.jelly +++ b/core/src/main/resources/lib/layout/layout.jelly @@ -1,7 +1,8 @@ - - + + Outer-most tag for a normal (non-AJAX) HTML rendering. - This is used with nested <side-panel> and <main-panel> + This is used with nested <header>, <side-panel>, and <main-panel> to form Hudson's basic HTML layout. @@ -52,8 +53,8 @@ THE SOFTWARE. - - + + @@ -80,7 +81,7 @@ THE SOFTWARE. - + @@ -95,19 +96,24 @@ THE SOFTWARE. + - + + + @@ -155,8 +161,10 @@ THE SOFTWARE. ${app.authentication.name} - | - ${%logout} + + | + ${%logout} + @@ -230,9 +238,11 @@ THE SOFTWARE.
        @@ -242,4 +252,4 @@ THE SOFTWARE. -
        \ No newline at end of file +
        diff --git a/core/src/main/resources/lib/layout/layout_ca.properties b/core/src/main/resources/lib/layout/layout_ca.properties new file mode 100644 index 0000000000000000000000000000000000000000..774ef4e6e3081512d2ebb5c8b3fbf21270d53926 --- /dev/null +++ b/core/src/main/resources/lib/layout/layout_ca.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +ENABLE\ AUTO\ REFRESH=HABILITAR REFREC AUTOM\u00C0TIC diff --git a/core/src/main/resources/lib/layout/layout_cs.properties b/core/src/main/resources/lib/layout/layout_cs.properties new file mode 100644 index 0000000000000000000000000000000000000000..ab34d45713868d6eb1e91cab2ee84531dba3c8db --- /dev/null +++ b/core/src/main/resources/lib/layout/layout_cs.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +ENABLE\ AUTO\ REFRESH=zapnout automatick\u00E9 obnovov\u00E1n\u00ED str\u00E1nky +Page\ generated=Str\u00E1nka generov\u00E1na +logout=odhl\u00E1sit diff --git a/core/src/main/resources/lib/layout/layout_da.properties b/core/src/main/resources/lib/layout/layout_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..764db270cc28c7ec827d01eee8c69b5b7f9e0029 --- /dev/null +++ b/core/src/main/resources/lib/layout/layout_da.properties @@ -0,0 +1,27 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +logout=Log ud +Page\ generated=Side genereret +searchBox.url=http://hudson.gotdns.com/wiki/display/HUDSON/Search+Box +ENABLE\ AUTO\ REFRESH=Sl\u00e5 automatisk genindl\u00e6sning til +DISABLE\ AUTO\ REFRESH=Sl\u00e5 automatisk genindl\u00e6sning fra diff --git a/core/src/main/resources/lib/layout/layout_de.properties b/core/src/main/resources/lib/layout/layout_de.properties index 6edb7224d7850df3ec80595045367377b37e0260..f73e200f586e50002f8697b11a893a856f5da563 100644 --- a/core/src/main/resources/lib/layout/layout_de.properties +++ b/core/src/main/resources/lib/layout/layout_de.properties @@ -24,3 +24,4 @@ searchBox.url=http://hudson.gotdns.com/wiki/display/HUDSON/Search+Box logout=Abmelden DISABLE\ AUTO\ REFRESH=AUTO-AKTUALISIERUNG AUSSCHALTEN ENABLE\ AUTO\ REFRESH=AUTO-AKTUALISIERUNG EINSCHALTEN +Page\ generated=Erzeugung dieser Seite diff --git a/core/src/main/resources/lib/layout/layout_el.properties b/core/src/main/resources/lib/layout/layout_el.properties new file mode 100644 index 0000000000000000000000000000000000000000..888b21ccfb1222151ee77f7c29469703cc433f55 --- /dev/null +++ b/core/src/main/resources/lib/layout/layout_el.properties @@ -0,0 +1,27 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +DISABLE\ AUTO\ REFRESH=\u0391\u03C0\u03B1\u03BD\u03B5\u03C1\u03B3\u03BF\u03C0\u03BF\u03AF\u03B7\u03C3\u03B7 \u03B1\u03C5\u03C4\u03CC\u03BC\u03B1\u03C4\u03B7\u03C2 \u03B1\u03BD\u03B1\u03BD\u03AD\u03C9\u03C3\u03B7\u03C2 \u03C3\u03B5\u03BB\u03AF\u03B4\u03B1\u03C2 +ENABLE\ AUTO\ REFRESH=\u0395\u03BD\u03B5\u03C1\u03B3\u03BF\u03C0\u03BF\u03AF\u03B7\u03C3\u03B7 \u03B1\u03C5\u03C4\u03CC\u03BC\u03B1\u03C4\u03B7\u03C2 \u03B1\u03BD\u03B1\u03BD\u03AD\u03C9\u03C3\u03B7\u03C2 \u03C3\u03B5\u03BB\u03AF\u03B4\u03B1\u03C2 +Page\ generated=\u0397 \u03C3\u03B5\u03BB\u03AF\u03B4\u03B1 \u03B4\u03B7\u03BC\u03B9\u03BF\u03C5\u03C1\u03B3\u03AE\u03B8\u03B7\u03BA\u03B5 +logout=\u0391\u03C0\u03BF\u03C3\u03CD\u03BD\u03B4\u03B5\u03C3\u03B7 +searchBox.url=\u0391\u03BD\u03B1\u03B6\u03AE\u03C4\u03B7\u03C3\u03B7 diff --git a/core/src/main/resources/lib/layout/layout_es.properties b/core/src/main/resources/lib/layout/layout_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..e2c293d3a92f41779bb1b45f27dd225614ab3087 --- /dev/null +++ b/core/src/main/resources/lib/layout/layout_es.properties @@ -0,0 +1,30 @@ +### +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + + +DISABLE\ AUTO\ REFRESH=DESACTIVAR AUTO REFRESCO +ENABLE\ AUTO\ REFRESH=ACTIVAR AUTO REFRESCO +logout=Salir +searchBox.url=http://hudson.gotdns.com/wiki/display/HUDSON/Search+Box +Page\ generated=Página generada el + diff --git a/core/src/main/resources/lib/layout/layout_fi.properties b/core/src/main/resources/lib/layout/layout_fi.properties new file mode 100644 index 0000000000000000000000000000000000000000..38497385d5b9032d925fbcd98b66a6a5eccb2ea8 --- /dev/null +++ b/core/src/main/resources/lib/layout/layout_fi.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +ENABLE\ AUTO\ REFRESH=AUTOM. P\u00C4IVITYS P\u00C4\u00C4LLE +Page\ generated=Sivu luotiin +logout=Kirjaudu ulos diff --git a/core/src/main/resources/lib/layout/layout_fr.properties b/core/src/main/resources/lib/layout/layout_fr.properties index 7bcd891840e84b88a4d51b401a6beb5e10eb804b..84a237618b9ab7e372bea1bd70ec9de8ceb1e00a 100644 --- a/core/src/main/resources/lib/layout/layout_fr.properties +++ b/core/src/main/resources/lib/layout/layout_fr.properties @@ -21,6 +21,7 @@ # THE SOFTWARE. searchBox.url=http://hudson.gotdns.com/wiki/display/HUDSON/Search+Box +Page\ generated=Page g\u00E9n\u00E9r\u00E9e logout=D\u00E9connexion DISABLE\ AUTO\ REFRESH=ANNULER LE RAFRAICHISSEMENT AUTOMATIQUE ENABLE\ AUTO\ REFRESH=ACTIVER LE RAFRAICHISSEMENT AUTOMATIQUE diff --git a/core/src/main/resources/lib/layout/layout_hu.properties b/core/src/main/resources/lib/layout/layout_hu.properties new file mode 100644 index 0000000000000000000000000000000000000000..1cd3702200c8c039b40088c78600d4676ab1f8c7 --- /dev/null +++ b/core/src/main/resources/lib/layout/layout_hu.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Page\ generated=Az oldal gener\u00E1l\u00F3dott +logout=kijelentkez\u00E9s diff --git a/core/src/main/resources/lib/layout/layout_it.properties b/core/src/main/resources/lib/layout/layout_it.properties new file mode 100644 index 0000000000000000000000000000000000000000..d6e1965f3cbcf1df8dee012aa847100f9574aae3 --- /dev/null +++ b/core/src/main/resources/lib/layout/layout_it.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +DISABLE\ AUTO\ REFRESH=DISABILITA AGGIORNAMENTO AUTOMATICO +ENABLE\ AUTO\ REFRESH=ABILITA AGGIORNAMENTO AUTOMATICO +Page\ generated=Pagina generata il +logout=esci diff --git a/core/src/main/resources/lib/layout/layout_ja.properties b/core/src/main/resources/lib/layout/layout_ja.properties index c8c69dd2b5bc1a22f160a24e110dbdbf77792017..f1fb886b8b46a5907b3dbdbc0fc3afa779dc7ba9 100644 --- a/core/src/main/resources/lib/layout/layout_ja.properties +++ b/core/src/main/resources/lib/layout/layout_ja.properties @@ -21,6 +21,7 @@ # THE SOFTWARE. searchBox.url=http://hudson.gotdns.com/wiki/display/JA/Search+Box +Page\ generated=\u66F4\u65B0 logout=\u30ED\u30B0\u30A2\u30A6\u30C8 ENABLE\ AUTO\ REFRESH=\u81EA\u52D5\u30EA\u30ED\u30FC\u30C9on DISABLE\ AUTO\ REFRESH=\u81EA\u52D5\u30EA\u30ED\u30FC\u30C9off diff --git a/core/src/main/resources/lib/layout/layout_ko.properties b/core/src/main/resources/lib/layout/layout_ko.properties index 61019db9c6381685af74832f75aaf9bd101f0ba9..e27544d6b80cc7476d83b59892adc525a94ef41f 100644 --- a/core/src/main/resources/lib/layout/layout_ko.properties +++ b/core/src/main/resources/lib/layout/layout_ko.properties @@ -20,7 +20,8 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -searchBox.url=http://hudson.gotdns.com/wiki/display/HUDSON/Search+Box -logout=\uB85C\uADF8\uC544\uC6C3 -DISABLE\ AUTO\ REFRESH=\uC790\uB3D9 \uC7AC\uC2E4\uD589 \uB044\uAE30 -ENABLE\ AUTO\ REFRESH=\uC790\uB3D9 \uC7AC\uC2E4\uD589 \uCF1C\uAE30 +searchBox.url=http://hudson.gotdns.com/wiki/display/HUDSON/Search+Box +Page\ generated=\uD398\uC774\uC9C0 \uC791\uC131 +logout=\uB85C\uADF8\uC544\uC6C3 +DISABLE\ AUTO\ REFRESH=\uC790\uB3D9 \uC7AC\uC2E4\uD589 \uB044\uAE30 +ENABLE\ AUTO\ REFRESH=\uC790\uB3D9 \uC7AC\uC2E4\uD589 \uCF1C\uAE30 diff --git a/core/src/main/resources/lib/layout/layout_lt.properties b/core/src/main/resources/lib/layout/layout_lt.properties new file mode 100644 index 0000000000000000000000000000000000000000..dab1ba27ca375635d53dc19fe74e322d90366202 --- /dev/null +++ b/core/src/main/resources/lib/layout/layout_lt.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +ENABLE\ AUTO\ REFRESH=Prisijungti +Page\ generated=Puslapis sugeneruotas +logout=atsijungti diff --git a/core/src/main/resources/lib/layout/layout_nb_NO.properties b/core/src/main/resources/lib/layout/layout_nb_NO.properties new file mode 100644 index 0000000000000000000000000000000000000000..188479c38c2664bab8663c59c45af6121ffc8f8f --- /dev/null +++ b/core/src/main/resources/lib/layout/layout_nb_NO.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +ENABLE\ AUTO\ REFRESH=Aktiver automatisk oppfrisking +Page\ generated=Sider generert +logout=logg ut +searchBox.url=s\u00F8k diff --git a/core/src/main/resources/lib/layout/layout_nl.properties b/core/src/main/resources/lib/layout/layout_nl.properties index 740a8d757cb0612725a8a7e12fc9da00bd1078cf..aad39cb6fa2807b79861a5e18c3fd3afabe68ea5 100644 --- a/core/src/main/resources/lib/layout/layout_nl.properties +++ b/core/src/main/resources/lib/layout/layout_nl.properties @@ -21,6 +21,7 @@ # THE SOFTWARE. searchBox.url=http://hudson.gotdns.com/wiki/display/HUDSON/Search+Box +Page\ generated=Pagina gegenereerd logout=Afmelden DISABLE\ AUTO\ REFRESH=ANNULEER AUTOMATISCH HERLADEN ENABLE\ AUTO\ REFRESH=ACTIVEER AUTOMATISCH HERLADEN diff --git a/core/src/main/resources/lib/layout/layout_pt_BR.properties b/core/src/main/resources/lib/layout/layout_pt_BR.properties index c4d6677cabc3e16c13674cbb1c913a85fa4e4ea2..c5786da6774f52ad99c121fa9eae9b4d25851326 100644 --- a/core/src/main/resources/lib/layout/layout_pt_BR.properties +++ b/core/src/main/resources/lib/layout/layout_pt_BR.properties @@ -21,6 +21,7 @@ # THE SOFTWARE. searchBox.url=http://hudson.gotdns.com/wiki/display/HUDSON/Search+Box +Page\ generated=P\u00E1gina gerada em logout=Sair DISABLE\ AUTO\ REFRESH=DESABILITAR ATUALIZA\u00C7\u00C3O AUTOM\u00C1TICA ENABLE\ AUTO\ REFRESH=HABILITAR ATUALIZA\u00C7\u00C3O AUTOM\u00C1TICA diff --git a/core/src/main/resources/lib/layout/layout_pt_PT.properties b/core/src/main/resources/lib/layout/layout_pt_PT.properties new file mode 100644 index 0000000000000000000000000000000000000000..6f698207fa6512786457d4df338ade22cd910c25 --- /dev/null +++ b/core/src/main/resources/lib/layout/layout_pt_PT.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +ENABLE\ AUTO\ REFRESH=LIGAR AUTO REFRESH +Page\ generated=P\u00E1gina gerada +logout=sair +searchBox.url=http://hudson.gotdns.com/wiki/display/HUDSON/Procurar+Box diff --git a/core/src/main/resources/lib/layout/layout_ru.properties b/core/src/main/resources/lib/layout/layout_ru.properties index b9ffb59e161556f708284ba05b0bf0e04e0c5b9b..2ba60495195b93e60918ea221b442c7861428f26 100644 --- a/core/src/main/resources/lib/layout/layout_ru.properties +++ b/core/src/main/resources/lib/layout/layout_ru.properties @@ -21,6 +21,7 @@ # THE SOFTWARE. searchBox.url=http://hudson.gotdns.com/wiki/display/HUDSON/Search+Box +Page\ generated=\u0421\u0442\u0440\u0430\u043D\u0438\u0446\u0430 \u0441\u043E\u0437\u0434\u0430\u043D\u0430 logout=\u0412\u044B\u0445\u043E\u0434 DISABLE\ AUTO\ REFRESH=\u0412\u044B\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0430\u0432\u0442\u043E\u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u0435 -ENABLE\ AUTO\ REFRESH=\u0412\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0430\u0432\u0442\u043E\u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u0435 +ENABLE\ AUTO\ REFRESH=\u0412\u041A\u041B\u042E\u0427\u0418\u0422\u042C \u0410\u0412\u0422\u041E\u041E\u0411\u041D\u041E\u0412\u041B\u0415\u041D\u0418\u0415 diff --git a/core/src/main/resources/lib/layout/layout_sl.properties b/core/src/main/resources/lib/layout/layout_sl.properties new file mode 100644 index 0000000000000000000000000000000000000000..8b7492a672df101c993a50faf22969e47c0cd954 --- /dev/null +++ b/core/src/main/resources/lib/layout/layout_sl.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +ENABLE\ AUTO\ REFRESH=SAMODEJNO OSVE\u017DUJ STRAN +Page\ generated=Stran ustvarjena +searchBox.url=i\u0161\u010Di diff --git a/core/src/main/resources/lib/layout/layout_sv_SE.properties b/core/src/main/resources/lib/layout/layout_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..ae9a6707c6a4ecb66610218f9cf7d8c23097befe --- /dev/null +++ b/core/src/main/resources/lib/layout/layout_sv_SE.properties @@ -0,0 +1,28 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +DISABLE\ AUTO\ REFRESH=Avaktivera automatisk upppdatering +ENABLE\ AUTO\ REFRESH=AKTIVERA AUTOMATISK UPPDATERING +Page\ generated=Sidan skapades +logout=logga ut +searchBox.url=http://hudson.gotdns.com/wiki/display/HUDSON/Search+Box + diff --git a/core/src/main/resources/lib/layout/layout_uk.properties b/core/src/main/resources/lib/layout/layout_uk.properties new file mode 100644 index 0000000000000000000000000000000000000000..d918ea64ce7b4b9221aceed91428f3cf30b3d03d --- /dev/null +++ b/core/src/main/resources/lib/layout/layout_uk.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +logout=\u0412\u0438\u0439\u0442\u0438 diff --git a/core/src/main/resources/lib/layout/layout_zh_CN.properties b/core/src/main/resources/lib/layout/layout_zh_CN.properties new file mode 100644 index 0000000000000000000000000000000000000000..3903e84b6a3df4e35b8ee73f914f36b787e92f95 --- /dev/null +++ b/core/src/main/resources/lib/layout/layout_zh_CN.properties @@ -0,0 +1,27 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +DISABLE\ AUTO\ REFRESH=\u7981\u7528\u81EA\u52A8\u5237\u65B0 +ENABLE\ AUTO\ REFRESH=\u81EA\u52A8\u5237\u65B0 +Page\ generated=\u9875\u9762\u751F\u6210\u4E8E +logout=\u9000\u51FA +searchBox.url=\u641C\u7D22 diff --git a/core/src/main/resources/lib/layout/layout_zh_TW.properties b/core/src/main/resources/lib/layout/layout_zh_TW.properties new file mode 100644 index 0000000000000000000000000000000000000000..dea6e20107139a06bf2e083d8c9050490d5b35f7 --- /dev/null +++ b/core/src/main/resources/lib/layout/layout_zh_TW.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +DISABLE\ AUTO\ REFRESH=\u53D6\u6D88\u81EA\u52D5\u66F4\u65B0\u9801\u9762 +ENABLE\ AUTO\ REFRESH=\u5141\u8A31\u81EA\u52D5\u66F4\u65B0\u9801\u9762 +Page\ generated=\u9801\u9762\u5DF2\u7522\u751F +logout=\u767B\u51FA diff --git a/core/src/main/resources/lib/layout/main-panel_da.properties b/core/src/main/resources/lib/layout/main-panel_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..92258a51d1039750dc28ed5853506d7300805989 --- /dev/null +++ b/core/src/main/resources/lib/layout/main-panel_da.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Hudson\ is\ going\ to\ shut\ down=Hudson vil lukke ned diff --git a/core/src/main/resources/lib/layout/main-panel_de.properties b/core/src/main/resources/lib/layout/main-panel_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..983ac18334262e8c9f599bea63be83941dd18d71 --- /dev/null +++ b/core/src/main/resources/lib/layout/main-panel_de.properties @@ -0,0 +1 @@ +Hudson\ is\ going\ to\ shut\ down=Hudson wird heruntergefahren diff --git a/core/src/main/resources/lib/layout/main-panel_es.properties b/core/src/main/resources/lib/layout/main-panel_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..32667aa4e051092d1259208f76538605084925b2 --- /dev/null +++ b/core/src/main/resources/lib/layout/main-panel_es.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Hudson\ is\ going\ to\ shut\ down=Hudson se está apagando diff --git a/core/src/main/resources/lib/layout/main-panel_pt_BR.properties b/core/src/main/resources/lib/layout/main-panel_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..ed372fa7985ef2098886b61cea94357e9074873d --- /dev/null +++ b/core/src/main/resources/lib/layout/main-panel_pt_BR.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Hudson\ is\ going\ to\ shut\ down= diff --git a/core/src/main/resources/lib/layout/main-panel_sv_SE.properties b/core/src/main/resources/lib/layout/main-panel_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..18b476dd3fe30366e99d357e7b7664389ab16647 --- /dev/null +++ b/core/src/main/resources/lib/layout/main-panel_sv_SE.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Hudson\ is\ going\ to\ shut\ down=Hudson kommer att st\u00E4ngas av diff --git a/core/src/main/resources/lib/layout/main-panel_zh_CN.properties b/core/src/main/resources/lib/layout/main-panel_zh_CN.properties new file mode 100644 index 0000000000000000000000000000000000000000..b3e4829d72cfacda5b22c22d0f348664b8cb2286 --- /dev/null +++ b/core/src/main/resources/lib/layout/main-panel_zh_CN.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Hudson\ is\ going\ to\ shut\ down=\u7CFB\u7EDF\u6B63\u5728\u5173\u95ED diff --git a/core/src/main/resources/lib/layout/tab.jelly b/core/src/main/resources/lib/layout/tab.jelly index 8c6f30522c1e9e9b41ab957343e3f12274567c4b..d1c12d87e454c726d80df7f6e062dd8c5cccd29e 100644 --- a/core/src/main/resources/lib/layout/tab.jelly +++ b/core/src/main/resources/lib/layout/tab.jelly @@ -1,7 +1,7 @@ @@ -53,10 +54,10 @@ THE SOFTWARE. - ${name} + ${name} - \ No newline at end of file + diff --git a/core/src/main/resources/lib/test/bar_da.properties b/core/src/main/resources/lib/test/bar_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..b1d3057820a2e48e67654a45e5f04e9e5966392d --- /dev/null +++ b/core/src/main/resources/lib/test/bar_da.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +No\ tests=Ingen test +skipped={0} sprunget over +failures={0} fejler +tests={0} test diff --git a/core/src/main/resources/lib/test/bar_de.properties b/core/src/main/resources/lib/test/bar_de.properties index 279ec3f31205e41970d5d034a179e43e51e7f7b5..2dac3a8bdb691293a832751ac170aa53b988a4f1 100644 --- a/core/src/main/resources/lib/test/bar_de.properties +++ b/core/src/main/resources/lib/test/bar_de.properties @@ -20,7 +20,7 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -No\ tests=Keine Tests -failures=Fehlschläge -skipped=Ausgelassen -tests=Tests +No\ tests=Keine Tests +failures=Fehlschläge +skipped=Ausgelassen +tests=Tests diff --git a/core/src/main/resources/lib/test/bar_es.properties b/core/src/main/resources/lib/test/bar_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..5a45492a992d120a56b10a367b9d2d7815c45bd5 --- /dev/null +++ b/core/src/main/resources/lib/test/bar_es.properties @@ -0,0 +1,27 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:cactusman +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +failures={0} Fallidos +skipped={0} Ignorados +tests={0} Tests +No\ tests=Sin tests + diff --git a/core/src/main/resources/lib/test/bar_fi.properties b/core/src/main/resources/lib/test/bar_fi.properties new file mode 100644 index 0000000000000000000000000000000000000000..c518d1167f8a158241d96d470c824d0c69cc5a26 --- /dev/null +++ b/core/src/main/resources/lib/test/bar_fi.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +failures={0} ep\u00E4onnistunutta +tests={0} testi\u00E4 diff --git a/core/src/main/resources/lib/test/bar_fr.properties b/core/src/main/resources/lib/test/bar_fr.properties index ce2af90d42e628700314edd9f3e32c4eecd364bf..dac7f847a14e5f7e621f4e3871ed7b750028d8bb 100644 --- a/core/src/main/resources/lib/test/bar_fr.properties +++ b/core/src/main/resources/lib/test/bar_fr.properties @@ -21,6 +21,6 @@ # THE SOFTWARE. No\ tests=Pas de test -failures=Echecs +failures={0} \u00E9checs skipped=Non passés -tests=Tests +tests={0} tests diff --git a/core/src/main/resources/lib/test/bar_pt_BR.properties b/core/src/main/resources/lib/test/bar_pt_BR.properties index a5436da880e6ec74cbdbba13c1b52a21137e22a9..b3bfe36ca8341dde3be2c42e3d8cd55c90b5fc36 100644 --- a/core/src/main/resources/lib/test/bar_pt_BR.properties +++ b/core/src/main/resources/lib/test/bar_pt_BR.properties @@ -22,4 +22,5 @@ failures={0} falhas skipped={0} n\u00E3o executadas -tests={0} testes \ No newline at end of file +tests={0} testesNo\ tests= +No\ tests= diff --git a/core/src/main/resources/lib/test/bar_sv_SE.properties b/core/src/main/resources/lib/test/bar_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..9d359d7b6e5ee7420279c149bfd35cdfbef08559 --- /dev/null +++ b/core/src/main/resources/lib/test/bar_sv_SE.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +failures={0} fel +tests={0} tester diff --git a/core/src/main/resources/windows-service/hudson-slave.xml b/core/src/main/resources/windows-service/hudson-slave.xml index c2b1da2fa0c4f69802c57fad52cb25a067955edf..524fb2b1fa742b9070e3c1261c04d107eb46c2c1 100644 --- a/core/src/main/resources/windows-service/hudson-slave.xml +++ b/core/src/main/resources/windows-service/hudson-slave.xml @@ -29,9 +29,9 @@ THE SOFTWARE. Both commands don't produce any output if the execution is successful. --> - hudsonslave + @ID@ Hudson Slave - This service runs a slave for Hudson continous integration system. + This service runs a slave for Hudson continuous integration system. + rotate \ No newline at end of file diff --git a/core/src/main/resources/windows-service/hudson.xml b/core/src/main/resources/windows-service/hudson.xml index 14d33a351f42f360e75f83d95f64ba2bdd74b1a2..4cb528514804d3e095467e4550ff9f14c57539e1 100644 --- a/core/src/main/resources/windows-service/hudson.xml +++ b/core/src/main/resources/windows-service/hudson.xml @@ -31,7 +31,7 @@ THE SOFTWARE. hudson Hudson - This service runs Hudson continous integration system. + This service runs Hudson continuous integration system. + rotate \ No newline at end of file diff --git a/core/src/test/java/hudson/ChannelTestCase.java b/core/src/test/java/hudson/ChannelTestCase.java new file mode 100644 index 0000000000000000000000000000000000000000..c1f3a8c8c43657a745d5478c230c87483244497e --- /dev/null +++ b/core/src/test/java/hudson/ChannelTestCase.java @@ -0,0 +1,106 @@ +package hudson; + +import junit.framework.TestCase; + +import java.io.PipedInputStream; +import java.io.PipedOutputStream; +import java.io.IOException; +import java.util.concurrent.Future; +import java.util.concurrent.Callable; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; + +import hudson.remoting.Channel; +import hudson.remoting.FastPipedInputStream; +import hudson.remoting.FastPipedOutputStream; + +/** + * Test that uses a connected channel. + * + * @author Kohsuke Kawaguchi + */ +public abstract class ChannelTestCase extends TestCase { + /** + * Two channels that are connected to each other, but shares the same classloader. + */ + protected Channel french; + protected Channel british; + private ExecutorService executors = Executors.newCachedThreadPool(); + + @Override + protected void setUp() throws Exception { + super.setUp(); + final FastPipedInputStream p1i = new FastPipedInputStream(); + final FastPipedInputStream p2i = new FastPipedInputStream(); + final FastPipedOutputStream p1o = new FastPipedOutputStream(p1i); + final FastPipedOutputStream p2o = new FastPipedOutputStream(p2i); + + Future f1 = executors.submit(new Callable() { + public Channel call() throws Exception { + return new Channel("This side of the channel", executors, p1i, p2o); + } + }); + Future f2 = executors.submit(new Callable() { + public Channel call() throws Exception { + return new Channel("The other side of the channel", executors, p2i, p1o); + } + }); + french = f1.get(); + british = f2.get(); + } + + @Override + protected void tearDown() throws Exception { + try { + french.close(); // this will automatically initiate the close on the other channel, too. + french.join(); + british.join(); + } catch (IOException e) { + // perhaps this exception is caused by earlier abnormal termination of the channel? + /* for the record, this is the failure. + Nov 12, 2009 6:18:55 PM hudson.remoting.Channel$CloseCommand execute + SEVERE: close command failed on This side of the channel + java.io.IOException: Pipe is already closed + at hudson.remoting.FastPipedOutputStream.write(FastPipedOutputStream.java:127) + at java.io.ObjectOutputStream$BlockDataOutputStream.drain(ObjectOutputStream.java:1838) + at java.io.ObjectOutputStream$BlockDataOutputStream.setBlockDataMode(ObjectOutputStream.java:1747) + at java.io.ObjectOutputStream.writeNonProxyDesc(ObjectOutputStream.java:1249) + at java.io.ObjectOutputStream.writeClassDesc(ObjectOutputStream.java:1203) + at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1387) + at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150) + at java.io.ObjectOutputStream.writeFatalException(ObjectOutputStream.java:1538) + at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:329) + at hudson.remoting.Channel.send(Channel.java:413) + at hudson.remoting.Channel.close(Channel.java:717) + at hudson.remoting.Channel$CloseCommand.execute(Channel.java:676) + at hudson.remoting.Channel$ReaderThread.run(Channel.java:860) + Caused by: hudson.remoting.FastPipedInputStream$ClosedBy: The pipe was closed at... + at hudson.remoting.FastPipedInputStream.close(FastPipedInputStream.java:103) + at java.io.ObjectInputStream$PeekInputStream.close(ObjectInputStream.java:2305) + at java.io.ObjectInputStream$BlockDataInputStream.close(ObjectInputStream.java:2643) + at java.io.ObjectInputStream.close(ObjectInputStream.java:873) + at hudson.remoting.Channel$ReaderThread.run(Channel.java:866) + Nov 12, 2009 6:18:55 PM hudson.remoting.Channel$CloseCommand execute + INFO: close command created at + Command close created at + at hudson.remoting.Command.(Command.java:58) + at hudson.remoting.Command.(Command.java:47) + at hudson.remoting.Channel$CloseCommand.(Channel.java:673) + at hudson.remoting.Channel$CloseCommand.(Channel.java:673) + at hudson.remoting.Channel.close(Channel.java:717) + at hudson.remoting.Channel$CloseCommand.execute(Channel.java:676) + at hudson.remoting.Channel$ReaderThread.run(Channel.java:860) + Nov 12, 2009 6:18:55 PM hudson.remoting.Channel$ReaderThread run + SEVERE: I/O error in channel This side of the channel + java.io.EOFException + at java.io.ObjectInputStream$BlockDataInputStream.peekByte(ObjectInputStream.java:2554) + at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1297) + at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351) + at hudson.remoting.Channel$ReaderThread.run(Channel.java:849) + + */ + e.printStackTrace(); + } + executors.shutdownNow(); + } +} diff --git a/core/src/test/java/hudson/FilePathTest.java b/core/src/test/java/hudson/FilePathTest.java index b3fe47b875067602c30deb7a55952c327823e0b8..4dfdd8eff568b1258ca34d12175704cd7c5b8cdb 100644 --- a/core/src/test/java/hudson/FilePathTest.java +++ b/core/src/test/java/hudson/FilePathTest.java @@ -1,7 +1,7 @@ /* * The MIT License * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi + * Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Alan Harder * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -23,66 +23,24 @@ */ package hudson; -import junit.framework.TestCase; -import hudson.remoting.Channel; +import hudson.remoting.VirtualChannel; import hudson.util.NullStream; -import java.io.PipedInputStream; -import java.io.PipedOutputStream; import java.io.File; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; -import java.util.concurrent.Callable; -import java.util.concurrent.Future; -import org.junit.Assert; +import org.apache.commons.io.output.NullOutputStream; /** * @author Kohsuke Kawaguchi */ -public class FilePathTest extends TestCase { - /** - * Two channels that are connected to each other, but shares the same classloader. - */ - private Channel french, british; - private ExecutorService executors = Executors.newCachedThreadPool(); - - @Override - protected void setUp() throws Exception { - super.setUp(); - final PipedInputStream p1i = new PipedInputStream(); - final PipedInputStream p2i = new PipedInputStream(); - final PipedOutputStream p1o = new PipedOutputStream(p1i); - final PipedOutputStream p2o = new PipedOutputStream(p2i); - - Future f1 = executors.submit(new Callable() { - public Channel call() throws Exception { - return new Channel("This side of the channel", executors, p1i, p2o); - } - }); - Future f2 = executors.submit(new Callable() { - public Channel call() throws Exception { - return new Channel("The other side of the channel", executors, p2i, p1o); - } - }); - french = f1.get(); - british = f2.get(); - } - - @Override - protected void tearDown() throws Exception { - french.close(); // this will automatically initiate the close on the other channel, too. - french.join(); - british.join(); - executors.shutdown(); - } +public class FilePathTest extends ChannelTestCase { public void testCopyTo() throws Exception { File tmp = File.createTempFile("testCopyTo",""); FilePath f = new FilePath(french,tmp.getPath()); f.copyTo(new NullStream()); - Assert.assertTrue("target does not exist", tmp.exists()); - Assert.assertTrue("could not delete target " + tmp.getPath(), tmp.delete()); + assertTrue("target does not exist", tmp.exists()); + assertTrue("could not delete target " + tmp.getPath(), tmp.delete()); } /** @@ -91,15 +49,115 @@ public class FilePathTest extends TestCase { */ public void testCopyTo2() throws Exception { for (int j=0; j<2500; j++) { - File tmp = File.createTempFile("testCopyTo",""); + File tmp = File.createTempFile("testCopyFrom",""); FilePath f = new FilePath(tmp); File tmp2 = File.createTempFile("testCopyTo",""); - FilePath f2 = new FilePath(british,tmp.getPath()); + FilePath f2 = new FilePath(british,tmp2.getPath()); f.copyTo(f2); - Assert.assertTrue("could not delete target " + tmp.getPath(), tmp.delete()); - Assert.assertTrue("could not delete target " + tmp2.getPath(), tmp2.delete()); + f.delete(); + f2.delete(); + } + } + + public void testRepeatCopyRecursiveTo() throws Exception { + // local->local copy used to return 0 if all files were "up to date" + // should return number of files processed, whether or not they were copied or already current + File tmp = Util.createTempDir(), src = new File(tmp, "src"), dst = new File(tmp, "dst"); + try { + assertTrue(src.mkdir()); + assertTrue(dst.mkdir()); + File f = File.createTempFile("foo", ".tmp", src); + FilePath fp = new FilePath(src); + assertEquals(1, fp.copyRecursiveTo(new FilePath(dst))); + // copy again should still report 1 + assertEquals(1, fp.copyRecursiveTo(new FilePath(dst))); + } finally { + Util.deleteRecursive(tmp); + } + } + + public void testArchiveBug4039() throws Exception { + File tmp = Util.createTempDir(); + try { + FilePath d = new FilePath(french,tmp.getPath()); + d.child("test").touch(0); + d.zip(new NullOutputStream()); + d.zip(new NullOutputStream(),"**/*"); + } finally { + Util.deleteRecursive(tmp); } } + + public void testNormalization() throws Exception { + compare("abc/def\\ghi","abc/def\\ghi"); // allow mixed separators + + {// basic '.' trimming + compare("./abc/def","abc/def"); + compare("abc/./def","abc/def"); + compare("abc/def/.","abc/def"); + + compare(".\\abc\\def","abc\\def"); + compare("abc\\.\\def","abc\\def"); + compare("abc\\def\\.","abc\\def"); + } + + compare("abc/../def","def"); + compare("abc/def/../../ghi","ghi"); + compare("abc/./def/../././../ghi","ghi"); // interleaving . and .. + + compare("../abc/def","../abc/def"); // uncollapsible .. + compare("abc/def/..","abc"); + + compare("c:\\abc\\..","c:\\"); // we want c:\\, not c: + compare("c:\\abc\\def\\..","c:\\abc"); + + compare("/abc/../","/"); + compare("abc/..","."); + compare(".","."); + + // @Bug(5951) + compare("C:\\Hudson\\jobs\\foo\\workspace/../../otherjob/workspace/build.xml", + "C:\\Hudson\\jobs/otherjob/workspace/build.xml"); + // Other cases that failed before + compare("../../abc/def","../../abc/def"); + compare("..\\..\\abc\\def","..\\..\\abc\\def"); + compare("/abc//../def","/def"); + compare("c:\\abc\\\\..\\def","c:\\def"); + compare("/../abc/def","/abc/def"); + compare("c:\\..\\abc\\def","c:\\abc\\def"); + compare("abc/def/","abc/def"); + compare("abc\\def\\","abc\\def"); + // The new code can collapse extra separator chars + compare("abc//def/\\//\\ghi","abc/def/ghi"); + compare("\\\\host\\\\abc\\\\\\def","\\\\host\\abc\\def"); // don't collapse for \\ prefix + compare("\\\\\\foo","\\\\foo"); + compare("//foo","/foo"); + // Other edge cases + compare("abc/def/../../../ghi","../ghi"); + compare("\\abc\\def\\..\\..\\..\\ghi\\","\\ghi"); + } + + private void compare(String original, String answer) { + assertEquals(answer,new FilePath((VirtualChannel)null,original).getRemote()); + } + + // @Bug(6494) + public void testGetParent() throws Exception { + FilePath fp = new FilePath((VirtualChannel)null, "/abc/def"); + assertEquals("/abc", (fp = fp.getParent()).getRemote()); + assertEquals("/", (fp = fp.getParent()).getRemote()); + assertNull(fp.getParent()); + + fp = new FilePath((VirtualChannel)null, "abc/def\\ghi"); + assertEquals("abc/def", (fp = fp.getParent()).getRemote()); + assertEquals("abc", (fp = fp.getParent()).getRemote()); + assertNull(fp.getParent()); + + fp = new FilePath((VirtualChannel)null, "C:\\abc\\def"); + assertEquals("C:\\abc", (fp = fp.getParent()).getRemote()); + assertEquals("C:\\", (fp = fp.getParent()).getRemote()); + assertNull(fp.getParent()); + } } diff --git a/core/src/test/java/hudson/LauncherTest.java b/core/src/test/java/hudson/LauncherTest.java new file mode 100644 index 0000000000000000000000000000000000000000..44afce152a9267cd7fd53424c879122daed5e2f4 --- /dev/null +++ b/core/src/test/java/hudson/LauncherTest.java @@ -0,0 +1,77 @@ +/* + * The MIT License + * + * Copyright 2009 Sun Microsystems, Inc., Kohsuke Kawaguchi, Jesse Glick. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +package hudson; + +import hudson.util.ProcessTree; +import hudson.util.StreamTaskListener; +import hudson.remoting.Callable; +import org.apache.commons.io.FileUtils; + +import java.io.File; + +public class LauncherTest extends ChannelTestCase { + //@Bug(4611) + public void testRemoteKill() throws Exception { + if (File.pathSeparatorChar != ':') { + System.err.println("Skipping, currently Unix-specific test"); + return; + } + + File tmp = File.createTempFile("testRemoteKill", ""); + tmp.delete(); + + try { + FilePath f = new FilePath(french, tmp.getPath()); + Launcher l = f.createLauncher(StreamTaskListener.fromStderr()); + Proc p = l.launch().cmds("sh", "-c", "echo $$$$ > "+tmp+"; sleep 30").stdout(System.out).stderr(System.err).start(); + while (!tmp.exists()) + Thread.sleep(100); + long start = System.currentTimeMillis(); + p.kill(); + assertTrue(p.join()!=0); + long end = System.currentTimeMillis(); + assertTrue("join finished promptly", (end - start < 5000)); + french.call(NOOP); // this only returns after the other side of the channel has finished executing cancellation + Thread.sleep(2000); // more delay to make sure it's gone + assertNull("process should be gone",ProcessTree.get().get(Integer.parseInt(FileUtils.readFileToString(tmp).trim()))); + + // Manual version of test: set up instance w/ one slave. Now in script console + // new hudson.FilePath(new java.io.File("/tmp")).createLauncher(new hudson.util.StreamTaskListener(System.err)). + // launch().cmds("sleep", "1d").stdout(System.out).stderr(System.err).start().kill() + // returns immediately and pgrep sleep => nothing. But without fix + // hudson.model.Hudson.instance.nodes[0].rootPath.createLauncher(new hudson.util.StreamTaskListener(System.err)). + // launch().cmds("sleep", "1d").stdout(System.out).stderr(System.err).start().kill() + // hangs and on slave machine pgrep sleep => one process; after manual kill, script returns. + } finally { + tmp.delete(); + } + } + + private static final Callable NOOP = new Callable() { + public Object call() throws Exception { + return null; + } + }; +} diff --git a/core/src/test/java/hudson/MarkupTextTest.java b/core/src/test/java/hudson/MarkupTextTest.java index 499a792778addcead7e75f0985c727c36d3fc944..95120fe3935d4f511044748e27253e256a98db6e 100644 --- a/core/src/test/java/hudson/MarkupTextTest.java +++ b/core/src/test/java/hudson/MarkupTextTest.java @@ -1,7 +1,7 @@ /* * The MIT License * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi + * Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -28,8 +28,6 @@ import hudson.MarkupText.SubText; import java.util.List; import java.util.regex.Pattern; -import java.net.URL; -import java.net.MalformedURLException; /** * @author Kohsuke Kawaguchi @@ -37,10 +35,12 @@ import java.net.MalformedURLException; public class MarkupTextTest extends TestCase { public void test1() { MarkupText t = new MarkupText("I fixed issue #155. The rest is trick text: xissue #155 issue #123x"); - for (SubText st : t.findTokens(pattern)) + for (SubText st : t.findTokens(pattern)) { + assertEquals(1, st.groupCount()); st.surroundWith("<$1>","<$1>"); + } - assertEquals("I fixed <155>issue #155<155>. The rest is trick text: xissue #155 issue #123x", t.toString()); + assertEquals("I fixed <155>issue #155<155>. The rest is trick text: xissue #155 issue #123x", t.toString(false)); } public void testBoundary() { @@ -48,7 +48,7 @@ public class MarkupTextTest extends TestCase { for (SubText st : t.findTokens(pattern)) st.surroundWith("<$1>","<$1>"); - assertEquals("<155>issue #155<155>---<123>issue #123<123>", t.toString()); + assertEquals("<155>issue #155<155>---<123>issue #123<123>", t.toString(false)); } public void testFindTokensOnSubText() { @@ -59,7 +59,7 @@ public class MarkupTextTest extends TestCase { for (SubText st : tokens.get(0).findTokens(Pattern.compile("([0-9]+)"))) st.surroundWith("<$1>","<$1>"); - assertEquals("Fixed 2 issues in this commit, fixing issue <155>155<155>, <145>145<145>", t.toString()); + assertEquals("Fixed 2 issues in this commit, fixing issue <155>155<155>, <145>145<145>", t.toString(false)); } public void testLiteralTextSurround() { @@ -67,7 +67,53 @@ public class MarkupTextTest extends TestCase { for(SubText token : text.findTokens(Pattern.compile("AAA"))) { token.surroundWithLiteral("$9","$9"); } - assertEquals("$9AAA$9 test $9AAA$9",text.toString()); + assertEquals("$9AAA$9 test $9AAA$9",text.toString(false)); + } + + /** + * Start/end tag nesting should be correct regardless of the order tags are added. + */ + public void testAdjacent() { + MarkupText text = new MarkupText("abcdef"); + text.addMarkup(0,3,"$","$"); + text.addMarkup(3,6,"#","#"); + assertEquals("$abc$#def#",text.toString(false)); + + text = new MarkupText("abcdef"); + text.addMarkup(3,6,"#","#"); + text.addMarkup(0,3,"$","$"); + assertEquals("$abc$#def#",text.toString(false)); + } + + public void testEscape() { + MarkupText text = new MarkupText("&&&"); + assertEquals("&&&",text.toString(false)); + + text.addMarkup(1,""); + text.addMarkup(2," "); + assertEquals("&& &",text.toString(false)); + } + + public void testPreEscape() { + MarkupText text = new MarkupText("Line\n2 & 3\n\n"); + assertEquals("Line\n2 & 3\n<End>\n", text.toString(true)); + text.addMarkup(4, "
        "); + assertEquals("Line
        \n2 & 3\n<End>\n", text.toString(true)); + } + + /* @Bug(6252) */ + public void testSubTextSubText() { + MarkupText text = new MarkupText("abcdefgh"); + SubText sub = text.subText(2, 7); + assertEquals("cdefg", sub.getText()); + sub = sub.subText(1, 4); + assertEquals("def", sub.getText()); + + // test negative end + sub = text.subText(2, -3); + assertEquals("cdef", sub.getText()); + sub = sub.subText(1, -2); + assertEquals("de", sub.getText()); } private static final Pattern pattern = Pattern.compile("issue #([0-9]+)"); diff --git a/core/src/test/java/hudson/UtilTest.java b/core/src/test/java/hudson/UtilTest.java index 4bddefc0ab339e5102f6ada47be89df7eb97f981..a3fc4d9b4a263cf8acdd45f4fdcb900b2d2bbec1 100644 --- a/core/src/test/java/hudson/UtilTest.java +++ b/core/src/test/java/hudson/UtilTest.java @@ -1,7 +1,8 @@ /* * The MIT License * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Daniel Dyer, Erik Ramfelt, Richard Bair, id:cactusman + * Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, + * Daniel Dyer, Erik Ramfelt, Richard Bair, id:cactusman * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -28,6 +29,10 @@ import junit.framework.TestCase; import java.util.Map; import java.util.HashMap; import java.util.Locale; +import java.io.ByteArrayOutputStream; +import java.io.File; + +import hudson.util.StreamTaskListener; /** * @author Kohsuke Kawaguchi @@ -52,6 +57,8 @@ public class UtilTest extends TestCase { // $ escaping assertEquals("asd$${AA}dd", Util.replaceMacro("asd$$$${AA}dd",m)); + assertEquals("$", Util.replaceMacro("$$",m)); + assertEquals("$$", Util.replaceMacro("$$$$",m)); // test that more complex scenarios work assertEquals("/a/B/aa", Util.replaceMacro("/$A/$B/$AA",m)); @@ -120,7 +127,7 @@ public class UtilTest extends TestCase { "01234567890!@$&*()-_=+',.", "01234567890!@$&*()-_=+',.", " \"#%/:;<>?", "%20%22%23%25%2F%3A%3B%3C%3E%3F", "[\\]^`{|}~", "%5B%5C%5D%5E%60%7B%7C%7D%7E", - "d\u00E9velopp\u00E9s", "d%C3%A9%00velopp%C3%A9%00s", + "d\u00E9velopp\u00E9s", "d%C3%A9velopp%C3%A9s", }; for (int i = 0; i < data.length; i += 2) { assertEquals("test " + i, data[i + 1], Util.rawEncode(data[i])); @@ -136,4 +143,31 @@ public class UtilTest extends TestCase { assertEquals("Parsing empty string did not return the default value", 10, Util.tryParseNumber("", 10).intValue()); assertEquals("Parsing null string did not return the default value", 10, Util.tryParseNumber(null, 10).intValue()); } + + public void testSymlink() throws Exception { + if (Functions.isWindows()) return; + + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + StreamTaskListener l = new StreamTaskListener(baos); + File d = Util.createTempDir(); + try { + new FilePath(new File(d, "a")).touch(0); + Util.createSymlink(d,"a","x", l); + assertEquals("a",Util.resolveSymlink(new File(d,"x"),l)); + + // test a long name + StringBuilder buf = new StringBuilder(768); + for( int i=0; i<768; i++) + buf.append((char)('0'+(i%10))); + Util.createSymlink(d,buf.toString(),"x", l); + + String log = baos.toString(); + if (log.length() > 0) + System.err.println("log output: " + log); + + assertEquals(buf.toString(),Util.resolveSymlink(new File(d,"x"),l)); + } finally { + Util.deleteRecursive(d); + } + } } diff --git a/core/src/test/java/hudson/console/UrlAnnotatorTest.java b/core/src/test/java/hudson/console/UrlAnnotatorTest.java new file mode 100644 index 0000000000000000000000000000000000000000..b1aacda8ced186237e840b7689609b7a9e742499 --- /dev/null +++ b/core/src/test/java/hudson/console/UrlAnnotatorTest.java @@ -0,0 +1,57 @@ +/* + * The MIT License + * + * Copyright (c) 2004-2010, Sun Microsystems, Inc., Alan Harder + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.console; + +import hudson.MarkupText; +import junit.framework.TestCase; + +/** + * @author Alan Harder + */ +public class UrlAnnotatorTest extends TestCase { + public void testAnnotate() { + ConsoleAnnotator ca = new UrlAnnotator().newInstance(null); + MarkupText text = new MarkupText("Hello http://foo/ Bye"); + ca.annotate(null, text); + assertEquals("Hello <foo>http://foo/</foo> Bye", + text.toString(true)); + text = new MarkupText("Hello [foo]http://foo/bar.txt[/foo] Bye"); + ca.annotate(null, text); + assertEquals("Hello [foo]http://foo/bar.txt[/foo] Bye", + text.toString(true)); + text = new MarkupText( + "Hello 'http://foo' or \"ftp://bar\" or or (http://a.b.c/x.y) Bye"); + ca.annotate(null, text); + assertEquals("Hello 'http://foo' or \"" + + "ftp://bar\" or <https://baz/> or (http://a.b.c/x.y) Bye", + text.toString(true)); + text = new MarkupText("Fake 'http://foo or \"ftp://bar or http://foo or \"" + + "ftp://bar or <https://baz/ or (http://a.b.c/x.y Bye", + text.toString(true)); + } +} diff --git a/core/src/test/java/hudson/model/AutoCompleteSeederTest.java b/core/src/test/java/hudson/model/AutoCompleteSeederTest.java new file mode 100644 index 0000000000000000000000000000000000000000..256938165a9c07b025a03844339856d16f814b44 --- /dev/null +++ b/core/src/test/java/hudson/model/AutoCompleteSeederTest.java @@ -0,0 +1,86 @@ +/* + * The MIT License + * + * Copyright 2010 Yahoo! Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +package hudson.model; + +import java.util.List; +import java.util.Arrays; +import java.util.Collection; +import org.junit.runners.Parameterized; +import org.junit.runner.RunWith; +import hudson.model.AbstractProject.AbstractProjectDescriptor.AutoCompleteSeeder; +import org.junit.Test; +import static org.junit.Assert.*; + +/** + * + * @author dty + */ +@RunWith(Parameterized.class) +public class AutoCompleteSeederTest { + + public static class TestData { + private String seed; + private List expected; + + public TestData(String seed, String... expected) { + this.seed = seed; + this.expected = Arrays.asList(expected); + } + } + + @Parameterized.Parameters + public static Collection data() { + return Arrays.asList( new Object[][] { + { new TestData("", "") }, + { new TestData("\"", "") }, + { new TestData("\"\"", "") }, + { new TestData("freebsd", "freebsd") }, + { new TestData(" freebsd", "freebsd") }, + { new TestData("freebsd ", "") }, + { new TestData("freebsd 6", "6") }, + { new TestData("\"freebsd", "freebsd") }, + { new TestData("\"freebsd ", "freebsd ") }, + { new TestData("\"freebsd\"", "") }, + { new TestData("\"freebsd\" ", "") }, + { new TestData("\"freebsd 6", "freebsd 6") }, + { new TestData("\"freebsd 6\"", "") }, + }); + } + + private String seed; + private List expected; + + public AutoCompleteSeederTest(TestData dataSet) { + this.seed = dataSet.seed; + this.expected = dataSet.expected; + } + + @Test + public void testAutoCompleteSeeds() throws Exception { + AutoCompleteSeeder seeder = new AbstractProject.AbstractProjectDescriptor.AutoCompleteSeeder(seed); + assertEquals(expected, seeder.getSeeds()); + + } +} \ No newline at end of file diff --git a/core/src/test/java/hudson/model/BallColorTest.java b/core/src/test/java/hudson/model/BallColorTest.java new file mode 100644 index 0000000000000000000000000000000000000000..7c2b4b03819867e83009bff0f03244a8a7657fd5 --- /dev/null +++ b/core/src/test/java/hudson/model/BallColorTest.java @@ -0,0 +1,12 @@ +package hudson.model; + +import junit.framework.TestCase; + +/** + * @author Kohsuke Kawaguchi + */ +public class BallColorTest extends TestCase { + public void testHtmlColor() { + assertEquals("#EF2929",BallColor.RED.getHtmlBaseColor()); + } +} diff --git a/core/src/test/java/hudson/model/LoadStatisticsTest.java b/core/src/test/java/hudson/model/LoadStatisticsTest.java index 2539b64ddd2590c510f6622a08f2ea3c430c00c2..ba9f1e0757dec470f2cbc0871f03682d35ec8708 100644 --- a/core/src/test/java/hudson/model/LoadStatisticsTest.java +++ b/core/src/test/java/hudson/model/LoadStatisticsTest.java @@ -25,10 +25,13 @@ package hudson.model; import hudson.model.MultiStageTimeSeries.TimeScale; import junit.framework.TestCase; + +import org.apache.commons.io.IOUtils; import org.jfree.chart.JFreeChart; import javax.imageio.ImageIO; import java.awt.image.BufferedImage; +import java.io.File; import java.io.FileOutputStream; import java.io.IOException; @@ -36,35 +39,43 @@ import java.io.IOException; * @author Kohsuke Kawaguchi */ public class LoadStatisticsTest extends TestCase { - public void testGraph() throws IOException { - LoadStatistics ls = new LoadStatistics(0, 0) { - public int computeIdleExecutors() { - throw new UnsupportedOperationException(); - } + public void testGraph() throws IOException { + LoadStatistics ls = new LoadStatistics(0, 0) { + public int computeIdleExecutors() { + throw new UnsupportedOperationException(); + } - public int computeTotalExecutors() { - throw new UnsupportedOperationException(); - } + public int computeTotalExecutors() { + throw new UnsupportedOperationException(); + } - public int computeQueueLength() { - throw new UnsupportedOperationException(); - } - }; + public int computeQueueLength() { + throw new UnsupportedOperationException(); + } + }; - for(int i=0;i<50;i++) { - ls.totalExecutors.update(4); - ls.busyExecutors.update(3); - ls.queueLength.update(3); - } + for (int i = 0; i < 50; i++) { + ls.totalExecutors.update(4); + ls.busyExecutors.update(3); + ls.queueLength.update(3); + } - for(int i=0;i<50;i++) { - ls.totalExecutors.update(0); - ls.busyExecutors.update(0); - ls.queueLength.update(1); - } + for (int i = 0; i < 50; i++) { + ls.totalExecutors.update(0); + ls.busyExecutors.update(0); + ls.queueLength.update(1); + } - JFreeChart chart = ls.createTrendChart(TimeScale.SEC10).createChart(); - BufferedImage image = chart.createBufferedImage(400,200); - ImageIO.write(image, "PNG", new FileOutputStream("chart.png")); - } + JFreeChart chart = ls.createTrendChart(TimeScale.SEC10).createChart(); + BufferedImage image = chart.createBufferedImage(400, 200); + + File tempFile = File.createTempFile("chart-", "png"); + FileOutputStream os = new FileOutputStream(tempFile); + try { + ImageIO.write(image, "PNG", os); + } finally { + IOUtils.closeQuietly(os); + tempFile.delete(); + } + } } diff --git a/core/src/test/java/hudson/model/RunTest.java b/core/src/test/java/hudson/model/RunTest.java index b03d8aae1145099d6af3126e57d40e9f74096392..04e1a95db6b56ccefc8d4976a0e51aba9df91806 100644 --- a/core/src/test/java/hudson/model/RunTest.java +++ b/core/src/test/java/hudson/model/RunTest.java @@ -32,36 +32,32 @@ import java.util.List; * @author Kohsuke Kawaguchi */ public class RunTest extends TestCase { - private List.Artifact> createArtifactList(String... paths) { - Run r = new Run(null,new GregorianCalendar()) { - public int compareTo(Object arg0) { - return 0; - } - }; - Run.ArtifactList list = r.new ArtifactList(); + private List.Artifact> createArtifactList(String... paths) { + Run r = new Run(null,new GregorianCalendar()) {}; + Run.ArtifactList list = r.new ArtifactList(); for (String p : paths) { - list.add(r.new Artifact(p,p)); // Assuming all test inputs don't need urlencoding + list.add(r.new Artifact(p,p,p,"n"+list.size())); // Assuming all test inputs don't need urlencoding } list.computeDisplayName(); return list; } public void testArtifactListDisambiguation1() { - List.Artifact> a = createArtifactList("a/b/c.xml", "d/f/g.xml", "h/i/j.xml"); + List.Artifact> a = createArtifactList("a/b/c.xml", "d/f/g.xml", "h/i/j.xml"); assertEquals(a.get(0).getDisplayPath(),"c.xml"); assertEquals(a.get(1).getDisplayPath(),"g.xml"); assertEquals(a.get(2).getDisplayPath(),"j.xml"); } public void testArtifactListDisambiguation2() { - List.Artifact> a = createArtifactList("a/b/c.xml", "d/f/g.xml", "h/i/g.xml"); + List.Artifact> a = createArtifactList("a/b/c.xml", "d/f/g.xml", "h/i/g.xml"); assertEquals(a.get(0).getDisplayPath(),"c.xml"); assertEquals(a.get(1).getDisplayPath(),"f/g.xml"); assertEquals(a.get(2).getDisplayPath(),"i/g.xml"); } public void testArtifactListDisambiguation3() { - List.Artifact> a = createArtifactList("a.xml","a/a.xml"); + List.Artifact> a = createArtifactList("a.xml","a/a.xml"); assertEquals(a.get(0).getDisplayPath(),"a.xml"); assertEquals(a.get(1).getDisplayPath(),"a/a.xml"); } diff --git a/core/src/test/java/hudson/model/SimpleJobTest.java b/core/src/test/java/hudson/model/SimpleJobTest.java new file mode 100644 index 0000000000000000000000000000000000000000..a3b05e77a810485758e52914159a38a9e7216729 --- /dev/null +++ b/core/src/test/java/hudson/model/SimpleJobTest.java @@ -0,0 +1,148 @@ +package hudson.model; + +import java.io.IOException; +import java.util.SortedMap; +import java.util.TreeMap; + +import junit.framework.Assert; +import junit.framework.TestCase; + +/** + * Unit test for {@link Job}. + */ +public class SimpleJobTest extends TestCase { + + public void testGetEstimatedDuration() throws IOException { + + final SortedMap runs = new TreeMap(); + + Job project = createMockProject(runs); + + TestBuild previousPreviousBuild = new TestBuild(project, Result.SUCCESS, 20, null); + runs.put(3, previousPreviousBuild); + + TestBuild previousBuild = new TestBuild(project, Result.SUCCESS, 15, previousPreviousBuild); + runs.put(2, previousBuild); + + TestBuild lastBuild = new TestBuild(project, Result.SUCCESS, 42, previousBuild); + runs.put(1, lastBuild); + + // without assuming to know to much about the internal calculation + // we can only assume that the result is between the maximum and the minimum + Assert.assertTrue(project.getEstimatedDuration() < 42); + Assert.assertTrue(project.getEstimatedDuration() > 15); + } + + public void testGetEstimatedDurationWithOneRun() throws IOException { + + final SortedMap runs = new TreeMap(); + + Job project = createMockProject(runs); + + TestBuild lastBuild = new TestBuild(project, Result.SUCCESS, 42, null); + runs.put(1, lastBuild); + + Assert.assertEquals(42, project.getEstimatedDuration()); + } + + public void testGetEstimatedDurationWithFailedRun() throws IOException { + + final SortedMap runs = new TreeMap(); + + Job project = createMockProject(runs); + + TestBuild lastBuild = new TestBuild(project, Result.FAILURE, 42, null); + runs.put(1, lastBuild); + + Assert.assertEquals(-1, project.getEstimatedDuration()); + } + + public void testGetEstimatedDurationWithNoRuns() throws IOException { + + final SortedMap runs = new TreeMap(); + + Job project = createMockProject(runs); + + Assert.assertEquals(-1, project.getEstimatedDuration()); + } + + public void testGetEstimatedDurationIfPrevious3BuildsFailed() throws IOException { + + final SortedMap runs = new TreeMap(); + + Job project = createMockProject(runs); + + TestBuild prev4Build = new TestBuild(project, Result.SUCCESS, 1, null); + runs.put(5, prev4Build); + + TestBuild prev3Build = new TestBuild(project, Result.SUCCESS, 1, prev4Build); + runs.put(4, prev3Build); + + TestBuild previous2Build = new TestBuild(project, Result.FAILURE, 50, prev3Build); + runs.put(3, previous2Build); + + TestBuild previousBuild = new TestBuild(project, Result.FAILURE, 50, previous2Build); + runs.put(2, previousBuild); + + TestBuild lastBuild = new TestBuild(project, Result.FAILURE, 50, previousBuild); + runs.put(1, lastBuild); + + // failed builds must not be used. Instead the last successful builds before them + // must be used + Assert.assertEquals(project.getEstimatedDuration(), 1); + } + + private Job createMockProject(final SortedMap runs) { + Job project = new Job(null, "name") { + + int i = 1; + + @Override + public int assignBuildNumber() throws IOException { + return i++; + } + + @Override + public SortedMap _getRuns() { + return runs; + } + + @Override + public boolean isBuildable() { + return true; + } + + @Override + protected void removeRun(Run run) { + } + + }; + return project; + } + + private static class TestBuild extends Run { + + public TestBuild(Job project, Result result, long duration, TestBuild previousBuild) throws IOException { + super(project); + this.result = result; + this.duration = duration; + this.previousBuild = previousBuild; + } + + @Override + public int compareTo(Run o) { + return 0; + } + + @Override + public Result getResult() { + return result; + } + + @Override + public boolean isBuilding() { + return false; + } + + } +} diff --git a/core/src/test/java/hudson/model/UpdateCenterTest.java b/core/src/test/java/hudson/model/UpdateCenterTest.java index cfbd59b4d20b9c799a08120729ad8c5675bb3a11..1ee67d087ab15652c5378c7b9fd21170b188d396 100644 --- a/core/src/test/java/hudson/model/UpdateCenterTest.java +++ b/core/src/test/java/hudson/model/UpdateCenterTest.java @@ -39,19 +39,19 @@ public class UpdateCenterTest extends TestCase { public void testData() throws IOException { // check if we have the internet connectivity. See HUDSON-2095 try { - new URL("https://hudson.dev.java.net/").openStream(); + new URL("http://updates.hudson-labs.org/").openStream(); } catch (IOException e) { System.out.println("Skipping this test. No internet connectivity"); return; } - URL url = new URL("https://hudson.dev.java.net/update-center.json?version=build"); + URL url = new URL("http://updates.hudson-labs.org/update-center.json?version=build"); String jsonp = IOUtils.toString(url.openStream()); String json = jsonp.substring(jsonp.indexOf('(')+1,jsonp.lastIndexOf(')')); - UpdateCenter uc = new UpdateCenter(null); - UpdateCenter.Data data = uc.new Data(JSONObject.fromObject(json)); - assertTrue(data.core.url.startsWith("https://hudson.dev.java.net/")); + UpdateSite us = new UpdateSite("default", url.toExternalForm()); + UpdateSite.Data data = us.new Data(JSONObject.fromObject(json)); + assertTrue(data.core.url.startsWith("http://updates.hudson-labs.org/")); assertTrue(data.plugins.containsKey("rake")); System.out.println(data.core.url); } diff --git a/core/src/test/java/hudson/os/DCOMSandbox.java b/core/src/test/java/hudson/os/DCOMSandbox.java new file mode 100644 index 0000000000000000000000000000000000000000..877c51a2f3c48f69f2d5a6e036ece796e2c4080b --- /dev/null +++ b/core/src/test/java/hudson/os/DCOMSandbox.java @@ -0,0 +1,81 @@ +package hudson.os; + +import ndr.NdrObject; +import ndr.NetworkDataRepresentation; +import org.jinterop.dcom.common.JISystem; +import org.jinterop.dcom.transport.JIComTransportFactory; +import rpc.Endpoint; +import rpc.Stub; + +import java.io.IOException; +import java.util.Properties; + +/** + * My attempt to see if ServerAlive calls can be used to detect an authentication failure + * (so that I can differentiate authentication problem against authorization problem in + * creating an instance. + * + *

        + * It turns out that the bogus credential works with ServerAlive. The protocol specification + * + * explicitly says this RPC must not check the credential. + * + *

        + * The feature in question of Windows is called "ForceGuest", and it's recorded in the registry at + * HKLM\SYSTEM\CurrentControlSet\Control\LSA\forceguest (0=classic, 1=forceguest). + * + * + * @author Kohsuke Kawaguchi + */ +public class DCOMSandbox { + public static void main(String[] args) throws Exception { + new JIComOxidStub("129.145.133.224", "", "bogus", "bogus").serverAlive(); + } + + static final class JIComOxidStub extends Stub { + + private static Properties defaults = new Properties(); + + static { + defaults.put("rpc.ntlm.lanManagerKey","false"); + defaults.put("rpc.ntlm.sign","false"); + defaults.put("rpc.ntlm.seal","false"); + defaults.put("rpc.ntlm.keyExchange","false"); + defaults.put("rpc.connectionContext","rpc.security.ntlm.NtlmConnectionContext"); + } + + protected String getSyntax() { + return "99fcfec4-5260-101b-bbcb-00aa0021347a:0.0"; + } + + public JIComOxidStub(String address, String domain, String username, String password) { + setTransportFactory(JIComTransportFactory.getSingleTon()); + setProperties(new Properties(defaults)); + getProperties().setProperty("rpc.security.username", username); + getProperties().setProperty("rpc.security.password", password); + getProperties().setProperty("rpc.ntlm.domain", domain); + setAddress("ncacn_ip_tcp:" + address + "[135]"); + + } + + public void serverAlive() throws Exception { + call(Endpoint.IDEMPOTENT, new ServerAlive()); + } + } + + static class ServerAlive extends NdrObject { + // see http://www.hsc.fr/ressources/articles/win_net_srv/rpcss_dcom_interfaces.html + + public int getOpnum() { + return 3; + } + + public void write(NetworkDataRepresentation ndr) { + // no parameter + } + + public void read(NetworkDataRepresentation ndr) { + System.out.println("Got " + ndr.readUnsignedLong()); + } + } +} diff --git a/core/src/test/java/hudson/os/SUTester.java b/core/src/test/java/hudson/os/SUTester.java index 11acebd04179d5802cd2d921a79c41b46efff35e..2f28a4130384f869ddd97a7c4632b6797fd18ed6 100644 --- a/core/src/test/java/hudson/os/SUTester.java +++ b/core/src/test/java/hudson/os/SUTester.java @@ -10,7 +10,7 @@ import java.io.FileOutputStream; */ public class SUTester { public static void main(String[] args) throws Throwable { - SU.execute(new StreamTaskListener(System.out),"kohsuke","bogus",new Callable() { + SU.execute(StreamTaskListener.fromStdout(),"kohsuke","bogus",new Callable() { public Object call() throws Throwable { System.out.println("Touching /tmp/x"); new FileOutputStream("/tmp/x").close(); diff --git a/core/src/test/java/hudson/scheduler/CronTabTest.java b/core/src/test/java/hudson/scheduler/CronTabTest.java new file mode 100644 index 0000000000000000000000000000000000000000..f6824496cf3f5248cdcb6594c7c44757aed1a319 --- /dev/null +++ b/core/src/test/java/hudson/scheduler/CronTabTest.java @@ -0,0 +1,103 @@ +/* + * The MIT License + * + * Copyright (c) 2004-2010, InfraDNA, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.scheduler; + +import antlr.ANTLRException; +import java.text.DateFormat; +import java.util.Calendar; +import java.util.GregorianCalendar; +import junit.framework.TestCase; + +/** + * @author Kohsuke Kawaguchi + */ +public class CronTabTest extends TestCase { + public void test1() throws ANTLRException { + new CronTab("@yearly"); + new CronTab("@weekly"); + new CronTab("@midnight"); + new CronTab("@monthly"); + new CronTab("0 0 * 1-10/3 *"); + } + + public void testCeil1() throws Exception { + CronTab x = new CronTab("0,30 * * * *"); + Calendar c = new GregorianCalendar(2000,2,1,1,10); + compare(new GregorianCalendar(2000,2,1,1,30),x.ceil(c)); + + // roll up test + c = new GregorianCalendar(2000,2,1,1,40); + compare(new GregorianCalendar(2000,2,1,2, 0),x.ceil(c)); + } + + public void testCeil2() throws Exception { + // make sure that lower fields are really reset correctly + CronTab x = new CronTab("15,45 3 * * *"); + Calendar c = new GregorianCalendar(2000,2,1,2,30); + compare(new GregorianCalendar(2000,2,1,3,15),x.ceil(c)); + } + + public void testCeil3() throws Exception { + // conflict between DoM and DoW. In this we need to find a day that's the first day of a month and Sunday + CronTab x = new CronTab("0 0 1 * 0"); + Calendar c = new GregorianCalendar(2010,0,1,15,55); + // the first such day in 2010 is Aug 1st + compare(new GregorianCalendar(2010,7,1,0,0),x.ceil(c)); + } + + public void testFloor1() throws Exception { + CronTab x = new CronTab("30 * * * *"); + Calendar c = new GregorianCalendar(2000,2,1,1,40); + compare(new GregorianCalendar(2000,2,1,1,30),x.floor(c)); + + // roll down test + c = new GregorianCalendar(2000,2,1,1,10); + compare(new GregorianCalendar(2000,2,1,0,30),x.floor(c)); + } + + public void testFloor2() throws Exception { + // make sure that lower fields are really reset correctly + CronTab x = new CronTab("15,45 3 * * *"); + Calendar c = new GregorianCalendar(2000,2,1,4,30); + compare(new GregorianCalendar(2000,2,1,3,45),x.floor(c)); + } + + public void testFloor3() throws Exception { + // conflict between DoM and DoW. In this we need to find a day that's the last day of a month and Sunday in 2010 + CronTab x = new CronTab("0 0 1 * 0"); + Calendar c = new GregorianCalendar(2011,0,1,15,55); + // the last such day in 2010 is Aug 1st + compare(new GregorianCalendar(2010,7,1,0,0),x.floor(c)); + } + + /** + * Humans can't easily see difference in two {@link Calendar}s, do help the diagnosis by using {@link DateFormat}. + */ + private void compare(Calendar a, Calendar b) { + DateFormat f = DateFormat.getDateTimeInstance(); + System.out.println(f.format(a.getTime())+" vs "+f.format(b.getTime())); + assertEquals(a,b); + } + +} diff --git a/core/src/test/java/hudson/scheduler/CrontabTest.java b/core/src/test/java/hudson/scheduler/CrontabTest.java deleted file mode 100644 index b83642ccbcedf23564f16d181a3e413fc06f4c21..0000000000000000000000000000000000000000 --- a/core/src/test/java/hudson/scheduler/CrontabTest.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * The MIT License - * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ -package hudson.scheduler; - -import antlr.ANTLRException; -import junit.framework.TestCase; - -/** - * @author Kohsuke Kawaguchi - */ -public class CrontabTest extends TestCase { - public static void main(String[] args) throws ANTLRException { - for (String arg : args) { - CronTab ct = new CronTab(arg); - System.out.println(ct.toString()); - } - } - - public void test1() throws ANTLRException { - new CronTab("@yearly"); - new CronTab("@weekly"); - new CronTab("@midnight"); - new CronTab("@monthly"); - new CronTab("0 0 * 1-10/3 *"); - } -} diff --git a/core/src/test/java/hudson/scm/SubversionSCMTest.java b/core/src/test/java/hudson/scm/SubversionSCMTest.java deleted file mode 100644 index 2b81991bc3711ca2228975731a6325f784229e8f..0000000000000000000000000000000000000000 --- a/core/src/test/java/hudson/scm/SubversionSCMTest.java +++ /dev/null @@ -1,54 +0,0 @@ -/* - * The MIT License - * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ -package hudson.scm; - -import junit.framework.TestCase; - -import java.util.Arrays; - -/** - * @author Kohsuke Kawaguchi - */ -public class SubversionSCMTest extends TestCase { - public void test1() { - check("http://foobar/"); - check("https://foobar/"); - check("file://foobar/"); - check("svn://foobar/"); - check("svn+ssh://foobar/"); - } - - public void test2() { - String[] r = "abc\\ def ghi".split("(? getAssignedLabels() { + public Set getAssignedLabels() { throw new UnsupportedOperationException(); } @@ -86,10 +84,6 @@ public class NodeListTest extends TestCase { throw new UnsupportedOperationException(); } - public Set

        ,B extends AbstractMavenBuild> extends AbstractBuild { + + /** + * Extra verbose debug switch. + */ + public static boolean debug = false; + + protected AbstractMavenBuild(P job) throws IOException { + super(job); + } + + public AbstractMavenBuild(P job, Calendar timestamp) { + super(job, timestamp); + } + + public AbstractMavenBuild(P project, File buildDir) throws IOException { + super(project, buildDir); + } + + + +} diff --git a/maven-plugin/src/main/java/hudson/maven/AbstractMavenProject.java b/maven-plugin/src/main/java/hudson/maven/AbstractMavenProject.java index fd48b6b261defdec27e868cd4d485bbac4ac87fe..b97e7ebb8b38c0c3257008da4f4505413b6fef9f 100644 --- a/maven-plugin/src/main/java/hudson/maven/AbstractMavenProject.java +++ b/maven-plugin/src/main/java/hudson/maven/AbstractMavenProject.java @@ -23,14 +23,22 @@ */ package hudson.maven; +import hudson.Util; import hudson.model.AbstractBuild; import hudson.model.AbstractProject; import hudson.model.Action; +import hudson.model.DependencyGraph; +import hudson.model.Hudson; import hudson.model.ItemGroup; -import hudson.triggers.Trigger; +import hudson.model.Result; +import hudson.model.Run; +import hudson.model.TaskListener; +import hudson.model.DependencyGraph.Dependency; import hudson.tasks.Maven.ProjectWithMaven; +import hudson.triggers.Trigger; import java.util.HashSet; +import java.util.List; import java.util.Set; /** @@ -38,31 +46,153 @@ import java.util.Set; * * @author Kohsuke Kawaguchi */ -public abstract class AbstractMavenProject

        ,R extends AbstractBuild> extends AbstractProject +public abstract class AbstractMavenProject

        ,R extends AbstractBuild> extends AbstractProject implements ProjectWithMaven { + + protected static class MavenModuleDependency extends Dependency { + + public MavenModuleDependency(AbstractMavenProject upstream, + AbstractProject downstream) { + super(upstream, downstream); + } + + @Override + public boolean shouldTriggerBuild(AbstractBuild build, + TaskListener listener, List actions) { + /** + * Schedules all the downstream builds. + * Returns immediately if build result doesn't meet the required level + * (as specified by {@link BuildTrigger}, or {@link Result#SUCCESS} if none). + * + * @param listener + * Where the progress reports go. + */ + if (build.getResult().isWorseThan(Result.SUCCESS)) return false; + // trigger dependency builds + AbstractProject downstreamProject = getDownstreamProject(); + if(AbstractMavenBuild.debug) + listener.getLogger().println("Considering whether to trigger "+downstreamProject+" or not"); + + // if the downstream module depends on multiple modules, + // only trigger them when all the upstream dependencies are updated. + boolean trigger = true; + + // Check to see if any of its upstream dependencies are already building or in queue. + AbstractMavenProject parent = (AbstractMavenProject) getUpstreamProject(); + if (areUpstreamsBuilding(downstreamProject, parent)) { + if(AbstractMavenBuild.debug) + listener.getLogger().println(" -> No, because downstream has dependencies already building or in queue"); + trigger = false; + } + // Check to see if any of its upstream dependencies are in this list of downstream projects. + else if (inDownstreamProjects(downstreamProject)) { + if(AbstractMavenBuild.debug) + listener.getLogger().println(" -> No, because downstream has dependencies in the downstream projects list"); + trigger = false; + } + else { + AbstractBuild dlb = downstreamProject.getLastBuild(); // can be null. + for (AbstractMavenProject up : Util.filter(downstreamProject.getUpstreamProjects(),AbstractMavenProject.class)) { + Run ulb; + if(up==parent) { + // the current build itself is not registered as lastSuccessfulBuild + // at this point, so we have to take that into account. ugly. + if(build.getResult()==null || !build.getResult().isWorseThan(Result.UNSTABLE)) + ulb = build; + else + ulb = up.getLastSuccessfulBuild(); + } else + ulb = up.getLastSuccessfulBuild(); + if(ulb==null) { + // if no usable build is available from the upstream, + // then we have to wait at least until this build is ready + if(AbstractMavenBuild.debug) + listener.getLogger().println(" -> No, because another upstream "+up+" for "+downstreamProject+" has no successful build"); + trigger = false; + break; + } + + // if no record of the relationship in the last build + // is available, we'll just have to assume that the condition + // for the new build is met, or else no build will be fired forever. + if(dlb==null) continue; + int n = dlb.getUpstreamRelationship(up); + if(n==-1) continue; + + assert ulb.getNumber()>=n; + } + } + return trigger; + } + + /** + * Determines whether any of the upstream project are either + * building or in the queue. + * + * This means eventually there will be an automatic triggering of + * the given project (provided that all builds went smoothly.) + * + * @param downstreamProject + * The AbstractProject we want to build. + * @param excludeProject + * An AbstractProject to exclude - if we see this in the transitive + * dependencies, we're not going to bother checking to see if it's + * building. For example, pass the current parent project to be sure + * that it will be ignored when looking for building dependencies. + * @return + * True if any upstream projects are building or in queue, false otherwise. + */ + private boolean areUpstreamsBuilding(AbstractProject downstreamProject, + AbstractProject excludeProject) { + DependencyGraph graph = Hudson.getInstance().getDependencyGraph(); + Set tups = graph.getTransitiveUpstream(downstreamProject); + for (AbstractProject tup : tups) { + if(tup!=excludeProject && (tup.isBuilding() || tup.isInQueue())) + return true; + } + return false; + } + + private boolean inDownstreamProjects(AbstractProject downstreamProject) { + DependencyGraph graph = Hudson.getInstance().getDependencyGraph(); + Set tups = graph.getTransitiveUpstream(downstreamProject); + + for (AbstractProject tup : tups) { + List> downstreamProjects = getUpstreamProject().getDownstreamProjects(); + for (AbstractProject dp : downstreamProjects) { + if(dp!=getUpstreamProject() && dp!=downstreamProject && dp==tup) + return true; + } + } + return false; + } + } + protected AbstractMavenProject(ItemGroup parent, String name) { super(parent, name); } - protected void updateTransientActions() { - synchronized(transientActions) { - super.updateTransientActions(); - - // if we just pick up the project actions from the last build, - // and if the last build failed very early, then the reports that - // kick in later (like test results) won't be displayed. - // so pick up last successful build, too. - Set added = new HashSet(); - addTransientActionsFromBuild(getLastBuild(),added); - addTransientActionsFromBuild(getLastSuccessfulBuild(),added); - - for (Trigger trigger : triggers) { - Action a = trigger.getProjectAction(); - if(a!=null) - transientActions.add(a); - } - } + protected List createTransientActions() { + List r = super.createTransientActions(); + + // if we just pick up the project actions from the last build, + // and if the last build failed very early, then the reports that + // kick in later (like test results) won't be displayed. + // so pick up last successful build, too. + Set added = new HashSet(); + addTransientActionsFromBuild(getLastBuild(),r,added); + addTransientActionsFromBuild(getLastSuccessfulBuild(),r,added); + + for (Trigger trigger : triggers) + r.addAll(trigger.getProjectActions()); + + return r; } - protected abstract void addTransientActionsFromBuild(R lastBuild, Set added); + /** + * @param collection + * Add the transient actions to this collection. + */ + protected abstract void addTransientActionsFromBuild(R lastBuild, List collection, Set added); + } diff --git a/maven-plugin/src/main/java/hudson/maven/ExecutedMojo.java b/maven-plugin/src/main/java/hudson/maven/ExecutedMojo.java index 657847199855130422d5e8407d5c376814a5a7cb..5b62c57146d72ff536e1e5763507e39c6533e2d8 100644 --- a/maven-plugin/src/main/java/hudson/maven/ExecutedMojo.java +++ b/maven-plugin/src/main/java/hudson/maven/ExecutedMojo.java @@ -38,6 +38,8 @@ import java.util.HashMap; import java.util.logging.Logger; import java.util.logging.Level; +import static hudson.Util.intern; + /** * Persisted record of mojo execution. * @@ -100,6 +102,29 @@ public final class ExecutedMojo implements Serializable { this.digest = digest; } + /** + * Copy constructor used for interning. + */ + private ExecutedMojo(String groupId, String artifactId, String version, String goal, String executionId, long duration, String digest) { + this.groupId = groupId; + this.artifactId = artifactId; + this.version = version; + this.goal = goal; + this.executionId = executionId; + this.duration = duration; + this.digest = digest; + } + + /** + * Lots of {@link ExecutedMojo}s tend to have the same groupId, artifactId, etc., so interning them help + * with memory consumption. + * + * TODO: better if XStream has a declarative way of marking fields as "target for intern". + */ + ExecutedMojo readResolve() { + return new ExecutedMojo(intern(groupId),intern(artifactId),intern(version),intern(goal),intern(executionId),duration,intern(digest)); + } + /** * Returns duration in a human readable text. */ diff --git a/maven-plugin/src/main/java/hudson/maven/FilteredChangeLogSet.java b/maven-plugin/src/main/java/hudson/maven/FilteredChangeLogSet.java index 60d33a9d740881c08ea0815afb643c1a5678ee45..c9dc34a0e295e97fb92dadbcfc7a9147817d7da2 100644 --- a/maven-plugin/src/main/java/hudson/maven/FilteredChangeLogSet.java +++ b/maven-plugin/src/main/java/hudson/maven/FilteredChangeLogSet.java @@ -28,7 +28,7 @@ import hudson.scm.ChangeLogSet.Entry; import java.util.Iterator; import java.util.List; -import java.util.ArrayList; +import java.util.Collections; /** * {@link ChangeLogSet} implementation used for {@link MavenBuild}. @@ -36,66 +36,20 @@ import java.util.ArrayList; * @author Kohsuke Kawaguchi */ public class FilteredChangeLogSet extends ChangeLogSet { - private final List master = new ArrayList(); + private final List master; public final ChangeLogSet core; /*package*/ FilteredChangeLogSet(MavenBuild build) { super(build); - MavenModule mod = build.getParent(); - - // modules that are under 'mod'. lazily computed - List subsidiaries = null; - MavenModuleSetBuild parentBuild = build.getParentBuild(); if(parentBuild==null) { core = ChangeLogSet.createEmpty(build); - return; + master = Collections.emptyList(); + } else { + core = parentBuild.getChangeSet(); + master = parentBuild.getChangeSetFor(build.getParent()); } - - core = parentBuild.getChangeSet(); - - for (Entry e : core) { - boolean belongs = false; - - for (String path : e.getAffectedPaths()) { - if(path.startsWith(mod.getRelativePath())) { - belongs = true; - break; - } - } - - if(belongs) { - // make sure at least one change belongs to this module proper, - // and not its subsidiary module - if(subsidiaries==null) { - subsidiaries = new ArrayList(); - for (MavenModule mm : mod.getParent().getModules()) { - if(mm!=mod && mm.getRelativePath().startsWith(mod.getRelativePath())) - subsidiaries.add(mm); - } - } - - belongs = false; - - for (String path : e.getAffectedPaths()) { - if(!belongsToSubsidiary(subsidiaries, path)) { - belongs = true; - break; - } - } - - if(belongs) - master.add(e); - } - } - } - - private boolean belongsToSubsidiary(List subsidiaries, String path) { - for (MavenModule sub : subsidiaries) - if(path.startsWith(sub.getRelativePath())) - return true; - return false; } public Iterator iterator() { diff --git a/maven-plugin/src/main/java/hudson/maven/MavenAggregatedReport.java b/maven-plugin/src/main/java/hudson/maven/MavenAggregatedReport.java index a74c6ca4fcec61c7e25d9edc8c2245d81b2e8289..7fc6c4b9193ea413f7e6eaa74267c391111254e6 100644 --- a/maven-plugin/src/main/java/hudson/maven/MavenAggregatedReport.java +++ b/maven-plugin/src/main/java/hudson/maven/MavenAggregatedReport.java @@ -23,7 +23,6 @@ */ package hudson.maven; -import hudson.model.AbstractProject; import hudson.model.Action; import hudson.tasks.BuildStep; diff --git a/maven-plugin/src/main/java/hudson/maven/MavenBuild.java b/maven-plugin/src/main/java/hudson/maven/MavenBuild.java index a0c9ede8347d03a12021855fef5d9a15019f1b2b..cf7a3cb5916b1c4b6a63a7e3ddb5f2d8f456d5f2 100644 --- a/maven-plugin/src/main/java/hudson/maven/MavenBuild.java +++ b/maven-plugin/src/main/java/hudson/maven/MavenBuild.java @@ -24,18 +24,18 @@ package hudson.maven; import hudson.FilePath; -import hudson.Util; import hudson.EnvVars; +import hudson.maven.reporters.SurefireArchiver; +import hudson.slaves.WorkspaceList; +import hudson.slaves.WorkspaceList.Lease; import hudson.maven.agent.AbortException; -import hudson.model.AbstractBuild; -import hudson.model.AbstractProject; import hudson.model.BuildListener; -import hudson.model.DependencyGraph; -import hudson.model.Hudson; import hudson.model.Result; import hudson.model.Run; -import hudson.model.Cause.UpstreamCause; import hudson.model.Environment; +import hudson.model.TaskListener; +import hudson.model.Node; +import hudson.model.Executor; import hudson.remoting.Channel; import hudson.scm.ChangeLogSet; import hudson.scm.ChangeLogSet.Entry; @@ -61,22 +61,20 @@ import java.util.ArrayList; import java.util.Calendar; import java.util.Collections; import java.util.HashMap; -import java.util.HashSet; import java.util.List; import java.util.Map; -import java.util.Set; /** * {@link Run} for {@link MavenModule}. * * @author Kohsuke Kawaguchi */ -public class MavenBuild extends AbstractBuild { +public class MavenBuild extends AbstractMavenBuild { /** * {@link MavenReporter}s that will contribute project actions. * Can be null if there's none. */ - /*package*/ List projectActionReporters; + /*package*/ List projectActionReporters; /** * {@link ExecutedMojo}s that record what was run. @@ -96,6 +94,7 @@ public class MavenBuild extends AbstractBuild { public MavenBuild(MavenModule project, File buildDir) throws IOException { super(project, buildDir); + SurefireArchiver.fixUp(projectActionReporters); } @Override @@ -170,12 +169,39 @@ public class MavenBuild extends AbstractBuild { return true; } + /** + * Exposes {@code MAVEN_OPTS} to forked processes. + * + *

        + * See {@link MavenModuleSetBuild#getEnvironment(TaskListener)} for discussion. + */ + @Override + public EnvVars getEnvironment(TaskListener log) throws IOException, InterruptedException { + EnvVars envs = super.getEnvironment(log); + String opts = project.getParent().getMavenOpts(); + if(opts!=null) + envs.put("MAVEN_OPTS", opts); + return envs; + } + public void registerAsProjectAction(MavenReporter reporter) { if(projectActionReporters==null) - projectActionReporters = new ArrayList(); + projectActionReporters = new ArrayList(); projectActionReporters.add(reporter); } + public void registerAsProjectAction(MavenProjectActionBuilder builder) { + if(projectActionReporters==null) + projectActionReporters = new ArrayList(); + projectActionReporters.add(builder); + } + + public List getProjectActionBuilders() { + if(projectActionReporters==null) + return Collections.emptyList(); + return Collections.unmodifiableList(projectActionReporters); + } + public List getExecutedMojos() { if(executedMojos==null) return Collections.emptyList(); @@ -211,6 +237,14 @@ public class MavenBuild extends AbstractBuild { return new ExecutedMojo.Cache(); } + /** + * Backdoor for {@link MavenModuleSetBuild} to assign workspaces for modules. + */ + @Override + protected void setWorkspace(FilePath path) { + super.setWorkspace(path); + } + /** * Runs Maven and builds the project. */ @@ -236,6 +270,7 @@ public class MavenBuild extends AbstractBuild { super(buildProxy); } + @Override public void executeAsync(final BuildCallable program) throws IOException { futures.add(Channel.current().callAsync(new AsyncInvoker(core,program))); } @@ -345,10 +380,18 @@ public class MavenBuild extends AbstractBuild { return System.currentTimeMillis()-getTimestamp().getTimeInMillis(); } + public boolean isArchivingDisabled() { + return MavenBuild.this.getParent().getParent().isArchivingDisabled(); + } + public void registerAsProjectAction(MavenReporter reporter) { MavenBuild.this.registerAsProjectAction(reporter); } + public void registerAsProjectAction(MavenProjectActionBuilder builder) { + MavenBuild.this.registerAsProjectAction(builder); + } + public void registerAsAggregatedProjectAction(MavenReporter reporter) { MavenModuleSetBuild pb = getParentBuild(); if(pb!=null) @@ -390,7 +433,7 @@ public class MavenBuild extends AbstractBuild { if(result==null) setResult(Result.SUCCESS); onEndBuilding(); - duration = System.currentTimeMillis()- startTime; + duration += System.currentTimeMillis()- startTime; parentBuild.notifyModuleBuild(MavenBuild.this); try { listener.setSideOutputStream(null); @@ -448,15 +491,20 @@ public class MavenBuild extends AbstractBuild { } private Object writeReplace() { - return Channel.current().export(MavenBuildProxy2.class,this); + // when called from remote, methods need to be executed in the proper Executor's context. + return Channel.current().export(MavenBuildProxy2.class, + Executor.currentExecutor().newImpersonatingProxy(MavenBuildProxy2.class,this)); } - - } private class RunnerImpl extends AbstractRunner { private List reporters; + @Override + protected Lease decideWorkspace(Node n, WorkspaceList wsl) throws InterruptedException, IOException { + return wsl.allocate(getModuleSetBuild().getModuleRoot().child(getProject().getRelativePath())); + } + protected Result doRun(BuildListener listener) throws Exception { // pick up a list of reporters to run reporters = getProject().createReporters(); @@ -464,9 +512,8 @@ public class MavenBuild extends AbstractBuild { if(debug) listener.getLogger().println("Reporters="+reporters); - buildEnvironments = new ArrayList(); - for (BuildWrapper w : mms.getBuildWrappers()) { - BuildWrapper.Environment e = w.setUp(MavenBuild.this, launcher, listener); + for (BuildWrapper w : mms.getBuildWrappersList()) { + Environment e = w.setUp(MavenBuild.this, launcher, listener); if (e == null) { return Result.FAILURE; } @@ -478,13 +525,12 @@ public class MavenBuild extends AbstractBuild { ProcessCache.MavenProcess process = mavenProcessCache.get(launcher.getChannel(), listener, new MavenProcessFactory(getParent().getParent(),launcher,envVars,null)); - ArgumentListBuilder margs = new ArgumentListBuilder(); - margs.add("-N").add("-B"); + ArgumentListBuilder margs = new ArgumentListBuilder("-N","-B"); if(mms.usesPrivateRepository()) // use the per-project repository. should it be per-module? But that would cost too much in terms of disk // the workspace must be on this node, so getRemote() is safe. - margs.add("-Dmaven.repo.local="+mms.getWorkspace().child(".repository").getRemote()); - margs.add("-f",getProject().getModuleRoot().child("pom.xml").getRemote()); + margs.add("-Dmaven.repo.local="+getWorkspace().child(".repository").getRemote()); + margs.add("-f",getModuleRoot().child("pom.xml").getRemote()); margs.addTokenized(getProject().getGoals()); Map systemProps = new HashMap(envVars); @@ -493,18 +539,24 @@ public class MavenBuild extends AbstractBuild { boolean normalExit = false; try { - Result r = process.channel.call(new Builder( + Result r = process.call(new Builder( listener,new ProxyImpl(), - reporters.toArray(new MavenReporter[0]), margs.toList(), systemProps)); + reporters.toArray(new MavenReporter[reporters.size()]), margs.toList(), systemProps)); normalExit = true; return r; } finally { if(normalExit) process.recycle(); else process.discard(); - for (int i = buildEnvironments.size() - 1; i >= 0; i--) { - buildEnvironments.get(i).tearDown(MavenBuild.this, listener); - buildEnvironments = null; + + // tear down in reverse order + boolean failed=false; + for( int i=buildEnvironments.size()-1; i>=0; i-- ) { + if (!buildEnvironments.get(i).tearDown(MavenBuild.this,listener)) { + failed=true; + } } + // WARNING The return in the finally clause will trump any return before + if (failed) return Result.FAILURE; } } @@ -513,113 +565,6 @@ public class MavenBuild extends AbstractBuild { reporter.end(MavenBuild.this,launcher,listener); } - public void cleanUp(BuildListener listener) throws Exception { - if(getResult().isBetterOrEqualTo(Result.SUCCESS)) - scheduleDownstreamBuilds(listener,new HashSet()); - } - } - - /** - * Schedules all the downstream builds. - * - * @param downstreams - * List of downstream jobs that are already scheduled. - * The method will add jobs that it triggered here, - * and won't try to trigger jobs that are already in this list. - * @param listener - * Where the progress reports go. - */ - /*package*/ final void scheduleDownstreamBuilds(BuildListener listener, Set downstreams) { - // trigger dependency builds - DependencyGraph graph = Hudson.getInstance().getDependencyGraph(); - for( AbstractProject down : getParent().getDownstreamProjects()) { - if(downstreams.contains(down)) - continue; // already triggered - - if(debug) - listener.getLogger().println("Considering whether to trigger "+down+" or not"); - - if(graph.hasIndirectDependencies(getProject(),down)) { - // if there's a longer dependency path to this project, - // then scheduling the build now is going to be a waste, - // so don't do that. - // let the longer path eventually trigger this build - if(debug) - listener.getLogger().println(" -> No, because there's a longer dependency path"); - continue; - } - - // if the downstream module depends on multiple modules, - // only trigger them when all the upstream dependencies are updated. - boolean trigger = true; - - AbstractBuild dlb = down.getLastBuild(); // can be null. - for (MavenModule up : Util.filter(down.getUpstreamProjects(),MavenModule.class)) { - MavenBuild ulb; - if(up==getProject()) { - // the current build itself is not registered as lastSuccessfulBuild - // at this point, so we have to take that into account. ugly. - if(getResult()==null || !getResult().isWorseThan(Result.UNSTABLE)) - ulb = MavenBuild.this; - else - ulb = up.getLastSuccessfulBuild(); - } else - ulb = up.getLastSuccessfulBuild(); - if(ulb==null) { - // if no usable build is available from the upstream, - // then we have to wait at least until this build is ready - if(debug) - listener.getLogger().println(" -> No, because another upstream "+up+" for "+down+" has no successful build"); - trigger = false; - break; - } - - // if no record of the relationship in the last build - // is available, we'll just have to assume that the condition - // for the new build is met, or else no build will be fired forever. - if(dlb==null) continue; - int n = dlb.getUpstreamRelationship(up); - if(n==-1) continue; - - assert ulb.getNumber()>=n; - - if(ulb.getNumber()==n) { - // there's no new build of this upstream since the last build - // of the downstream, and the upstream build is in progress. - // The new downstream build should wait until this build is started - AbstractProject bup = getBuildingUpstream(graph, up); - if(bup!=null) { - if(debug) - listener.getLogger().println(" -> No, because another upstream "+bup+" for "+down+" is building"); - trigger = false; - break; - } - } - } - - if(trigger) { - listener.getLogger().println(Messages.MavenBuild_Triggering(down.getName())); - downstreams.add(down); - down.scheduleBuild(new UpstreamCause(this)); - } - } - } - - /** - * Returns the project if any of the upstream project (or itself) is either - * building or is in the queue. - *

        - * This means eventually there will be an automatic triggering of - * the given project (provided that all builds went smoothly.) - */ - private AbstractProject getBuildingUpstream(DependencyGraph graph, AbstractProject project) { - Set tups = graph.getTransitiveUpstream(project); - tups.add(project); - for (AbstractProject tup : tups) { - if(tup!=getProject() && (tup.isBuilding() || tup.isInQueue())) - return tup; - } - return null; } private static final int MAX_PROCESS_CACHE = 5; @@ -630,4 +575,9 @@ public class MavenBuild extends AbstractBuild { * Set true to produce debug output. */ public static boolean debug = false; + + @Override + public MavenModule getParent() {// don't know why, but javac wants this + return super.getParent(); + } } diff --git a/maven-plugin/src/main/java/hudson/maven/MavenBuildProxy.java b/maven-plugin/src/main/java/hudson/maven/MavenBuildProxy.java index 38df67a54986945728152b01445e146d1c03626b..8e89221f8a502dfdb15e1d23bc19a48c2b4694a6 100644 --- a/maven-plugin/src/main/java/hudson/maven/MavenBuildProxy.java +++ b/maven-plugin/src/main/java/hudson/maven/MavenBuildProxy.java @@ -113,9 +113,14 @@ public interface MavenBuildProxy { */ long getMilliSecsSinceBuildStart(); + /** + * If true, artifacts will not actually be archived to master. Calls {@link MavenModuleSet#isArchivingDisabled()}. + */ + boolean isArchivingDisabled(); + /** * Nominates that the reporter will contribute a project action - * for this build by using {@link MavenReporter#getProjectAction(MavenModule)}. + * for this build by using {@link MavenReporter#getProjectActions(MavenModule)}. * *

        * The specified {@link MavenReporter} object will be transfered to the master @@ -123,6 +128,18 @@ public interface MavenBuildProxy { */ void registerAsProjectAction(MavenReporter reporter); + /** + * Nominates that the reporter will contribute a project action + * for this build by using {@link MavenReporter#getProjectActions(MavenModule)}. + * + *

        + * The specified {@link MavenReporter} object will be transferred to the master + * and will become a persisted part of the {@link MavenBuild}. + * + * @since 1.372 + */ + void registerAsProjectAction(MavenProjectActionBuilder builder); + /** * Nominates that the reporter will contribute a project action * for this build by using {@link MavenReporter#getAggregatedProjectAction(MavenModuleSet)}. @@ -201,10 +218,18 @@ public interface MavenBuildProxy { return core.getMilliSecsSinceBuildStart(); } + public boolean isArchivingDisabled() { + return core.isArchivingDisabled(); + } + public void registerAsProjectAction(MavenReporter reporter) { core.registerAsProjectAction(reporter); } + public void registerAsProjectAction(MavenProjectActionBuilder builder) { + core.registerAsProjectAction(builder); + } + public void registerAsAggregatedProjectAction(MavenReporter reporter) { core.registerAsAggregatedProjectAction(reporter); } diff --git a/maven-plugin/src/main/java/hudson/maven/MavenBuildProxy2.java b/maven-plugin/src/main/java/hudson/maven/MavenBuildProxy2.java index 2cda6bb2768f2cf96f6e2bafe5f7b1515f6dc6d0..0f32d0c659dd7166374922452bd4cf500f250f33 100644 --- a/maven-plugin/src/main/java/hudson/maven/MavenBuildProxy2.java +++ b/maven-plugin/src/main/java/hudson/maven/MavenBuildProxy2.java @@ -30,7 +30,7 @@ package hudson.maven; * * @author Kohsuke Kawaguchi */ -interface MavenBuildProxy2 extends MavenBuildProxy { +public interface MavenBuildProxy2 extends MavenBuildProxy { /** * Notifies that the build has entered a module. */ diff --git a/maven-plugin/src/main/java/hudson/maven/MavenBuilder.java b/maven-plugin/src/main/java/hudson/maven/MavenBuilder.java index d8c5a5956766615041beabf96cf26dd53bb75db0..958ed55b86d858ed708204e9c202c7a30faeaa63 100644 --- a/maven-plugin/src/main/java/hudson/maven/MavenBuilder.java +++ b/maven-plugin/src/main/java/hudson/maven/MavenBuilder.java @@ -32,34 +32,35 @@ import hudson.model.BuildListener; import hudson.model.Hudson; import hudson.model.Result; import hudson.remoting.Callable; -import hudson.remoting.DelegatingCallable; import hudson.remoting.Channel; +import hudson.remoting.DelegatingCallable; import hudson.remoting.Future; import hudson.util.IOException2; + +import java.io.IOException; +import java.io.PrintStream; +import java.lang.reflect.InvocationTargetException; +import java.text.NumberFormat; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.concurrent.ExecutionException; + import org.apache.maven.BuildFailureException; -import org.apache.maven.reporting.MavenReport; import org.apache.maven.execution.MavenSession; import org.apache.maven.execution.ReactorManager; import org.apache.maven.lifecycle.LifecycleExecutionException; import org.apache.maven.lifecycle.LifecycleExecutorInterceptor; import org.apache.maven.lifecycle.LifecycleExecutorListener; import org.apache.maven.monitor.event.EventDispatcher; -import org.apache.maven.plugin.MojoExecution; import org.apache.maven.plugin.Mojo; +import org.apache.maven.plugin.MojoExecution; import org.apache.maven.project.MavenProject; +import org.apache.maven.reporting.MavenReport; import org.codehaus.classworlds.NoSuchRealmException; import org.codehaus.plexus.component.configurator.expression.ExpressionEvaluator; import org.codehaus.plexus.configuration.PlexusConfiguration; -import java.io.IOException; -import java.io.PrintStream; -import java.lang.reflect.InvocationTargetException; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import java.util.concurrent.ExecutionException; -import java.text.NumberFormat; - /** * {@link Callable} that invokes Maven CLI (in process) and drives a build. * @@ -153,7 +154,12 @@ public abstract class MavenBuilder implements DelegatingCallable e : systemProps.entrySet()) { + if (e.getValue()==null) + throw new IllegalArgumentException("System property "+e.getKey()+" has a null value"); + System.getProperties().put(e.getKey(), e.getValue()); + } listener.getLogger().println(formatArgs(goals)); int r = Main.launch(goals.toArray(new String[goals.size()])); @@ -216,8 +222,15 @@ public abstract class MavenBuilder implements DelegatingCallable args) { StringBuilder buf = new StringBuilder("Executing Maven: "); - for (String arg : args) - buf.append(' ').append(arg); + for (String arg : args) { + final String argPassword = "-Dpassword=" ; + String filteredArg = arg ; + // check if current arg is password arg. Then replace password by ***** + if (arg.startsWith(argPassword)) { + filteredArg=argPassword+"*********"; + } + buf.append(' ').append(filteredArg); + } return buf.toString(); } diff --git a/maven-plugin/src/main/java/hudson/maven/MavenComputerListener.java b/maven-plugin/src/main/java/hudson/maven/MavenComputerListener.java index 2c052f73500e93da8d2a2fce21de01f8dd77afc5..5d4c1ed3f801cfc33c9240100fed9fd610709eae 100644 --- a/maven-plugin/src/main/java/hudson/maven/MavenComputerListener.java +++ b/maven-plugin/src/main/java/hudson/maven/MavenComputerListener.java @@ -40,7 +40,6 @@ import java.io.PrintStream; import org.apache.tools.ant.taskdefs.Zip; import org.apache.tools.ant.Project; -import sun.tools.jar.resources.jar; /** * When a slave is connected, copy maven-agent.jar and maven-intercepter.jar @@ -54,7 +53,7 @@ public class MavenComputerListener extends ComputerListener { PrintStream logger = listener.getLogger(); copyJar(logger, root, Main.class, "maven-agent"); copyJar(logger, root, PluginManagerInterceptor.class, "maven-interceptor"); - copyJar(logger, root, Maven21Interceptor.class, "maven2.1-interceptor.jar"); + copyJar(logger, root, Maven21Interceptor.class, "maven2.1-interceptor"); } /** diff --git a/maven-plugin/src/main/java/hudson/maven/MavenEmbedder.java b/maven-plugin/src/main/java/hudson/maven/MavenEmbedder.java deleted file mode 100644 index 3c0539c75669f321ef440d328c88f8d786a4c314..0000000000000000000000000000000000000000 --- a/maven-plugin/src/main/java/hudson/maven/MavenEmbedder.java +++ /dev/null @@ -1,929 +0,0 @@ -/* - * Copyright 2001-2005 The Apache Software Foundation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package hudson.maven; - -import org.apache.maven.BuildFailureException; -import org.apache.maven.SettingsConfigurationException; -import org.apache.maven.artifact.Artifact; -import org.apache.maven.artifact.factory.ArtifactFactory; -import org.apache.maven.artifact.manager.WagonManager; -import org.apache.maven.artifact.repository.ArtifactRepository; -import org.apache.maven.artifact.repository.ArtifactRepositoryFactory; -import org.apache.maven.artifact.repository.ArtifactRepositoryPolicy; -import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout; -import org.apache.maven.artifact.resolver.ArtifactNotFoundException; -import org.apache.maven.artifact.resolver.ArtifactResolutionException; -import org.apache.maven.artifact.resolver.ArtifactResolver; -import org.apache.maven.embedder.MavenEmbedderException; -import org.apache.maven.embedder.MavenEmbedderLogger; -import org.apache.maven.embedder.MavenEmbedderLoggerManager; -import org.apache.maven.embedder.PlexusLoggerAdapter; -import org.apache.maven.embedder.SummaryPluginDescriptor; -import org.apache.maven.execution.MavenSession; -import org.apache.maven.execution.ReactorManager; -import org.apache.maven.lifecycle.LifecycleExecutionException; -import org.apache.maven.lifecycle.LifecycleExecutor; -import org.apache.maven.model.Model; -import org.apache.maven.model.io.xpp3.MavenXpp3Reader; -import org.apache.maven.model.io.xpp3.MavenXpp3Writer; -import org.apache.maven.monitor.event.DefaultEventDispatcher; -import org.apache.maven.monitor.event.EventDispatcher; -import org.apache.maven.monitor.event.EventMonitor; -import org.apache.maven.plugin.MojoExecutionException; -import org.apache.maven.plugin.descriptor.PluginDescriptor; -import org.apache.maven.plugin.descriptor.PluginDescriptorBuilder; -import org.apache.maven.profiles.DefaultProfileManager; -import org.apache.maven.profiles.ProfileManager; -import org.apache.maven.project.DuplicateProjectException; -import org.apache.maven.project.MavenProject; -import org.apache.maven.project.MavenProjectBuilder; -import org.apache.maven.project.ProjectBuildingException; -import org.apache.maven.project.InvalidProjectModelException; -import org.apache.maven.project.validation.ModelValidationResult; -import org.apache.maven.settings.MavenSettingsBuilder; -import org.apache.maven.settings.RuntimeInfo; -import org.apache.maven.settings.Settings; -import org.apache.maven.settings.Proxy; -import org.apache.maven.settings.Server; -import org.apache.maven.settings.Mirror; -import org.apache.maven.wagon.events.TransferListener; -import org.codehaus.classworlds.ClassWorld; -import org.codehaus.classworlds.DuplicateRealmException; -import org.codehaus.plexus.PlexusContainer; -import org.codehaus.plexus.PlexusContainerException; -import org.codehaus.plexus.component.repository.ComponentDescriptor; -import org.codehaus.plexus.component.repository.exception.ComponentLifecycleException; -import org.codehaus.plexus.component.repository.exception.ComponentLookupException; -import org.codehaus.plexus.configuration.PlexusConfiguration; -import org.codehaus.plexus.configuration.PlexusConfigurationException; -import org.codehaus.plexus.embed.Embedder; -import org.codehaus.plexus.util.DirectoryScanner; -import org.codehaus.plexus.util.dag.CycleDetectedException; -import org.codehaus.plexus.util.xml.pull.XmlPullParserException; -import org.codehaus.plexus.util.xml.Xpp3Dom; - -import java.io.File; -import java.io.FileNotFoundException; -import java.io.FileReader; -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.io.Writer; -import java.net.URL; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Date; -import java.util.Iterator; -import java.util.List; -import java.util.Properties; -import java.lang.reflect.Field; - -import hudson.Util; - -/** - * Class intended to be used by clients who wish to embed Maven into their applications - * - * @author Jason van Zyl - */ -public class MavenEmbedder -{ - public static final String userHome = System.getProperty( "user.home" ); - - // ---------------------------------------------------------------------- - // Embedder - // ---------------------------------------------------------------------- - - private Embedder embedder; - - // ---------------------------------------------------------------------- - // Components - // ---------------------------------------------------------------------- - - private MavenProjectBuilder mavenProjectBuilder; - - private ArtifactRepositoryFactory artifactRepositoryFactory; - - private MavenSettingsBuilder settingsBuilder; - - private LifecycleExecutor lifecycleExecutor; - - private WagonManager wagonManager; - - private MavenXpp3Reader modelReader; - - private MavenXpp3Writer modelWriter; - - private ProfileManager profileManager; - - private PluginDescriptorBuilder pluginDescriptorBuilder; - - private ArtifactFactory artifactFactory; - - private ArtifactResolver artifactResolver; - - private ArtifactRepositoryLayout defaultArtifactRepositoryLayout; - - // ---------------------------------------------------------------------- - // Configuration - // ---------------------------------------------------------------------- - - private Settings settings; - - private ArtifactRepository localRepository; - - private File localRepositoryDirectory; - - private ClassLoader classLoader; - - private MavenEmbedderLogger logger; - - // ---------------------------------------------------------------------- - // User options - // ---------------------------------------------------------------------- - - // release plugin uses this but in IDE there will probably always be some form of interaction. - private boolean interactiveMode; - - private boolean offline; - - private String globalChecksumPolicy; - - private String profiles; - - private Properties systemProperties; - - /** - * This option determines whether the embedder is to be aligned to the user - * installation. - */ - private boolean alignWithUserInstallation; - - /** - * Installation of Maven. We don't really read jar files from here, - * but we do read conf/settings.xml. - * - *

        - * For compatibility reasons, this field may be null, - * when {@link MavenEmbedder} is invoked from old plugins - * who don't give us this value. - */ - private final File mavenHome; - - public MavenEmbedder(File mavenHome) { - this.mavenHome = mavenHome; - } - - // ---------------------------------------------------------------------- - // Accessors - // ---------------------------------------------------------------------- - - public void setInteractiveMode( boolean interactiveMode ) - { - this.interactiveMode = interactiveMode; - } - - public boolean isInteractiveMode() - { - return interactiveMode; - } - - public void setOffline( boolean offline ) - { - this.offline = offline; - } - - public boolean isOffline() - { - return offline; - } - - public void setGlobalChecksumPolicy( String globalChecksumPolicy ) - { - this.globalChecksumPolicy = globalChecksumPolicy; - } - - public String getGlobalChecksumPolicy() - { - return globalChecksumPolicy; - } - - public boolean isAlignWithUserInstallation() - { - return alignWithUserInstallation; - } - - public void setAlignWithUserInstallation( boolean alignWithUserInstallation ) - { - this.alignWithUserInstallation = alignWithUserInstallation; - } - - /** - * Activates/deactivates profiles. - * ','-separated profile list, or null. This works exactly like the CLI "-P" option. - * - * This method needs to be called before the embedder is {@link #start() started}. - */ - public void setProfiles(String profiles) { - this.profiles = profiles; - } - - /** - * Sets the properties that the embedded Maven sees as system properties. - * - *

        - * In various places inside Maven, {@link System#getProperties()} are still referenced, - * and still in other places, the values given to this method is only used as overrides - * and not the replacement of the real {@link System#getProperties()}. So Maven still - * doesn't quite behave as it should, but at least this allows Hudson to add system properties - * to Maven without really messing up our current JVM. - */ - public void setSystemProperties(Properties props) { - this.systemProperties = props; - } - - /** - * Set the classloader to use with the maven embedder. - * - * @param classLoader - */ - public void setClassLoader( ClassLoader classLoader ) - { - this.classLoader = classLoader; - } - - public ClassLoader getClassLoader() - { - return classLoader; - } - - public void setLocalRepositoryDirectory( File localRepositoryDirectory ) - { - this.localRepositoryDirectory = localRepositoryDirectory; - } - - public File getLocalRepositoryDirectory() - { - return localRepositoryDirectory; - } - - public ArtifactRepository getLocalRepository() - { - return localRepository; - } - - public MavenEmbedderLogger getLogger() - { - return logger; - } - - public void setLogger( MavenEmbedderLogger logger ) - { - this.logger = logger; - } - - // ---------------------------------------------------------------------- - // Embedder Client Contract - // ---------------------------------------------------------------------- - - // ---------------------------------------------------------------------- - // Model - // ---------------------------------------------------------------------- - - public Model readModel( File model ) - throws XmlPullParserException, FileNotFoundException, IOException { - return modelReader.read( new FileReader( model ) ); - } - - public void writeModel( Writer writer, Model model ) - throws IOException - { - modelWriter.write( writer, model ); - } - - // ---------------------------------------------------------------------- - // Project - // ---------------------------------------------------------------------- - - public MavenProject readProject( File mavenProject ) - throws ProjectBuildingException { - try { - return mavenProjectBuilder.build( mavenProject, localRepository, profileManager ); - } catch (final InvalidProjectModelException e) { - throw new ProjectBuildingException(e.getProjectId(),e.getMessage(),e) { - @Override - public String getMessage() { - String msg = e.getMessage(); - ModelValidationResult vr = e.getValidationResult(); - if(vr!=null) - msg+="\n"+vr.render("- "); - return msg; - } - }; - } - } - - public MavenProject readProjectWithDependencies( File mavenProject, TransferListener transferListener ) - throws ProjectBuildingException, ArtifactResolutionException, ArtifactNotFoundException { - return mavenProjectBuilder.buildWithDependencies( mavenProject, localRepository, profileManager, transferListener ); - } - - public MavenProject readProjectWithDependencies( File mavenProject ) - throws ProjectBuildingException, ArtifactResolutionException, ArtifactNotFoundException - { - return mavenProjectBuilder.buildWithDependencies( mavenProject, localRepository, profileManager ); - } - - public List collectProjects( File basedir, String[] includes, String[] excludes ) - throws MojoExecutionException { - List projects = new ArrayList(); - - List poms = getPomFiles( basedir, includes, excludes ); - - for ( Iterator i = poms.iterator(); i.hasNext(); ) - { - File pom = (File) i.next(); - - try - { - MavenProject p = readProject( pom ); - - projects.add( p ); - - } - catch ( ProjectBuildingException e ) - { - throw new MojoExecutionException( "Error loading " + pom, e ); - } - } - - return projects; - } - - // ---------------------------------------------------------------------- - // Artifacts - // ---------------------------------------------------------------------- - - public Artifact createArtifact( String groupId, String artifactId, String version, String scope, String type ) - { - return artifactFactory.createArtifact( groupId, artifactId, version, scope, type ); - } - - public Artifact createArtifactWithClassifier( String groupId, String artifactId, String version, String type, String classifier ) - { - return artifactFactory.createArtifactWithClassifier( groupId, artifactId, version, type, classifier ); - } - - public void resolve( Artifact artifact, List remoteRepositories, ArtifactRepository localRepository ) - throws ArtifactResolutionException, ArtifactNotFoundException - { - artifactResolver.resolve( artifact, remoteRepositories, localRepository ); - } - - // ---------------------------------------------------------------------- - // Plugins - // ---------------------------------------------------------------------- - - public List getAvailablePlugins() - { - List plugins = new ArrayList(); - - plugins.add( makeMockPlugin( "org.apache.maven.plugins", "maven-jar-plugin", "Maven Jar Plug-in" ) ); - - plugins.add( makeMockPlugin( "org.apache.maven.plugins", "maven-compiler-plugin", "Maven Compiler Plug-in" ) ); - - return plugins; - } - - public PluginDescriptor getPluginDescriptor( SummaryPluginDescriptor summaryPluginDescriptor ) - throws MavenEmbedderException { - PluginDescriptor pluginDescriptor; - - try - { - InputStream is = classLoader.getResourceAsStream( "/plugins/" + summaryPluginDescriptor.getArtifactId() + ".xml" ); - - pluginDescriptor = pluginDescriptorBuilder.build( new InputStreamReader( is ) ); - } - catch ( PlexusConfigurationException e ) - { - throw new MavenEmbedderException( "Error retrieving plugin descriptor.", e ); - } - - return pluginDescriptor; - } - - private SummaryPluginDescriptor makeMockPlugin( String groupId, String artifactId, String name ) - { - return new SummaryPluginDescriptor( groupId, artifactId, name ); - } - - // ---------------------------------------------------------------------- - // Execution of phases/goals - // ---------------------------------------------------------------------- - - // TODO: should we allow the passing in of a settings object so that everything can be taken from the client env - // TODO: transfer listener - // TODO: logger - - public void execute( MavenProject project, - List goals, - EventMonitor eventMonitor, - TransferListener transferListener, - Properties properties, - File executionRootDirectory ) - throws CycleDetectedException, LifecycleExecutionException, BuildFailureException, DuplicateProjectException { - execute( Collections.singletonList( project ), goals, eventMonitor, transferListener, properties, executionRootDirectory ); - } - - public void execute( List projects, - List goals, - EventMonitor eventMonitor, - TransferListener transferListener, - Properties properties, - File executionRootDirectory ) - throws CycleDetectedException, LifecycleExecutionException, BuildFailureException, DuplicateProjectException - { - ReactorManager rm = new ReactorManager( projects ); - - EventDispatcher eventDispatcher = new DefaultEventDispatcher(); - - eventDispatcher.addEventMonitor( eventMonitor ); - - // If this option is set the exception seems to be hidden ... - - //rm.setFailureBehavior( ReactorManager.FAIL_AT_END ); - - rm.setFailureBehavior( ReactorManager.FAIL_FAST ); - - MavenSession session = new MavenSession( embedder.getContainer(), - settings, - localRepository, - eventDispatcher, - rm, - goals, - executionRootDirectory.getAbsolutePath(), - properties, - new Date() ); - - session.setUsingPOMsFromFilesystem( true ); - - if ( transferListener != null ) - { - wagonManager.setDownloadMonitor( transferListener ); - } - - // ---------------------------------------------------------------------- - // Maven should not be using system properties internally but because - // it does for now I'll just take properties that are handed to me - // and set them so that the plugin expression evaluator will work - // as expected. - // ---------------------------------------------------------------------- - - if ( properties != null ) - { - for ( Iterator i = properties.keySet().iterator(); i.hasNext(); ) - { - String key = (String) i.next(); - - String value = properties.getProperty( key ); - - System.setProperty( key, value ); - } - } - - lifecycleExecutor.execute( session, rm, session.getEventDispatcher() ); - } - - // ---------------------------------------------------------------------- - // Lifecycle information - // ---------------------------------------------------------------------- - - public List getLifecyclePhases() - throws MavenEmbedderException - { - List phases = new ArrayList(); - - ComponentDescriptor descriptor = embedder.getContainer().getComponentDescriptor( LifecycleExecutor.ROLE ); - - PlexusConfiguration configuration = descriptor.getConfiguration(); - - PlexusConfiguration[] phasesConfigurations = configuration.getChild( "lifecycles" ).getChild( 0 ).getChild( "phases" ).getChildren( "phase" ); - - try - { - for ( int i = 0; i < phasesConfigurations.length; i++ ) - { - phases.add( phasesConfigurations[i].getValue() ); - } - } - catch ( PlexusConfigurationException e ) - { - throw new MavenEmbedderException( "Cannot retrieve default lifecycle phasesConfigurations.", e ); - } - - return phases; - } - - // ---------------------------------------------------------------------- - // Remote Repository - // ---------------------------------------------------------------------- - - // ---------------------------------------------------------------------- - // Local Repository - // ---------------------------------------------------------------------- - - public static final String DEFAULT_LOCAL_REPO_ID = "local"; - - public static final String DEFAULT_LAYOUT_ID = "default"; - - public ArtifactRepository createLocalRepository( File localRepository ) - throws ComponentLookupException { - return createLocalRepository( localRepository.getAbsolutePath(), DEFAULT_LOCAL_REPO_ID ); - } - - public ArtifactRepository createLocalRepository( Settings settings ) - throws ComponentLookupException - { - return createLocalRepository( settings.getLocalRepository(), DEFAULT_LOCAL_REPO_ID ); - } - - public ArtifactRepository createLocalRepository( String url, String repositoryId ) - throws ComponentLookupException - { - if ( !url.startsWith( "file:" ) ) - { - url = "file://" + url; - } - - return createRepository( url, repositoryId ); - } - - public ArtifactRepository createRepository( String url, String repositoryId ) - throws ComponentLookupException - { - // snapshots vs releases - // offline = to turning the update policy off - - //TODO: we'll need to allow finer grained creation of repositories but this will do for now - - String updatePolicyFlag = ArtifactRepositoryPolicy.UPDATE_POLICY_ALWAYS; - - String checksumPolicyFlag = ArtifactRepositoryPolicy.CHECKSUM_POLICY_WARN; - - ArtifactRepositoryPolicy snapshotsPolicy = new ArtifactRepositoryPolicy( true, updatePolicyFlag, checksumPolicyFlag ); - - ArtifactRepositoryPolicy releasesPolicy = new ArtifactRepositoryPolicy( true, updatePolicyFlag, checksumPolicyFlag ); - - return artifactRepositoryFactory.createArtifactRepository( repositoryId, url, defaultArtifactRepositoryLayout, snapshotsPolicy, releasesPolicy ); - } - - // ---------------------------------------------------------------------- - // Internal utility code - // ---------------------------------------------------------------------- - - private RuntimeInfo createRuntimeInfo( Settings settings ) - { - RuntimeInfo runtimeInfo = new RuntimeInfo( settings ); - - runtimeInfo.setPluginUpdateOverride( Boolean.FALSE ); - - return runtimeInfo; - } - - private List getPomFiles( File basedir, String[] includes, String[] excludes ) - { - DirectoryScanner scanner = new DirectoryScanner(); - - scanner.setBasedir( basedir ); - - scanner.setIncludes( includes ); - - scanner.setExcludes( excludes ); - - scanner.scan(); - - List poms = new ArrayList(); - - for ( int i = 0; i < scanner.getIncludedFiles().length; i++ ) - { - poms.add( new File( basedir, scanner.getIncludedFiles()[i] ) ); - } - - return poms; - } - - // ---------------------------------------------------------------------- - // Lifecycle - // ---------------------------------------------------------------------- - - public void start() - throws MavenEmbedderException - { - detectUserInstallation(); - - // ---------------------------------------------------------------------- - // Set the maven.home system property which is need by components like - // the plugin registry builder. - // ---------------------------------------------------------------------- - - if ( classLoader == null ) - { - throw new IllegalStateException( "A classloader must be specified using setClassLoader(ClassLoader)." ); - } - - embedder = new Embedder(); - - if ( logger != null ) - { - embedder.setLoggerManager( new MavenEmbedderLoggerManager( new PlexusLoggerAdapter( logger ) ) ); - } - - // begin changes by KK - if(overridingComponentsXml!=null) { - try { - embedder.setConfiguration(overridingComponentsXml); - } catch (IOException e) { - throw new MavenEmbedderException(e); - } - } - // end changes by KK - - try - { - ClassWorld classWorld = new ClassWorld(); - - classWorld.newRealm( "plexus.core", classLoader ); - - embedder.start( classWorld ); - - // ---------------------------------------------------------------------- - // Lookup each of the components we need to provide the desired - // client interface. - // ---------------------------------------------------------------------- - - modelReader = new MavenXpp3Reader(); - - modelWriter = new MavenXpp3Writer(); - - pluginDescriptorBuilder = new PluginDescriptorBuilder(); - - profileManager = new DefaultProfileManager( embedder.getContainer(), systemProperties ); - activeProfiles(); - - mavenProjectBuilder = (MavenProjectBuilder) embedder.lookup( MavenProjectBuilder.ROLE ); - - // ---------------------------------------------------------------------- - // Artifact related components - // ---------------------------------------------------------------------- - - artifactRepositoryFactory = (ArtifactRepositoryFactory) embedder.lookup( ArtifactRepositoryFactory.ROLE ); - - artifactFactory = (ArtifactFactory) embedder.lookup( ArtifactFactory.ROLE ); - - artifactResolver = (ArtifactResolver) embedder.lookup( ArtifactResolver.ROLE ); - - defaultArtifactRepositoryLayout = (ArtifactRepositoryLayout) embedder.lookup( ArtifactRepositoryLayout.ROLE, DEFAULT_LAYOUT_ID ); - - lifecycleExecutor = (LifecycleExecutor) embedder.lookup( LifecycleExecutor.ROLE ); - - wagonManager = (WagonManager) embedder.lookup( WagonManager.ROLE ); - - createMavenSettings(); - - profileManager.loadSettingsProfiles( settings ); - - localRepository = createLocalRepository( settings ); - - resolveParameters(wagonManager,settings); - } - catch ( PlexusContainerException e ) - { - throw new MavenEmbedderException( "Cannot start Plexus embedder.", e ); - } - catch ( DuplicateRealmException e ) - { - throw new MavenEmbedderException( "Cannot create Classworld realm for the embedder.", e ); - } - catch ( ComponentLookupException e ) - { - throw new MavenEmbedderException( "Cannot lookup required component.", e ); - } catch (SettingsConfigurationException e) { - throw new MavenEmbedderException( "Cannot start Plexus embedder.", e ); - } catch (ComponentLifecycleException e) { - throw new MavenEmbedderException( "Cannot start Plexus embedder.", e ); - } - } - - // ---------------------------------------------------------------------- - // - // ---------------------------------------------------------------------- - - private void detectUserInstallation() - { - if ( new File( userHome, ".m2" ).exists() ) - { - alignWithUserInstallation = true; - } - } - - /** - * Create the Settings that will be used with the embedder. If we are aligning with the user - * installation then we lookup the standard settings builder and use that to create our - * settings. Otherwise we constructs a settings object and populate the information - * ourselves. - * - * @throws MavenEmbedderException - * @throws ComponentLookupException - */ - private void createMavenSettings() - throws MavenEmbedderException, ComponentLookupException - { - if ( alignWithUserInstallation ) - { - // ---------------------------------------------------------------------- - // We will use the standard method for creating the settings. This - // method reproduces the method of building the settings from the CLI - // mode of operation. - // ---------------------------------------------------------------------- - - settingsBuilder = (MavenSettingsBuilder) embedder.lookup( MavenSettingsBuilder.ROLE ); - - if(mavenHome!=null) { - // set global settings.xml. - // Maven figures this out from system property, which is obviously not set - // for us. So we need to override this private field. - try { - Field field = settingsBuilder.getClass().getDeclaredField("globalSettingsFile"); - field.setAccessible(true); - // getAbsoluteFile is probably not necessary, but just following what DefaultMavenSettingsBuilder does - field.set(settingsBuilder,new File(mavenHome,"conf/settings.xml").getAbsoluteFile()); - } catch (NoSuchFieldException e) { - throw new MavenEmbedderException(e); - } catch (IllegalAccessException e) { - throw new MavenEmbedderException(e); - } - } - - try - { - settings = settingsBuilder.buildSettings(); - } - catch ( IOException e ) - { - throw new MavenEmbedderException( "Error creating settings.", e ); - } - catch ( XmlPullParserException e ) - { - throw new MavenEmbedderException( "Error creating settings.", e ); - } - } - else - { - if ( localRepository == null ) - { - throw new IllegalArgumentException( "When not aligning with a user install you must specify a local repository location using the setLocalRepositoryDirectory( File ) method." ); - } - - settings = new Settings(); - - settings.setLocalRepository( localRepositoryDirectory.getAbsolutePath() ); - - settings.setRuntimeInfo( createRuntimeInfo( settings ) ); - - settings.setOffline( offline ); - - settings.setInteractiveMode( interactiveMode ); - } - } - - // ---------------------------------------------------------------------- - // Lifecycle - // ---------------------------------------------------------------------- - - public void stop() - throws MavenEmbedderException - { - try - { - embedder.release( mavenProjectBuilder ); - - embedder.release( artifactRepositoryFactory ); - - embedder.release( settingsBuilder ); - - embedder.release( lifecycleExecutor ); - } - catch ( ComponentLifecycleException e ) - { - throw new MavenEmbedderException( "Cannot stop the embedder.", e ); - } - } - - - // ---------------------------------------------------------------------- - // Local Changes in Hudson below - // ---------------------------------------------------------------------- - private URL overridingComponentsXml; - - /** - * Sets the URL of the components.xml that overrides those found - * in the rest of classpath. Hudson uses this to replace certain key components - * by its own versions. - * - * This should become unnecessary when MNG-2777 is resolved. - */ - public void setOverridingComponentsXml(URL overridingComponentsXml) { - this.overridingComponentsXml = overridingComponentsXml; - } - - /** - * Gets the {@link PlexusContainer} that hosts Maven. - * - * See MNG-2778 - */ - public PlexusContainer getContainer() { - return embedder.getContainer(); - } - - /** - * Actives profiles, as if the "-P" command line option is used. - * - *

        - * In Maven CLI this is done before the {@link ProfileManager#loadSettingsProfiles(Settings)} - * is called. I don't know if that's a hard requirement or just a coincidence, - * but since I can't be sure, I'm following the exact call order that Maven CLI does, - * and not allowing this method to be called afterward. - */ - private void activeProfiles() { - if(Util.fixEmptyAndTrim(profiles)==null) return; // noop - for (String token : Util.tokenize(profiles, ",")) { - if (token.startsWith("-")) { - profileManager.explicitlyDeactivate(token.substring(1)); - } else if (token.startsWith("+")) { - profileManager.explicitlyActivate(token.substring(1)); - } else { - // TODO: deprecate this eventually! - profileManager.explicitlyActivate(token); - } - } - } - - public Settings getSettings() { - return settings; - } - - public Object lookup(String role) throws ComponentLookupException { - return getContainer().lookup(role); - } - - public Object lookup(String role,String hint) throws ComponentLookupException { - return getContainer().lookup(role,hint); - } - - /** - * {@link WagonManager} can't configure itself from {@link Settings}, so we need to baby-sit them. - * So much for dependency injection. - */ - private void resolveParameters(WagonManager wagonManager, Settings settings) - throws ComponentLookupException, ComponentLifecycleException, SettingsConfigurationException { - Proxy proxy = settings.getActiveProxy(); - - if (proxy != null) { - if (proxy.getHost() == null) { - throw new SettingsConfigurationException("Proxy in settings.xml has no host"); - } - - wagonManager.addProxy(proxy.getProtocol(), proxy.getHost(), proxy.getPort(), proxy.getUsername(), - proxy.getPassword(), proxy.getNonProxyHosts()); - } - - for (Server server : (List)settings.getServers()) { - wagonManager.addAuthenticationInfo(server.getId(), server.getUsername(), server.getPassword(), - server.getPrivateKey(), server.getPassphrase()); - - wagonManager.addPermissionInfo(server.getId(), server.getFilePermissions(), - server.getDirectoryPermissions()); - - if (server.getConfiguration() != null) { - wagonManager.addConfiguration(server.getId(), (Xpp3Dom) server.getConfiguration()); - } - } - - for (Mirror mirror : (List)settings.getMirrors()) { - wagonManager.addMirror(mirror.getId(), mirror.getMirrorOf(), mirror.getUrl()); - } - } -} diff --git a/maven-plugin/src/main/java/hudson/maven/MavenModule.java b/maven-plugin/src/main/java/hudson/maven/MavenModule.java index bc46209e7b78bbd6c0a060e97018939e8218c76c..c4f761e5f63267e0322ae2568fa538ce8817747d 100644 --- a/maven-plugin/src/main/java/hudson/maven/MavenModule.java +++ b/maven-plugin/src/main/java/hudson/maven/MavenModule.java @@ -24,7 +24,6 @@ package hudson.maven; import hudson.CopyOnWrite; -import hudson.FilePath; import hudson.Util; import hudson.Functions; import hudson.maven.reporters.MavenMailer; @@ -49,6 +48,7 @@ import hudson.util.DescribableList; import org.apache.maven.project.MavenProject; import org.kohsuke.stapler.StaplerRequest; import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.export.Exported; import javax.servlet.ServletException; import java.io.IOException; @@ -59,7 +59,8 @@ import java.util.List; import java.util.Map; import java.util.Set; import java.util.HashSet; -import org.kohsuke.stapler.export.Exported; +import java.util.logging.Level; +import java.util.logging.Logger; /** * {@link Job} that builds projects based on Maven2. @@ -70,6 +71,7 @@ public final class MavenModule extends AbstractMavenProject> reporters = new DescribableList>(this); + /** * Name taken from {@link MavenProject#getName()}. */ @@ -143,13 +145,35 @@ public final class MavenModule extends AbstractMavenProject + * Note that this doesn't necessary has anything to do with the module inheritance structure or parent/child + * relationship of the POM. + */ + public List getSubsidiaries() { + List r = new ArrayList(); + for (MavenModule mm : getParent().getModules()) + if(mm!=this && mm.getRelativePath().startsWith(getRelativePath())) + r.add(mm); + return r; + } + /** * Called to update the module with the new POM. *

        * This method is invoked on {@link MavenModule} that has the matching * {@link ModuleName}. */ - /*package*/ final void reconfigure(PomInfo pom) { + /*package*/ void reconfigure(PomInfo pom) { this.displayName = pom.displayName; this.version = pom.version; this.relativePath = pom.relativePath; @@ -171,6 +195,7 @@ public final class MavenModule extends AbstractMavenProject> getPublishersList() { // TODO return new DescribableList>(this); @@ -299,6 +319,7 @@ public final class MavenModule extends AbstractMavenProject * That is, {@Link MavenModuleSet} builds are incompatible with any {@link MavenModule} * builds, whereas {@link MavenModule} builds are compatible with each other. + * + * @deprecated as of 1.319 in {@link AbstractProject}. */ @Override public Resource getWorkspaceResource() { @@ -348,6 +372,11 @@ public final class MavenModule extends AbstractMavenProject added) { + protected void addTransientActionsFromBuild(MavenBuild build, List collection, Set added) { if(build==null) return; - List list = build.projectActionReporters; + List list = build.projectActionReporters; if(list==null) return; - for (MavenReporter step : list) { + for (MavenProjectActionBuilder step : list) { if(!added.add(step.getClass())) continue; // already added - Action a = step.getProjectAction(this); - if(a!=null) - transientActions.add(a); + try { + collection.addAll(step.getProjectActions(this)); + } catch (Exception e) { + LOGGER.log(Level.WARNING, "Failed to getProjectAction from " + step + + ". Report issue to plugin developers.", e); + } } } @@ -412,6 +444,7 @@ public final class MavenModule extends AbstractMavenProject createReporters() { - List reporters = new ArrayList(); + protected List createReporters() { + List reporterList = new ArrayList(); - getReporters().addAllTo(reporters); - getParent().getReporters().addAllTo(reporters); + getReporters().addAllTo(reporterList); + getParent().getReporters().addAllTo(reporterList); for (MavenReporterDescriptor d : MavenReporterDescriptor.all()) { if(getReporters().contains(d)) continue; // already configured MavenReporter auto = d.newAutoInstance(this); if(auto!=null) - reporters.add(auto); + reporterList.add(auto); } - return reporters; + return reporterList; } + + private static final Logger LOGGER = Logger.getLogger(MavenModule.class.getName()); } diff --git a/maven-plugin/src/main/java/hudson/maven/MavenModuleSet.java b/maven-plugin/src/main/java/hudson/maven/MavenModuleSet.java index c0e3e589680c5eb770318227f2e2fe31bec49284..0084d2fd8f7038a59ad8fab4caff34595aaf53cb 100644 --- a/maven-plugin/src/main/java/hudson/maven/MavenModuleSet.java +++ b/maven-plugin/src/main/java/hudson/maven/MavenModuleSet.java @@ -26,29 +26,30 @@ package hudson.maven; import hudson.*; import hudson.model.*; import hudson.model.Descriptor.FormException; -import static hudson.model.ItemGroupMixIn.loadChildren; import hudson.model.Queue; import hudson.model.Queue.Task; import hudson.search.CollectionSearchIndex; import hudson.search.SearchIndexBuilder; -import hudson.tasks.Maven.MavenInstallation; import hudson.tasks.*; +import hudson.tasks.Maven.MavenInstallation; import hudson.tasks.junit.JUnitResultArchiver; import hudson.util.CopyOnWriteMap; import hudson.util.DescribableList; -import hudson.util.Function1; import hudson.util.FormValidation; +import hudson.util.Function1; +import net.sf.json.JSONObject; +import org.kohsuke.stapler.QueryParameter; import org.kohsuke.stapler.StaplerRequest; import org.kohsuke.stapler.StaplerResponse; -import org.kohsuke.stapler.QueryParameter; +import org.kohsuke.stapler.export.Exported; import javax.servlet.ServletException; import java.io.File; import java.io.IOException; import java.util.*; -import net.sf.json.JSONObject; -import org.kohsuke.stapler.export.Exported; +import static hudson.Util.fixEmpty; +import static hudson.model.ItemGroupMixIn.loadChildren; /** * Group of {@link MavenModule}s. @@ -60,7 +61,7 @@ import org.kohsuke.stapler.export.Exported; * * @author Kohsuke Kawaguchi */ -public final class MavenModuleSet extends AbstractMavenProject implements TopLevelItem, ItemGroup, SCMedItem, Saveable { +public final class MavenModuleSet extends AbstractMavenProject implements TopLevelItem, ItemGroup, SCMedItem, Saveable, BuildableItemWithBuildWrappers { /** * All {@link MavenModule}s, keyed by their {@link MavenModule#getModuleName()} module name}s. */ @@ -82,6 +83,8 @@ public final class MavenModuleSet extends AbstractMavenProject>(this); /** - * List of active ${link BuildWrapper}s configured for this project. + * List of active {@link BuildWrapper}s configured for this project. * @since 1.212 */ private DescribableList> buildWrappers = @@ -176,34 +195,37 @@ public final class MavenModuleSet extends AbstractMavenProject createTransientActions() { + List r = super.createTransientActions(); + // Fix for ISSUE-1149 for (MavenModule module: modules.values()) { module.updateTransientActions(); } + if(publishers!=null) // this method can be loaded from within the onLoad method, where this might be null - for (BuildStep step : publishers) { - Action a = step.getProjectAction(this); - if(a!=null) - transientActions.add(a); - } + for (BuildStep step : publishers) + r.addAll(step.getProjectActions(this)); if (buildWrappers!=null) - for (BuildWrapper step : buildWrappers) { - Action a = step.getProjectAction(this); - if(a!=null) - transientActions.add(a); - } + for (BuildWrapper step : buildWrappers) + r.addAll(step.getProjectActions(this)); + + return r; } - protected void addTransientActionsFromBuild(MavenModuleSetBuild build, Set added) { + protected void addTransientActionsFromBuild(MavenModuleSetBuild build, List collection, Set added) { if(build==null) return; for (Action a : build.getActions()) if(a instanceof MavenAggregatedReport) if(added.add(a.getClass())) - transientActions.add(((MavenAggregatedReport)a).getProjectAction(this)); + collection.add(((MavenAggregatedReport)a).getProjectAction(this)); List list = build.projectActionReporters; if(list==null) return; @@ -212,7 +234,7 @@ public final class MavenModuleSet extends AbstractMavenProject> getBuildWrappersList() { + return buildWrappers; + } + /** * List of active {@link BuildWrapper}s. Can be empty but never null. + * + * @deprecated as of 1.335 + * Use {@link #getBuildWrappersList()} to be consistent with other subtypes of {@link AbstractProject}. */ public DescribableList> getBuildWrappers() { return buildWrappers; @@ -308,21 +365,16 @@ public final class MavenModuleSet extends AbstractMavenProject getAllJobs() { Set jobs = new HashSet(getItems()); jobs.add(this); return jobs; } - /** - * Gets the workspace of this job. - */ - public FilePath getWorkspace() { - Node node = getLastBuiltOn(); - if(node==null) node = Hudson.getInstance(); - return node.getWorkspaceFor(this); - } - @Override protected Class getBuildClass() { return MavenModuleSetBuild.class; @@ -442,6 +494,10 @@ public final class MavenModuleSet extends AbstractMavenProject modules = getModules(); + for (MavenModule m : modules) { + m.buildDependencyGraph(graph); + } publishers.buildDependencyGraph(this,graph); buildWrappers.buildDependencyGraph(this,graph); } @@ -497,6 +553,14 @@ public final class MavenModuleSet extends AbstractMavenProject getMavenArgument(String shortForm, String longForm) { List args = new ArrayList(); boolean switchFound=false; @@ -520,6 +584,21 @@ public final class MavenModuleSet extends AbstractMavenProject0)) { + return mavenOpts.replaceAll("[\t\r\n]+"," "); + } + else { + String globalOpts = DESCRIPTOR.getGlobalMavenOpts(); + if (globalOpts!=null) { + return globalOpts.replaceAll("[\t\r\n]+"," "); + } + else { + return globalOpts; + } + } + } + + /** + * Set mavenOpts. + */ + public void setMavenOpts(String mavenOpts) { + this.mavenOpts = mavenOpts; } /** @@ -613,17 +719,18 @@ public final class MavenModuleSet extends AbstractMavenProject NOT_APPLICABLE_TYPES = new HashSet(Arrays.asList( - ArtifactArchiver.class, // this happens automatically Fingerprinter.class, // this kicks in automatically JavadocArchiver.class, // this kicks in automatically Mailer.class, // for historical reasons, Maven uses MavenMailer diff --git a/maven-plugin/src/main/java/hudson/maven/MavenModuleSetBuild.java b/maven-plugin/src/main/java/hudson/maven/MavenModuleSetBuild.java index 6b476a7403f678cbbcd370be1036a024777b55f2..a713a7346a621e72cb2c2c63ed46e62f9c2b4472 100644 --- a/maven-plugin/src/main/java/hudson/maven/MavenModuleSetBuild.java +++ b/maven-plugin/src/main/java/hudson/maven/MavenModuleSetBuild.java @@ -1,7 +1,8 @@ /* * The MIT License * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Red Hat, Inc., Victor Glushenkov + * Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, + * Red Hat, Inc., Victor Glushenkov, Alan Harder * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -23,51 +24,22 @@ */ package hudson.maven; -import hudson.AbortException; -import hudson.FilePath; -import hudson.Launcher; -import hudson.Util; -import hudson.EnvVars; +import hudson.*; import hudson.FilePath.FileCallable; import hudson.maven.MavenBuild.ProxyImpl2; import hudson.maven.reporters.MavenFingerprinter; -import hudson.model.AbstractBuild; -import hudson.model.AbstractProject; -import hudson.model.Action; -import hudson.model.Build; -import hudson.model.BuildListener; -import hudson.model.Environment; -import hudson.model.Fingerprint; -import hudson.model.Hudson; -import hudson.model.ParametersAction; -import hudson.model.Result; -import hudson.model.Computer; +import hudson.maven.reporters.MavenMailer; +import hudson.model.*; import hudson.model.Cause.UpstreamCause; import hudson.remoting.Channel; import hudson.remoting.VirtualChannel; +import hudson.scm.ChangeLogSet; import hudson.tasks.BuildWrapper; +import hudson.tasks.MailSender; import hudson.tasks.Maven.MavenInstallation; import hudson.util.ArgumentListBuilder; +import hudson.util.IOUtils; import hudson.util.StreamTaskListener; - -import java.io.File; -import java.io.IOException; -import java.io.PrintStream; -import java.io.Serializable; -import java.io.InterruptedIOException; -import java.util.ArrayList; -import java.util.Collection; -import java.util.HashMap; -import java.util.HashSet; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; -import java.util.Properties; -import java.util.Set; -import java.util.Map.Entry; -import java.util.logging.Level; -import java.util.logging.Logger; - import org.apache.maven.BuildFailureException; import org.apache.maven.embedder.MavenEmbedderException; import org.apache.maven.execution.MavenSession; @@ -78,6 +50,15 @@ import org.apache.maven.project.MavenProject; import org.apache.maven.project.ProjectBuildingException; import org.kohsuke.stapler.StaplerRequest; import org.kohsuke.stapler.StaplerResponse; +import org.apache.commons.io.FilenameUtils; + +import java.io.*; +import java.util.*; +import java.util.Map.Entry; +import java.util.logging.Level; +import java.util.logging.Logger; + +import static hudson.model.Result.FAILURE; /** * {@link Build} for {@link MavenModuleSet}. @@ -96,7 +77,7 @@ import org.kohsuke.stapler.StaplerResponse; * * @author Kohsuke Kawaguchi */ -public final class MavenModuleSetBuild extends AbstractBuild { +public class MavenModuleSetBuild extends AbstractMavenBuild { /** * {@link MavenReporter}s that will contribute project actions. * Can be null if there's none. @@ -111,6 +92,23 @@ public final class MavenModuleSetBuild extends AbstractBuild @@ -136,6 +134,55 @@ public final class MavenModuleSetBuild extends AbstractBuild getChangeSetFor(final MavenModule mod) { + return new ArrayList() { + { + // modules that are under 'mod'. lazily computed + List subsidiaries = null; + + for (ChangeLogSet.Entry e : getChangeSet()) { + if(isDescendantOf(e, mod)) { + if(subsidiaries==null) + subsidiaries = mod.getSubsidiaries(); + + // make sure at least one change belongs to this module proper, + // and not its subsidiary module + if (notInSubsidiary(subsidiaries, e)) + add(e); + } + } + } + + private boolean notInSubsidiary(List subsidiaries, ChangeLogSet.Entry e) { + for (String path : e.getAffectedPaths()) + if(!belongsToSubsidiary(subsidiaries, path)) + return true; + return false; + } + + private boolean belongsToSubsidiary(List subsidiaries, String path) { + for (MavenModule sub : subsidiaries) + if (FilenameUtils.separatorsToUnix(path).startsWith(FilenameUtils.normalize(sub.getRelativePath()))) + return true; + return false; + } + + /** + * Does this change happen somewhere in the given module or its descendants? + */ + private boolean isDescendantOf(ChangeLogSet.Entry e, MavenModule mod) { + for (String path : e.getAffectedPaths()) { + if (FilenameUtils.separatorsToUnix(path).startsWith(FilenameUtils.normalize(mod.getRelativePath()))) + return true; + } + return false; + } + }; + } + /** * Computes the module builds that correspond to this build. *

        @@ -164,7 +211,73 @@ public final class MavenModuleSetBuild extends AbstractBuild> moduleBuilds = getModuleBuilds(); + for (List builds : moduleBuilds.values()) { + if (!builds.isEmpty()) { + MavenBuild build = builds.get(0); + if (build.getResult() != Result.NOT_BUILT && build.getEstimatedDuration() != -1) { + result += build.getEstimatedDuration(); + } + } + } + + result += estimateModuleSetBuildDurationOverhead(3); + + return result != 0 ? result : -1; + } + + /** + * Estimates the duration overhead the {@link MavenModuleSetBuild} itself adds + * to the sum of duration of the module builds. + */ + private long estimateModuleSetBuildDurationOverhead(int numberOfBuilds) { + List moduleSetBuilds = getPreviousBuildsOverThreshold(numberOfBuilds, Result.UNSTABLE); + + if (moduleSetBuilds.isEmpty()) { + return 0; + } + + long overhead = 0; + for(MavenModuleSetBuild moduleSetBuild : moduleSetBuilds) { + long sumOfModuleBuilds = 0; + for (List builds : moduleSetBuild.getModuleBuilds().values()) { + if (!builds.isEmpty()) { + MavenBuild moduleBuild = builds.get(0); + sumOfModuleBuilds += moduleBuild.getDuration(); + } + } + + overhead += Math.max(0, moduleSetBuild.getDuration() - sumOfModuleBuilds); + } + + return Math.round((double)overhead / moduleSetBuilds.size()); + } + + @Override + public synchronized void delete() throws IOException { + super.delete(); + // Delete all contained module builds too + for (List list : getModuleBuilds().values()) + for (MavenBuild build : list) + build.delete(); + } + + @Override public Object getDynamic(String token, StaplerRequest req, StaplerResponse rsp) { // map corresponding module build under this object if(token.indexOf('$')>0) { @@ -176,6 +289,8 @@ public final class MavenModuleSetBuild extends AbstractBuild getModuleLastBuilds() { Collection mods = getParent().getModules(); @@ -293,7 +408,7 @@ public final class MavenModuleSetBuild extends AbstractBuild)MavenModuleSetBuild.this)); } else { // do builds here try { List wrappers = new ArrayList(); - for (BuildWrapper w : project.getBuildWrappers()) + for (BuildWrapper w : project.getBuildWrappersList()) wrappers.add(w); ParametersAction parameters = getAction(ParametersAction.class); if (parameters != null) parameters.createBuildWrappers(MavenModuleSetBuild.this,wrappers); - buildEnvironments = new ArrayList(); for( BuildWrapper w : wrappers) { - BuildWrapper.Environment e = w.setUp(MavenModuleSetBuild.this, launcher, listener); + Environment e = w.setUp(MavenModuleSetBuild.this, launcher, listener); if(e==null) - return Result.FAILURE; + return (r = Result.FAILURE); buildEnvironments.add(e); e.buildEnvVars(envVars); // #3502: too late for getEnvironment to do this } @@ -340,10 +461,31 @@ public final class MavenModuleSetBuild extends AbstractBuild(); - for (MavenModule m : project.sortedActiveModules) - proxies.put(m.getModuleName(),m.newBuild().new ProxyImpl2(MavenModuleSetBuild.this,slistener)); + List changedModules = new ArrayList(); + + for (MavenModule m : project.sortedActiveModules) { + MavenBuild mb = m.newBuild(); + + // Check if incrementalBuild is selected and that there are changes - + // we act as if incrementalBuild is not set if there are no changes. + if (!MavenModuleSetBuild.this.getChangeSet().isEmptySet() + && project.isIncrementalBuild()) { + // If there are changes for this module, add it. + // Also add it if we've never seen this module before, + // or if the previous build of this module failed or was unstable. + if ((mb.getPreviousBuiltBuild() == null) || + (!getChangeSetFor(m).isEmpty()) + || (mb.getPreviousBuiltBuild().getResult().isWorseThan(Result.SUCCESS))) { + changedModules.add(m.getModuleName().toString()); + } + } + + mb.setWorkspace(getModuleRoot().child(m.getRelativePath())); + proxies.put(m.getModuleName(), mb.new ProxyImpl2(MavenModuleSetBuild.this,slistener)); + } // run the complete build here @@ -352,18 +494,38 @@ public final class MavenModuleSetBuild extends AbstractBuild=0; i-- ) - buildEnvironments.get(i) - .tearDown(MavenModuleSetBuild.this, listener); - buildEnvironments = null; + boolean failed=false; + for( int i=buildEnvironments.size()-1; i>=0; i-- ) { + if (!buildEnvironments.get(i).tearDown(MavenModuleSetBuild.this,listener)) { + failed=true; + } + } + // WARNING The return in the finally clause will trump any return before + if (failed) return Result.FAILURE; } } - return null; + return r; } catch (AbortException e) { if(e.getMessage()!=null) listener.error(e.getMessage()); return Result.FAILURE; } catch (InterruptedIOException e) { - listener.error("Aborted"); - return Result.ABORTED; - } catch (InterruptedException e) { - listener.error("Aborted"); + e.printStackTrace(listener.error("Aborted Maven execution for InterruptedIOException")); return Result.ABORTED; } catch (IOException e) { e.printStackTrace(listener.error(Messages.MavenModuleSetBuild_FailedToParsePom())); @@ -412,18 +579,12 @@ public final class MavenModuleSetBuild extends AbstractBuild poms; try { - poms = project.getModuleRoot().act(new PomParser(listener, mvn, project)); + poms = getModuleRoot().act(new PomParser(listener, mvn, project)); } catch (IOException e) { if (e.getCause() instanceof AbortException) throw (AbortException) e.getCause(); @@ -486,8 +647,11 @@ public final class MavenModuleSetBuild extends AbstractBuild program) throws IOException { futures.add(Channel.current().callAsync(new AsyncInvoker(core,program))); } @@ -574,6 +738,7 @@ public final class MavenModuleSetBuild extends AbstractBuild projects = rm.getSortedProjects(); + Set buildingProjects = new HashSet(); + for (MavenProject p : projects) { + buildingProjects.add(new ModuleName(p)); + } + + for (Entry e : this.proxies.entrySet()) { + if (! buildingProjects.contains(e.getKey())) { + MavenBuildProxy2 proxy = e.getValue(); + proxy.start(); + proxy.setResult(Result.NOT_BUILT); + proxy.end(); + } + } } void postBuild(MavenSession session, ReactorManager rm, EventDispatcher dispatcher) throws BuildFailureException, LifecycleExecutionException, IOException, InterruptedException { @@ -662,6 +844,7 @@ public final class MavenModuleSetBuild extends AbstractBuild invoke(File ws, VirtualChannel channel) throws IOException { - File pom = new File(ws,rootPOM); - + File pom; + String rootPOMRelPrefix; + PrintStream logger = listener.getLogger(); - // choice of module root ('ws' in this method) is somewhat arbitrary - // when multiple CVS/SVN modules are checked out, so also check - // the path against the workspace root if that seems like what the user meant (see issue #1293) - File parentLoc = new File(ws.getParentFile(),rootPOM); - if(!pom.exists() && parentLoc.exists()) - pom = parentLoc; + if (IOUtils.isAbsolute(rootPOM)) { + pom = new File(rootPOM); + } else { + // choice of module root ('ws' in this method) is somewhat arbitrary + // when multiple CVS/SVN modules are checked out, so also check + // the path against the workspace root if that seems like what the user meant (see issue #1293) + pom = new File(ws, rootPOM); + File parentLoc = new File(ws.getParentFile(),rootPOM); + if(!pom.exists() && parentLoc.exists()) + pom = parentLoc; + } if(!pom.exists()) - throw new AbortException(Messages.MavenModuleSetBuild_NoSuchFile(pom)); + throw new AbortException(Messages.MavenModuleSetBuild_NoSuchPOMFile(pom)); - if(versbose) - logger.println("Parsing "+pom); + if (rootPOM.startsWith("../") || rootPOM.startsWith("..\\")) { + File wsp = new File(workspaceProper); + + if (!ws.equals(wsp)) { + rootPOMRelPrefix = ws.getCanonicalPath().substring(wsp.getCanonicalPath().length()+1)+"/"; + } else { + rootPOMRelPrefix = wsp.getName() + "/"; + } + } else { + rootPOMRelPrefix = ""; + } + + if(verbose) + logger.println("Parsing " + + (nonRecursive ? "non-recursively " : "recursively ") + + pom); + + File settingsLoc; + + if (alternateSettings == null) { + settingsLoc = null; + } else if (IOUtils.isAbsolute(alternateSettings)) { + settingsLoc = new File(alternateSettings); + } else { + // Check for settings.xml first in the workspace proper, and then in the current directory, + // which is getModuleRoot(). + // This is backwards from the order the root POM logic uses, but it's to be consistent with the Maven execution logic. + settingsLoc = new File(workspaceProper, alternateSettings); + File mrSettingsLoc = new File(workspaceProper, alternateSettings); + if (!settingsLoc.exists() && mrSettingsLoc.exists()) + settingsLoc = mrSettingsLoc; + } + + if ((settingsLoc != null) && (!settingsLoc.exists())) { + throw new AbortException(Messages.MavenModuleSetBuild_NoSuchAlternateSettings(settingsLoc.getAbsolutePath())); + } try { MavenEmbedder embedder = MavenUtil. - createEmbedder(listener,mavenHome.getHomeDir(),profiles,properties); + createEmbedder(listener, mavenHome.getHomeDir(), profiles, + properties, privateRepository, settingsLoc); MavenProject mp = embedder.readProject(pom); Map relPath = new HashMap(); - MavenUtil.resolveModules(embedder,mp,getRootPath(),relPath,listener); + MavenUtil.resolveModules(embedder,mp,getRootPath(rootPOMRelPrefix),relPath,listener,nonRecursive); - if(versbose) { + if(verbose) { for (Entry e : relPath.entrySet()) logger.printf("Discovered %s at %s\n",e.getKey().getId(),e.getValue()); } @@ -760,11 +998,16 @@ public final class MavenModuleSetBuild extends AbstractBuild { + public String call() throws IOException { + return System.getProperty("file.encoding"); + } + } + /** * Opens a server socket and returns {@link Acceptor} so that * we can accept a connection later on it. @@ -159,7 +169,7 @@ final class MavenProcessFactory implements ProcessCache.Factory { this.serverSocket = new ServerSocket(); serverSocket.bind(null); // new InetSocketAddress(InetAddress.getLocalHost(),0)); // prevent a hang at the accept method in case the forked process didn't start successfully - serverSocket.setSoTimeout(10*1000); + serverSocket.setSoTimeout(30*1000); } public Connection accept() throws IOException { @@ -186,15 +196,24 @@ final class MavenProcessFactory implements ProcessCache.Factory { /** * Starts maven process. */ - public Channel newProcess(BuildListener listener, OutputStream out) throws IOException, InterruptedException { + public NewProcess newProcess(BuildListener listener, OutputStream out) throws IOException, InterruptedException { if(debug) listener.getLogger().println("Using env variables: "+ envVars); try { final Acceptor acceptor = launcher.getChannel().call(new SocketHandler()); + Charset charset; + try { + charset = Charset.forName(launcher.getChannel().call(new GetCharset())); + } catch (UnsupportedCharsetException e) { + // choose the bit preserving charset. not entirely sure if iso-8859-1 does that though. + charset = Charset.forName("iso-8859-1"); + } + + MavenConsoleAnnotator mca = new MavenConsoleAnnotator(out,charset); final ArgumentListBuilder cmdLine = buildMavenCmdLine(listener,acceptor.getPort()); String[] cmds = cmdLine.toCommandArray(); - final Proc proc = launcher.launch(cmds, envVars, out, workDir); + final Proc proc = launcher.launch().cmds(cmds).envs(envVars).stdout(mca).pwd(workDir).start(); Connection con; try { @@ -208,11 +227,11 @@ final class MavenProcessFactory implements ProcessCache.Factory { throw e; } - return Channels.forProcess("Channel to Maven "+ Arrays.toString(cmds), - Computer.threadPoolForRemoting, new BufferedInputStream(con.in), new BufferedOutputStream(con.out),proc); - -// return launcher.launchChannel(buildMavenCmdLine(listener).toCommandArray(), -// out, workDir, envVars); + return new NewProcess( + Channels.forProcess("Channel to Maven "+ Arrays.toString(cmds), + Computer.threadPoolForRemoting, new BufferedInputStream(con.in), new BufferedOutputStream(con.out), + listener.getLogger(), proc), + proc); } catch (IOException e) { if(fixNull(e.getMessage()).contains("java: not found")) { // diagnose issue #659 @@ -235,13 +254,13 @@ final class MavenProcessFactory implements ProcessCache.Factory { listener.error("Maven version is not configured for this project. Can't determine which Maven to run"); throw new RunnerAbortedException(); } - if(mvn.getMavenHome()==null) { + if(mvn.getHome()==null) { listener.error("Maven '%s' doesn't have its home set",mvn.getName()); throw new RunnerAbortedException(); } // find classworlds.jar - String classWorldsJar = launcher.getChannel().call(new GetClassWorldsJar(mvn.getMavenHome(),listener)); + String classWorldsJar = launcher.getChannel().call(new GetClassWorldsJar(mvn.getHome(),listener)); boolean isMaster = getCurrentNode()== Hudson.getInstance(); FilePath slaveRoot=null; @@ -253,7 +272,7 @@ final class MavenProcessFactory implements ProcessCache.Factory { if(jdk==null) { args.add("java"); } else { - args.add(jdk.getJavaHome()+"/bin/java"); // use JDK.getExecutable() here ? + args.add(jdk.getHome()+"/bin/java"); // use JDK.getExecutable() here ? } if(debugPort!=0) @@ -262,7 +281,7 @@ final class MavenProcessFactory implements ProcessCache.Factory { args.add("-agentlib:yjpagent=tracing"); args.addTokenized(getMavenOpts()); - + args.add("-cp"); args.add( (isMaster? Which.jarFile(Main.class).getAbsolutePath():slaveRoot.child("maven-agent.jar").getRemote())+ @@ -270,7 +289,7 @@ final class MavenProcessFactory implements ProcessCache.Factory { args.add(Main.class.getName()); // M2_HOME - args.add(mvn.getMavenHome()); + args.add(mvn.getHome()); // remoting.jar String remotingJar = launcher.getChannel().call(new GetRemotingJar()); @@ -299,7 +318,27 @@ final class MavenProcessFactory implements ProcessCache.Factory { } public String getMavenOpts() { - return envVars.expand(mms.getMavenOpts()); + String mavenOpts = mms.getMavenOpts(); + + if ((mavenOpts==null) || (mavenOpts.trim().length()==0)) { + Node n = getCurrentNode(); + if (n!=null) { + try { + String localMavenOpts = n.toComputer().getEnvironment().get("MAVEN_OPTS"); + + if ((localMavenOpts!=null) && (localMavenOpts.trim().length()>0)) { + mavenOpts = localMavenOpts; + } + } catch (IOException e) { + } catch (InterruptedException e) { + // Don't do anything - this just means the slave isn't running, so we + // don't want to use its MAVEN_OPTS anyway. + } + + } + } + + return envVars.expand(mavenOpts); } public MavenInstallation getMavenInstallation(TaskListener log) throws IOException, InterruptedException { @@ -357,9 +396,25 @@ final class MavenProcessFactory implements ProcessCache.Factory { return Executor.currentExecutor().getOwner().getNode(); } + /** + * Locates classworlds jar file. + * + * Note that Maven 3.0 changed the name to plexus-classworlds + * + *

        +     * $ find tools/ -name "*classworlds*.jar"
        +     * tools/maven/boot/classworlds-1.1.jar
        +     * tools/maven-2.2.1/boot/classworlds-1.1.jar
        +     * tools/maven-3.0-alpha-2/boot/plexus-classworlds-1.3.jar
        +     * tools/maven-3.0-alpha-3/boot/plexus-classworlds-2.2.2.jar
        +     * tools/maven-3.0-alpha-4/boot/plexus-classworlds-2.2.2.jar
        +     * tools/maven-3.0-alpha-5/boot/plexus-classworlds-2.2.2.jar
        +     * tools/maven-3.0-alpha-6/boot/plexus-classworlds-2.2.2.jar
        +     * 
        + */ private static final FilenameFilter CLASSWORLDS_FILTER = new FilenameFilter() { public boolean accept(File dir, String name) { - return name.startsWith("classworlds") && name.endsWith(".jar"); + return name.contains("classworlds") && name.endsWith(".jar"); } }; diff --git a/maven-plugin/src/main/java/hudson/maven/MavenProjectActionBuilder.java b/maven-plugin/src/main/java/hudson/maven/MavenProjectActionBuilder.java new file mode 100644 index 0000000000000000000000000000000000000000..42a1a352bec0f90530284ad5fc6e49cdfc30dde5 --- /dev/null +++ b/maven-plugin/src/main/java/hudson/maven/MavenProjectActionBuilder.java @@ -0,0 +1,59 @@ +/* + * The MIT License + * + * Copyright (c) 2010, InfraDNA, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.maven; + +import hudson.model.Action; +import hudson.tasks.BuildStep; + +import java.util.Collection; + +/** + * Can contribute to project actions. + * + * + * @author Kohsuke Kawaguchi + * @see MavenBuildProxy#registerAsProjectAction(MavenProjectActionBuilder) + */ +public interface MavenProjectActionBuilder { + /** + * Equivalent of {@link BuildStep#getProjectActions(AbstractProject)}. + * + *

        + * Registers a transient action to {@link MavenModule} when it's rendered. + * This is useful if you'd like to display an action at the module level. + * + *

        + * Since this contributes a transient action, the returned {@link Action} + * will not be serialized. + * + *

        + * For this method to be invoked, call + * {@link MavenBuildProxy#registerAsProjectAction(MavenProjectActionBuilder)} during the build. + * + * @return + * can be empty but never null. + * @since 1.341 + */ + public Collection getProjectActions(MavenModule module); +} diff --git a/maven-plugin/src/main/java/hudson/maven/MavenRedeployer.java b/maven-plugin/src/main/java/hudson/maven/MavenRedeployer.java index 9469e783ece1091d4bc569b7218d2aa4f4d39121..f1206cff48675ffcae3c6b082d674842b464090a 100644 --- a/maven-plugin/src/main/java/hudson/maven/MavenRedeployer.java +++ b/maven-plugin/src/main/java/hudson/maven/MavenRedeployer.java @@ -23,14 +23,15 @@ */ package hudson.maven; -import hudson.model.AbstractProject; import hudson.model.AbstractBuild; import hudson.model.BuildListener; import hudson.model.Result; import hudson.tasks.BuildStepDescriptor; -import hudson.tasks.Publisher; +import hudson.tasks.Notifier; +import hudson.tasks.BuildStepMonitor; import hudson.Launcher; import hudson.maven.reporters.MavenArtifactRecord; +import hudson.tasks.Publisher; import java.io.IOException; @@ -45,7 +46,7 @@ import java.io.IOException; * * @author Kohsuke Kawaguchi */ -public class MavenRedeployer extends Publisher { +public class MavenRedeployer extends Notifier { public boolean perform(AbstractBuild build, Launcher launcher, BuildListener listener) throws InterruptedException, IOException { MavenArtifactRecord mar = build.getAction(MavenArtifactRecord.class); if(mar==null) { @@ -62,14 +63,18 @@ public class MavenRedeployer extends Publisher { return true; } - public BuildStepDescriptor getDescriptor() { + public BuildStepMonitor getRequiredMonitorService() { + return BuildStepMonitor.NONE; + } + + public BuildStepDescriptor getDescriptor() { return DESCRIPTOR; } public static final DescriptorImpl DESCRIPTOR = new DescriptorImpl(); - public static final class DescriptorImpl extends BuildStepDescriptor { - public boolean isApplicable(Class jobType) { + public static final class DescriptorImpl extends BuildStepDescriptor { + public boolean isApplicable(Class jobType) { return AbstractMavenProject.class.isAssignableFrom(jobType); } @@ -77,4 +82,4 @@ public class MavenRedeployer extends Publisher { return Messages.MavenRedeployer_DisplayName(); } } -} +} \ No newline at end of file diff --git a/maven-plugin/src/main/java/hudson/maven/MavenReporter.java b/maven-plugin/src/main/java/hudson/maven/MavenReporter.java index 4ef03d8bf0165db1fa8de2c416da4d547f2ba435..3eeb2b40167c2c38663fdd010fda43e48c2864e5 100644 --- a/maven-plugin/src/main/java/hudson/maven/MavenReporter.java +++ b/maven-plugin/src/main/java/hudson/maven/MavenReporter.java @@ -25,9 +25,7 @@ package hudson.maven; import hudson.ExtensionPoint; import hudson.Launcher; -import hudson.model.AbstractProject; import hudson.model.Action; -import hudson.model.Build; import hudson.model.BuildListener; import hudson.model.Describable; import hudson.model.Hudson; @@ -40,6 +38,8 @@ import org.apache.maven.reporting.MavenReport; import java.io.IOException; import java.io.Serializable; +import java.util.Collection; +import java.util.Collections; /** * Listens to the build execution of {@link MavenBuild}, @@ -95,7 +95,7 @@ import java.io.Serializable; * @author Kohsuke Kawaguchi * @see MavenReporters */ -public abstract class MavenReporter implements Describable, ExtensionPoint, Serializable { +public abstract class MavenReporter implements Describable, ExtensionPoint, Serializable, MavenProjectActionBuilder { /** * Called before the actual maven2 execution begins. * @@ -261,11 +261,40 @@ public abstract class MavenReporter implements Describable, Exten * * @return * null not to contribute an action, which is the default. + * @deprecated as of 1.341 + * Use {@link #getProjectActions(MavenModule)} instead. */ public Action getProjectAction(MavenModule module) { return null; } + /** + * Equivalent of {@link BuildStep#getProjectActions(AbstractProject)} + * for {@link MavenReporter}. + * + *

        + * Registers a transient action to {@link MavenModule} when it's rendered. + * This is useful if you'd like to display an action at the module level. + * + *

        + * Since this contributes a transient action, the returned {@link Action} + * will not be serialized. + * + *

        + * For this method to be invoked, your {@link MavenReporter} has to invoke + * {@link MavenBuildProxy#registerAsProjectAction(MavenReporter)} during the build. + * + * @return + * can be empty but never null. + * @since 1.341 + */ + public Collection getProjectActions(MavenModule module) { + // delegate to getProjectAction (singular) for backward compatible behavior + Action a = getProjectAction(module); + if (a==null) return Collections.emptyList(); + return Collections.singletonList(a); + } + /** * Works like {@link #getProjectAction(MavenModule)} but * works at {@link MavenModuleSet} level. @@ -282,6 +311,6 @@ public abstract class MavenReporter implements Describable, Exten } public MavenReporterDescriptor getDescriptor() { - return (MavenReporterDescriptor)Hudson.getInstance().getDescriptor(getClass()); + return (MavenReporterDescriptor)Hudson.getInstance().getDescriptorOrDie(getClass()); } } diff --git a/maven-plugin/src/main/java/hudson/maven/MavenReporterDescriptor.java b/maven-plugin/src/main/java/hudson/maven/MavenReporterDescriptor.java index 3f40061c7dd056911bbf53d8c546acf1dd18c98e..1cd675d69676ba06e95e3c66e9fc2c0ff4fb8784 100644 --- a/maven-plugin/src/main/java/hudson/maven/MavenReporterDescriptor.java +++ b/maven-plugin/src/main/java/hudson/maven/MavenReporterDescriptor.java @@ -102,6 +102,6 @@ public abstract class MavenReporterDescriptor extends Descriptor */ public static Collection all() { // use getDescriptorList and not getExtensionList to pick up legacy instances - return (Collection)Hudson.getInstance().getDescriptorList(MavenReporter.class); + return Hudson.getInstance().getDescriptorList(MavenReporter.class); } } diff --git a/maven-plugin/src/main/java/hudson/maven/MavenTestDataPublisher.java b/maven-plugin/src/main/java/hudson/maven/MavenTestDataPublisher.java new file mode 100644 index 0000000000000000000000000000000000000000..d166e30f2d0ec4f8aead3b6c38c7f76c8732f7d8 --- /dev/null +++ b/maven-plugin/src/main/java/hudson/maven/MavenTestDataPublisher.java @@ -0,0 +1,123 @@ +/* + * The MIT License + * + * Copyright (c) 2004-2009, Sun Microsystems, Inc., Tom Huybrechts + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.maven; + +import hudson.Extension; +import hudson.Launcher; +import hudson.maven.reporters.SurefireReport; +import hudson.model.AbstractBuild; +import hudson.model.AbstractProject; +import hudson.model.BuildListener; +import hudson.model.Descriptor; +import hudson.model.Saveable; +import hudson.tasks.BuildStepDescriptor; +import hudson.tasks.BuildStepMonitor; +import hudson.tasks.Publisher; +import hudson.tasks.Recorder; +import hudson.tasks.junit.TestDataPublisher; +import hudson.tasks.junit.TestResultAction.Data; +import hudson.util.DescribableList; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +import net.sf.json.JSONObject; + +import org.kohsuke.stapler.StaplerRequest; + +/** + * Augments {@link SurefireReport} by executing {@link TestDataPublisher}s. + * @since 1.320 + */ +public class MavenTestDataPublisher extends Recorder { + + private final DescribableList> testDataPublishers; + + public MavenTestDataPublisher( + DescribableList> testDataPublishers) { + super(); + this.testDataPublishers = testDataPublishers; + } + + public BuildStepMonitor getRequiredMonitorService() { + return BuildStepMonitor.STEP; + } + + public boolean perform(AbstractBuild build, Launcher launcher, + BuildListener listener) throws InterruptedException, IOException { + + SurefireReport report = build.getAction(SurefireReport.class); + if (report == null) { + return true; + } + + List data = new ArrayList(); + if (testDataPublishers != null) { + for (TestDataPublisher tdp : testDataPublishers) { + Data d = tdp.getTestData(build, launcher, listener, report.getResult()); + if (d != null) { + data.add(d); + } + } + } + + report.setData(data); + + return true; + } + + public DescribableList> getTestDataPublishers() { + return testDataPublishers; + } + + @Extension + public static class DescriptorImpl extends BuildStepDescriptor { + + @Override + public String getDisplayName() { + return "Additional test report features"; + } + + @Override + public boolean isApplicable(Class jobType) { + return MavenModuleSet.class.isAssignableFrom(jobType) && !TestDataPublisher.all().isEmpty(); + } + + @Override + public Publisher newInstance(StaplerRequest req, JSONObject formData) throws FormException { + DescribableList> testDataPublishers + = new DescribableList>(Saveable.NOOP); + try { + testDataPublishers.rebuild(req, formData, TestDataPublisher.all()); + } catch (IOException e) { + throw new FormException(e,null); + } + + return new MavenTestDataPublisher(testDataPublishers); + } + + } + +} diff --git a/maven-plugin/src/main/java/hudson/maven/MavenUtil.java b/maven-plugin/src/main/java/hudson/maven/MavenUtil.java index 6117ed6eb323e70ad729c3970bab728c35e4b8c0..cfe9666ae98fe99cdc868d48dda238e971233970 100644 --- a/maven-plugin/src/main/java/hudson/maven/MavenUtil.java +++ b/maven-plugin/src/main/java/hudson/maven/MavenUtil.java @@ -24,11 +24,15 @@ package hudson.maven; import hudson.AbortException; +import hudson.Util; import hudson.model.BuildListener; import hudson.model.TaskListener; import hudson.model.AbstractProject; +import hudson.model.AbstractBuild; +import hudson.model.Hudson; import hudson.tasks.Maven.MavenInstallation; import hudson.tasks.Maven.ProjectWithMaven; + import org.apache.maven.embedder.MavenEmbedderException; import org.apache.maven.embedder.MavenEmbedderLogger; import org.apache.maven.project.MavenProject; @@ -37,6 +41,8 @@ import org.apache.commons.io.IOUtils; import java.io.File; import java.io.IOException; +import java.io.BufferedReader; +import java.io.InputStreamReader; import java.net.URL; import java.util.ArrayList; import java.util.Enumeration; @@ -63,18 +69,65 @@ public class MavenUtil { * * @see #createEmbedder(TaskListener, File, String) */ - public static MavenEmbedder createEmbedder(TaskListener listener, AbstractProject project, String profiles) throws MavenEmbedderException, IOException { + public static MavenEmbedder createEmbedder(TaskListener listener, AbstractProject project, String profiles) throws MavenEmbedderException, IOException, InterruptedException { MavenInstallation m=null; if (project instanceof ProjectWithMaven) - m = ((ProjectWithMaven) project).inferMavenInstallation(); + m = ((ProjectWithMaven) project).inferMavenInstallation().forNode(Hudson.getInstance(),listener); return createEmbedder(listener,m!=null?m.getHomeDir():null,profiles); } + /** + * This version tries to infer mavenHome and other options by looking at a build. + * + * @see #createEmbedder(TaskListener, File, String) + */ + public static MavenEmbedder createEmbedder(TaskListener listener, AbstractBuild build) throws MavenEmbedderException, IOException, InterruptedException { + MavenInstallation m=null; + File settingsLoc = null; + String profiles = null; + Properties systemProperties = null; + String privateRepository = null; + + AbstractProject project = build.getProject(); + + if (project instanceof ProjectWithMaven) { + m = ((ProjectWithMaven) project).inferMavenInstallation().forNode(Hudson.getInstance(),listener); + } + if (project instanceof MavenModuleSet) { + String altSet = ((MavenModuleSet) project).getAlternateSettings(); + settingsLoc = (altSet == null) ? null + : new File(build.getWorkspace().child(altSet).getRemote()); + + if (((MavenModuleSet) project).usesPrivateRepository()) { + privateRepository = build.getWorkspace().child(".repository").getRemote(); + } + + profiles = ((MavenModuleSet) project).getProfiles(); + systemProperties = ((MavenModuleSet) project).getMavenProperties(); + } + + return createEmbedder(listener, + m!=null?m.getHomeDir():null, + profiles, + systemProperties, + privateRepository, + settingsLoc); + } + public static MavenEmbedder createEmbedder(TaskListener listener, File mavenHome, String profiles) throws MavenEmbedderException, IOException { return createEmbedder(listener,mavenHome,profiles,new Properties()); } + public static MavenEmbedder createEmbedder(TaskListener listener, File mavenHome, String profiles, Properties systemProperties) throws MavenEmbedderException, IOException { + return createEmbedder(listener,mavenHome,profiles,systemProperties,null); + } + + public static MavenEmbedder createEmbedder(TaskListener listener, File mavenHome, String profiles, Properties systemProperties, + String privateRepository) throws MavenEmbedderException, IOException { + return createEmbedder(listener,mavenHome,profiles,systemProperties,privateRepository,null); + } + /** * Creates a fresh {@link MavenEmbedder} instance. * @@ -87,8 +140,13 @@ public class MavenUtil { * Profiles to activate/deactivate. Can be null. * @param systemProperties * The system properties that the embedded Maven sees. See {@link MavenEmbedder#setSystemProperties(Properties)}. + * @param privateRepository + * Optional private repository to use as the local repository. + * @param alternateSettings + * Optional alternate settings.xml file. */ - public static MavenEmbedder createEmbedder(TaskListener listener, File mavenHome, String profiles, Properties systemProperties) throws MavenEmbedderException, IOException { + public static MavenEmbedder createEmbedder(TaskListener listener, File mavenHome, String profiles, Properties systemProperties, + String privateRepository, File alternateSettings) throws MavenEmbedderException, IOException { MavenEmbedder maven = new MavenEmbedder(mavenHome); ClassLoader cl = MavenUtil.class.getClassLoader(); @@ -111,7 +169,14 @@ public class MavenUtil { throw new AbortException("Failed to create "+m2Home+ "\nSee https://hudson.dev.java.net/cannot-create-.m2.html"); + if (privateRepository!=null) + maven.setLocalRepositoryDirectory(new File(privateRepository)); + maven.setProfiles(profiles); + + if (alternateSettings!=null) + maven.setAlternateSettings(alternateSettings); + maven.setSystemProperties(systemProperties); maven.start(); @@ -134,28 +199,38 @@ public class MavenUtil { * @throws AbortException * errors will be reported to the listener and the exception thrown. */ - public static void resolveModules(MavenEmbedder embedder, MavenProject project, String rel, Map relativePathInfo, BuildListener listener) throws ProjectBuildingException, AbortException { - + public static void resolveModules(MavenEmbedder embedder, MavenProject project, + String rel, Map relativePathInfo, + BuildListener listener, boolean nonRecursive) throws ProjectBuildingException, + AbortException { + File basedir = project.getFile().getParentFile(); relativePathInfo.put(project,rel); - List modules = new ArrayList(); - - for (String modulePath : (List) project.getModules()) { - File moduleFile = new File(new File(basedir, modulePath),"pom.xml"); - if(!moduleFile.exists()) - throw new AbortException(moduleFile+" is referenced from "+project.getFile()+" but it doesn't exist"); - - String relativePath = rel; - if(relativePath.length()>0) relativePath+='/'; - relativePath+=modulePath; - - MavenProject child = embedder.readProject(moduleFile); - resolveModules(embedder,child,relativePath,relativePathInfo,listener); - modules.add(child); - } - - project.setCollectedProjects(modules); + if (!nonRecursive) { + List modules = new ArrayList(); + + for (String modulePath : (List) project.getModules()) { + if (Util.fixEmptyAndTrim(modulePath)!=null) { + File moduleFile = new File(basedir, modulePath); + if (moduleFile.exists() && moduleFile.isDirectory()) { + moduleFile = new File(basedir, modulePath + "/pom.xml"); + } + if(!moduleFile.exists()) + throw new AbortException(moduleFile+" is referenced from "+project.getFile()+" but it doesn't exist"); + + String relativePath = rel; + if(relativePath.length()>0) relativePath+='/'; + relativePath+=modulePath; + + MavenProject child = embedder.readProject(moduleFile); + resolveModules(embedder,child,relativePath,relativePathInfo,listener,nonRecursive); + modules.add(child); + } + } + + project.setCollectedProjects(modules); + } } /** @@ -206,13 +281,23 @@ public class MavenUtil { String s = url.toExternalForm(); if(s.contains("maven-plugin-tools-api")) return true; - if(s.endsWith("plexus/components.xml")) { + // because RemoteClassLoader mangles the path, we can't check for plexus/components.xml, + // which would have otherwise made the test cheaper. + if(s.endsWith("components.xml")) { + BufferedReader r=null; try { // is this designated for interception purpose? If so, don't load them in the MavenEmbedder - IOUtils.closeQuietly(new URL(s + ".interception").openStream()); - return true; + // earlier I tried to use a marker file in the same directory, but that won't work + r = new BufferedReader(new InputStreamReader(url.openStream())); + for (int i=0; i<2; i++) { + String l = r.readLine(); + if(l!=null && l.contains("MAVEN-INTERCEPTION-TO-BE-MASKED")) + return true; + } } catch (IOException _) { - // no such resource exists + // let whoever requesting this resource re-discover an error and report it + } finally { + IOUtils.closeQuietly(r); } } return false; diff --git a/maven-plugin/src/main/java/hudson/maven/ModuleDependency.java b/maven-plugin/src/main/java/hudson/maven/ModuleDependency.java index 29948f722478de022e7639e79f0249d9fb65a35c..3ae83388b6b34441b0ea6005096a5c351431f34d 100644 --- a/maven-plugin/src/main/java/hudson/maven/ModuleDependency.java +++ b/maven-plugin/src/main/java/hudson/maven/ModuleDependency.java @@ -44,10 +44,10 @@ public final class ModuleDependency implements Serializable { public final String version; public ModuleDependency(String groupId, String artifactId, String version) { - this.groupId = groupId; - this.artifactId = artifactId; + this.groupId = groupId.intern(); + this.artifactId = artifactId.intern(); if(version==null) version=UNKNOWN; - this.version = version; + this.version = version.intern(); } public ModuleDependency(ModuleName name, String version) { @@ -104,6 +104,13 @@ public final class ModuleDependency implements Serializable { return result; } + /** + * Upon reading from the disk, intern strings. + */ + public ModuleDependency readResolve() { + return new ModuleDependency(groupId,artifactId,version); + } + /** * For compatibility reason, this value may be used in the verion field * to indicate that the version is unknown. diff --git a/maven-plugin/src/main/java/hudson/maven/ProcessCache.java b/maven-plugin/src/main/java/hudson/maven/ProcessCache.java index 64f3cf1b009fb54800d9fe62c3b3c1e3bf4c9893..bad99b0c17024b33acf076803d1fb96e28054216 100644 --- a/maven-plugin/src/main/java/hudson/maven/ProcessCache.java +++ b/maven-plugin/src/main/java/hudson/maven/ProcessCache.java @@ -24,12 +24,14 @@ package hudson.maven; import hudson.Util; +import hudson.Proc; import hudson.model.BuildListener; import hudson.model.JDK; import hudson.model.TaskListener; import hudson.remoting.Callable; import hudson.remoting.Channel; import hudson.remoting.VirtualChannel; +import hudson.remoting.RequestAbortedException; import hudson.tasks.Maven.MavenInstallation; import hudson.util.DelegatingOutputStream; import hudson.util.NullStream; @@ -60,12 +62,22 @@ public final class ProcessCache { * @param out * The output from the process should be sent to this output stream. */ - Channel newProcess(BuildListener listener,OutputStream out) throws IOException, InterruptedException; + NewProcess newProcess(BuildListener listener,OutputStream out) throws IOException, InterruptedException; String getMavenOpts(); MavenInstallation getMavenInstallation(TaskListener listener) throws IOException, InterruptedException; JDK getJava(TaskListener listener) throws IOException, InterruptedException; } + public static class NewProcess { + public final Channel channel; + public final Proc proc; + + public NewProcess(Channel channel, Proc proc) { + this.channel = channel; + this.proc = proc; + } + } + class MavenProcess { /** * Channel connected to the maven process. @@ -76,6 +88,7 @@ public final class ProcessCache { */ private final String mavenOpts; private final PerChannel parent; + final Proc proc; private final MavenInstallation installation; private final JDK jdk; private final RedirectableOutputStream output; @@ -88,16 +101,21 @@ public final class ProcessCache { private int age = 0; - MavenProcess(PerChannel parent, String mavenOpts, MavenInstallation installation, JDK jdk, Channel channel, RedirectableOutputStream output) throws IOException, InterruptedException { + MavenProcess(PerChannel parent, String mavenOpts, MavenInstallation installation, JDK jdk, NewProcess np, RedirectableOutputStream output) throws IOException, InterruptedException { this.parent = parent; this.mavenOpts = mavenOpts; - this.channel = channel; + this.channel = np.channel; + this.proc = np.proc; this.installation = installation; this.jdk = jdk; this.output = output; this.systemProperties = channel.call(new GetSystemProperties()); } + public String getMavenOpts() { + return mavenOpts; + } + boolean matches(String mavenOpts,MavenInstallation installation, JDK jdk) { return Util.fixNull(this.mavenOpts).equals(Util.fixNull(mavenOpts)) && this.installation==installation @@ -129,6 +147,26 @@ public final class ProcessCache { LOGGER.log(Level.WARNING,"Failed to discard the maven process orderly",e); } } + + /** + * Calls a {@link Callable} on the channel, with additional error diagnostics. + */ + public V call(Callable callable) throws T, IOException, InterruptedException { + try { + return channel.call(callable); + } catch (RequestAbortedException e) { + // this is normally triggered by the unexpected Maven JVM termination. + // check if the process is still alive, after giving it a bit of time to die + Thread.sleep(1000); + if(proc.isAlive()) + throw e; // it's still alive. treat this as a bug in the code + else { + String msg = "Maven JVM terminated unexpectedly with exit code " + proc.join(); + LOGGER.log(Level.FINE,msg,e); + throw new hudson.AbortException(msg); + } + } + } } static class PerChannel { @@ -173,7 +211,7 @@ public final class ProcessCache { // reset the system property. // this also serves as the sanity check. try { - p.channel.call(new SetSystemProperties(p.systemProperties)); + p.call(new SetSystemProperties(p.systemProperties)); } catch (IOException e) { p.discard(); itr.remove(); diff --git a/maven-plugin/src/main/java/hudson/maven/RedeployPublisher.java b/maven-plugin/src/main/java/hudson/maven/RedeployPublisher.java index 1ccbd540ae67ffcae602d9803e01deef36557d1f..27574971ffc2f047cc43ca300eb4d74517c16c5b 100644 --- a/maven-plugin/src/main/java/hudson/maven/RedeployPublisher.java +++ b/maven-plugin/src/main/java/hudson/maven/RedeployPublisher.java @@ -1,7 +1,7 @@ /* * The MIT License * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:cactusman + * Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:cactusman, Seiji Sogabe * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -25,6 +25,7 @@ package hudson.maven; import hudson.Launcher; import hudson.Extension; +import hudson.Util; import hudson.maven.reporters.MavenAbstractArtifactRecord; import hudson.model.AbstractBuild; import hudson.model.AbstractProject; @@ -33,6 +34,8 @@ import hudson.model.Result; import hudson.tasks.BuildStepDescriptor; import hudson.tasks.Publisher; import hudson.tasks.Recorder; +import hudson.tasks.BuildStepMonitor; +import hudson.util.FormValidation; import net.sf.json.JSONObject; import org.apache.maven.artifact.deployer.ArtifactDeploymentException; import org.apache.maven.artifact.repository.ArtifactRepository; @@ -44,6 +47,7 @@ import org.kohsuke.stapler.DataBoundConstructor; import org.kohsuke.stapler.StaplerRequest; import java.io.IOException; +import org.kohsuke.stapler.QueryParameter; /** * {@link Publisher} for {@link MavenModuleSetBuild} to deploy artifacts @@ -62,18 +66,36 @@ public class RedeployPublisher extends Recorder { */ public final String url; public final boolean uniqueVersion; + public final boolean evenIfUnstable; - @DataBoundConstructor + /** + * For backward compatibility + */ public RedeployPublisher(String id, String url, boolean uniqueVersion) { + this(id, url, uniqueVersion, false); + } + + /** + * @since 1.347 + */ + @DataBoundConstructor + public RedeployPublisher(String id, String url, boolean uniqueVersion, boolean evenIfUnstable) { this.id = id; - this.url = url; + this.url = Util.fixEmptyAndTrim(url); this.uniqueVersion = uniqueVersion; + this.evenIfUnstable = evenIfUnstable; } public boolean perform(AbstractBuild build, Launcher launcher, BuildListener listener) throws InterruptedException, IOException { - if(build.getResult().isWorseThan(Result.SUCCESS)) + if(build.getResult().isWorseThan(getTreshold())) return true; // build failed. Don't publish + if (url==null) { + listener.getLogger().println("No Repository URL is specified."); + build.setResult(Result.FAILURE); + return true; + } + MavenAbstractArtifactRecord mar = getAction(build); if(mar==null) { listener.getLogger().println("No artifacts are recorded. Is this a Maven project?"); @@ -83,7 +105,8 @@ public class RedeployPublisher extends Recorder { listener.getLogger().println("Deploying artifacts to "+url); try { - MavenEmbedder embedder = MavenUtil.createEmbedder(listener,build.getProject(),null); + + MavenEmbedder embedder = MavenUtil.createEmbedder(listener,build); ArtifactRepositoryLayout layout = (ArtifactRepositoryLayout) embedder.getContainer().lookup( ArtifactRepositoryLayout.ROLE,"default"); ArtifactRepositoryFactory factory = @@ -117,6 +140,18 @@ public class RedeployPublisher extends Recorder { return build.getAction(MavenAbstractArtifactRecord.class); } + public BuildStepMonitor getRequiredMonitorService() { + return BuildStepMonitor.NONE; + } + + protected Result getTreshold() { + if (evenIfUnstable) { + return Result.UNSTABLE; + } else { + return Result.SUCCESS; + } + } + @Extension public static class DescriptorImpl extends BuildStepDescriptor { public DescriptorImpl() { @@ -134,10 +169,6 @@ public class RedeployPublisher extends Recorder { return jobType==MavenModuleSet.class; } - public String getHelpFile() { - return "/help/maven/redeploy.html"; - } - public RedeployPublisher newInstance(StaplerRequest req, JSONObject formData) throws FormException { return req.bindJSON(RedeployPublisher.class,formData); } @@ -145,5 +176,18 @@ public class RedeployPublisher extends Recorder { public String getDisplayName() { return Messages.RedeployPublisher_getDisplayName(); } + + public boolean showEvenIfUnstableOption() { + // little hack to avoid showing this option on the redeploy action's screen + return true; + } + + public FormValidation doCheckUrl(@QueryParameter String url) { + String fixedUrl = hudson.Util.fixEmptyAndTrim(url); + if (fixedUrl==null) + return FormValidation.error(Messages.RedeployPublisher_RepositoryURL_Mandatory()); + + return FormValidation.ok(); + } } } diff --git a/maven-plugin/src/main/java/hudson/maven/SplittableBuildListener.java b/maven-plugin/src/main/java/hudson/maven/SplittableBuildListener.java index 40121e5edaee4bb2082907399f955587b519672e..34910a0ccda5021533a29f37b458102dcac17571 100644 --- a/maven-plugin/src/main/java/hudson/maven/SplittableBuildListener.java +++ b/maven-plugin/src/main/java/hudson/maven/SplittableBuildListener.java @@ -23,10 +23,12 @@ */ package hudson.maven; +import hudson.console.ConsoleNote; import hudson.model.BuildListener; import hudson.model.Cause; import hudson.model.Result; import hudson.model.StreamBuildListener; +import hudson.util.AbstractTaskListener; import java.io.ByteArrayOutputStream; import java.io.IOException; @@ -43,7 +45,7 @@ import java.util.List; * @author Kohsuke Kawaguchi * @since 1.133 */ -final class SplittableBuildListener implements BuildListener, Serializable { +final class SplittableBuildListener extends AbstractTaskListener implements BuildListener, Serializable { /** * The actual {@link BuildListener} where the output goes. */ @@ -131,7 +133,11 @@ final class SplittableBuildListener implements BuildListener, Serializable { return new PrintWriter(logger); } - private Object writeReplace() { + public void annotate(ConsoleNote ann) throws IOException { + core.annotate(ann); + } + + private Object writeReplace() throws IOException { return new StreamBuildListener(logger); } diff --git a/maven-plugin/src/main/java/hudson/maven/package.html b/maven-plugin/src/main/java/hudson/maven/package.html index a213c5cd581f06552facd7504cebad45da14fb58..17e41ad1400cd110228be266036f5417ef84d74a 100644 --- a/maven-plugin/src/main/java/hudson/maven/package.html +++ b/maven-plugin/src/main/java/hudson/maven/package.html @@ -24,4 +24,39 @@ THE SOFTWARE. Maven support. + +

        General Idea

        +

        + One of the pain points of the freestyle project is that you have to configure a lot of things, such as + where to look for test reports, what files to archive, where the findbugs report would go. + + But if we focus on Maven, we should be able to eliminate much of the configuration, since it introduces + more uniform structures. So that's what this plugin does — at the expense of limiting the build tool + to Maven, automate much of the configuration. +

        + +

        Implementation Approach

        +

        + The core idea of the implementation is to monitor what Maven does, so that we can see which mojos are + executed with what parameters. In this way, we can tell when/where javadoc is generated, if source code + compilation had an error, and access other rich information about the project build process. +

        + To make communication between Hudson JVM and Maven JVM easier, we use the remoting technology that Hudson + uses between the master and the slave. We start a new JVM and bootstraps to the remoting, then use a socket + to establish a connection to this process. This part of the code is in the "maven-agent" module. + We then bootstrap Maven. +

        + To intercept what's going on in Maven, we extend some key components in Maven, and configure Plexus + in such a way that our components are used instead of default ones. Because injected components need to live + in a different classloader, they are packaged in a separate "maven-interceptor" module. + + We also bring in objects (MavenReporters) from plugins + via remoting, and distribute intercepted events to these guys. They can then digest information and send it back to + Hudson JVM. +

        + In addition to all this, we use embedded Maven to parse POMs, so that we can figure out the structure + of the project before we even do a build (this information is used for example to set up dependencies among + jobs.) This turns out to be rather fragile (in the presence of profiles that are activated by system property, + platform, etc., which makes the effective POM different when in Hudson vs when built for real.) +

        \ No newline at end of file diff --git a/maven-plugin/src/main/java/hudson/maven/reporters/MavenAbstractArtifactRecord.java b/maven-plugin/src/main/java/hudson/maven/reporters/MavenAbstractArtifactRecord.java index 145e98c0b4f337c66ad5b6a808ff0d61bf6f8322..f1e138d6a2abd0528d280dba652c124b9b40cc6a 100644 --- a/maven-plugin/src/main/java/hudson/maven/reporters/MavenAbstractArtifactRecord.java +++ b/maven-plugin/src/main/java/hudson/maven/reporters/MavenAbstractArtifactRecord.java @@ -23,6 +23,7 @@ */ package hudson.maven.reporters; +import hudson.console.AnnotatedLargeText; import hudson.maven.MavenEmbedder; import hudson.maven.MavenUtil; import hudson.model.AbstractBuild; @@ -48,11 +49,13 @@ import org.codehaus.plexus.component.repository.exception.ComponentLookupExcepti import org.kohsuke.stapler.QueryParameter; import org.kohsuke.stapler.StaplerRequest; import org.kohsuke.stapler.StaplerResponse; -import org.kohsuke.stapler.framework.io.LargeText; +import org.kohsuke.stapler.HttpResponse; +import org.kohsuke.stapler.HttpRedirect; import javax.servlet.ServletException; import java.io.File; import java.io.IOException; +import java.nio.charset.Charset; import java.util.Calendar; import java.util.GregorianCalendar; import java.util.concurrent.CopyOnWriteArrayList; @@ -94,8 +97,8 @@ public abstract class MavenAbstractArtifactRecord> /** * Returns the log of this deployment record. */ - public LargeText getLog() { - return new LargeText(new File(getBuild().getRootDir(),fileName),true); + public AnnotatedLargeText getLog() { + return new AnnotatedLargeText(new File(getBuild().getRootDir(),fileName), Charset.defaultCharset(), true, this); } /** @@ -129,7 +132,7 @@ public abstract class MavenAbstractArtifactRecord> } // TODO: Eventually provide a better UI - public final void doIndex(StaplerRequest req, StaplerResponse rsp) throws IOException { + public void doIndex(StaplerResponse rsp) throws IOException { rsp.setContentType("text/plain;charset=UTF-8"); getLog().writeLogTo(0,rsp.getWriter()); } @@ -186,10 +189,10 @@ public abstract class MavenAbstractArtifactRecord> /** * Performs a redeployment. */ - public final void doRedeploy(StaplerRequest req, StaplerResponse rsp, - @QueryParameter("redeploy.id") final String id, - @QueryParameter("redeploy.url") final String repositoryUrl, - @QueryParameter("redeploy.uniqueVersion") final boolean uniqueVersion) throws ServletException, IOException { + public final HttpResponse doRedeploy( + @QueryParameter("_.id") final String id, + @QueryParameter("_.url") final String repositoryUrl, + @QueryParameter("_.uniqueVersion") final boolean uniqueVersion) throws ServletException, IOException { getACL().checkPermission(REDEPLOY); File logFile = new File(getBuild().getRootDir(),"maven-deployment."+records.size()+".log"); @@ -199,7 +202,7 @@ public abstract class MavenAbstractArtifactRecord> new TaskThread(this,ListenerAndText.forFile(logFile)) { protected void perform(TaskListener listener) throws Exception { try { - MavenEmbedder embedder = MavenUtil.createEmbedder(listener,getBuild().getProject(),null); + MavenEmbedder embedder = MavenUtil.createEmbedder(listener,getBuild()); ArtifactRepositoryLayout layout = (ArtifactRepositoryLayout) embedder.getContainer().lookup( ArtifactRepositoryLayout.ROLE,"default"); ArtifactRepositoryFactory factory = @@ -221,7 +224,7 @@ public abstract class MavenAbstractArtifactRecord> } }.start(); - rsp.sendRedirect("."); + return HttpRedirect.DOT; } /** diff --git a/maven-plugin/src/main/java/hudson/maven/reporters/MavenArtifact.java b/maven-plugin/src/main/java/hudson/maven/reporters/MavenArtifact.java index 32b0a1fef0d32b3f29d732c1dca68c3f5e8009d0..0232687390f261ffb90fa829c10d7c1f0857d625 100644 --- a/maven-plugin/src/main/java/hudson/maven/reporters/MavenArtifact.java +++ b/maven-plugin/src/main/java/hudson/maven/reporters/MavenArtifact.java @@ -24,6 +24,7 @@ package hudson.maven.reporters; import hudson.FilePath; +import hudson.Util; import hudson.maven.MavenBuild; import hudson.maven.MavenBuildProxy; import hudson.model.BuildListener; @@ -36,9 +37,11 @@ import org.apache.maven.artifact.handler.DefaultArtifactHandler; import org.apache.maven.artifact.handler.manager.ArtifactHandlerManager; import java.io.File; +import java.io.FileInputStream; import java.io.IOException; import java.io.Serializable; import java.util.Collections; +import java.util.logging.Logger; /** * Captures information about an artifact created by Maven and archived by @@ -83,7 +86,12 @@ public final class MavenArtifact implements Serializable { */ public final String canonicalName; - public MavenArtifact(Artifact a) { + /** + * The md5sum for this artifact. + */ + public final String md5sum; + + public MavenArtifact(Artifact a) throws IOException { this.groupId = a.getGroupId(); this.artifactId = a.getArtifactId(); this.version = a.getVersion(); @@ -91,7 +99,7 @@ public final class MavenArtifact implements Serializable { this.type = a.getType(); // TODO: on archive we need to follow the same format as Maven repository this.fileName = a.getFile().getName(); - + this.md5sum = Util.getDigestOf(new FileInputStream(a.getFile())); String extension; if(a.getArtifactHandler()!=null) // don't know if this can be null, but just to be defensive. extension = a.getArtifactHandler().getExtension(); @@ -101,7 +109,7 @@ public final class MavenArtifact implements Serializable { canonicalName = getSeed(extension); } - public MavenArtifact(String groupId, String artifactId, String version, String classifier, String type, String fileName) { + public MavenArtifact(String groupId, String artifactId, String version, String classifier, String type, String fileName, String md5sum) { this.groupId = groupId; this.artifactId = artifactId; this.version = version; @@ -109,13 +117,14 @@ public final class MavenArtifact implements Serializable { this.type = type; this.fileName = fileName; this.canonicalName = getSeed(type); + this.md5sum = md5sum; } /** * Convenience method to check if the given {@link Artifact} object contains * enough information suitable for recording, and if so, create {@link MavenArtifact}. */ - public static MavenArtifact create(Artifact a) { + public static MavenArtifact create(Artifact a) throws IOException { File file = a.getFile(); if(file==null) return null; // perhaps build failed and didn't leave an artifact @@ -136,7 +145,8 @@ public final class MavenArtifact implements Serializable { // in the repository during deployment. So simulate that behavior if that's necessary. final String canonicalExtension = canonicalName.substring(canonicalName.lastIndexOf('.')+1); ArtifactHandler ah = handlerManager.getArtifactHandler(type); - if(!ah.getExtension().equals(canonicalExtension)) { + // Fix for HUDSON-3814 - changed from comparing against canonical extension to canonicalName.endsWith. + if(!canonicalName.endsWith(ah.getExtension())) { handlerManager.addHandlers(Collections.singletonMap(type, new DefaultArtifactHandler(type) { public String getExtension() { @@ -179,10 +189,23 @@ public final class MavenArtifact implements Serializable { * Called from within Maven to archive an artifact in Hudson. */ public void archive(MavenBuildProxy build, File file, BuildListener listener) throws IOException, InterruptedException { - FilePath target = getArtifactArchivePath(build,groupId,artifactId,version); - listener.getLogger().println("[HUDSON] Archiving "+ file+" to "+target); - new FilePath(file).copyTo(target); - /* debug probe to investigate "missing artifact" problem typically seen like this: + if (build.isArchivingDisabled()) { + listener.getLogger().println("[HUDSON] Archiving disabled - not archiving " + file); + } + else { + FilePath target = getArtifactArchivePath(build,groupId,artifactId,version); + FilePath origin = new FilePath(file); + if (!target.exists()) { + listener.getLogger().println("[HUDSON] Archiving "+ file+" to "+target); + origin.copyTo(target); + } else if (!origin.digest().equals(target.digest())) { + listener.getLogger().println("[HUDSON] Re-archiving "+file); + origin.copyTo(target); + } else { + LOGGER.fine("Not actually archiving "+origin+" due to digest match"); + } + + /* debug probe to investigate "missing artifact" problem typically seen like this: ERROR: Asynchronous execution failure java.util.concurrent.ExecutionException: java.io.IOException: Archived artifact is missing: /files/hudson/server/jobs/glassfish-v3/modules/org.glassfish.build$maven-glassfish-extension/builds/2008-04-02_10-17-15/archive/org.glassfish.build/maven-glassfish-extension/1.0-SNAPSHOT/maven-glassfish-extension-1.0-SNAPSHOT.jar @@ -220,22 +243,20 @@ public final class MavenArtifact implements Serializable { at java.lang.Thread.run(Thread.java:619) */ - if(!target.exists()) - throw new AssertionError("Just copied "+file+" to "+target+" but now I can't find it"); + if(!target.exists()) + throw new AssertionError("Just copied "+file+" to "+target+" but now I can't find it"); + } } /** * Called from within the master to record fingerprint. */ public void recordFingerprint(MavenBuild build) throws IOException { - try { - FingerprintMap map = Hudson.getInstance().getFingerprintMap(); - map.getOrCreate(build,fileName,new FilePath(getFile(build)).digest()); - } catch (InterruptedException e) { - throw new AssertionError(); // this runs on the master, so this is impossible - } + FingerprintMap map = Hudson.getInstance().getFingerprintMap(); + map.getOrCreate(build,fileName,md5sum); } + private static final Logger LOGGER = Logger.getLogger(MavenArtifact.class.getName()); private static final long serialVersionUID = 1L; } diff --git a/maven-plugin/src/main/java/hudson/maven/reporters/MavenArtifactArchiver.java b/maven-plugin/src/main/java/hudson/maven/reporters/MavenArtifactArchiver.java index c0bbadcc5845c5a35c8ffc4f608d8b0254ff0d5e..7a98edd3a6ed30b3990c0e3b1128a10092851ba4 100644 --- a/maven-plugin/src/main/java/hudson/maven/reporters/MavenArtifactArchiver.java +++ b/maven-plugin/src/main/java/hudson/maven/reporters/MavenArtifactArchiver.java @@ -33,17 +33,17 @@ import hudson.model.BuildListener; import hudson.util.InvocationInterceptor; import hudson.FilePath; import hudson.Extension; +import hudson.Util; import org.apache.maven.artifact.Artifact; -import org.apache.maven.artifact.installer.ArtifactInstallationException; import org.apache.maven.project.MavenProject; import java.io.IOException; import java.io.File; +import java.io.FileInputStream; import java.util.ArrayList; import java.util.List; import java.util.Set; import java.util.HashSet; -import java.lang.reflect.Proxy; import java.lang.reflect.Method; import java.lang.reflect.InvocationHandler; @@ -102,7 +102,7 @@ public class MavenArtifactArchiver extends MavenReporter { if(pom.getFile()!=null) {// goals like 'clean' runs without loading POM, apparently. // record POM final MavenArtifact pomArtifact = new MavenArtifact( - pom.getGroupId(), pom.getArtifactId(), pom.getVersion(), null, "pom", pom.getFile().getName()); + pom.getGroupId(), pom.getArtifactId(), pom.getVersion(), null, "pom", pom.getFile().getName(), Util.getDigestOf(new FileInputStream(pom.getFile()))); mavenArtifacts.add(pom.getFile()); pomArtifact.archive(build,pom.getFile(),listener); @@ -128,6 +128,11 @@ public class MavenArtifactArchiver extends MavenReporter { // record the action build.executeAsync(new MavenBuildProxy.BuildCallable() { public Void call(MavenBuild build) throws IOException, InterruptedException { + // if a build forks lifecycles, this method can be called multiple times + List old = Util.filter(build.getActions(), MavenArtifactRecord.class); + if (!old.isEmpty()) + build.getActions().removeAll(old); + MavenArtifactRecord mar = new MavenArtifactRecord(build,pomArtifact,mainArtifact,attachedArtifacts); build.addAction(mar); @@ -144,10 +149,15 @@ public class MavenArtifactArchiver extends MavenReporter { for (File assembly : assemblies) { if(mavenArtifacts.contains(assembly)) continue; // looks like this is already archived - FilePath target = build.getArtifactsDir().child(assembly.getName()); - listener.getLogger().println("[HUDSON] Archiving "+ assembly+" to "+target); - new FilePath(assembly).copyTo(target); - // TODO: fingerprint + if (build.isArchivingDisabled()) { + listener.getLogger().println("[HUDSON] Archiving disabled - not archiving " + assembly); + } + else { + FilePath target = build.getArtifactsDir().child(assembly.getName()); + listener.getLogger().println("[HUDSON] Archiving "+ assembly+" to "+target); + new FilePath(assembly).copyTo(target); + // TODO: fingerprint + } } return true; diff --git a/maven-plugin/src/main/java/hudson/maven/reporters/MavenArtifactRecord.java b/maven-plugin/src/main/java/hudson/maven/reporters/MavenArtifactRecord.java index 6bf6ecc5a257f4a61d8db7963ff0779c0afe70ef..c6b5eec860e46498279e54fb919f89ee9f38ab56 100644 --- a/maven-plugin/src/main/java/hudson/maven/reporters/MavenArtifactRecord.java +++ b/maven-plugin/src/main/java/hudson/maven/reporters/MavenArtifactRecord.java @@ -119,8 +119,8 @@ public class MavenArtifactRecord extends MavenAbstractArtifactRecord deployer.deploy(main.getFile(),main,deploymentRepository,embedder.getLocalRepository()); for (MavenArtifact aa : attachedArtifacts) { - logger.println(Messages.MavenArtifact_DeployingAttachedArtifact(main.getFile().getName())); Artifact a = aa.toArtifact(handlerManager,factory, parent); + logger.println(Messages.MavenArtifact_DeployingAttachedArtifact(a.getFile().getName())); deployer.deploy(a.getFile(),a,deploymentRepository,embedder.getLocalRepository()); } } diff --git a/maven-plugin/src/main/java/hudson/maven/reporters/MavenFingerprinter.java b/maven-plugin/src/main/java/hudson/maven/reporters/MavenFingerprinter.java index 6f5d8999b511992c5ab69ce4e959ee81bed60917..832a338f30cee60feab84bf5d1558d1ec136129d 100644 --- a/maven-plugin/src/main/java/hudson/maven/reporters/MavenFingerprinter.java +++ b/maven-plugin/src/main/java/hudson/maven/reporters/MavenFingerprinter.java @@ -110,7 +110,9 @@ public class MavenFingerprinter extends MavenReporter { all.putAll(p); // add action - build.getActions().add(new FingerprintAction(build,all)); + FingerprintAction fa = build.getAction(FingerprintAction.class); + if (fa!=null) fa.add(all); + else build.getActions().add(new FingerprintAction(build,all)); return null; } }); diff --git a/maven-plugin/src/main/java/hudson/maven/reporters/MavenJavadocArchiver.java b/maven-plugin/src/main/java/hudson/maven/reporters/MavenJavadocArchiver.java index a14c0244837d7bc84f2bd0c7324353d1fa420e5f..fb86ad736796a4e1ef85a1119637e038abd15236 100644 --- a/maven-plugin/src/main/java/hudson/maven/reporters/MavenJavadocArchiver.java +++ b/maven-plugin/src/main/java/hudson/maven/reporters/MavenJavadocArchiver.java @@ -42,6 +42,8 @@ import org.codehaus.plexus.component.configurator.ComponentConfigurationExceptio import java.io.File; import java.io.IOException; +import java.util.Collection; +import java.util.Collections; /** * Records the javadoc and archives it. @@ -107,8 +109,8 @@ public class MavenJavadocArchiver extends MavenReporter { return postExecute(build,pom,report,listener,null); } - public Action getProjectAction(MavenModule project) { - return new JavadocAction(project); + public Collection getProjectActions(MavenModule project) { + return Collections.singleton(new JavadocAction(project)); } public Action getAggregatedProjectAction(MavenModuleSet project) { diff --git a/maven-plugin/src/main/java/hudson/maven/reporters/MavenMailer.java b/maven-plugin/src/main/java/hudson/maven/reporters/MavenMailer.java index e6e42285474936ea77d63d3aed83635e383bdeb8..aef15baf65c6ee13763f4f497b678c6a2f05c725 100644 --- a/maven-plugin/src/main/java/hudson/maven/reporters/MavenMailer.java +++ b/maven-plugin/src/main/java/hudson/maven/reporters/MavenMailer.java @@ -28,7 +28,6 @@ import hudson.Extension; import hudson.maven.MavenBuild; import hudson.maven.MavenReporter; import hudson.maven.MavenReporterDescriptor; -import hudson.maven.MavenModule; import hudson.model.BuildListener; import hudson.tasks.MailSender; import hudson.tasks.Mailer; diff --git a/maven-plugin/src/main/java/hudson/maven/reporters/MavenSiteArchiver.java b/maven-plugin/src/main/java/hudson/maven/reporters/MavenSiteArchiver.java index 3342369fa1427375d7089df21e11f4fad9c9e98e..bff2f48dbe91b0e2c8e9074bb576c57a42593669 100644 --- a/maven-plugin/src/main/java/hudson/maven/reporters/MavenSiteArchiver.java +++ b/maven-plugin/src/main/java/hudson/maven/reporters/MavenSiteArchiver.java @@ -1,18 +1,18 @@ /* * The MIT License - * + * * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe - * + * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: - * + * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. - * + * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -26,12 +26,14 @@ package hudson.maven.reporters; import hudson.FilePath; import hudson.Util; import hudson.Extension; +import hudson.maven.MavenBuild; import hudson.maven.MavenBuildProxy; import hudson.maven.MavenModule; import hudson.maven.MavenModuleSet; import hudson.maven.MavenReporter; import hudson.maven.MavenReporterDescriptor; import hudson.maven.MojoInfo; +import hudson.maven.MavenBuildProxy.BuildCallable; import hudson.model.AbstractItem; import hudson.model.Action; import hudson.model.BuildListener; @@ -43,12 +45,19 @@ import org.codehaus.plexus.component.configurator.ComponentConfigurationExceptio import java.io.File; import java.io.IOException; +import java.util.Collection; +import java.util.Collections; /** * Watches out for the execution of maven-site-plugin and records its output. + * Simple projects with one POM will find the site directly beneath {@code site}. + * For multi module projects the project whose pom is referenced in the configuration (i.e. the {@link MavenBuild#getParentBuild()} will be recorded to + * the {@code site}, module projects' sites will be stored beneath {@code site/${moduleProject.artifactId}}. + * * @author Kohsuke Kawaguchi */ public class MavenSiteArchiver extends MavenReporter { + public boolean postExecute(MavenBuildProxy build, MavenProject pom, MojoInfo mojo, BuildListener listener, Throwable error) throws InterruptedException, IOException { if(!mojo.is("org.apache.maven.plugins","maven-site-plugin","site")) return true; @@ -63,13 +72,12 @@ public class MavenSiteArchiver extends MavenReporter { } if(destDir.exists()) { - // be defensive. I suspect there's some interaction with this and multi-module builds - FilePath target; - // store at MavenModuleSet level. - target = build.getModuleSetRootDir().child("site"); - + // try to get the storage location if this is a multi-module project. + final String moduleName = getModuleName(build, pom); + // store at MavenModuleSet level and moduleName + final FilePath target = build.getModuleSetRootDir().child("site").child(moduleName); try { - listener.getLogger().println("[HUDSON] Archiving site"); + listener.getLogger().printf("[HUDSON] Archiving site from %s to %s\n", destDir, target); new FilePath(destDir).copyRecursiveTo("**/*",target); } catch (IOException e) { Util.displayIOException(e,listener); @@ -83,9 +91,39 @@ public class MavenSiteArchiver extends MavenReporter { return true; } + /** + * In multi module builds pomBaseDir of the parent project is the same as parent build module root. + * + * @param build + * @param pom + * + * @return the relative path component to copy sites of multi module builds. + * @throws IOException + */ + private String getModuleName(MavenBuildProxy build, MavenProject pom) throws IOException { + final String moduleRoot; + try { + moduleRoot = build.execute(new BuildCallable() { + //@Override + public String call(MavenBuild mavenBuild) throws IOException, InterruptedException { + return mavenBuild.getParentBuild().getModuleRoot().getRemote(); + } + }); + } catch (InterruptedException e) { + throw new RuntimeException(e); + } + final File pomBaseDir = pom.getBasedir(); + final File remoteWorkspaceDir = new File(moduleRoot); + if (pomBaseDir.equals(remoteWorkspaceDir)) { + return ""; + } else { + return pom.getArtifactId(); + } + } + - public Action getProjectAction(MavenModule project) { - return new SiteAction(project); + public Collection getProjectActions(MavenModule project) { + return Collections.singleton(new SiteAction(project)); } public Action getAggregatedProjectAction(MavenModuleSet project) { diff --git a/maven-plugin/src/main/java/hudson/maven/reporters/SurefireAggregatedReport.java b/maven-plugin/src/main/java/hudson/maven/reporters/SurefireAggregatedReport.java index 251ab948e67208db8034999e17d00e190da733b5..678ec30f3da4aae9b22fd0e9cb12a99efb53e671 100644 --- a/maven-plugin/src/main/java/hudson/maven/reporters/SurefireAggregatedReport.java +++ b/maven-plugin/src/main/java/hudson/maven/reporters/SurefireAggregatedReport.java @@ -1,7 +1,7 @@ /* * The MIT License * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:cactusman + * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:cactusman, Yahoo!, Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -82,7 +82,6 @@ public class SurefireAggregatedReport extends AggregatedTestResultAction impleme /** * */ - @Override public String getTestResultPath(CaseResult it) { StringBuilder path = new StringBuilder("../"); path.append(it.getOwner().getProject().getShortUrl()); diff --git a/maven-plugin/src/main/java/hudson/maven/reporters/SurefireArchiver.java b/maven-plugin/src/main/java/hudson/maven/reporters/SurefireArchiver.java index 79858ba4319ff4031258c159b1f78e2314d6477f..dc1aaa7bdbd80dffaadfd060072690bc2bddca22 100644 --- a/maven-plugin/src/main/java/hudson/maven/reporters/SurefireArchiver.java +++ b/maven-plugin/src/main/java/hudson/maven/reporters/SurefireArchiver.java @@ -30,6 +30,7 @@ import hudson.maven.MavenBuildProxy; import hudson.maven.MavenBuildProxy.BuildCallable; import hudson.maven.MavenBuilder; import hudson.maven.MavenModule; +import hudson.maven.MavenProjectActionBuilder; import hudson.maven.MavenReporter; import hudson.maven.MavenReporterDescriptor; import hudson.maven.MojoInfo; @@ -47,6 +48,10 @@ import org.codehaus.plexus.configuration.xml.XmlPlexusConfiguration; import java.io.File; import java.io.IOException; +import java.util.Collection; +import java.util.Collections; +import java.util.List; +import java.util.ListIterator; /** * Records the surefire test result. @@ -57,12 +62,14 @@ public class SurefireArchiver extends MavenReporter { public boolean preExecute(MavenBuildProxy build, MavenProject pom, MojoInfo mojo, BuildListener listener) throws InterruptedException, IOException { if (isSurefireTest(mojo)) { - // tell surefire:test to keep going even if there was a failure, - // so that we can record this as yellow. - // note that because of the way Maven works, just updating system property at this point is too late - XmlPlexusConfiguration c = (XmlPlexusConfiguration) mojo.configuration.getChild("testFailureIgnore"); - if(c!=null && c.getValue().equals("${maven.test.failure.ignore}") && System.getProperty("maven.test.failure.ignore")==null) - c.setValue("true"); + if (!mojo.is("org.apache.maven.plugins", "maven-failsafe-plugin", "integration-test")) { + // tell surefire:test to keep going even if there was a failure, + // so that we can record this as yellow. + // note that because of the way Maven works, just updating system property at this point is too late + XmlPlexusConfiguration c = (XmlPlexusConfiguration) mojo.configuration.getChild("testFailureIgnore"); + if(c!=null && c.getValue().equals("${maven.test.failure.ignore}") && System.getProperty("maven.test.failure.ignore")==null) + c.setValue("true"); + } } return true; } @@ -73,12 +80,18 @@ public class SurefireArchiver extends MavenReporter { listener.getLogger().println(Messages.SurefireArchiver_Recording()); File reportsDir; - try { - reportsDir = mojo.getConfigurationValue("reportsDirectory", File.class); - } catch (ComponentConfigurationException e) { - e.printStackTrace(listener.fatalError(Messages.SurefireArchiver_NoReportsDir())); - build.setResult(Result.FAILURE); - return true; + if (mojo.is("org.apache.maven.plugins", "maven-surefire-plugin", "test") || + mojo.is("org.apache.maven.plugins", "maven-failsafe-plugin", "integration-test")) { + try { + reportsDir = mojo.getConfigurationValue("reportsDirectory", File.class); + } catch (ComponentConfigurationException e) { + e.printStackTrace(listener.fatalError(Messages.SurefireArchiver_NoReportsDir())); + build.setResult(Result.FAILURE); + return true; + } + } + else { + reportsDir = new File(pom.getBasedir(), "target/surefire-reports"); } if(reportsDir.exists()) { @@ -91,11 +104,8 @@ public class SurefireArchiver extends MavenReporter { // no test in this module return true; - if(result==null) { - long t = System.currentTimeMillis() - build.getMilliSecsSinceBuildStart(); - result = new TestResult(t - 1000/*error margin*/, ds); - } else - result.parse(build.getTimestamp().getTimeInMillis() - 1000/*error margin*/, ds); + if(result==null) result = new TestResult(); + result.parse(System.currentTimeMillis() - build.getMilliSecsSinceBuildStart(), ds); int failCount = build.execute(new BuildCallable() { public Integer call(MavenBuild build) throws IOException, InterruptedException { @@ -106,7 +116,7 @@ public class SurefireArchiver extends MavenReporter { sr.setResult(result,listener); if(result.getFailCount()>0) build.setResult(Result.UNSTABLE); - build.registerAsProjectAction(SurefireArchiver.this); + build.registerAsProjectAction(new FactoryImpl()); return result.getFailCount(); } }); @@ -121,36 +131,75 @@ public class SurefireArchiver extends MavenReporter { return true; } + /** + * Up to 1.372, there was a bug that causes Hudson to persist {@link SurefireArchiver} with the entire test result + * in it. If we are loading those, fix it up in memory to reduce the memory footprint. + * + * It'd be nice we can save the record to remove problematic portion, but that might have + * additional side effect. + */ + public static void fixUp(List builders) { + if (builders==null) return; + for (ListIterator itr = builders.listIterator(); itr.hasNext();) { + MavenProjectActionBuilder b = itr.next(); + if (b instanceof SurefireArchiver) + itr.set(new FactoryImpl()); + } + } - public Action getProjectAction(MavenModule module) { - return new TestResultProjectAction(module); + /** + * Part of the serialization data attached to {@link MavenBuild}. + */ + static final class FactoryImpl implements MavenProjectActionBuilder { + public Collection getProjectActions(MavenModule module) { + return Collections.singleton(new TestResultProjectAction(module)); + } } private boolean isSurefireTest(MojoInfo mojo) { - if (!mojo.is("org.apache.maven.plugins", "maven-surefire-plugin", "test")) + if ((!mojo.is("com.sun.maven", "maven-junit-plugin", "test")) + && (!mojo.is("org.sonatype.flexmojos", "flexmojos-maven-plugin", "test-run")) + && (!mojo.is("org.apache.maven.plugins", "maven-surefire-plugin", "test")) + && (!mojo.is("org.apache.maven.plugins", "maven-failsafe-plugin", "integration-test"))) return false; try { - Boolean skip = mojo.getConfigurationValue("skip", Boolean.class); - if (((skip != null) && (skip))) { - return false; - } - - if (mojo.pluginName.version.compareTo("2.3") >= 0) { - Boolean skipExec = mojo.getConfigurationValue("skipExec", Boolean.class); - - if (((skipExec != null) && (skipExec))) { + if (mojo.is("org.apache.maven.plugins", "maven-surefire-plugin", "test")) { + Boolean skip = mojo.getConfigurationValue("skip", Boolean.class); + if (((skip != null) && (skip))) { return false; } + + if (mojo.pluginName.version.compareTo("2.3") >= 0) { + Boolean skipExec = mojo.getConfigurationValue("skipExec", Boolean.class); + + if (((skipExec != null) && (skipExec))) { + return false; + } + } + + if (mojo.pluginName.version.compareTo("2.4") >= 0) { + Boolean skipTests = mojo.getConfigurationValue("skipTests", Boolean.class); + + if (((skipTests != null) && (skipTests))) { + return false; + } + } } - - if (mojo.pluginName.version.compareTo("2.4") >= 0) { + else if (mojo.is("com.sun.maven", "maven-junit-plugin", "test")) { Boolean skipTests = mojo.getConfigurationValue("skipTests", Boolean.class); - + if (((skipTests != null) && (skipTests))) { return false; } } + else if (mojo.is("org.sonatype.flexmojos", "flexmojos-maven-plugin", "test-run")) { + Boolean skipTests = mojo.getConfigurationValue("skipTest", Boolean.class); + + if (((skipTests != null) && (skipTests))) { + return false; + } + } } catch (ComponentConfigurationException e) { return false; diff --git a/maven-plugin/src/main/resources/hudson/maven/MavenBuild/actions_da.properties b/maven-plugin/src/main/resources/hudson/maven/MavenBuild/actions_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..907f59b4e390a220f2a30c72f6fea94aa430fe8b --- /dev/null +++ b/maven-plugin/src/main/resources/hudson/maven/MavenBuild/actions_da.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Executed\ Mojos=Afviklede Mojos diff --git a/maven-plugin/src/main/resources/hudson/maven/MavenBuild/actions_es.properties b/maven-plugin/src/main/resources/hudson/maven/MavenBuild/actions_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..6aff7498057f0aace0fedf41228087593a1753c2 --- /dev/null +++ b/maven-plugin/src/main/resources/hudson/maven/MavenBuild/actions_es.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Executed\ Mojos=''Mojos'' ejecutados diff --git a/maven-plugin/src/main/resources/hudson/maven/MavenBuild/actions_it.properties b/maven-plugin/src/main/resources/hudson/maven/MavenBuild/actions_it.properties new file mode 100644 index 0000000000000000000000000000000000000000..87b1723bdbd1da356c756d60e655490812f962b7 --- /dev/null +++ b/maven-plugin/src/main/resources/hudson/maven/MavenBuild/actions_it.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Executed\ Mojos=Mojo eseguiti diff --git a/maven-plugin/src/main/resources/hudson/maven/MavenBuild/actions_sv_SE.properties b/maven-plugin/src/main/resources/hudson/maven/MavenBuild/actions_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..b39007da7d6dc5ccf0158f11ad6cbd546f90b9db --- /dev/null +++ b/maven-plugin/src/main/resources/hudson/maven/MavenBuild/actions_sv_SE.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Executed\ Mojos=K\u00F6rda Mojos diff --git a/maven-plugin/src/main/resources/hudson/maven/MavenBuild/executedMojos_da.properties b/maven-plugin/src/main/resources/hudson/maven/MavenBuild/executedMojos_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..8f87b71903931b191b73ca7ccc2f9864e2ee5095 --- /dev/null +++ b/maven-plugin/src/main/resources/hudson/maven/MavenBuild/executedMojos_da.properties @@ -0,0 +1,32 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Version=Version +Duration=Varighed +Execution=Eksekvering +Build\ in\ progress.=Byg i fremskridt. +Plugin=Plugin +fingerprint=filfingeraftryk +Fingerprint=Filfingeraftryk +Executed\ Mojos=Afviklede Mojos +Goal=M\u00e5l +No\ mojos\ executed.=Ingen mojos afviklet. diff --git a/maven-plugin/src/main/resources/hudson/maven/MavenBuild/executedMojos_es.properties b/maven-plugin/src/main/resources/hudson/maven/MavenBuild/executedMojos_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..4b0b1e4d04e9d239a4a62c04b8adc1bb8db32453 --- /dev/null +++ b/maven-plugin/src/main/resources/hudson/maven/MavenBuild/executedMojos_es.properties @@ -0,0 +1,33 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Build\ in\ progress.=Ejecución en proceso +Executed\ Mojos=Plugins de maven (Mojos) ejecutados +fingerprint=firma +Execution=Ejecución +Plugin=Plugin +Version=Versión +Fingerprint=Firma +Goal=Gol +No\ mojos\ executed.=No se ejecutó ningún plugin maven (mojo) +Duration=Duración + diff --git a/maven-plugin/src/main/resources/hudson/maven/MavenModule/configure-entries.jelly b/maven-plugin/src/main/resources/hudson/maven/MavenModule/configure-entries.jelly index ace30245d6f0a79ae58e94120fb235426828df52..75f8a503b3f883cf910d247f1ccf4ab555e9202c 100644 --- a/maven-plugin/src/main/resources/hudson/maven/MavenModule/configure-entries.jelly +++ b/maven-plugin/src/main/resources/hudson/maven/MavenModule/configure-entries.jelly @@ -29,7 +29,7 @@ THE SOFTWARE. - + diff --git a/maven-plugin/src/main/resources/hudson/maven/MavenModule/configure-entries_da.properties b/maven-plugin/src/main/resources/hudson/maven/MavenModule/configure-entries_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..121bbd1e9f860ae47103716b06b902f73c98070e --- /dev/null +++ b/maven-plugin/src/main/resources/hudson/maven/MavenModule/configure-entries_da.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Goals=M\u00e5l +Build=Byg +Build\ Settings=Byggeindstillinger diff --git a/maven-plugin/src/main/resources/hudson/maven/MavenModule/configure-entries_es.properties b/maven-plugin/src/main/resources/hudson/maven/MavenModule/configure-entries_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..995f3ebf9a7071cc7fe50e27ae383beb4f7ec90a --- /dev/null +++ b/maven-plugin/src/main/resources/hudson/maven/MavenModule/configure-entries_es.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Build=Ejecución +Build\ Settings=Propiedades de la ejecución +Goals=Goles diff --git a/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/actions_da.properties b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/actions_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..f9bec652bac59152a3042b88720c6442e60fe08c --- /dev/null +++ b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/actions_da.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Modules=Moduler +Delete\ All\ Disabled\ Modules=Slet Alle Moduler Der Er Sl\u00e5et Fra diff --git a/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/actions_es.properties b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/actions_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..a131dad200cc032c155107ed5616f4453136df0a --- /dev/null +++ b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/actions_es.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Delete\ All\ Disabled\ Modules=Borrar todos los módulos desactivados +Modules=Módulos diff --git a/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/actions_fr.properties b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/actions_fr.properties index 7b8b66e3cd151fdf459b3b8b595df9f51c6aa0b9..c559322449add003ac9ba4797da2610aaf12cae0 100644 --- a/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/actions_fr.properties +++ b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/actions_fr.properties @@ -21,4 +21,4 @@ # THE SOFTWARE. Delete\ All\ Disabled\ Modules=Supprimer tous les modules désactivés -Modules= +Modules=Modules diff --git a/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/actions_hu.properties b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/actions_hu.properties new file mode 100644 index 0000000000000000000000000000000000000000..7c6eb0383dc14c922d0f34cb68cd9dbaf519e572 --- /dev/null +++ b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/actions_hu.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Modules=B\u0151v\u00EDtm\u00E9nyek diff --git a/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/actions_it.properties b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/actions_it.properties new file mode 100644 index 0000000000000000000000000000000000000000..15784c40a98f247fa449ecfaf74f27c02eb79f32 --- /dev/null +++ b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/actions_it.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Modules=Moduli diff --git a/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/actions_nb_NO.properties b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/actions_nb_NO.properties new file mode 100644 index 0000000000000000000000000000000000000000..6c4aa81d8fcc219808dbd5c1c3a6ede660058dd1 --- /dev/null +++ b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/actions_nb_NO.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Modules=Moduler diff --git a/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/actions_nl.properties b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/actions_nl.properties index 09a4af334875c31673ed76ab7638e4146613e7ac..06e0de859cf629b48c6532a2384a0055504620bd 100644 --- a/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/actions_nl.properties +++ b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/actions_nl.properties @@ -21,3 +21,4 @@ # THE SOFTWARE. Delete\ All\ Disabled\ Modules=Verwijder alle gedesactiveerde modules +Modules=Modules diff --git a/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/actions_pt_BR.properties b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/actions_pt_BR.properties index 7ec708a885e6a1f4aa7e69a8f8cce4ec596c8a19..2cdcf7d28ecda1bd2d152a7d2cadb97ee4ff482d 100644 --- a/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/actions_pt_BR.properties +++ b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/actions_pt_BR.properties @@ -21,3 +21,4 @@ # THE SOFTWARE. Delete\ All\ Disabled\ Modules=Excluir Todo os M\u00F3dulos Desabilitados +Modules=M\u00F3dulos diff --git a/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/actions_sv_SE.properties b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/actions_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..b2f6f1885ab93ee64763dfce1042eb5010a13f09 --- /dev/null +++ b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/actions_sv_SE.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Delete\ All\ Disabled\ Modules=Ta bort alla inaktiverade moduler +Modules=Moduler diff --git a/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/configure-entries.jelly b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/configure-entries.jelly index be32e6e21ccb42a16d982011822c4d4456c0c687..28d35606fc2142faf2abec0d4c68f98ee07a73cf 100644 --- a/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/configure-entries.jelly +++ b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/configure-entries.jelly @@ -31,7 +31,7 @@ THE SOFTWARE. @@ -58,20 +58,35 @@ THE SOFTWARE. - + + checkUrl="'checkFileInWorkspace?value='+escape(this.value)" /> - + - + - + + + + + - diff --git a/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/configure-entries_da.properties b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/configure-entries_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..4542886e3e0bb38f5efa0d7015c043676f484fb3 --- /dev/null +++ b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/configure-entries_da.properties @@ -0,0 +1,35 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Disable\ automatic\ artifact\ archiving=Sl\u00e5 automatisk artifaktarkivering fra +Maven\ Version.error.2=Dette g\u00f8res fra system konfigurationen. +Build=Byg +Maven\ Version=Maven version +Use\ private\ Maven\ repository=Benyt et privat Mavenarkiv +Incremental\ build\ -\ only\ build\ changed\ modules=Inkrementel byg - byg kun moduler med \u00e6ndringer +Maven\ Version.error.1=Hudson har brug for at vide hvor din Maven2 er installeret. +Goals\ and\ options=M\u00e5l og tilvalg +Build\ modules\ in\ parallel=Byg moduler i parallel +Build\ Settings=Byggeindstillinger +Build\ whenever\ a\ SNAPSHOT\ dependency\ is\ built=Byg hver gang en \u00f8jebliksbilledeafh\u00e6ngihed bliver bygget +Root\ POM=Rod POM +Alternate\ settings\ file=Fil med alternative indstillinger diff --git a/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/configure-entries_de.properties b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/configure-entries_de.properties index 9e2fbb1391c2e9a52b5b9427e213769cde50c6ef..f0173b4751e82573b1bf6f5e09940e9afb72ac67 100644 --- a/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/configure-entries_de.properties +++ b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/configure-entries_de.properties @@ -24,6 +24,12 @@ Build=Build Maven\ Version=Maven-Version Root\ POM=Stamm-POM Build\ modules\ in\ parallel=Baue Module parallel +Disable\ automatic\ artifact\ archiving=Deaktiviere automatische Archivierung von Artefakten Build\ Settings=Build-Einstellungen Goals\ and\ options=Goals und Optionen -Use\ private\ maven\ repository=Verwende privates Maven-Repository +Use\ private\ Maven\ repository=Verwende privates Maven-Repository +Alternate\ settings\ file=Alternative Settings-Datei +Build\ whenever\ a\ SNAPSHOT\ dependency\ is\ built=Baue dieses Projekt, wenn eine SNAPSHOT-Abhängigkeit gebaut wurde +Incremental\ build\ -\ only\ build\ changed\ modules=Inkrementelles Bauen - baut nur geänderte Module +Maven\ Version.error.1=Hudson muss Ihr Maven2-Installationsverzeichnis kennen. +Maven\ Version.error.2=Bitte geben Sie dieses in der Systemkonfiguration an. \ No newline at end of file diff --git a/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/configure-entries_es.properties b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/configure-entries_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..05536dc3f95a746abcaa2bac1fe4c1bb333fc180 --- /dev/null +++ b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/configure-entries_es.properties @@ -0,0 +1,35 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Maven\ Version.error.1=Hudson necesita saber donde está instalado Maven2. +Maven\ Version.error.2=Configuraló en la pantalla de configuración del sistema. +Root\ POM=Fichero POM raíz +Build=Proyecto +Goals\ and\ options=Goles y opciones +Use\ private\ Maven\ repository=Utilizar un repositorio maven privado +Build\ Settings=Propiedades del proyecto +Build\ whenever\ a\ SNAPSHOT\ dependency\ is\ built=Ejecutar siempre que cualquier ''SNAPSHOT'' de los que dependa sea creado +Maven\ Version=Versión de maven +Disable\ automatic\ artifact\ archiving=Desactivar automáticamente el archivado de artefactos +Alternate\ settings\ file=Fichero alternativo de configuración +Incremental\ build\ -\ only\ build\ changed\ modules=Ejecución incremental (Sólo ejecutar los módulos que tengan cambios) +Build\ modules\ in\ parallel=Ejecutar módulos en paralelo diff --git a/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/configure-entries_fr.properties b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/configure-entries_fr.properties index 1e586d7b82c0e702453b7661721dfb7f37dbffcf..7477dc8bb9169a44b4d95dcc9ea52af71c6b2ccf 100644 --- a/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/configure-entries_fr.properties +++ b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/configure-entries_fr.properties @@ -20,11 +20,15 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Build= +Alternate\ settings\ file=Fichier settings alternatif +Block\ build\ when\ dependency\ building=Bloquer le build pendant la construction des d\u00E9pendances +Build=Build +Incremental\ build\ -\ only\ build\ changed\ modules=Construction incr\u00E9mentale - ne faire la construction (build) que pour les modules chang\u00E9s Maven\ Version=Version de Maven Root\ POM=POM Racine Build\ modules\ in\ parallel=Construire les modules en parallèle Build\ Settings=Configuration du build +Use\ private\ Maven\ repository=Utilise un repository Maven priv\u00E9 Use\ private\ maven\ repository=Utiliser un repository Maven privé Goals\ and\ options=Goals et options Maven\ Version.error.1=Hudson a besoin de savoir où Maven2 est installé. diff --git a/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/configure-entries_ja.properties b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/configure-entries_ja.properties index 643cf476021668876325d589ea59beaed54f39e2..a3fe1226c242aff0cdaeac08b281a9c48c6d49e8 100644 --- a/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/configure-entries_ja.properties +++ b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/configure-entries_ja.properties @@ -26,7 +26,11 @@ Maven\ Version.error.1=Maven2\u306E\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u5148\u3 Maven\ Version.error.2=\u30B7\u30B9\u30C6\u30E0\u306E\u8A2D\u5B9A\u3067\u8A2D\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002 Root\ POM=\u30EB\u30FC\u30C8POM Goals\ and\ options=\u30B4\u30FC\u30EB\u3068\u30AA\u30D7\u30B7\u30E7\u30F3 +Alternate\ settings\ file=settings.xml +Incremental\ build\ -\ only\ build\ changed\ modules=\u30A4\u30F3\u30AF\u30EA\u30E1\u30F3\u30BF\u30EB\u30D3\u30EB\u30C9 - \u5909\u66F4\u3055\u308C\u305F\u30E2\u30B8\u30E5\u30FC\u30EB\u306E\u307F\u30D3\u30EB\u30C9 Build\ modules\ in\ parallel=\u30E2\u30B8\u30E5\u30FC\u30EB\u3092\u500B\u5225\u306B\u4E26\u5217\u30D3\u30EB\u30C9 -Use\ private\ maven\ repository=\u5C02\u7528\u306EMaven\u30EA\u30DD\u30B8\u30C8\u30EA\u3092\u4F7F\u7528 +Use\ private\ Maven\ repository=\u5C02\u7528\u306EMaven\u30EA\u30DD\u30B8\u30C8\u30EA\u3092\u4F7F\u7528 Build\ Settings=\u30D3\u30EB\u30C9\u8A2D\u5B9A -Build\ whenever\ a\ SNAPSHOT\ dependency\ is\ built=\u4F9D\u5B58\u3059\u308B\u30B9\u30CA\u30C3\u30D7\u30B7\u30E7\u30C3\u30C8\u304C\u30D3\u30EB\u30C9\u3055\u308C\u305F\u3068\u304D\u306B\u30D3\u30EB\u30C9 \ No newline at end of file +Build\ whenever\ a\ SNAPSHOT\ dependency\ is\ built=\u4F9D\u5B58\u3059\u308B\u30B9\u30CA\u30C3\u30D7\u30B7\u30E7\u30C3\u30C8\u304C\u30D3\u30EB\u30C9\u3055\u308C\u305F\u3068\u304D\u306B\u30D3\u30EB\u30C9 +Disable\ automatic\ artifact\ archiving=\u6210\u679C\u7269\u3092\u81EA\u52D5\u4FDD\u5B58\u3057\u306A\u3044 + diff --git a/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/configure-entries_pt_BR.properties b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/configure-entries_pt_BR.properties index 55560f035bff7312927244536bd1f3029262eef4..b5fb6dacaac2bf5d5544b688d62d1f7bd1e58298 100644 --- a/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/configure-entries_pt_BR.properties +++ b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/configure-entries_pt_BR.properties @@ -23,6 +23,15 @@ Build=Construir Maven\ Version=Vers\u00E3o do Maven Root\ POM=POM Ra\u00EDz -Goals=Objetivos Build\ modules\ in\ parallel=Construir m\u00F3dulos em paralelo Build\ Settings=Configura\u00E7\u00F5es de Constru\u00E7\u00E3o +Disable\ automatic\ artifact\ archiving= +# Please do so from the system configuration. +Maven\ Version.error.2= +Use\ private\ Maven\ repository= +Incremental\ build\ -\ only\ build\ changed\ modules= +# Hudson needs to know where your Maven2 is installed. +Maven\ Version.error.1= +Goals\ and\ options= +Build\ whenever\ a\ SNAPSHOT\ dependency\ is\ built= +Alternate\ settings\ file= diff --git a/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/deleteAllDisabledModules_da.properties b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/deleteAllDisabledModules_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..33d96c2b7cbeed062b172bfb729fd1404af99e1f --- /dev/null +++ b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/deleteAllDisabledModules_da.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Yes=Ja +Are\ you\ sure\ about\ deleting\ all\ the\ disabled\ modules?=Er du sikker p\u00e5 at du vil slette alle moduler der er sl\u00e5et fra? diff --git a/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/deleteAllDisabledModules_es.properties b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/deleteAllDisabledModules_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..943f5a66a08da1ae2ed72e0adddd158c07414d67 --- /dev/null +++ b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/deleteAllDisabledModules_es.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Are\ you\ sure\ about\ deleting\ all\ the\ disabled\ modules?=¿Estás seguro de querer borrar todos los módulos que fueron desactivados? +Yes=Sí + diff --git a/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/deleteAllDisabledModules_fr.properties b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/deleteAllDisabledModules_fr.properties index 90b38438818e86e5d831508bbbab07d6eee5d02b..47ab0c5fddc4e01da00c16ca490e0b9bd2014e77 100644 --- a/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/deleteAllDisabledModules_fr.properties +++ b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/deleteAllDisabledModules_fr.properties @@ -20,5 +20,5 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Are\ you\ sure\ about\ deleting\ all\ the\ disabled\ modules?=Etes-vous sûr de vouloir supprimer tous les modules désactivés? +Are\ you\ sure\ about\ deleting\ all\ the\ disabled\ modules?=\u00CAtes-vous s\u00FBr(e) de vouloir supprimer tous les modules d\u00E9sactiv\u00E9s ? Yes=Oui diff --git a/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/deleteAllDisabledModules_sv_SE.properties b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/deleteAllDisabledModules_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..08d82c2a56e73f7abe9d098138e90fdf69889f9f --- /dev/null +++ b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/deleteAllDisabledModules_sv_SE.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Are\ you\ sure\ about\ deleting\ all\ the\ disabled\ modules?=\u00C4r du s\u00E4ker p\u00E5 att ta bort alla inaktiverade moduler? +Yes=Ja diff --git a/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/disabled_da.properties b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/disabled_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..fe11571fa898cf42d89b02e7ebcf0a911f441cb7 --- /dev/null +++ b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/disabled_da.properties @@ -0,0 +1,27 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +title=Projekt {0} +Disabled=Sl\u00e5et Fra +Modules=Moduler +description=Disse moduler er ikke l\u00e6ngere en del af projektet, men er bibeholdt for at arkivere dem. \ +Hvis du gerne vil have dem slettet permanent, v\u00e6lg da "Slet alle moduler der er sl\u00e5et fra" fra menuen til venstre. diff --git a/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/disabled_es.properties b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/disabled_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..90d7de2ce595b2b6ea72077f656cd6e21310435f --- /dev/null +++ b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/disabled_es.properties @@ -0,0 +1,30 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +title=Proyecto {0} +description=\ + Estos módulos no forman parte del proyecto, pero se utilizan para poder ser archivardos. \ + Si prefieres que se borren permanentemente, elije "borrar todos los módulos inactivos" del panel izquierdo. + +Disabled=Desactivado +Modules=Módulos + diff --git a/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/global.jelly b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/global.jelly new file mode 100644 index 0000000000000000000000000000000000000000..445038daf7a907ae742e9ce9569a80f54bee3681 --- /dev/null +++ b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/global.jelly @@ -0,0 +1,34 @@ + + + + + + + + + + \ No newline at end of file diff --git a/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/global_da.properties b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/global_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..9b12b90a21070a9a1d7f1e6807cc50110216c93d --- /dev/null +++ b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/global_da.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Global\ MAVEN_OPTS=Globale MAVEN_OPTS +Maven\ Project\ Configuration=Maven Projekt Konfiguration diff --git a/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/global_de.properties b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/global_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..e2947cb6aacb29ca5ea79a40b460880bbf2b471e --- /dev/null +++ b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/global_de.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2009 , Sun Microsystems, Inc., Seiji Scribe, Simon Wiest +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Maven\ Project\ Configuration=Maven Projekt-Konfiguration +Global\ MAVEN_OPTS=Globale MAVEN_OPTS diff --git a/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/global_es.properties b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/global_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..c3f7c80a1e6caad64d7e75bb6fa05a92d1f98f86 --- /dev/null +++ b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/global_es.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Maven\ Project\ Configuration=Configuración de un proyecto maven +Global\ MAVEN_OPTS=Valor para la variable global MAVEN_OPTS diff --git a/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/global_fr.properties b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/global_fr.properties new file mode 100644 index 0000000000000000000000000000000000000000..6d9f98484857c79891f09f409bad35a7c90c8542 --- /dev/null +++ b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/global_fr.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Global\ MAVEN_OPTS=MAVEN_OPTS global +Maven\ Project\ Configuration=Configuration des projets Maven diff --git a/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/global_ja.properties b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/global_ja.properties new file mode 100644 index 0000000000000000000000000000000000000000..55778c9ba296d99efd6d5d69b11b4e99e5602da8 --- /dev/null +++ b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/global_ja.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2009 , Sun Microsystems, Inc., Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Maven\ Project\ Configuration=Maven\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8 +Global\ MAVEN_OPTS=Global MAVEN_OPTS diff --git a/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/global_nl.properties b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/global_nl.properties new file mode 100644 index 0000000000000000000000000000000000000000..fe5807cd7a6b090678afa727c125feb0d894969c --- /dev/null +++ b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/global_nl.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Global\ MAVEN_OPTS=Globale MAVEN_OPTS +Maven\ Project\ Configuration=Maven projectconfiguratie diff --git a/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/global_pt_BR.properties b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/global_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..f214a7b02feb70d3423807f6fc72fdd014c3752a --- /dev/null +++ b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/global_pt_BR.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Global\ MAVEN_OPTS= +Maven\ Project\ Configuration= diff --git a/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/global_ru.properties b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/global_ru.properties new file mode 100644 index 0000000000000000000000000000000000000000..247def0bf97c946bf9e9e68ba6bbe838b256d85f --- /dev/null +++ b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/global_ru.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Global\ MAVEN_OPTS=\u0413\u043B\u043E\u0431\u0430\u043B\u044C\u043D\u044B\u0435 MAVEN_OPTS +Maven\ Project\ Configuration=\u041A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044F \u043F\u0440\u043E\u0435\u043A\u0442\u0430 diff --git a/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/global_zh_CN.properties b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/global_zh_CN.properties new file mode 100644 index 0000000000000000000000000000000000000000..217afb81e70caf1e9036b387f420b5a6d2d21534 --- /dev/null +++ b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/global_zh_CN.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2009 , Sun Microsystems, Inc., Seiji Scribe, Simon Wiest +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Maven\ Project\ Configuration=Maven\u9879\u76ee\u914d\u7f6e +Global\ MAVEN_OPTS=\u5168\u5c40MAVEN_OPTS diff --git a/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/index.jelly b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/index.jelly index 6206f889b89dc58d6b14afd6a31974ef01a52141..c7b04562e2cc6b6b12cb834aa2566f8c40cf0578 100644 --- a/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/index.jelly +++ b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/index.jelly @@ -1,7 +1,8 @@ + + + + - + diff --git a/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/index_da.properties b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/index_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..7461f8265c59b8a32997a24422cdd401a732d7eb --- /dev/null +++ b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/index_da.properties @@ -0,0 +1,28 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Latest\ Test\ Result=Seneste testmodul +Enable=Sl\u00e5 til +Workspace=Arbejdsomr\u00e5de +Last\ Successful\ Artifacts=Seneste succesfulde artifakter +This\ project\ is\ currently\ disabled=Dette projekt er for nuv\u00e6rende sl\u00e5et fra +Recent\ Changes=Nyelige \u00e6ndringer diff --git a/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/index_de.properties b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/index_de.properties index 99888cc0f8ee365504c3438b71bff704ed0b1479..3d4d62cd5248cb4a9e5321303ea60f625b9703ac 100644 --- a/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/index_de.properties +++ b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/index_de.properties @@ -23,3 +23,4 @@ Workspace=Arbeitsbereich Recent\ Changes=Letzte Änderungen Latest\ Test\ Result=Letztes Testergebnis +Last\ Successful\ Artifacts=Letzte erfolgreiche Artefakte diff --git a/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/index_es.properties b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/index_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..5d0b607069902344faea828ea9ef0ba5befdc41f --- /dev/null +++ b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/index_es.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:cactusman +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Recent\ Changes=Cambios recientes +Workspace=Espacio de trabajo +Latest\ Test\ Result=Últimos resultados de tests +Last\ Successful\ Artifacts=Último artefacto correcto diff --git a/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/index_hu.properties b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/index_hu.properties new file mode 100644 index 0000000000000000000000000000000000000000..eb01b50f5ae2a28491aa2a8dd126fa4e8cd11052 --- /dev/null +++ b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/index_hu.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Workspace=Munkahely diff --git a/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/index_it.properties b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/index_it.properties new file mode 100644 index 0000000000000000000000000000000000000000..15db7e606edf911301b7cac6d13715876913e655 --- /dev/null +++ b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/index_it.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Last\ Successful\ Artifacts=Ultimi artifact con successo +Latest\ Test\ Result=Ultimo risultato tes +Recent\ Changes=Modifiche recenti +Workspace=Workspace diff --git a/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/index_ja.properties b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/index_ja.properties index ead8f03273bc789858e31619ea10ef247cc08073..d7ae88442e115c2091efea53baf9c79917d39627 100644 --- a/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/index_ja.properties +++ b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/index_ja.properties @@ -1,6 +1,6 @@ # The MIT License # -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe, id:cactusman +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe, id:cactusman # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -20,14 +20,10 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Modules=\u30e2\u30b8\u30e5\u30fc\u30eb -A\ build\ is\ in\ progress\ to\ parse\ the\ list\ of\ modules\ from\ POM.=\ - \u30d3\u30eb\u30c9\u306fPOM\u304b\u3089\u30e2\u30b8\u30e5\u30fc\u30eb\u306e\u30ea\u30b9\u30c8\u3092\u5206\u6790\u3059\u308b\u305f\u3081\u3001\u9032\u884c\u4e2d\u3067\u3059\u3002 - -text=Hudson\u304cPOM\u304b\u3089\u30e2\u30b8\u30e5\u30fc\u30eb\u306e\u30ea\u30b9\u30c8\u3092\u5206\u6790\u3059\u308b\u305f\u3081\u306b\u30d3\u30eb\u30c9\u3092\u5b9f\u884c\u3057\u3066\u304f\u3060\u3055\u3044\u3002 - -Overview={0}\u306e\u6982\u8981 Workspace=\u30ef\u30fc\u30af\u30b9\u30da\u30fc\u30b9 Recent\ Changes=\u6700\u65b0\u306e\u5909\u66f4 Latest\ Test\ Result=\u6700\u65b0\u306e\u30c6\u30b9\u30c8\u7d50\u679c Last\ Successful\ Artifacts=\u6700\u65b0\u6210\u529f\u30d3\u30eb\u30c9\u306e\u6210\u679c\u7269 +This\ project\ is\ currently\ disabled=\u73fe\u5728\u3001\u3053\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306f\u7121\u52b9\u3067\u3059\u3002 +Enable=\u6709\u52b9\u5316 + diff --git a/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/index_nb_NO.properties b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/index_nb_NO.properties new file mode 100644 index 0000000000000000000000000000000000000000..218798c2d5101bd4945a759530edc3ef6a8abf1f --- /dev/null +++ b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/index_nb_NO.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Last\ Successful\ Artifacts=Siste feilfrie bygg +Recent\ Changes=Siste Forandinger diff --git a/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/index_nl.properties b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/index_nl.properties index 57db9e85daf8b93c5f1a232cec4df749ab4cbe5c..fb7e8625b6b60854da9e15ce0ff4483d7354f7d1 100644 --- a/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/index_nl.properties +++ b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/index_nl.properties @@ -27,4 +27,5 @@ text= Gelieve een nieuwe bouwpoging te starten. O Overview={0} Overzicht Workspace=Werkplaats Recent\ Changes=Recente veranderingen +Last\ Successful\ Artifacts=Laatste succesvolle artefacten Latest\ Test\ Result=Laatste testresultaat diff --git a/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/index_pt_BR.properties b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/index_pt_BR.properties index dce159fcba92e9cf1b8d1b4527ea179b0e866a9e..a10b77c1850227c1cdef87264b7fcff30c71c6b5 100644 --- a/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/index_pt_BR.properties +++ b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/index_pt_BR.properties @@ -20,11 +20,7 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Modules=M\u00F3dulos -A\ build\ is\ in\ progress\ to\ parse\ the\ list\ of\ modules\ from\ POM.=Uma constru\u00E7\u00E3o est\u00E1 em progresso para analisar a lista de m\u00F3dulos do POM. -text= Please perform a build so that Hudson can\ - parse the list of modules from POM. -Overview={0}Vis\u00E3o Geral Workspace= Recent\ Changes=Mudan\u00E7as Recentes Latest\ Test\ Result=\u00DAltimo Resultado de Teste +Last\ Successful\ Artifacts=\u00DAltimos Artefatos que obtiveram Sucesso diff --git a/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/index_ru.properties b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/index_ru.properties index 56bae85a15edcc9254c3ae23ca017bde2ed04bc8..2b0a894b8680ca66cf6fb9ab27cd15461c901ace 100644 --- a/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/index_ru.properties +++ b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/index_ru.properties @@ -22,4 +22,5 @@ Workspace=\u0421\u0431\u043e\u0440\u043e\u0447\u043d\u0430\u044f \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f Recent\ Changes=\u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f +Last\ Successful\ Artifacts=\u0410\u0440\u0442\u0435\u0444\u0430\u043A\u0442\u044B \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0435\u0439 \u0443\u0441\u043F\u0435\u0448\u043D\u043E\u0439 \u0441\u0431\u043E\u0440\u043A\u0438 Latest\ Test\ Result=\u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0442\u0435\u0441\u0442\u043e\u0432 diff --git a/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/index_sv_SE.properties b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/index_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..01f70ac6b79fad39823485e1cc79de4d5adc274c --- /dev/null +++ b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/index_sv_SE.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Latest\ Test\ Result=Senaste testresultat +Recent\ Changes=Senaste F\u00F6r\u00E4ndringar +Workspace=Arbetsyta diff --git a/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/modules_da.properties b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/modules_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..9ab34ab7eb19ab4aa75346a30e9b70c9ce78406d --- /dev/null +++ b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/modules_da.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +A\ build\ is\ in\ progress\ to\ parse\ the\ list\ of\ modules\ from\ POM.=Et byg er i gang for at parse listen af moduler fra POM''en. +Disabled=Sl\u00e5et Fra +Modules=Moduler +text=V\u00e6r venlig at k\u00f8re et byg, s\u00e5 Hudson kan parse listen af moduler fra POM''en. diff --git a/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/modules_es.properties b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/modules_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..1f4b7875e3accd701ec1fa503109dc6c0a54ac68 --- /dev/null +++ b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/modules_es.properties @@ -0,0 +1,27 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +text=\ + Por favor lanza una ejecución de manera que Hudson pueda reconocer la lista de módulos presentes en el fichero POM +Disabled=Desactivado +Modules=Módulos +A\ build\ is\ in\ progress\ to\ parse\ the\ list\ of\ modules\ from\ POM.=Se está ejecutando el proyecto para poder analizar el fichero POM diff --git a/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/modules_sv_SE.properties b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/modules_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..b953575135d907ae6a6acc37dbdd87c7252dca30 --- /dev/null +++ b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/modules_sv_SE.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Disabled=Inaktiverad +Modules=Moduler diff --git a/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/newJobDetail_da.properties b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/newJobDetail_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..d24630cf97691af936a700dbdc906649d5add32c --- /dev/null +++ b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/newJobDetail_da.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +body=Byg et maven2 projekt. Hudson udnytter dine POM filer og reducerer herved \ +dramatisk behovet for konfiguration. diff --git a/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/newJobDetail_de.properties b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/newJobDetail_de.properties index b626ab5254cbd16d2e4cb01a378a9449e6101657..11aa2abf02c53f921e1617ee21815b46cc8740e3 100644 --- a/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/newJobDetail_de.properties +++ b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/newJobDetail_de.properties @@ -20,8 +20,6 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -# OUTDATED body=\ Dieses Profil baut ein Maven 2 Projekt. Hudson wertet dabei Ihre POM Dateien aus und \ - reduziert damit den Konfigurationsaufwand ganz erheblich. Zwar befindet sich dieses Profil \ - zur Zeit noch in der Entstehungsphase, es ist aber bereits einsetzbar, um R\u00fcckmeldungen von Anwendern zu sammeln. + reduziert damit den Konfigurationsaufwand ganz erheblich. diff --git a/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/newJobDetail_el.properties b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/newJobDetail_el.properties new file mode 100644 index 0000000000000000000000000000000000000000..f370eaaf47d680f87b6a1ee3af7b9ea965e4bcc5 --- /dev/null +++ b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/newJobDetail_el.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +body=\u0394\u03B7\u03BC\u03B9\u03BF\u03C5\u03C1\u03B3\u03B9\u03B1 maven2 project. O Hudson \u03B1\u03BE\u03B9\u03BF\u03C0\u03BF\u03B9\u03B5\u03AF \u03C4\u03B1 \u03B1\u03C1\u03C7\u03B5\u03AF\u03B1 POM \u03BA\u03B1\u03B9 \u03BC\u03B5\u03B9\u03CE\u03BD\u03B5\u03B9 \u03B4\u03C1\u03B1\u03BC\u03B1\u03C4\u03B9\u03BA\u03AC \u03C4\u03B7\u03BD \u03C0\u03B1\u03C1\u03B1\u03BC\u03B5\u03C4\u03C1\u03BF\u03C0\u03BF\u03B9\u03AE\u03C3\u03B7 \u03C0\u03BF\u03C5 \u03C7\u03C1\u03B5\u03B9\u03AC\u03B6\u03B5\u03C4\u03B1\u03B9 diff --git a/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/newJobDetail_es.properties b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/newJobDetail_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..f4be5115f6ce5f2c2bdeeb4a3b14e530ec182df6 --- /dev/null +++ b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/newJobDetail_es.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:cactusman +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +body=\ + Ejecuta un proyecto maven2. Hudson es capaz de aprovechar la configuracion presente en los ficheros POM, reduciendo drásticamente la configuración. + diff --git a/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/newJobDetail_it.properties b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/newJobDetail_it.properties new file mode 100644 index 0000000000000000000000000000000000000000..e1c1f0e1026bce2e8eeba4272095bc39dd826d23 --- /dev/null +++ b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/newJobDetail_it.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +body=Effettua una build di un progetto maven2. Hudson sfrutta i file POM e riduce drasticamente la configurazione. diff --git a/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/newJobDetail_ko.properties b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/newJobDetail_ko.properties new file mode 100644 index 0000000000000000000000000000000000000000..c1e1741b75469fc6ccb40e4f953fd15e76986d8e --- /dev/null +++ b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/newJobDetail_ko.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +body=Maven2 \uD504\uB85C\uC81D\uD2B8\uB97C \uBE4C\uB4DC\uD569\uB2C8\uB2E4. Hudson\uC740 POM \uD30C\uC77C\uC758 \uC774\uC810\uC744 \uAC00\uC9C0\uACE0 \uC788\uACE0 \uAE09\uACA9\uD788 \uC124\uC815\uC744 \uC904\uC785\uB2C8\uB2E4. diff --git a/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/newJobDetail_nb_NO.properties b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/newJobDetail_nb_NO.properties new file mode 100644 index 0000000000000000000000000000000000000000..0380d072f07460d2778efa088658755325e5236f --- /dev/null +++ b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/newJobDetail_nb_NO.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +body=Bygg et Maven 2 prosjekt. Hudson tar fordel av dine POM (Project Object Model - Prosjekt Objekt Modell) filer og drastisk reduserer behovet for konfigurasjon. diff --git a/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/newJobDetail_ru.properties b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/newJobDetail_ru.properties index 06783aa6bb5d28413e333bf08bc2d6135d794047..7c0c91928cdf93256d2aa676ee6a8d388162b7ab 100644 --- a/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/newJobDetail_ru.properties +++ b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/newJobDetail_ru.properties @@ -21,7 +21,4 @@ # THE SOFTWARE. # OUTDATED -body=\ - \u0421\u043e\u0437\u0434\u0430\u0442\u044c \u043f\u0440\u043e\u0435\u043a\u0442 maven2. Hudson \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f POM \u0444\u0430\u0439\u043b\u043e\u0432 \ - \u0438 \u0440\u0430\u0434\u0438\u043a\u0430\u043b\u044c\u043d\u043e \u0443\u043c\u0435\u043d\u044c\u0448\u0430\u0435\u0442 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u044c \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u041f\u043e\u043a\u0430 \u0435\u0449\u0435 \u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435, \u043d\u043e \ - \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u0430 \u043e\u0442\u0437\u044b\u0432\u043e\u0432. +body=\u0421\u043E\u0437\u0434\u0430\u0442\u044C \u043F\u0440\u043E\u0435\u043A\u0442 maven2. Hudson \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044E \u0438\u0437 \u043F\u0440\u043E\u0435\u043A\u0442\u043D\u044B\u0445 \u0444\u0430\u0439\u043B\u043E\u0432 POM, \u0447\u0442\u043E \u0443\u043C\u0435\u043D\u0448\u0438\u0442 \u043D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u043E\u0441\u0442\u044C \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F. diff --git a/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/newJobDetail_sv_SE.properties b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/newJobDetail_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..23f78180c8f3bb9d4a00e1a41b9378fb18ecf106 --- /dev/null +++ b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/newJobDetail_sv_SE.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +body=Bygg ett maven2 projekt. Hudson utnyttjar dina POM filer och kommer drastiskt minska behovet av konfiguration. diff --git a/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/newJobDetail_zh_CN.properties b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/newJobDetail_zh_CN.properties new file mode 100644 index 0000000000000000000000000000000000000000..52f60a3398f4c045a967e69b165f73e3b7d668dc --- /dev/null +++ b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSet/newJobDetail_zh_CN.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:cactusman +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +body=\ + \u6784\u5efa\u4e00\u4e2amaven2\u9879\u76ee.Hudson\u5229\u7528\u4f60\u7684POM\u6587\u4ef6,\u8fd9\u6837\u53ef\u4ee5\u5927\u5927\u51cf\u8f7b\u6784\u5efa\u914d\u7f6e. \ No newline at end of file diff --git a/maven-plugin/src/main/resources/hudson/maven/MavenModuleSetBuild/main.jelly b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSetBuild/main.jelly index 1ea97e27325afbe0b7481e8ac457a34d899043fe..ba82babeef11601924f506d609494b8c783c4e6e 100644 --- a/maven-plugin/src/main/resources/hudson/maven/MavenModuleSetBuild/main.jelly +++ b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSetBuild/main.jelly @@ -1,7 +1,7 @@ - +

        ${%Module Builds}

        - - - - -
        - - - - + + + + + + + + + + + + + + + +
        + + ${m.key.displayName} (${%noRun}) + + + ${mb.iconColor.description} - - ${m.displayName} + + ${m.key.displayName} - - - + + ${mb.durationString} + + - ${m.displayName} (didn't run) - - - - - - - - - - - - - - - -
        ${m.key.displayName} + + + + - - - (none) - - - - - - - -
        -
        - - \ No newline at end of file + + +
        + diff --git a/maven-plugin/src/main/resources/hudson/maven/MavenModuleSetBuild/main.properties b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSetBuild/main.properties new file mode 100644 index 0000000000000000000000000000000000000000..e641df0a5951d04e951a5443d624aaa5c8335b23 --- /dev/null +++ b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSetBuild/main.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Alan Harder +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +noRun=didn''t run diff --git a/maven-plugin/src/main/resources/hudson/maven/MavenModuleSetBuild/main_da.properties b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSetBuild/main_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..6e189372e09367173f47e43953ef3bd4aa3a7b75 --- /dev/null +++ b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSetBuild/main_da.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Module\ Builds=Modulbyg +noRun=k\u00f8rte ikke diff --git a/maven-plugin/src/main/resources/hudson/maven/MavenModuleSetBuild/main_de.properties b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSetBuild/main_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..8410563374a48c6e355975463c92336a32a683b6 --- /dev/null +++ b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSetBuild/main_de.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Module\ Builds=Modul-Builds \ No newline at end of file diff --git a/maven-plugin/src/main/resources/hudson/maven/MavenModuleSetBuild/main_es.properties b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSetBuild/main_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..fc8341f22a82bd22c63093049e00b493b944911b --- /dev/null +++ b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSetBuild/main_es.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Module\ Builds=Módulos +# didn''t run +noRun=No se ejecutó diff --git a/maven-plugin/src/main/resources/hudson/maven/MavenModuleSetBuild/main_fi.properties b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSetBuild/main_fi.properties new file mode 100644 index 0000000000000000000000000000000000000000..d9cec2910b534629fcb223b71c24410752f79295 --- /dev/null +++ b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSetBuild/main_fi.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Module\ Builds=Moduuli k\u00E4\u00E4nn\u00F6kset diff --git a/maven-plugin/src/main/resources/hudson/maven/MavenModuleSetBuild/main_fr.properties b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSetBuild/main_fr.properties index cdd96fda765c2a910bcad559db8d3b04358c88fa..72dcf73aeeff6eab2cee963a93f193710fbcd6bb 100644 --- a/maven-plugin/src/main/resources/hudson/maven/MavenModuleSetBuild/main_fr.properties +++ b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSetBuild/main_fr.properties @@ -20,4 +20,4 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Module\ Builds=Builds des modules +Module\ Builds=Builds des modules diff --git a/maven-plugin/src/main/resources/hudson/maven/MavenModuleSetBuild/main_nb_NO.properties b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSetBuild/main_nb_NO.properties new file mode 100644 index 0000000000000000000000000000000000000000..b77438f666619e860068b048e33f197fc28523b6 --- /dev/null +++ b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSetBuild/main_nb_NO.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Module\ Builds=Moduler i bygget diff --git a/maven-plugin/src/main/resources/hudson/maven/MavenModuleSetBuild/main_pt_BR.properties b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSetBuild/main_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..5bf6f675115d8f9f4962fd3ca41619077a6ac0b4 --- /dev/null +++ b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSetBuild/main_pt_BR.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Module\ Builds= +# didn''t run +noRun= diff --git a/maven-plugin/src/main/resources/hudson/maven/MavenModuleSetBuild/main_sv_SE.properties b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSetBuild/main_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..abebe506bec9a86383b6399d6c703db50d80a021 --- /dev/null +++ b/maven-plugin/src/main/resources/hudson/maven/MavenModuleSetBuild/main_sv_SE.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Module\ Builds=Modulbyggen diff --git a/maven-plugin/src/main/resources/hudson/maven/MavenProbeAction/envVars_da.properties b/maven-plugin/src/main/resources/hudson/maven/MavenProbeAction/envVars_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..a0bf3ee3fa8f1a52ad8220db6e4a20e34cc1ed42 --- /dev/null +++ b/maven-plugin/src/main/resources/hudson/maven/MavenProbeAction/envVars_da.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Environment\ Variables=Milj\u00f8variable diff --git a/maven-plugin/src/main/resources/hudson/maven/MavenProbeAction/envVars_es.properties b/maven-plugin/src/main/resources/hudson/maven/MavenProbeAction/envVars_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..7fe9b2305735339709e19df8e4fc3766dd88977a --- /dev/null +++ b/maven-plugin/src/main/resources/hudson/maven/MavenProbeAction/envVars_es.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Environment\ Variables=Variables de entorno diff --git a/maven-plugin/src/main/resources/hudson/maven/MavenProbeAction/index_da.properties b/maven-plugin/src/main/resources/hudson/maven/MavenProbeAction/index_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..2fdb88844e0408048ce83f5aee26af39213eddf0 --- /dev/null +++ b/maven-plugin/src/main/resources/hudson/maven/MavenProbeAction/index_da.properties @@ -0,0 +1,24 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +description=Find information om den k\u00f8rende Mavenproces ved at klikke \ +linkene til venstre. Dette er ofte nyttigt ved fejlfinding. diff --git a/maven-plugin/src/main/resources/hudson/maven/MavenProbeAction/index_es.properties b/maven-plugin/src/main/resources/hudson/maven/MavenProbeAction/index_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..538ed1d2b1347baaf045ac1746f255b117820251 --- /dev/null +++ b/maven-plugin/src/main/resources/hudson/maven/MavenProbeAction/index_es.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +description=\ + Visualiza la información de los procesos maven en ejecución pulsando sobre los enlaces de la izquierda.
        \ + Suele ser bastante útil para identificar problemas. + diff --git a/maven-plugin/src/main/resources/hudson/maven/MavenProbeAction/sidepanel_da.properties b/maven-plugin/src/main/resources/hudson/maven/MavenProbeAction/sidepanel_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..9dcd0d1c3de213ffd4caccad0886525c1557f6d6 --- /dev/null +++ b/maven-plugin/src/main/resources/hudson/maven/MavenProbeAction/sidepanel_da.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +System\ Properties=Systemegenskaber +Environment\ Variables=Milj\u00f8variable +Thread\ Dump=Tr\u00e5ddump +Script\ Console=Skriptkonsol diff --git a/maven-plugin/src/main/resources/hudson/maven/MavenProbeAction/sidepanel_es.properties b/maven-plugin/src/main/resources/hudson/maven/MavenProbeAction/sidepanel_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..ecea55e03feaf1fb408a6c9899694a8231c7dda4 --- /dev/null +++ b/maven-plugin/src/main/resources/hudson/maven/MavenProbeAction/sidepanel_es.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Thread\ Dump=Volcado de hilos (threads) +System\ Properties=Propiedades del sistema +Script\ Console=Consola de comandos +Environment\ Variables=Variables de entorno diff --git a/maven-plugin/src/main/resources/hudson/maven/MavenProbeAction/systemProperties_da.properties b/maven-plugin/src/main/resources/hudson/maven/MavenProbeAction/systemProperties_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..1464f5a2a8dbeb30d9464a936f7e8eae1254a8f2 --- /dev/null +++ b/maven-plugin/src/main/resources/hudson/maven/MavenProbeAction/systemProperties_da.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +System\ Properties=Systemegenskaber diff --git a/maven-plugin/src/main/resources/hudson/maven/MavenProbeAction/systemProperties_es.properties b/maven-plugin/src/main/resources/hudson/maven/MavenProbeAction/systemProperties_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..f55467562272506e5c18f4b594d162d32986b4bd --- /dev/null +++ b/maven-plugin/src/main/resources/hudson/maven/MavenProbeAction/systemProperties_es.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +System\ Properties=Propiedades del sistema diff --git a/maven-plugin/src/main/resources/hudson/maven/MavenProbeAction/threads_da.properties b/maven-plugin/src/main/resources/hudson/maven/MavenProbeAction/threads_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..2226971790388b10824d19731cda902e123396a4 --- /dev/null +++ b/maven-plugin/src/main/resources/hudson/maven/MavenProbeAction/threads_da.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Thread\ Dump=Tr\u00e5ddump diff --git a/maven-plugin/src/main/resources/hudson/maven/MavenProbeAction/threads_es.properties b/maven-plugin/src/main/resources/hudson/maven/MavenProbeAction/threads_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..9e8fa01491ec53ce26f43b93376b4f28b779bbd9 --- /dev/null +++ b/maven-plugin/src/main/resources/hudson/maven/MavenProbeAction/threads_es.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Thread\ Dump=Volcado de hilos (threads) diff --git a/maven-plugin/src/main/resources/hudson/maven/MavenTestDataPublisher/config.jelly b/maven-plugin/src/main/resources/hudson/maven/MavenTestDataPublisher/config.jelly new file mode 100644 index 0000000000000000000000000000000000000000..d264a1cd76c5548ff65f9d05e38483383956ec85 --- /dev/null +++ b/maven-plugin/src/main/resources/hudson/maven/MavenTestDataPublisher/config.jelly @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + +
        +
        +
        +
        \ No newline at end of file diff --git a/maven-plugin/src/main/resources/hudson/maven/Messages.properties b/maven-plugin/src/main/resources/hudson/maven/Messages.properties index 063ce4f924d9e6de8cdaf2d83f8b05e810520d86..5265c49e0a0a5736d3848aa5ae597120dd23240d 100644 --- a/maven-plugin/src/main/resources/hudson/maven/Messages.properties +++ b/maven-plugin/src/main/resources/hudson/maven/Messages.properties @@ -34,7 +34,9 @@ MavenModuleSet.DiplayName=Build a maven2 project MavenModuleSetBuild.DiscoveredModule=Discovered a new module {0} {1} MavenModuleSetBuild.FailedToParsePom=Failed to parse POMs -MavenModuleSetBuild.NoSuchFile=No such file {0}\nPerhaps you need to specify the correct POM file path in the project configuration? +MavenModuleSetBuild.NoSuchPOMFile=No such file {0}\nPerhaps you need to specify the correct POM file path in the project configuration? +MavenModuleSetBuild.NoSuchAlternateSettings=No such settings file {0} exists\nPlease verify that your alternate settings file is specified properly and exists in the workspace. +MavenModuleSetBuild.NoMavenInstall=A Maven installation needs to be available for this project to be built.\nEither your server has no Maven installations defined, or the requested Maven version does not exist. MavenProbeAction.DisplayName=Monitor Maven Process @@ -44,4 +46,5 @@ MavenRedeployer.DisplayName=Deploy to Maven repository ProcessCache.Reusing=Reusing existing maven process RedeployPublisher.getDisplayName=Deploy artifacts to Maven repository +RedeployPublisher.RepositoryURL.Mandatory=Repository URL is mandatory ReleaseAction.DisplayName=Release New Version diff --git a/maven-plugin/src/main/resources/hudson/maven/Messages_da.properties b/maven-plugin/src/main/resources/hudson/maven/Messages_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..4727bcf8c71022b9b8279c2a67c699b7245b898f --- /dev/null +++ b/maven-plugin/src/main/resources/hudson/maven/Messages_da.properties @@ -0,0 +1,44 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +MavenModuleSetBuild.DiscoveredModule=Opdagede et nyt modul {0} {1} +MavenBuild.Triggering=Starter et nyt byg af {0} +MavenBuild.KeptBecauseOfParent=Beholdt da {0} er gemt +MavenModuleSetBuild.FailedToParsePom=Kunne ikke parse POM''erne +MavenBuilder.Waiting=Venter p\u00e5 at Hudson bliver f\u00e6rdig med at samle data +MavenBuilder.Aborted=Afbrudt +MavenBuilder.Failed=Maven stoppede med en fejl. +MavenProbeAction.DisplayName=Overv\u00e5g Mavenproces +MavenProcessFactory.ClassWorldsNotFound=Ingen classworlds*.jar fundet i {0} -- Er dette et gyldigt maven2 direktorie? +MavenModuleSet.DiplayName=Byg et maven2 projekt +MavenModule.Pronoun=Modul +MavenBuild.FailedEarlier=Bygget fejler f\u00f8r det n\u00e5r til dette modul +MavenModuleSetBuild.NoSuchPOMFile=Ingen fil kaldet {0}\nM\u00e5ske mangler du at specificere den korrekte POM fil placering i projekt konfigurationen? +MavenRedeployer.DisplayName=Send til Mavenarkiv +RedeployPublisher.getDisplayName=Send artifakter til Mavenarkiv +MavenModuleSetBuild.NoMavenInstall=En Maven installation skal v\u00e6re tilg\u00e6ngelig for at dette projekt kan bygge.\n\ +Enten har din server ikke en Maven installation defineret, eller den anmodede Maven version eksisterer ikke. +ProcessCache.Reusing=Genbrug eksisterende Mavenproces +MavenBuilder.AsyncFailed=Fejl under asynkron udf\u00f8relse +MavenModuleSetBuild.NoSuchAlternateSettings=Der eksisterer ingen konfigurationsfil ved navn {0}\n\ +Kontroller at din alternative konfigurationsfil er korrekt specificeret og eksisterer i arbejdsomr\u00e5det +ReleaseAction.DisplayName=Udgiv ny version diff --git a/maven-plugin/src/main/resources/hudson/maven/Messages_de.properties b/maven-plugin/src/main/resources/hudson/maven/Messages_de.properties index 69bce1d5af01c5e0ebc9d422fc54f263cea2ae0d..335533074bd18f62ae9531ee4ec8979f6720bca6 100644 --- a/maven-plugin/src/main/resources/hudson/maven/Messages_de.properties +++ b/maven-plugin/src/main/resources/hudson/maven/Messages_de.properties @@ -34,7 +34,14 @@ MavenModuleSet.DiplayName=Maven 2 Projekt bauen MavenModuleSetBuild.DiscoveredModule=Neues Modul {0} {1} entdeckt MavenModuleSetBuild.FailedToParsePom=POMs konnten nicht geparst werden -MavenModuleSetBuild.NoSuchFile={0} nicht gefunden\nEventuell müssen Sie den korrekten POM-Dateipfad in der Projektkonfiguration angeben. +MavenModuleSetBuild.NoSuchPOMFile={0} nicht gefunden\nEventuell müssen Sie den korrekten POM-Dateipfad in der Projektkonfiguration angeben. +MavenModuleSetBuild.NoMavenInstall=\ + Um dieses Projekt zu bauen, wird eine Maven-Installation benötigt. \ + Entweder wurden für Ihren Server noch keine Maven-Installationen konfiguriert, \ + oder die benötigte Maven-Version existiert nicht. +MavenModuleSetBuild.NoSuchAlternateSettings=\ + Die Settings-Datei {0} existiert nicht. Bitte überprüfen Sie die Angabe der Settings-Datei \ + sowie deren Existenz im Arbeitsbereich. MavenProbeAction.DisplayName=Maven Prozess überwachen diff --git a/maven-plugin/src/main/resources/hudson/maven/Messages_es.properties b/maven-plugin/src/main/resources/hudson/maven/Messages_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..ee7ac60b1013c84328495666050a896f3d839706 --- /dev/null +++ b/maven-plugin/src/main/resources/hudson/maven/Messages_es.properties @@ -0,0 +1,49 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:cactusman +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +MavenBuild.FailedEarlier=La ejecución falló antes de llegar a este módulo +MavenBuild.KeptBecauseOfParent=Mantener porque {0} se mantiene +MavenBuild.Triggering=Lanzando la ejecución de {0} +MavenBuilder.Aborted=Cancelado +MavenBuilder.AsyncFailed=La ejecución asincrona ha fallado +MavenBuilder.Failed=Maven ha acabado con error +MavenBuilder.Waiting=Esperando a que Hudson finalize de recopilar datos + +MavenModule.Pronoun=Modulo + +MavenModuleSet.DiplayName=Crear un proyecto maven2 + +MavenModuleSetBuild.DiscoveredModule=Se ha descubierto un nuevo módulo {0} {1} +MavenModuleSetBuild.FailedToParsePom=Error al analizar el fichero POM +MavenModuleSetBuild.NoSuchPOMFile=No existe el fichero {0}\nQuizas sea necesario que especifiques la ubicación del fichero POM +MavenModuleSetBuild.NoSuchAlternateSettings=No existe el fichero de configuración {0} \nVerifica que se ha especificado un fichero en la configuración, y que dicho fichero existe el el espacio de trabajo. +MavenModuleSetBuild.NoMavenInstall=Se necesita una instalación de ''maven'' para poder ejecutar este proyecto.\nEs posible que no se haya especificado dónde está la instalación de maven o sea incorrecta. + +MavenProbeAction.DisplayName=Monitorizar proceso maven + +MavenProcessFactory.ClassWorldsNotFound=No se encontró la libraría classworlds*.jar en {0} -- ¿Es un directorio de instalación de maven válido? + +MavenRedeployer.DisplayName=Desplegar al repositorio maven. +ProcessCache.Reusing=Reutilizar un proceso existente de maven + +RedeployPublisher.getDisplayName=Desplegar ficheros al repositorio maven +ReleaseAction.DisplayName=Publicar una nueva versión diff --git a/maven-plugin/src/main/resources/hudson/maven/Messages_ja.properties b/maven-plugin/src/main/resources/hudson/maven/Messages_ja.properties index 29bd310cbe4402578221ffae3423945b21778e33..63326ec5aeb01067f0773ab79b88151ec31fd9d0 100644 --- a/maven-plugin/src/main/resources/hudson/maven/Messages_ja.properties +++ b/maven-plugin/src/main/resources/hudson/maven/Messages_ja.properties @@ -20,28 +20,33 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -MavenBuild.FailedEarlier=\u3053\u306E\u30E2\u30B8\u30E5\u30FC\u30EB\u306E\u524D\u306B\u30D3\u30EB\u30C9\u304C\u5931\u6557\u3057\u307E\u3057\u305F -MavenBuild.KeptBecauseOfParent={0}\u304C\u4FDD\u7559\u4E2D\u306E\u305F\u3081\u4FDD\u7559\u3057\u307E\u3059 -MavenBuild.Triggering={0}\u306E\u65B0\u898F\u30D3\u30EB\u30C9\u306E\u5B9F\u884C -MavenBuilder.Aborted=\u4E2D\u6B62 -MavenBuilder.AsyncFailed=\u975E\u540C\u671F\u5B9F\u884C\u5931\u6557 -MavenBuilder.Failed=Maven\u306F\u30A8\u30E9\u30FC\u3067\u5931\u6557\u3057\u307E\u3057\u305F\u3002 -MavenBuilder.Waiting=Hudson\u304C\u30C7\u30FC\u30BF\u53CE\u96C6\u3092\u5B8C\u4E86\u3059\u308B\u307E\u3067\u5F85\u6A5F\u4E2D +MavenBuild.FailedEarlier=\u3053\u306e\u30e2\u30b8\u30e5\u30fc\u30eb\u306e\u524d\u306b\u30d3\u30eb\u30c9\u304c\u5931\u6557\u3057\u307e\u3057\u305f +MavenBuild.KeptBecauseOfParent={0}\u304c\u4fdd\u7559\u4e2d\u306e\u305f\u3081\u4fdd\u7559\u3057\u307e\u3059 +MavenBuild.Triggering={0}\u306e\u65b0\u898f\u30d3\u30eb\u30c9\u306e\u5b9f\u884c +MavenBuilder.Aborted=\u4e2d\u6b62 +MavenBuilder.AsyncFailed=\u975e\u540c\u671f\u5b9f\u884c\u5931\u6557 +MavenBuilder.Failed=Maven\u306f\u30a8\u30e9\u30fc\u3067\u5931\u6557\u3057\u307e\u3057\u305f\u3002 +MavenBuilder.Waiting=Hudson\u304c\u30c7\u30fc\u30bf\u53ce\u96c6\u3092\u5b8c\u4e86\u3059\u308b\u307e\u3067\u5f85\u6a5f\u4e2d -MavenModule.Pronoun=\u30E2\u30B8\u30E5\u30FC\u30EB +MavenModule.Pronoun=\u30e2\u30b8\u30e5\u30fc\u30eb -MavenModuleSet.DiplayName=Maven2\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u30D3\u30EB\u30C9 +MavenModuleSet.DiplayName=Maven2\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u30d3\u30eb\u30c9 -MavenModuleSetBuild.DiscoveredModule=\u65B0\u898F\u30E2\u30B8\u30E5\u30FC\u30EB {0} {1} \u3092\u767A\u898B -MavenModuleSetBuild.FailedToParsePom=POM\u306E\u89E3\u6790\u306B\u5931\u6557 -MavenModuleSetBuild.NoSuchFile={0}\u3068\u3044\u3046\u30D5\u30A1\u30A4\u30EB\u304C\u3042\u308A\u307E\u305B\u3093\u3002\n\u304A\u305D\u3089\u304F\u3001\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u8A2D\u5B9A\u753B\u9762\u3067\u6B63\u3057\u3044POM\u30D5\u30A1\u30A4\u30EB\u3092\u6307\u5B9A\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002 +MavenModuleSetBuild.DiscoveredModule=\u65b0\u898f\u30e2\u30b8\u30e5\u30fc\u30eb {0} {1} \u3092\u767a\u898b +MavenModuleSetBuild.FailedToParsePom=POM\u306e\u89e3\u6790\u306b\u5931\u6557 +MavenModuleSetBuild.NoSuchPOMFile={0}\u3068\u3044\u3046\u30d5\u30a1\u30a4\u30eb\u304c\u3042\u308a\u307e\u305b\u3093\u3002\n\u304a\u305d\u3089\u304f\u3001\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u8a2d\u5b9a\u753b\u9762\u3067\u6b63\u3057\u3044POM\u30d5\u30a1\u30a4\u30eb\u3092\u6307\u5b9a\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002 +MavenModuleSetBuild.NoSuchAlternateSettings=\ + \u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb {0} \u304c\u3042\u308a\u307e\u305b\u3093\u3002\n\u6307\u5b9a\u3057\u305f\u30d5\u30a1\u30a4\u30eb\u540d\u304c\u6b63\u3057\u3044\u3053\u3068\u3001\u30ef\u30fc\u30af\u30b9\u30da\u30fc\u30b9\u306b\u5b58\u5728\u3059\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3057\u3066\u304f\u3060\u3055\u3044\u3002 +MavenModuleSetBuild.NoMavenInstall=\ + \u3053\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3092\u30d3\u30eb\u30c9\u3059\u308b\u306b\u306fMaven\u304c\u5fc5\u8981\u3067\u3059\u3002\nMaven\u306e\u8a2d\u5b9a\u304c\u3055\u308c\u3066\u3044\u306a\u3044\u304b\u3001\u3082\u3057\u304f\u306f\u6307\u5b9a\u3057\u305f\u30d0\u30fc\u30b8\u30e7\u30f3\u306eMaven\u304c\u5b58\u5728\u3057\u307e\u305b\u3093\u3002 -MavenProbeAction.DisplayName=Maven\u30D7\u30ED\u30BB\u30B9\u306E\u76E3\u8996 +MavenProbeAction.DisplayName=Maven\u30d7\u30ed\u30bb\u30b9\u306e\u76e3\u8996 -MavenProcessFactory.ClassWorldsNotFound={0}\u306Bclassworlds*.jar\u304C\u307F\u3064\u304B\u308A\u307E\u305B\u3093\u3002 -- \u6B63\u3057\u3044Maven2\u306E\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3067\u3059\u304B? +MavenProcessFactory.ClassWorldsNotFound={0}\u306bclassworlds*.jar\u304c\u307f\u3064\u304b\u308a\u307e\u305b\u3093\u3002 -- \u6b63\u3057\u3044Maven2\u306e\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3067\u3059\u304b? -MavenRedeployer.DisplayName=Maven\u30EA\u30DD\u30B8\u30C8\u30EA\u3078\u306E\u30C7\u30D7\u30ED\u30A4 -ProcessCache.Reusing=\u65E2\u5B58Maven\u30D7\u30ED\u30BB\u30B9\u3092\u518D\u5229\u7528 +MavenRedeployer.DisplayName=Maven\u30ea\u30dd\u30b8\u30c8\u30ea\u3078\u306e\u30c7\u30d7\u30ed\u30a4 +ProcessCache.Reusing=\u65e2\u5b58Maven\u30d7\u30ed\u30bb\u30b9\u3092\u518d\u5229\u7528 -RedeployPublisher.getDisplayName=Maven\u30EA\u30DD\u30B8\u30C8\u30EA\u3078\u6210\u679C\u7269\u3092\u30C7\u30D7\u30ED\u30A4 -ReleaseAction.DisplayName=\u65B0\u898F\u30D0\u30FC\u30B8\u30E7\u30F3\u306E\u30EA\u30EA\u30FC\u30B9 +RedeployPublisher.getDisplayName=Maven\u30ea\u30dd\u30b8\u30c8\u30ea\u3078\u6210\u679c\u7269\u3092\u30c7\u30d7\u30ed\u30a4 +RedeployPublisher.RepositoryURL.Mandatory=\u30ea\u30dd\u30b8\u30c8\u30eaURL\u306f\u5fc5\u9808\u3067\u3059\u3002 +ReleaseAction.DisplayName=\u65b0\u898f\u30d0\u30fc\u30b8\u30e7\u30f3\u306e\u30ea\u30ea\u30fc\u30b9 diff --git a/maven-plugin/src/main/resources/hudson/maven/Messages_pt_BR.properties b/maven-plugin/src/main/resources/hudson/maven/Messages_pt_BR.properties index f148945d7c58a4df9e2a832e843f433ff4529fdc..7f77bde635dd659e7fdd6724a18f0dcb13f172d0 100644 --- a/maven-plugin/src/main/resources/hudson/maven/Messages_pt_BR.properties +++ b/maven-plugin/src/main/resources/hudson/maven/Messages_pt_BR.properties @@ -33,10 +33,23 @@ MavenModuleSet.DiplayName=Construir um projeto maven2 MavenModuleSetBuild.DiscoveredModule=Descoberto um novo m\u00f3dulo {0} {1} MavenModuleSetBuild.FailedToParsePom=Falhou ao analisar POMs -MavenModuleSetBuild.NoSuchFile=Arquivo {0} n\u00e3o encontrado\nTalvez voc\u00ea precise especificar o correto caminho para o arquivo POM na configura\u00e7\u00e3o do projeto. MavenProbeAction.DisplayName=Monitorar Processo Maven ProcessCache.Reusing=Reusar processos maven existentes ReleaseAction.DisplayName=Disponibilizar Nova Vers\u00e3o +# Kept because {0} is kept +MavenBuild.KeptBecauseOfParent= +# No classworlds*.jar found in {0} -- Is this a valid maven2 directory? +MavenProcessFactory.ClassWorldsNotFound= +# No such file {0}\nPerhaps you need to specify the correct POM file path in the project configuration? +MavenModuleSetBuild.NoSuchPOMFile= +# Deploy to Maven repository +MavenRedeployer.DisplayName= +# Deploy artifacts to Maven repository +RedeployPublisher.getDisplayName= +# A Maven installation needs to be available for this project to be built.\nEither your server has no Maven installations defined, or the requested Maven version does not exist. +MavenModuleSetBuild.NoMavenInstall= +# No such settings file {0} exists\nPlease verify that your alternate settings file is specified properly and exists in the workspace. +MavenModuleSetBuild.NoSuchAlternateSettings= diff --git a/maven-plugin/src/main/resources/hudson/maven/Messages_zh_CN.properties b/maven-plugin/src/main/resources/hudson/maven/Messages_zh_CN.properties new file mode 100644 index 0000000000000000000000000000000000000000..504d5d2dd0f39677a67fdc3448f0c65229fd5eb1 --- /dev/null +++ b/maven-plugin/src/main/resources/hudson/maven/Messages_zh_CN.properties @@ -0,0 +1,50 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:cactusman +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +MavenBuild.FailedEarlier=Build failed before it gets to this module +MavenBuild.KeptBecauseOfParent=Kept because {0} is kept +MavenBuild.Triggering=Triggering a new build of {0} +MavenBuilder.Aborted=Aborted +MavenBuilder.AsyncFailed=Asynchronous execution failure +MavenBuilder.Failed=Maven failed with error. +MavenBuilder.Waiting=Waiting for Hudson to finish collecting data + +MavenModule.Pronoun=\u6a21\u5757 + +MavenModuleSet.DiplayName=\u6784\u5efa\u4e00\u4e2amaven2\u9879\u76ee + +MavenModuleSetBuild.DiscoveredModule=Discovered a new module {0} {1} +MavenModuleSetBuild.FailedToParsePom=Failed to parse POMs +MavenModuleSetBuild.NoSuchPOMFile=No such file {0}\nPerhaps you need to specify the correct POM file path in the project configuration? +MavenModuleSetBuild.NoSuchAlternateSettings=No such settings file {0} exists\nPlease verify that your alternate settings file is specified properly and exists in the workspace. +MavenModuleSetBuild.NoMavenInstall=A Maven installation needs to be available for this project to be built.\nEither your server has no Maven installations defined, or the requested Maven version does not exist. + +MavenProbeAction.DisplayName=Monitor Maven Process + +MavenProcessFactory.ClassWorldsNotFound=No classworlds*.jar found in {0} -- Is this a valid maven2 directory? + +MavenRedeployer.DisplayName=Deploy to Maven repository +ProcessCache.Reusing=Reusing existing maven process + +RedeployPublisher.getDisplayName=Deploy artifacts to Maven repository +RedeployPublisher.RepositoryURL.Mandatory=Repository URL is mandatory +ReleaseAction.DisplayName=Release New Version diff --git a/maven-plugin/src/main/resources/hudson/maven/RedeployPublisher/config.jelly b/maven-plugin/src/main/resources/hudson/maven/RedeployPublisher/config.jelly index 4052ae94ed433eb7f538c79e65733c5494899fa9..6fed304baffd7e5bb5dd8458aaf7fc55cc5c7f3d 100644 --- a/maven-plugin/src/main/resources/hudson/maven/RedeployPublisher/config.jelly +++ b/maven-plugin/src/main/resources/hudson/maven/RedeployPublisher/config.jelly @@ -23,16 +23,22 @@ THE SOFTWARE. --> - - + + - - + + - - + + + + + + + + - \ No newline at end of file + diff --git a/maven-plugin/src/main/resources/hudson/maven/RedeployPublisher/config_da.properties b/maven-plugin/src/main/resources/hudson/maven/RedeployPublisher/config_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..93b8a42ae4d047311b02f02d252385cde06dcfba --- /dev/null +++ b/maven-plugin/src/main/resources/hudson/maven/RedeployPublisher/config_da.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Repository\ URL=Mavenarkiv URL +Deploy\ even\ if\ the\ build\ is\ unstable=Overf\u00f8r til Mavenarkiv, ogs\u00e5 selvom bygget er ustabilt +Repository\ ID=Mavenarkiv ID +Assign\ unique\ versions\ to\ snapshots=Giv \u00f8jebliksbillederne unikke versioner diff --git a/maven-plugin/src/main/resources/hudson/maven/RedeployPublisher/config_de.properties b/maven-plugin/src/main/resources/hudson/maven/RedeployPublisher/config_de.properties index 030b36c66c68860531ddf49c6d721dc105acd955..88e8020f28619e494ee6b269b56614b0fd367ad7 100644 --- a/maven-plugin/src/main/resources/hudson/maven/RedeployPublisher/config_de.properties +++ b/maven-plugin/src/main/resources/hudson/maven/RedeployPublisher/config_de.properties @@ -19,5 +19,8 @@ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. - -Repository\ URL=Repository-URL + +Repository\ ID=Repository-ID +Repository\ URL=Repository-URL +Assign\ unique\ versions\ to\ snapshots=Snapshots eindeutige Versionen zuordnen +Deploy\ even\ if\ the\ build\ is\ unstable=Ausbringen (deploy), auch wenn der Build instabil ist. \ No newline at end of file diff --git a/maven-plugin/src/main/resources/hudson/maven/RedeployPublisher/config_es.properties b/maven-plugin/src/main/resources/hudson/maven/RedeployPublisher/config_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..94417f9955ea9ebfed37362f43e267da267a3615 --- /dev/null +++ b/maven-plugin/src/main/resources/hudson/maven/RedeployPublisher/config_es.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +Repository\ URL=Dirección del repositorio (URL) +Assign\ unique\ versions\ to\ snapshots=Asignar versión única a cada instantánea (snapshot) +Repository\ ID=Identificador (ID) del repositorio +Deploy\ even\ if\ the\ build\ is\ unstable=Desplegar aunque la ejecución sea inestable diff --git a/maven-plugin/src/main/resources/hudson/maven/RedeployPublisher/config_ja.properties b/maven-plugin/src/main/resources/hudson/maven/RedeployPublisher/config_ja.properties index 4a357a596bee5ea564f2a0a5dfaf05e40e275126..da4e969f6778fe6b97672cfcbdc83b8a61f859a3 100644 --- a/maven-plugin/src/main/resources/hudson/maven/RedeployPublisher/config_ja.properties +++ b/maven-plugin/src/main/resources/hudson/maven/RedeployPublisher/config_ja.properties @@ -20,6 +20,7 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Repository\ URL=\u30ea\u30dd\u30b8\u30c8\u30eaURL -Repository\ ID=\u30ea\u30dd\u30b8\u30c8\u30eaID -Assign\ unique\ versions\ to\ snapshots=\u30b9\u30ca\u30c3\u30d7\u30b7\u30e7\u30c3\u30c8\u306b\u30e6\u30cb\u30fc\u30af\u306a\u30d0\u30fc\u30b8\u30e7\u30f3\u3092\u4ed8\u4e0e \ No newline at end of file +Repository\ URL=\u30EA\u30DD\u30B8\u30C8\u30EAURL +Repository\ ID=\u30EA\u30DD\u30B8\u30C8\u30EAID +Assign\ unique\ versions\ to\ snapshots=\u30B9\u30CA\u30C3\u30D7\u30B7\u30E7\u30C3\u30C8\u306B\u30E6\u30CB\u30FC\u30AF\u306A\u30D0\u30FC\u30B8\u30E7\u30F3\u3092\u4ED8\u4E0E +Deploy\ even\ if\ the\ build\ is\ unstable=\u4E0D\u5B89\u5B9A\u30D3\u30EB\u30C9\u3067\u3082\u30C7\u30D7\u30ED\u30A4 \ No newline at end of file diff --git a/maven-plugin/src/main/resources/hudson/maven/RedeployPublisher/config_pt_BR.properties b/maven-plugin/src/main/resources/hudson/maven/RedeployPublisher/config_pt_BR.properties index 4a6ade907361b2b6b7cfb268d1e7c4e43df11f70..b42016234e3682f28b21a209596ae567a6e671e9 100644 --- a/maven-plugin/src/main/resources/hudson/maven/RedeployPublisher/config_pt_BR.properties +++ b/maven-plugin/src/main/resources/hudson/maven/RedeployPublisher/config_pt_BR.properties @@ -21,3 +21,6 @@ # THE SOFTWARE. Repository\ URL=URL do reposit\u00F3rio +Deploy\ even\ if\ the\ build\ is\ unstable= +Repository\ ID= +Assign\ unique\ versions\ to\ snapshots= diff --git a/maven-plugin/src/main/resources/hudson/maven/RedeployPublisher/help-evenIfUnstable.html b/maven-plugin/src/main/resources/hudson/maven/RedeployPublisher/help-evenIfUnstable.html new file mode 100644 index 0000000000000000000000000000000000000000..8ada06335c5f80285eace675dc0b84b48a2be420 --- /dev/null +++ b/maven-plugin/src/main/resources/hudson/maven/RedeployPublisher/help-evenIfUnstable.html @@ -0,0 +1,8 @@ +
        + If checked, the deployment will be performed even if the build is unstable. + +

        + This can be useful if the same build definition is being used for continuous integration + and to deploy nightly snapshots. +

        +
        diff --git a/maven-plugin/src/main/resources/hudson/maven/RedeployPublisher/help-evenIfUnstable_de.html b/maven-plugin/src/main/resources/hudson/maven/RedeployPublisher/help-evenIfUnstable_de.html new file mode 100644 index 0000000000000000000000000000000000000000..2fc1f8b8a54e365e4aed279616afd5fa49b500ef --- /dev/null +++ b/maven-plugin/src/main/resources/hudson/maven/RedeployPublisher/help-evenIfUnstable_de.html @@ -0,0 +1,9 @@ +
        + Wenn angewählt, wird das Modul ausgebracht (deploy), selbst wenn der Build + instabil ist. + +

        + Dies kann sinnvoll sein, wenn dieselbe Build-Konfiguration beispielsweise sowohl für + Continuous Integration als auch für nächtliche Schnappschüsse verwendet wird. +

        +
        diff --git a/war/resources/help/maven/redeploy-id.html b/maven-plugin/src/main/resources/hudson/maven/RedeployPublisher/help-id.html similarity index 100% rename from war/resources/help/maven/redeploy-id.html rename to maven-plugin/src/main/resources/hudson/maven/RedeployPublisher/help-id.html diff --git a/maven-plugin/src/main/resources/hudson/maven/RedeployPublisher/help-id_de.html b/maven-plugin/src/main/resources/hudson/maven/RedeployPublisher/help-id_de.html new file mode 100644 index 0000000000000000000000000000000000000000..8522093f3e1bfdf134894a5faa2fcb7ae84d2a79 --- /dev/null +++ b/maven-plugin/src/main/resources/hudson/maven/RedeployPublisher/help-id_de.html @@ -0,0 +1,15 @@ +
        \ No newline at end of file diff --git a/maven-plugin/src/main/resources/hudson/maven/RedeployPublisher/help-id_fr.html b/maven-plugin/src/main/resources/hudson/maven/RedeployPublisher/help-id_fr.html new file mode 100644 index 0000000000000000000000000000000000000000..420e316a8201e3cabe49ce41afa6cf6c20402279 --- /dev/null +++ b/maven-plugin/src/main/resources/hudson/maven/RedeployPublisher/help-id_fr.html @@ -0,0 +1,15 @@ +
        + For some repository URL (such as scpexe), Maven may require + additional configuration (such as user name, executable path, etc.) + + Maven wants you to specify this in ~/.m2/settings.xml of + the user that runs Hudson, and this ID value is used to retrieve + the setting information from this file (that is, the <server> + element with this ID value will be consulted for various + protocol-specific configuration values.) + +

        + See + the maven-deploy-plugin usage + page for more details. +

        \ No newline at end of file diff --git a/war/resources/help/maven/redeploy-id_ja.html b/maven-plugin/src/main/resources/hudson/maven/RedeployPublisher/help-id_ja.html similarity index 100% rename from war/resources/help/maven/redeploy-id_ja.html rename to maven-plugin/src/main/resources/hudson/maven/RedeployPublisher/help-id_ja.html diff --git a/war/resources/help/maven/redeploy-uniqueVersion.html b/maven-plugin/src/main/resources/hudson/maven/RedeployPublisher/help-uniqueVersion.html similarity index 100% rename from war/resources/help/maven/redeploy-uniqueVersion.html rename to maven-plugin/src/main/resources/hudson/maven/RedeployPublisher/help-uniqueVersion.html diff --git a/maven-plugin/src/main/resources/hudson/maven/RedeployPublisher/help-uniqueVersion_de.html b/maven-plugin/src/main/resources/hudson/maven/RedeployPublisher/help-uniqueVersion_de.html new file mode 100644 index 0000000000000000000000000000000000000000..233128d78b2e1ae08061ad44b30523986c0f32ac --- /dev/null +++ b/maven-plugin/src/main/resources/hudson/maven/RedeployPublisher/help-uniqueVersion_de.html @@ -0,0 +1,8 @@ +
        + Wenn angewählt, wird beim Deployment eine eindeutige Versionsnummer zugeordnet + (basierend auf einem Zeitstempel), wenn die Versionen mit -SNAPSHOT enden. + +

        + In den allermeisten Fällen ist dies jedoch im Zusammenspiel mit Continuous-Integration-Servern + (wie z.B. Hudson) wenig sinnvoll. +

        \ No newline at end of file diff --git a/maven-plugin/src/main/resources/hudson/maven/RedeployPublisher/help-uniqueVersion_fr.html b/maven-plugin/src/main/resources/hudson/maven/RedeployPublisher/help-uniqueVersion_fr.html new file mode 100644 index 0000000000000000000000000000000000000000..55cf29b989e9c23029772114fe4df6135a3bc098 --- /dev/null +++ b/maven-plugin/src/main/resources/hudson/maven/RedeployPublisher/help-uniqueVersion_fr.html @@ -0,0 +1,8 @@ +
        + If checked, the deployment will assign timestamp-based unique version number + to the deployed artifacts, when their versions end with -SNAPSHOT. + +

        + To the best of my knowledge, this is almost never a useful option especially + for CI servers like Hudson. +

        \ No newline at end of file diff --git a/war/resources/help/maven/redeploy-uniqueVersion_ja.html b/maven-plugin/src/main/resources/hudson/maven/RedeployPublisher/help-uniqueVersion_ja.html similarity index 100% rename from war/resources/help/maven/redeploy-uniqueVersion_ja.html rename to maven-plugin/src/main/resources/hudson/maven/RedeployPublisher/help-uniqueVersion_ja.html diff --git a/war/resources/help/maven/redeploy-url.html b/maven-plugin/src/main/resources/hudson/maven/RedeployPublisher/help-url.html similarity index 100% rename from war/resources/help/maven/redeploy-url.html rename to maven-plugin/src/main/resources/hudson/maven/RedeployPublisher/help-url.html diff --git a/maven-plugin/src/main/resources/hudson/maven/RedeployPublisher/help-url_de.html b/maven-plugin/src/main/resources/hudson/maven/RedeployPublisher/help-url_de.html new file mode 100644 index 0000000000000000000000000000000000000000..97d8dad7dce7d6f858590ab22c3389c0759e43fd --- /dev/null +++ b/maven-plugin/src/main/resources/hudson/maven/RedeployPublisher/help-url_de.html @@ -0,0 +1,4 @@ +
        + Gibt die URL des Maven-Repositories an, in das die Artefakte ausgebracht (deployed) + werden sollen, z.B. scp://server.acme.org/export/home/maven/repository/. +
        \ No newline at end of file diff --git a/maven-plugin/src/main/resources/hudson/maven/RedeployPublisher/help-url_fr.html b/maven-plugin/src/main/resources/hudson/maven/RedeployPublisher/help-url_fr.html new file mode 100644 index 0000000000000000000000000000000000000000..cee303464bf240080691db45c409da7a1ac469e8 --- /dev/null +++ b/maven-plugin/src/main/resources/hudson/maven/RedeployPublisher/help-url_fr.html @@ -0,0 +1,4 @@ +
        + Specify the URL of the Maven repository to deploy artifacts to, + such as scp://server.acme.org/export/home/maven/repository/ +
        \ No newline at end of file diff --git a/war/resources/help/maven/redeploy-url_ja.html b/maven-plugin/src/main/resources/hudson/maven/RedeployPublisher/help-url_ja.html similarity index 100% rename from war/resources/help/maven/redeploy-url_ja.html rename to maven-plugin/src/main/resources/hudson/maven/RedeployPublisher/help-url_ja.html diff --git a/war/resources/help/maven/redeploy.html b/maven-plugin/src/main/resources/hudson/maven/RedeployPublisher/help.html similarity index 100% rename from war/resources/help/maven/redeploy.html rename to maven-plugin/src/main/resources/hudson/maven/RedeployPublisher/help.html diff --git a/maven-plugin/src/main/resources/hudson/maven/RedeployPublisher/help_de.html b/maven-plugin/src/main/resources/hudson/maven/RedeployPublisher/help_de.html new file mode 100644 index 0000000000000000000000000000000000000000..a6b2d79f3e6ecd36a5ba2ff8670ea20deb37fbc6 --- /dev/null +++ b/maven-plugin/src/main/resources/hudson/maven/RedeployPublisher/help_de.html @@ -0,0 +1,14 @@ +
        + Bringt Artefakte in ein Maven-Repository aus (deployment). Im Gegensatz zum + üblichen mvn deploy, bringt dieses Funktionsmerkmal Artefakte erst dann aus, + wenn der komplette Build erfolgreich abgeschlossen wurde. + +

        + Dies verhindert ein typisches Problem im Zusammenspiel mit Maven, bei dem zunächst einige + Module bereits ausgebracht werden, bevor etwas später im Build ein kritischer Fehler + entdeckt wird - und somit das Repository in einen inkonsistenten Zustand gerät. + +

        + Hinweis: Unabhängig von dieser Einstellung können Sie aber auch jederzeit manuell + Artefakte aus durchgeführten Builds in beliebige Repositories ausbringen. +

        \ No newline at end of file diff --git a/maven-plugin/src/main/resources/hudson/maven/RedeployPublisher/help_fr.html b/maven-plugin/src/main/resources/hudson/maven/RedeployPublisher/help_fr.html new file mode 100644 index 0000000000000000000000000000000000000000..681130a1af4db6c03d15f73db152300a328b79c4 --- /dev/null +++ b/maven-plugin/src/main/resources/hudson/maven/RedeployPublisher/help_fr.html @@ -0,0 +1,16 @@ +
        + + Deploy artifacts to a Maven repository. In comparison with the standard mvn deploy, + this feature allows you to deploy artifacts after the entire build is confirmed to be + successful. + +

        + This prevents a typical problem in Maven, where some modules are deployed before + a critical failure is discovered later down the road, rendering the repository state + inconsistent. + +

        + Note that regardless of this configuration, you can always manually come back + to Hudson and deploy any of the past artifacts to any repository of your choice, + after the fact. +

        \ No newline at end of file diff --git a/maven-plugin/src/main/resources/hudson/maven/RedeployPublisher/help_ja.html b/maven-plugin/src/main/resources/hudson/maven/RedeployPublisher/help_ja.html new file mode 100644 index 0000000000000000000000000000000000000000..0f97d36b1e526d9b1d4c46808a7c8be6399309b1 --- /dev/null +++ b/maven-plugin/src/main/resources/hudson/maven/RedeployPublisher/help_ja.html @@ -0,0 +1,12 @@ +
        + + æˆæžœç‰©ã‚’Mavenã®ãƒªãƒã‚¸ãƒˆãƒªã«ãƒ‡ãƒ—ロイã—ã¾ã™ã€‚標準ã®mvn deployã¨ã®é•ã„ã¯ã€ + ã™ã¹ã¦ã®ãƒ“ルドãŒæˆåŠŸã—ãŸã“ã¨ã‚’確èªã—ã¦ã‹ã‚‰æˆæžœç‰©ã‚’デプロイã§ãã‚‹ã“ã¨ã§ã™ã€‚ + +

        + ã“ã®æ©Ÿèƒ½ã‚’使ã†ã¨ã€è‡´å‘½çš„ãªå¤±æ•—ãŒèµ·ãã‚‹å‰ã«ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ãŒãƒ‡ãƒ—ロイã•ã‚Œã¦ã€ + リãƒã‚¸ãƒˆãƒªãŒçŸ›ç›¾ã—ãŸçŠ¶æ…‹ã«ãªã£ã¦ã—ã¾ã†Mavenã§ã¯ã‚ˆãã‚ã‚‹å•é¡Œã‚’解決ã—ã¾ã™ã€‚ + +

        + ã“ã®è¨­å®šã‚’è¡Œã£ã¦ã„ã‚‹ã‹ã«ã‚ˆã‚‰ãšã€Hudsonã®ç”»é¢ã‹ã‚‰ã„ã¤ã§ã‚‚éŽåŽ»ã®æˆæžœç‰©ã‚’ä»»æ„ã®ãƒªãƒã‚¸ãƒˆãƒªã«ãƒ‡ãƒ—ロイã§ãã¾ã™ã€‚ +

        \ No newline at end of file diff --git a/maven-plugin/src/main/resources/hudson/maven/reporters/MavenAbstractArtifactRecord/badge_da.properties b/maven-plugin/src/main/resources/hudson/maven/reporters/MavenAbstractArtifactRecord/badge_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..200fc42e4a99106413b47f520b389af7e1335180 --- /dev/null +++ b/maven-plugin/src/main/resources/hudson/maven/reporters/MavenAbstractArtifactRecord/badge_da.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Deployed\ to\ repository=Sendt til Mavenarkiv diff --git a/maven-plugin/src/main/resources/hudson/maven/reporters/MavenAbstractArtifactRecord/badge_de.properties b/maven-plugin/src/main/resources/hudson/maven/reporters/MavenAbstractArtifactRecord/badge_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..d03d187e8780428575399a08e143e40b4ee07a35 --- /dev/null +++ b/maven-plugin/src/main/resources/hudson/maven/reporters/MavenAbstractArtifactRecord/badge_de.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Deployed\ to\ repository=Ausgebracht in Repository diff --git a/maven-plugin/src/main/resources/hudson/maven/reporters/MavenAbstractArtifactRecord/badge_es.properties b/maven-plugin/src/main/resources/hudson/maven/reporters/MavenAbstractArtifactRecord/badge_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..ae0d740b642eec5a7d0b0424054001fddbcbbbf7 --- /dev/null +++ b/maven-plugin/src/main/resources/hudson/maven/reporters/MavenAbstractArtifactRecord/badge_es.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Deployed\ to\ repository=Desplegar al repositorio diff --git a/maven-plugin/src/main/resources/hudson/maven/reporters/MavenAbstractArtifactRecord/badge_fr.properties b/maven-plugin/src/main/resources/hudson/maven/reporters/MavenAbstractArtifactRecord/badge_fr.properties index a6dded992f8065e982ab902288247b6320e74f45..b27681e0a73739bc4506926e23543685639dc568 100644 --- a/maven-plugin/src/main/resources/hudson/maven/reporters/MavenAbstractArtifactRecord/badge_fr.properties +++ b/maven-plugin/src/main/resources/hudson/maven/reporters/MavenAbstractArtifactRecord/badge_fr.properties @@ -20,4 +20,4 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Deployed\ to\ repository=Déployé sur le repository +Deployed\ to\ repository=Déployé sur le repository diff --git a/maven-plugin/src/main/resources/hudson/maven/reporters/MavenAbstractArtifactRecord/badge_pt_BR.properties b/maven-plugin/src/main/resources/hudson/maven/reporters/MavenAbstractArtifactRecord/badge_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..d22b3864349de9f2682a1951f7b69ce0d6828e28 --- /dev/null +++ b/maven-plugin/src/main/resources/hudson/maven/reporters/MavenAbstractArtifactRecord/badge_pt_BR.properties @@ -0,0 +1,23 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Deployed\ to\ repository= diff --git a/maven-plugin/src/main/resources/hudson/maven/reporters/MavenAbstractArtifactRecord/badge_tr.properties b/maven-plugin/src/main/resources/hudson/maven/reporters/MavenAbstractArtifactRecord/badge_tr.properties index ef413b4c393aa64a02cd7da6f05d79ed356f8814..0a23b0658ecb557be8577ffb9f949aef3bef97b3 100644 --- a/maven-plugin/src/main/resources/hudson/maven/reporters/MavenAbstractArtifactRecord/badge_tr.properties +++ b/maven-plugin/src/main/resources/hudson/maven/reporters/MavenAbstractArtifactRecord/badge_tr.properties @@ -20,4 +20,4 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -Deployed\ to\ repository=Repository''ye deploy edildi +Deployed\ to\ repository=Repository''ye deploy edildi diff --git a/maven-plugin/src/main/resources/hudson/maven/reporters/MavenAbstractArtifactRecord/index_da.properties b/maven-plugin/src/main/resources/hudson/maven/reporters/MavenAbstractArtifactRecord/index_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..efa3d24ba40f7096a561c39cd4ed9e94b29e89c3 --- /dev/null +++ b/maven-plugin/src/main/resources/hudson/maven/reporters/MavenAbstractArtifactRecord/index_da.properties @@ -0,0 +1,26 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Redeploy\ Artifacts=Gensend artifakter +This\ page\ allows\ you\ to\ redeploy\ the\ build\ artifacts\ to\ a\ repository\ after\ the\ fact.=\ +Denne side g\u00f8r det muligt at gensende byggeartifakterne til et Mavenarkiv efter bygget er udf\u00f8rt. +OK=OK diff --git a/maven-plugin/src/main/resources/hudson/maven/reporters/MavenAbstractArtifactRecord/index_de.properties b/maven-plugin/src/main/resources/hudson/maven/reporters/MavenAbstractArtifactRecord/index_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..e6f77381b6da09653b1c8f95a681ce2517fd2720 --- /dev/null +++ b/maven-plugin/src/main/resources/hudson/maven/reporters/MavenAbstractArtifactRecord/index_de.properties @@ -0,0 +1,27 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +This\ page\ allows\ you\ to\ redeploy\ the\ build\ artifacts\ to\ a\ repository\ after\ the\ fact.=\ + Auf dieser Seite können Sie Artefakte im Nachhinein (also nach Abschluss eines Builds) \ + in ein Maven-Repository ausbringen. +Redeploy\ Artifacts=Artefakte ausbringen (deploy) +OK=OK diff --git a/maven-plugin/src/main/resources/hudson/maven/reporters/MavenAbstractArtifactRecord/index_es.properties b/maven-plugin/src/main/resources/hudson/maven/reporters/MavenAbstractArtifactRecord/index_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..78716c05b3041c6d49c5ed30f6bd2383362cf4f1 --- /dev/null +++ b/maven-plugin/src/main/resources/hudson/maven/reporters/MavenAbstractArtifactRecord/index_es.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +OK=Aceptar +This\ page\ allows\ you\ to\ redeploy\ the\ build\ artifacts\ to\ a\ repository\ after\ the\ fact.=Esta p\u00E1gina te permite desplegar los artefactos que se creen correctamente (sin fallos) a un repositorio +Redeploy\ Artifacts=Desplegar artefactos diff --git a/maven-plugin/src/main/resources/hudson/maven/reporters/MavenAbstractArtifactRecord/index_fr.properties b/maven-plugin/src/main/resources/hudson/maven/reporters/MavenAbstractArtifactRecord/index_fr.properties index b9b03465f0087b2d51da8eb9f8fe5176fabe8fe2..a767ce1d7866e2f99fcaf81d91203de43a13f794 100644 --- a/maven-plugin/src/main/resources/hudson/maven/reporters/MavenAbstractArtifactRecord/index_fr.properties +++ b/maven-plugin/src/main/resources/hudson/maven/reporters/MavenAbstractArtifactRecord/index_fr.properties @@ -20,6 +20,6 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -This\ page\ allows\ you\ to\ redeploy\ the\ build\ artifacts\ to\ a\ repository\ after\ the\ fact.=Cette page vous permet de redéployer les artefacts vers un repository après coup. -Redeploy\ Artifacts=Redéployer les artefacts -OK= +This\ page\ allows\ you\ to\ redeploy\ the\ build\ artifacts\ to\ a\ repository\ after\ the\ fact.=Cette page vous permet de redéployer les artefacts vers un repository après coup. +Redeploy\ Artifacts=Redéployer les artefacts +OK= diff --git a/maven-plugin/src/main/resources/hudson/maven/reporters/MavenAbstractArtifactRecord/index_pt_BR.properties b/maven-plugin/src/main/resources/hudson/maven/reporters/MavenAbstractArtifactRecord/index_pt_BR.properties new file mode 100644 index 0000000000000000000000000000000000000000..db0d12ba969e9bd473cb7995eb3e5fff8bdd648b --- /dev/null +++ b/maven-plugin/src/main/resources/hudson/maven/reporters/MavenAbstractArtifactRecord/index_pt_BR.properties @@ -0,0 +1,25 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Redeploy\ Artifacts= +This\ page\ allows\ you\ to\ redeploy\ the\ build\ artifacts\ to\ a\ repository\ after\ the\ fact.= +OK= diff --git a/maven-plugin/src/main/resources/hudson/maven/reporters/MavenAbstractArtifactRecord/index_tr.properties b/maven-plugin/src/main/resources/hudson/maven/reporters/MavenAbstractArtifactRecord/index_tr.properties index a32145e424f6e510948f01da2e7ecf656a333573..7e0fc1e6433dd1b51943cd3311088382ab170559 100644 --- a/maven-plugin/src/main/resources/hudson/maven/reporters/MavenAbstractArtifactRecord/index_tr.properties +++ b/maven-plugin/src/main/resources/hudson/maven/reporters/MavenAbstractArtifactRecord/index_tr.properties @@ -20,5 +20,5 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -This\ page\ allows\ you\ to\ redeploy\ the\ build\ artifacts\ to\ a\ repository\ after\ the\ fact.=\ -Bu sayfa t\u00fcm i\u015flemler bittikten sonra bile yap\u0131land\u0131rma artefaktlar\u0131n\u0131, repository''ye yeniden deploy edebilmeyi sa\u011flar. +This\ page\ allows\ you\ to\ redeploy\ the\ build\ artifacts\ to\ a\ repository\ after\ the\ fact.=\ +Bu sayfa t\u00fcm i\u015flemler bittikten sonra bile yap\u0131land\u0131rma artefaktlar\u0131n\u0131, repository''ye yeniden deploy edebilmeyi sa\u011flar. diff --git a/maven-plugin/src/main/resources/hudson/maven/reporters/Messages.properties b/maven-plugin/src/main/resources/hudson/maven/reporters/Messages.properties index 8ff1fa64f3f72f4a65ee91f4ae57cfe8cefa45e4..d21f995d0c9235edbecd38a6fe5d15147d0d9614 100644 --- a/maven-plugin/src/main/resources/hudson/maven/reporters/Messages.properties +++ b/maven-plugin/src/main/resources/hudson/maven/reporters/Messages.properties @@ -1,6 +1,6 @@ # The MIT License # -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe +# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/maven-plugin/src/main/resources/hudson/maven/reporters/Messages_da.properties b/maven-plugin/src/main/resources/hudson/maven/reporters/Messages_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..30305fa0cc2cb33a574a630802d4cc4401a5b607 --- /dev/null +++ b/maven-plugin/src/main/resources/hudson/maven/reporters/Messages_da.properties @@ -0,0 +1,41 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +MavenJavadocArchiver.FailedToCopy=Kan ikke kopiere Javadocs fra {0} til {1} +ReportAction.DisplayName=Mavenrapporter +MavenFingerprinter.DisplayName=Opsamling af filfingeraftryk +MavenArtifactArchiver.DisplayName=Arkiver atifakterne +BuildInfoRecorder.DisplayName=Opsamle byggeinformation +MavenMailer.DisplayName=E-mail p\u00e5mindelse +MavenJavadocArchiver.DisplayName=Publicer javadoc +MavenArtifact.DeployingAttachedArtifact=Send de vedh\u00e6ftede artifakter {0} +MavenSiteArchiver.DisplayName=Maven genereret site +SurefireArchiver.Recording=[HUDSON] Opsamler test resultater +MavenJavadocArchiver.NoDestDir=Kan ikke finde destDir fra javadoc mojo''en +MavenAbstractArtifactRecord.Displayname=Gensend artifakter +ReportCollector.OutsideSite=Maven rapportens output g\u00f8r til {0}, hvilket ikke er i projektets rapporteringssti {1} +ReportCollector.DisplayName=Opsamle maven rapporter +MavenArtifactArchiver.FailedToInstallToMaster=Det lykkedes ikke at installere artifakten p\u00e5 master''en +MavenArtifact.DeployingMainArtifact=Sender main artifakten {0} +SurefireArchiver.DisplayName=Publicer surefirerapporter +HistoryWidgetImpl.Displayname=Sendingshistorik +SurefireArchiver.NoReportsDir=Kan ikke finde reportsDirectory fra surefire:test mojo''en diff --git a/maven-plugin/src/main/resources/hudson/maven/reporters/Messages_de.properties b/maven-plugin/src/main/resources/hudson/maven/reporters/Messages_de.properties index 60afa1df544b29e2f9873ae7240181449d4f6937..4313f5ec06755a2a0d47a3d1ac331a64e9359c57 100644 --- a/maven-plugin/src/main/resources/hudson/maven/reporters/Messages_de.properties +++ b/maven-plugin/src/main/resources/hudson/maven/reporters/Messages_de.properties @@ -22,6 +22,10 @@ BuildInfoRecorder.DisplayName=Build-Informationen aufzeichnen +HistoryWidgetImpl.Displayname=Entwicklungsverlauf + +MavenAbstractArtifactRecord.Displayname=Artefakte ausbringen (deploy) + MavenArtifact.DeployingMainArtifact=Hauptartefakt {0} wird ausgebracht (deploy) MavenArtifact.DeployingAttachedArtifact=Verknüpfte Artefakte {0} werden ausgebracht (deploy) @@ -36,6 +40,8 @@ MavenJavadocArchiver.NoDestDir=Das Zielverzeichnis f MavenMailer.DisplayName=E-Mail-Benachrichtigung +MavenSiteArchiver.DisplayName=Maven Site + ReportAction.DisplayName=Maven-Berichte ReportCollector.DisplayName=Maven-Berichte aufzeichnen ReportCollector.OutsideSite=Maven-Berichte werden nach {0} ausgegeben, was außerhalb des Projektberichtspfad {1} liegt @@ -43,3 +49,5 @@ ReportCollector.OutsideSite=Maven-Berichte werden nach {0} ausgegeben, was au SurefireArchiver.DisplayName=Surefire-Berichte veröffentlichen SurefireArchiver.NoReportsDir=Das Berichtsverzeichnis konnte nicht vom surefire:test-Mojo ermittelt werden. SurefireArchiver.Recording=[HUDSON] Zeichne Testergebnisse auf + + diff --git a/maven-plugin/src/main/resources/hudson/maven/reporters/Messages_es.properties b/maven-plugin/src/main/resources/hudson/maven/reporters/Messages_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..a4fdc87682aa28d5a694c064668eb1b574f1e75c --- /dev/null +++ b/maven-plugin/src/main/resources/hudson/maven/reporters/Messages_es.properties @@ -0,0 +1,51 @@ +# The MIT License +# +# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +BuildInfoRecorder.DisplayName=Registro de la información de ejecuciones + +MavenArtifact.DeployingMainArtifact=Desplegando el artefacto principal {0} +MavenArtifact.DeployingAttachedArtifact=Desplegando el artefacto adjunto {0} + +MavenArtifactArchiver.DisplayName=Guardar los artefacto producidos +MavenArtifactArchiver.FailedToInstallToMaster=Error al instalar el artefacto en el nodo principal + +MavenFingerprinter.DisplayName=Guardar marcas de fichero + +MavenJavadocArchiver.DisplayName=Publcar javadoc +MavenJavadocArchiver.FailedToCopy=Imposible de copiar Javadoc desd {0} a {1} +MavenJavadocArchiver.NoDestDir=Imposible de idenfificar el directorio destino ''destDir'' del javadoc mojo + +MavenMailer.DisplayName=Notificación por E-mail + +MavenSiteArchiver.DisplayName=Sitio generado por Maven + +ReportAction.DisplayName=Informes de Maven +ReportCollector.DisplayName=Guardar informes de Maven +ReportCollector.OutsideSite=La salida de maven se almacena en {0}, que está fuera de la ruta de informes del proyecto {1} + +SurefireArchiver.DisplayName=Publicar informes de ''surefire'' +SurefireArchiver.NoReportsDir=Imposible de determinar el directorio de informes ''reportsDirectory'' del surefire:test mojo +SurefireArchiver.Recording=[HUDSON] Guardando informes de test + +MavenAbstractArtifactRecord.Displayname=Redesplegar Artefactos +HistoryWidgetImpl.Displayname=Historia de despliegues + diff --git a/maven-plugin/src/main/resources/hudson/maven/reporters/Messages_pt_BR.properties b/maven-plugin/src/main/resources/hudson/maven/reporters/Messages_pt_BR.properties index 61778747a82b3dc53d8734d201245dc0d6668790..a270463b5484f461210fd8a7b1e6012e13ff7797 100644 --- a/maven-plugin/src/main/resources/hudson/maven/reporters/Messages_pt_BR.properties +++ b/maven-plugin/src/main/resources/hudson/maven/reporters/Messages_pt_BR.properties @@ -20,17 +20,27 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -BuildInfoRecorder.DisplayName=Gravar informa\u00E7\u00F5es da constru\u00E7\u00E3o +BuildInfoRecorder.DisplayName=Gravar informa\u00e7\u00f5es da constru\u00e7\u00e3o MavenArtifactArchiver.DisplayName=Arquivar os artefatos -MavenArtifactArchiver.FailedToInstallToMaster=Falhou em instalar artefato para o mestre +MavenArtifactArchiver.FailedToInstallToMaster=Falhou em instalar artefato para o master MavenFingerprinter.DisplayName=Gravar fingerprints MavenJavadocArchiver.DisplayName=Publicar javadoc MavenJavadocArchiver.FailedToCopy=Incapaz de copiar Javadoc de {0} para {1} MavenJavadocArchiver.NoDestDir=Incapaz de obter destDir do mojo javadoc -MavenMailer.DisplayName=Notifica\u00E7\u00E3o de E-mail -ReportAction.DisplayName=Relat\u00F3rios Maven -ReportCollector.DisplayName=Gravar relat\u00F3rios Maven -ReportCollector.OutsideSite=Sa\u00EDda do relat\u00F3rio Maven vai para {0}, que \u00E9 fora do caminho de relat\u00F3rio do projeto {1} -SurefireArchiver.DisplayName=Publicar relat\u00F3rios Surefire +MavenMailer.DisplayName=Notifica\u00e7\u00e3o de E-mail +ReportAction.DisplayName=Relat\u00f3rios Maven +ReportCollector.DisplayName=Gravar relat\u00f3rios Maven +ReportCollector.OutsideSite=Sa\u00edda do relat\u00f3rio Maven vai para {0}, que \u00e9 fora do caminho de relat\u00f3rio do projeto {1} +SurefireArchiver.DisplayName=Publicar relat\u00f3rios Surefire SurefireArchiver.NoReportsDir=Incapaz de obter reportsDirectory do surefire:test mojo -SurefireArchiver.Recording=[HUDSON] Gravando resultados de teste \ No newline at end of file +SurefireArchiver.Recording=[HUDSON] Gravando resultados de teste# Deploying the attached artifact {0} +MavenArtifact.DeployingAttachedArtifact=Fazendo deploy de artefato anexado +# Maven-generated site +MavenSiteArchiver.DisplayName=Site gerado pelo Maven +# Redeploy Artifacts +MavenAbstractArtifactRecord.Displayname=Artefatos de Redeploy +# Deploying the main artifact {0} +MavenArtifact.DeployingMainArtifact=Fazendo deploy do artefato principal {0} +# Deployment History +HistoryWidgetImpl.Displayname=Hist\u00f3rico de Deployment + diff --git a/maven-plugin/src/main/resources/hudson/maven/reporters/SurefireAggregatedReport/index_da.properties b/maven-plugin/src/main/resources/hudson/maven/reporters/SurefireAggregatedReport/index_da.properties new file mode 100644 index 0000000000000000000000000000000000000000..4023887f76e16c2ee1afc3bd138e493a42d56275 --- /dev/null +++ b/maven-plugin/src/main/resources/hudson/maven/reporters/SurefireAggregatedReport/index_da.properties @@ -0,0 +1,27 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +diff=diff +Test\ Result=Testresultat +Module=Modul +Total=I alt +Fail=Fejler diff --git a/maven-plugin/src/main/resources/hudson/maven/reporters/SurefireAggregatedReport/index_es.properties b/maven-plugin/src/main/resources/hudson/maven/reporters/SurefireAggregatedReport/index_es.properties new file mode 100644 index 0000000000000000000000000000000000000000..d83aecaa3ef6f98f80bdd091c8cf80bfbf22371c --- /dev/null +++ b/maven-plugin/src/main/resources/hudson/maven/reporters/SurefireAggregatedReport/index_es.properties @@ -0,0 +1,27 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Total=Total +Fail=Fallos +Module=Módulo +diff=differencias +Test\ Result=Resultado del test diff --git a/maven-plugin/src/main/resources/hudson/maven/reporters/SurefireAggregatedReport/index_sv_SE.properties b/maven-plugin/src/main/resources/hudson/maven/reporters/SurefireAggregatedReport/index_sv_SE.properties new file mode 100644 index 0000000000000000000000000000000000000000..64c4c7dae92f63f1f6f5c6d9915b58daa7d78f40 --- /dev/null +++ b/maven-plugin/src/main/resources/hudson/maven/reporters/SurefireAggregatedReport/index_sv_SE.properties @@ -0,0 +1,27 @@ +# The MIT License +# +# Copyright (c) 2004-2010, Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +Fail=Fel +Module=Modul +Test\ Result=Testresultat +Total=Totalt +diff=diff diff --git a/war/resources/help/maven/aggregator.html b/maven-plugin/src/main/webapp/aggregator.html similarity index 100% rename from war/resources/help/maven/aggregator.html rename to maven-plugin/src/main/webapp/aggregator.html diff --git a/war/resources/help/maven/aggregator_de.html b/maven-plugin/src/main/webapp/aggregator_de.html similarity index 87% rename from war/resources/help/maven/aggregator_de.html rename to maven-plugin/src/main/webapp/aggregator_de.html index 500cd3fdaaf887045fe97a4134657ec79eed2a08..3d64498a33ec5a836de73cc19a146e4a976d6b1b 100644 --- a/war/resources/help/maven/aggregator_de.html +++ b/maven-plugin/src/main/webapp/aggregator_de.html @@ -1,18 +1,18 @@ -
        -

        - Wenn angewählt, baut Hudson jedes einzelne Modul in einem getrennten Build. - Für Projekte mit einer großen Anzahl an Modulen oder mit Modulen, deren Builds - sehr lange dauern, kann diese Option die Gesamtdauer des Builds verkürzen, - da Module parallelisiert gebaut werden können. -

        - Wenn abgewählt, baut Hudson dieses Maven-Projekt genau so, wie Sie es - normalerweise aus der Kommandozeile heraus durchführen würden. -

        - Wenn Ihr Build "Aggerator"-artige Mojos mit Multimodul-Unterstützung verwendet, - sollten Sie diese Option abwählen, damit diese Mojos Zugriff auf alle - Module haben. -

        - Diese Option war bis Hudson 1.133 per Vorgabe angewählt. Wenn Sie Ihr - Projekt also vor dieser Version eingerichtet haben, sollten Sie diese Option - eventuell abwählen. +

        +

        + Wenn angewählt, baut Hudson jedes einzelne Modul in einem getrennten Build. + Für Projekte mit einer großen Anzahl an Modulen oder mit Modulen, deren Builds + sehr lange dauern, kann diese Option die Gesamtdauer des Builds verkürzen, + da Module parallelisiert gebaut werden können. +

        + Wenn abgewählt, baut Hudson dieses Maven-Projekt genau so, wie Sie es + normalerweise aus der Kommandozeile heraus durchführen würden. +

        + Wenn Ihr Build "Aggregator"-artige Mojos mit Multimodul-Unterstützung verwendet, + sollten Sie diese Option abwählen, damit diese Mojos Zugriff auf alle + Module haben. +

        + Diese Option war bis Hudson 1.133 per Vorgabe angewählt. Wenn Sie Ihr + Projekt also vor dieser Version eingerichtet haben, sollten Sie diese Option + eventuell abwählen.

        \ No newline at end of file diff --git a/war/resources/help/maven/aggregator_fr.html b/maven-plugin/src/main/webapp/aggregator_fr.html similarity index 100% rename from war/resources/help/maven/aggregator_fr.html rename to maven-plugin/src/main/webapp/aggregator_fr.html diff --git a/maven-plugin/src/main/webapp/aggregator_ja.html b/maven-plugin/src/main/webapp/aggregator_ja.html new file mode 100644 index 0000000000000000000000000000000000000000..aa99632f7bdbab5b0eae24537a78d1c662dbe248 --- /dev/null +++ b/maven-plugin/src/main/webapp/aggregator_ja.html @@ -0,0 +1,15 @@ +
        +

        + 個々ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ãƒ“ルドを別々ã®ãƒ“ルドã¨ã—ã¦æ‰±ã„ã¾ã™ã€‚ãŸãã•ã‚“ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ãŒã‚るプロジェクトやビルドã«æ™‚é–“ãŒã‹ã‹ã‚‹ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ãŒã‚るプロジェクトã§ã€ + ã“ã®ã‚ªãƒ—ションを使用ã™ã‚‹ã¨ã€ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã‚’並行ã—ã¦ãƒ“ルドã™ã‚‹ã“ã¨ã§ã€ãƒ“ルド全体をスピードアップã§ãã¾ã™ã€‚ + +

        + ã“ã®ã‚ªãƒ—ションを使用ã—ãªã‘ã‚Œã°ã€ã‚³ãƒžãƒ³ãƒ‰ãƒ©ã‚¤ãƒ³ã§å®Ÿè¡Œã™ã‚‹ã®ã¨åŒæ§˜ã«ã€ã“ã®Mavenプロジェクトをビルドã—ã¾ã™ã€‚ + +

        + ビルドãŒ"aggregator"を使用ã—ãŸãƒžãƒ«ãƒãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã®å ´åˆã€mojoãŒã™ã¹ã¦ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã«ã‚¢ã‚¯ã‚»ã‚¹ã§ãるよã†ã«ã“ã®ã‚ªãƒ—ションをãƒã‚§ãƒƒã‚¯ã—ãªã„よã†ã«ã™ã¹ãã§ã™ã€‚ + +

        + Hudson 1.133ã¾ã§ã¯Mavenプロジェクトã®ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã§ã—ãŸã®ã§ã€ã‚‚ã—ãれ以å‰ã«ãƒ—ロジェクトを作æˆã—ãŸã®ã§ã‚ã‚Œã°ã€ã“ã®ã‚ªãƒ—ションを外ã—ãŸæ–¹ãŒã„ã„ã§ã—ょã†ã€‚ + +

        \ No newline at end of file diff --git a/war/resources/help/maven/aggregator_pt_BR.html b/maven-plugin/src/main/webapp/aggregator_pt_BR.html similarity index 100% rename from war/resources/help/maven/aggregator_pt_BR.html rename to maven-plugin/src/main/webapp/aggregator_pt_BR.html diff --git a/war/resources/help/maven/aggregator_ru.html b/maven-plugin/src/main/webapp/aggregator_ru.html similarity index 100% rename from war/resources/help/maven/aggregator_ru.html rename to maven-plugin/src/main/webapp/aggregator_ru.html diff --git a/war/resources/help/maven/aggregator_tr.html b/maven-plugin/src/main/webapp/aggregator_tr.html similarity index 100% rename from war/resources/help/maven/aggregator_tr.html rename to maven-plugin/src/main/webapp/aggregator_tr.html diff --git a/maven-plugin/src/main/webapp/alternate-settings.html b/maven-plugin/src/main/webapp/alternate-settings.html new file mode 100644 index 0000000000000000000000000000000000000000..c373360cbff310b8efd610353156aaf9edddc097 --- /dev/null +++ b/maven-plugin/src/main/webapp/alternate-settings.html @@ -0,0 +1,10 @@ +
        +

        + Specifies a path to an alternate settings.xml file for Maven. This + is equivalent to the -s or --settings options on the Maven command + line. + +

        + This path is relative to the workspace root. + +

        diff --git a/maven-plugin/src/main/webapp/alternate-settings_de.html b/maven-plugin/src/main/webapp/alternate-settings_de.html new file mode 100644 index 0000000000000000000000000000000000000000..7a34dd02dfed70c1c32819bda662554c91c767e1 --- /dev/null +++ b/maven-plugin/src/main/webapp/alternate-settings_de.html @@ -0,0 +1,10 @@ +
        +

        + Gibt den Pfad zu einer alternativen Settings-Datei für Maven an. + Dies entspricht der Option -s bzw. --settings + der Maven-Kommandozeile. + +

        + Der Pfad ist relativ zum Stammverzeichnis des Arbeitsbereiches. + +

        diff --git a/maven-plugin/src/main/webapp/alternate-settings_ja.html b/maven-plugin/src/main/webapp/alternate-settings_ja.html new file mode 100644 index 0000000000000000000000000000000000000000..65e96f9e933baac78caf836d558156a9c0d8dfb8 --- /dev/null +++ b/maven-plugin/src/main/webapp/alternate-settings_ja.html @@ -0,0 +1,8 @@ +
        +

        + Mavenã®settings.xmlã®ä»£æ›¿ã¨ãªã‚‹ãƒ•ã‚¡ã‚¤ãƒ«ã®ãƒ‘スを指定ã—ã¾ã™ã€‚ + Mavenã®ã‚³ãƒžãƒ³ãƒ‰ãƒ©ã‚¤ãƒ³ã§ "-s"ã‚‚ã—ãã¯"--settings"オプションを指定ã™ã‚‹ã®ã¨åŒç­‰ã®æ©Ÿèƒ½ã§ã™ã€‚ + +

        + パスã¯ãƒ¯ãƒ¼ã‚¯ã‚¹ãƒšãƒ¼ã‚¹ã®ãƒ«ãƒ¼ãƒˆã‹ã‚‰ã®ç›¸å¯¾ãƒ‘スã§ã™ã€‚ +

        diff --git a/maven-plugin/src/main/webapp/archivingDisabled.html b/maven-plugin/src/main/webapp/archivingDisabled.html new file mode 100644 index 0000000000000000000000000000000000000000..3377475a1aec60e02806a527b74eeb839be8c979 --- /dev/null +++ b/maven-plugin/src/main/webapp/archivingDisabled.html @@ -0,0 +1,6 @@ +
        + If checked, Hudson will not automatically archive all artifacts + generated by this project. If you wish to archive the results of + this build within Hudson, you will need to use the "Archive the + Artifacts" post-build option below. +
        \ No newline at end of file diff --git a/maven-plugin/src/main/webapp/archivingDisabled_de.html b/maven-plugin/src/main/webapp/archivingDisabled_de.html new file mode 100644 index 0000000000000000000000000000000000000000..73b26a0c65a25977e63d5bdea0d1bdbccf81cc6d --- /dev/null +++ b/maven-plugin/src/main/webapp/archivingDisabled_de.html @@ -0,0 +1,6 @@ +
        + Wenn angewählt, wird Hudson Buildartefakte dieses Projekts nicht + mehr automatisch archivieren. Wenn Sie trotzdem gezielt einzelne Ergebnisse + eines Builds innerhalb von Hudson archivieren möchten, verwenden Sie + die Option "Artefakte archivieren" in den Post-Build-Aktionen weiter unten. +
        \ No newline at end of file diff --git a/maven-plugin/src/main/webapp/archivingDisabled_ja.html b/maven-plugin/src/main/webapp/archivingDisabled_ja.html new file mode 100644 index 0000000000000000000000000000000000000000..4b9526165e5b87d36d92fc5afc414ce7fde288c1 --- /dev/null +++ b/maven-plugin/src/main/webapp/archivingDisabled_ja.html @@ -0,0 +1,4 @@ +
        + ã“ã®ã‚ªãƒ—ションを設定ã™ã‚‹ã¨ã€ã“ã®ãƒ—ロジェクトãŒç”Ÿæˆã™ã‚‹ã™ã¹ã¦ã®æˆæžœç‰©ã‚’自動的ã«ä¿å­˜ã—ã¾ã›ã‚“。 + ビルドã®çµæžœã‚’ä¿å­˜ã—ãŸã„å ´åˆã¯ã€"ビルド後ã®å‡¦ç†"ã®"æˆæžœç‰©ã‚’ä¿å­˜"を設定ã™ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚ +
        \ No newline at end of file diff --git a/war/resources/help/maven/goals.html b/maven-plugin/src/main/webapp/goals.html similarity index 100% rename from war/resources/help/maven/goals.html rename to maven-plugin/src/main/webapp/goals.html diff --git a/war/resources/help/maven/goals_de.html b/maven-plugin/src/main/webapp/goals_de.html similarity index 98% rename from war/resources/help/maven/goals_de.html rename to maven-plugin/src/main/webapp/goals_de.html index d98e135c1c2be452718d41aae5dafcc1c3d1fc5a..bfe0aba6f20694862594d644e252cff4b4b46c9b 100644 --- a/war/resources/help/maven/goals_de.html +++ b/maven-plugin/src/main/webapp/goals_de.html @@ -1,6 +1,6 @@ -
        - Geben Sie hier die Ziele (goals) an, die ausgeführt werden sollen, - z.B. "clean install" oder "deploy". Dieses Feld akzeptiert - auch alle weiteren Maven-Kommandozeilenoptionen wie beispielsweise - "-e" oder "-Dmaven.test.skip=true". +
        + Geben Sie hier die Ziele (goals) an, die ausgeführt werden sollen, + z.B. "clean install" oder "deploy". Dieses Feld akzeptiert + auch alle weiteren Maven-Kommandozeilenoptionen wie beispielsweise + "-e" oder "-Dmaven.test.skip=true".
        \ No newline at end of file diff --git a/war/resources/help/maven/goals_fr.html b/maven-plugin/src/main/webapp/goals_fr.html similarity index 100% rename from war/resources/help/maven/goals_fr.html rename to maven-plugin/src/main/webapp/goals_fr.html diff --git a/war/resources/help/maven/goals_ja.html b/maven-plugin/src/main/webapp/goals_ja.html similarity index 100% rename from war/resources/help/maven/goals_ja.html rename to maven-plugin/src/main/webapp/goals_ja.html diff --git a/war/resources/help/maven/goals_pt_BR.html b/maven-plugin/src/main/webapp/goals_pt_BR.html similarity index 100% rename from war/resources/help/maven/goals_pt_BR.html rename to maven-plugin/src/main/webapp/goals_pt_BR.html diff --git a/war/resources/help/maven/goals_ru.html b/maven-plugin/src/main/webapp/goals_ru.html similarity index 100% rename from war/resources/help/maven/goals_ru.html rename to maven-plugin/src/main/webapp/goals_ru.html diff --git a/war/resources/help/maven/goals_tr.html b/maven-plugin/src/main/webapp/goals_tr.html similarity index 100% rename from war/resources/help/maven/goals_tr.html rename to maven-plugin/src/main/webapp/goals_tr.html diff --git a/war/resources/help/maven/ignore-upstrem-changes.html b/maven-plugin/src/main/webapp/ignore-upstrem-changes.html similarity index 100% rename from war/resources/help/maven/ignore-upstrem-changes.html rename to maven-plugin/src/main/webapp/ignore-upstrem-changes.html diff --git a/maven-plugin/src/main/webapp/ignore-upstrem-changes_de.html b/maven-plugin/src/main/webapp/ignore-upstrem-changes_de.html new file mode 100644 index 0000000000000000000000000000000000000000..65f6b7aaeff8304dfe8c7783dc7e85eb7cd504c5 --- /dev/null +++ b/maven-plugin/src/main/webapp/ignore-upstrem-changes_de.html @@ -0,0 +1,15 @@ +
        + Wenn angewählt, liest Hudson die POM-Dateien dieses Projekts ein und überprüft, + ob SNAPSHOT-Abhängigkeiten dieses Projekts ebenfalls auf derselben Hudson-Instanz gebaut werden. + Wenn ja, richtet Hudson automatisch folgende Build-Abhängigkeit ein: Wann immer die + SNAPSHOT-Abhängigkeit neu gebaut wird und ein neue SNAPSHOT-Jar-Datei erzeugt wird, wird auch + dieses Projekt anschließend neu gebaut. + +

        + Hudson findet SNAPSHOT-Abhängigkeiten durch Auswertung der POM-Elemente <dependency>, + <plugin> und <extension>. + +

        + Dies erlaubt auf sehr bequeme Weise, kontinuierliche Integration zu automatisieren. + Bei Problemen mit diesem Verhalten wählen Sie die Option ab. +

        \ No newline at end of file diff --git a/war/resources/help/maven/ignore-upstrem-changes_fr.html b/maven-plugin/src/main/webapp/ignore-upstrem-changes_fr.html similarity index 98% rename from war/resources/help/maven/ignore-upstrem-changes_fr.html rename to maven-plugin/src/main/webapp/ignore-upstrem-changes_fr.html index 9aa50a98b052c19f2f8324b89c2dd2301ad07932..9df419d0635631f04eb9b484d046d217dc1a6e0a 100644 --- a/war/resources/help/maven/ignore-upstrem-changes_fr.html +++ b/maven-plugin/src/main/webapp/ignore-upstrem-changes_fr.html @@ -1,17 +1,17 @@ 
        - Si cette case est cochée, Hudson parcourera les fichiers POM de ce - projet et verra si une des dépendances SNAPSHOT sont construites - également sur ce serveur Hudson. Dans ce cas, Hudson positionnera une - relation dépendance de build, de façon à ce que, à chaque fois que le job - dont il dépend est construit et qu'un nouveau jar SNAPSHOT est créé, + Si cette case est cochée, Hudson parcourera les fichiers POM de ce + projet et verra si une des dépendances SNAPSHOT sont construites + également sur ce serveur Hudson. Dans ce cas, Hudson positionnera une + relation dépendance de build, de façon à ce que, à chaque fois que le job + dont il dépend est construit et qu'un nouveau jar SNAPSHOT est créé, Hudson programme un nouveau build pour ce projet. -

        - Cela est pratique pour obtenir une intégration continue automatique. - Hudson vérifiera que les dépendances SNAPSHOT de l'élément +

        + Cela est pratique pour obtenir une intégration continue automatique. + Hudson vérifiera que les dépendances SNAPSHOT de l'élément <dependency> dans le POM, ainsi que les <plugin>s et les <extension>s utilisés dans les POMs. -

        +

        Si ce comportement est problématique, décochez cette option.

        \ No newline at end of file diff --git a/war/resources/help/maven/ignore-upstrem-changes_ja.html b/maven-plugin/src/main/webapp/ignore-upstrem-changes_ja.html similarity index 100% rename from war/resources/help/maven/ignore-upstrem-changes_ja.html rename to maven-plugin/src/main/webapp/ignore-upstrem-changes_ja.html diff --git a/maven-plugin/src/main/webapp/incremental.html b/maven-plugin/src/main/webapp/incremental.html new file mode 100644 index 0000000000000000000000000000000000000000..6c7677b10a527efad75527204aa5e1ea25831425 --- /dev/null +++ b/maven-plugin/src/main/webapp/incremental.html @@ -0,0 +1,15 @@ +
        +

        + If checked, Hudson will only build any modules with changes from SCM + and any modules which depend on those changed modules, using Maven's + "-amd -pl group1:artifact1,group1:artifact2" command-line + options. If the SCM reports no changes to any modules, however, all + modules will be + built. See http://docs.codehaus.org/display/MAVEN/Make+Like+Reactor+Mode + for more information on the Maven behavior this utilizes. + +

        + This functionality requires Maven 2.1 or later, and will not have + any impact if "Build modules in parallel" is selected. + +

        diff --git a/maven-plugin/src/main/webapp/incremental_de.html b/maven-plugin/src/main/webapp/incremental_de.html new file mode 100644 index 0000000000000000000000000000000000000000..2dd5f1391e6c99267c443b1ca6cce241068652b5 --- /dev/null +++ b/maven-plugin/src/main/webapp/incremental_de.html @@ -0,0 +1,13 @@ +
        + Wenn angewählt, baut Hudson nur Module mit SCM-Änderungen sowie diejenigen Module, + die von diesen geänderten Modulen abhängen. Hudson verwendet dazu + Mavens Kommandozeilenoption "-amd -pl group1:artifact1,group1:artifact2". + Wenn das SCM-System hingegen in keinen Modulen Änderungen feststellt, + werden alle Module gebaut. Mehr zur diesem Maven-Verhalten finden Sie unter + http://docs.codehaus.org/display/MAVEN/Make+Like+Reactor+Mode. + +

        + Diese Funktion erfordert Maven 2.1 oder höher und wird ignoriert, + wenn "Baue Module parallel" angewählt ist. + +

        diff --git a/war/resources/help/maven/maven-opts.html b/maven-plugin/src/main/webapp/maven-opts.html similarity index 100% rename from war/resources/help/maven/maven-opts.html rename to maven-plugin/src/main/webapp/maven-opts.html diff --git a/war/resources/help/maven/maven-opts_de.html b/maven-plugin/src/main/webapp/maven-opts_de.html similarity index 98% rename from war/resources/help/maven/maven-opts_de.html rename to maven-plugin/src/main/webapp/maven-opts_de.html index 2ded0b00098101b912a1b5dda3b88d9cc752c033..085e4fecbc67e95b9633627e49d764ad9e9ce7aa 100644 --- a/war/resources/help/maven/maven-opts_de.html +++ b/maven-plugin/src/main/webapp/maven-opts_de.html @@ -1,9 +1,9 @@ -
        - Geben Sie die JVM-Optionen an, die für den Aufruf von Maven als externen - Prozess benötigt werden. - Mehr dazu in der Dokumentation der MAVEN_OPTS (auf Englisch) - - die dort dokumentierten Optionen für Maven 1.x treffen auch für Maven 2.x zu. -

        - Dieses Feld unterstützt die Expansion von Umgebungsvariablen - ähnlich der - Verwendung in einer Shell - mittels der Syntax ${VARIABLE}. +

        + Geben Sie die JVM-Optionen an, die für den Aufruf von Maven als externen + Prozess benötigt werden. + Mehr dazu in der Dokumentation der MAVEN_OPTS (auf Englisch) + - die dort dokumentierten Optionen für Maven 1.x treffen auch für Maven 2.x zu. +

        + Dieses Feld unterstützt die Expansion von Umgebungsvariablen - ähnlich der + Verwendung in einer Shell - mittels der Syntax ${VARIABLE}.

        \ No newline at end of file diff --git a/war/resources/help/maven/maven-opts_fr.html b/maven-plugin/src/main/webapp/maven-opts_fr.html similarity index 100% rename from war/resources/help/maven/maven-opts_fr.html rename to maven-plugin/src/main/webapp/maven-opts_fr.html diff --git a/war/resources/help/maven/maven-opts_ja.html b/maven-plugin/src/main/webapp/maven-opts_ja.html similarity index 100% rename from war/resources/help/maven/maven-opts_ja.html rename to maven-plugin/src/main/webapp/maven-opts_ja.html diff --git a/war/resources/help/maven/maven-opts_pt_BR.html b/maven-plugin/src/main/webapp/maven-opts_pt_BR.html similarity index 100% rename from war/resources/help/maven/maven-opts_pt_BR.html rename to maven-plugin/src/main/webapp/maven-opts_pt_BR.html diff --git a/war/resources/help/maven/maven-opts_ru.html b/maven-plugin/src/main/webapp/maven-opts_ru.html similarity index 100% rename from war/resources/help/maven/maven-opts_ru.html rename to maven-plugin/src/main/webapp/maven-opts_ru.html diff --git a/war/resources/help/maven/maven-opts_tr.html b/maven-plugin/src/main/webapp/maven-opts_tr.html similarity index 100% rename from war/resources/help/maven/maven-opts_tr.html rename to maven-plugin/src/main/webapp/maven-opts_tr.html diff --git a/maven-plugin/src/main/webapp/maven-opts_zh_CN.html b/maven-plugin/src/main/webapp/maven-opts_zh_CN.html new file mode 100644 index 0000000000000000000000000000000000000000..df03f210a0418aef360c5157ccf4567970d00299 --- /dev/null +++ b/maven-plugin/src/main/webapp/maven-opts_zh_CN.html @@ -0,0 +1,7 @@ +
        + 在å¯åŠ¨Maven时指定需è¦çš„JVM选项. + å¯ä»¥å‚阅MAVEN_OPTS文档 + (尽管这是Maven1.x文档,但是åŒæ ·é€‚用于Maven2.x) +

        + è¦æƒ³åœ¨è¿™é‡Œä½¿ç”¨Shell环境å˜é‡,使用语法${VARIABLE}. +

        \ No newline at end of file diff --git a/war/resources/help/maven/module-goals.html b/maven-plugin/src/main/webapp/module-goals.html similarity index 100% rename from war/resources/help/maven/module-goals.html rename to maven-plugin/src/main/webapp/module-goals.html diff --git a/war/resources/help/maven/module-goals_de.html b/maven-plugin/src/main/webapp/module-goals_de.html similarity index 98% rename from war/resources/help/maven/module-goals_de.html rename to maven-plugin/src/main/webapp/module-goals_de.html index a18177a9c49bf664d4750e0c472fdff12b00268a..8ac20ad41b572c0a22b0c55d7e27ab46782f7a6a 100644 --- a/war/resources/help/maven/module-goals_de.html +++ b/maven-plugin/src/main/webapp/module-goals_de.html @@ -1,7 +1,7 @@ -
        - Per Vorgabe (oder wenn dieses Feld unverändert oder leer bleibt), bauen - alle Module dieselben Ziele (goals) und Phasen (phases), die in der - Konfiguration des Elters angegeben wurden. - Sie können jedoch diese Einstellung überschreiben, indem Sie hier - einen abweichenden Wert eingeben. +
        + Per Vorgabe (oder wenn dieses Feld unverändert oder leer bleibt), bauen + alle Module dieselben Ziele (goals) und Phasen (phases), die in der + Konfiguration des Elters angegeben wurden. + Sie können jedoch diese Einstellung überschreiben, indem Sie hier + einen abweichenden Wert eingeben.
        \ No newline at end of file diff --git a/war/resources/help/maven/module-goals_fr.html b/maven-plugin/src/main/webapp/module-goals_fr.html similarity index 100% rename from war/resources/help/maven/module-goals_fr.html rename to maven-plugin/src/main/webapp/module-goals_fr.html diff --git a/war/resources/help/maven/module-goals_ja.html b/maven-plugin/src/main/webapp/module-goals_ja.html similarity index 100% rename from war/resources/help/maven/module-goals_ja.html rename to maven-plugin/src/main/webapp/module-goals_ja.html diff --git a/war/resources/help/maven/module-goals_pt_BR.html b/maven-plugin/src/main/webapp/module-goals_pt_BR.html similarity index 100% rename from war/resources/help/maven/module-goals_pt_BR.html rename to maven-plugin/src/main/webapp/module-goals_pt_BR.html diff --git a/war/resources/help/maven/module-goals_ru.html b/maven-plugin/src/main/webapp/module-goals_ru.html similarity index 100% rename from war/resources/help/maven/module-goals_ru.html rename to maven-plugin/src/main/webapp/module-goals_ru.html diff --git a/war/resources/help/maven/module-goals_tr.html b/maven-plugin/src/main/webapp/module-goals_tr.html similarity index 100% rename from war/resources/help/maven/module-goals_tr.html rename to maven-plugin/src/main/webapp/module-goals_tr.html diff --git a/war/resources/help/maven/private-repository.html b/maven-plugin/src/main/webapp/private-repository.html similarity index 92% rename from war/resources/help/maven/private-repository.html rename to maven-plugin/src/main/webapp/private-repository.html index 51a5c55b94678e74c97c5f8a492cc4425bbf730a..e2be0c855d09383492d1015fcf59392340fe18c9 100644 --- a/war/resources/help/maven/private-repository.html +++ b/maven-plugin/src/main/webapp/private-repository.html @@ -26,5 +26,5 @@

        If you'd prefer to activate this mode in all the Maven jobs executed on Hudson, refer to the technique described - here. -

        \ No newline at end of file + here. +
        diff --git a/war/resources/help/maven/private-repository_de.html b/maven-plugin/src/main/webapp/private-repository_de.html similarity index 90% rename from war/resources/help/maven/private-repository_de.html rename to maven-plugin/src/main/webapp/private-repository_de.html index 36244507d3cfb90fe2d248e645bba55155e2b0a4..829236480b1287ebe8fb14effd07cf4d98e392a2 100644 --- a/war/resources/help/maven/private-repository_de.html +++ b/maven-plugin/src/main/webapp/private-repository_de.html @@ -1,30 +1,30 @@ -
        - Normalerweise verwendet Hudson das lokale Maven-Repository so wie es von Maven - bestimmt wird — das exakte Verfahren dafür scheint undokumentiert, aber es ist typischerweise - ~/.m2/repository und kann durch <localRepository> in ~/.m2/settings.xml - überschrieben werden (mehr dazu in der Maven Dokumentation). - -

        - Dies bedeutet, dass sich alle Jobs, die auf dem gleichen Knoten ausgeführt werden, ein gemeinsames - Maven-Repository teilen. Der Vorteil dabei ist, dass dadurch Festplattenplatz gespart werden kann. - Nachteilig ist hingegen, dass diese Jobs sich manchmal in die Quere kommen können. - Beispielsweise können so Builds fälschlicherweise erfolgreich sein, weil zwar alle Abhängigkeiten im lokalen - Repository vorhanden sind, aber keine davon in den Repositories des POMs existiert. - -

        - Es liegen außerdem Problemberichte über nebenläufige Maven-Prozesse vor, die versuchen, - dasselbe lokale Repository zu verwenden. - -

        - Wenn diese Option angewählt ist, startet Hudson Maven mit $WORKSPACE/.repository - als lokalem Maven-Repository. Dadurch verwendet jeder Job ein eigenes, isoliertes Maven-Repository. - Dies löst die oben angesprochenen Probleme auf Kosten eines höheren Speicherplatzbedarfs auf der Festplatte. - -

        - Wenn Sie diese Option verwenden, ziehen Sie die Installation eines Maven-Artefakt-Managers - in Betracht: Dadurch vermeiden Sie zu häufige Zugriffe auf entfernte Maven-Repositories. - -

        - Möchten Sie diese Option in allen Maven-Jobs aktivieren, die über Hudson ausgeführt - werden, folgen Sie den Anweisungen hier. -

        \ No newline at end of file +
        + Normalerweise verwendet Hudson das lokale Maven-Repository so wie es von Maven + bestimmt wird — das exakte Verfahren dafür scheint undokumentiert, aber es ist typischerweise + ~/.m2/repository und kann durch <localRepository> in ~/.m2/settings.xml + überschrieben werden (mehr dazu in der Maven Dokumentation). + +

        + Dies bedeutet, dass sich alle Jobs, die auf dem gleichen Knoten ausgeführt werden, ein gemeinsames + Maven-Repository teilen. Der Vorteil dabei ist, dass dadurch Festplattenplatz gespart werden kann. + Nachteilig ist hingegen, dass diese Jobs sich manchmal in die Quere kommen können. + Beispielsweise können so Builds fälschlicherweise erfolgreich sein, weil zwar alle Abhängigkeiten im lokalen + Repository vorhanden sind, aber keine davon in den Repositories des POMs existiert. + +

        + Es liegen außerdem Problemberichte über nebenläufige Maven-Prozesse vor, die versuchen, + dasselbe lokale Repository zu verwenden. + +

        + Wenn diese Option angewählt ist, startet Hudson Maven mit $WORKSPACE/.repository + als lokalem Maven-Repository. Dadurch verwendet jeder Job ein eigenes, isoliertes Maven-Repository. + Dies löst die oben angesprochenen Probleme auf Kosten eines höheren Speicherplatzbedarfs auf der Festplatte. + +

        + Wenn Sie diese Option verwenden, ziehen Sie die Installation eines Maven-Artefakt-Managers + in Betracht: Dadurch vermeiden Sie zu häufige Zugriffe auf entfernte Maven-Repositories. + +

        + Möchten Sie diese Option in allen Maven-Jobs aktivieren, die über Hudson ausgeführt + werden, folgen Sie den Anweisungen hier. +

        diff --git a/war/resources/help/maven/private-repository_fr.html b/maven-plugin/src/main/webapp/private-repository_fr.html similarity index 93% rename from war/resources/help/maven/private-repository_fr.html rename to maven-plugin/src/main/webapp/private-repository_fr.html index 1e1e21ab325f75be20511ce3747dc75369cdeed5..c887a3b57105bad1ec9b8ffd17a9008976282146 100644 --- a/war/resources/help/maven/private-repository_fr.html +++ b/maven-plugin/src/main/webapp/private-repository_fr.html @@ -29,5 +29,5 @@

        Si vous préférez activer ce mode pour tous les jobs Maven exécutés par Hudson, référez-vous à la technique décrite - ici. -

        \ No newline at end of file + ici. +
        diff --git a/war/resources/help/maven/private-repository_ja.html b/maven-plugin/src/main/webapp/private-repository_ja.html similarity index 92% rename from war/resources/help/maven/private-repository_ja.html rename to maven-plugin/src/main/webapp/private-repository_ja.html index 13f75ff9187ecdf5ee736966aaed770fb12897fd..d5eda363900590192c226e308419dc1084f57774 100644 --- a/war/resources/help/maven/private-repository_ja.html +++ b/maven-plugin/src/main/webapp/private-repository_ja.html @@ -22,6 +22,6 @@

        Hudsonã§å®Ÿè¡Œã™ã‚‹ã™ã¹ã¦ã®Mavenプロジェクトã®ãƒ“ルドã§ã€ã“ã®ãƒ¢ãƒ¼ãƒ‰ã‚’有効ã«ã—ãŸã„ã®ãªã‚‰ã€ - ã“ã“ã§èª¬æ˜Žã•ã‚Œã¦ã„ã‚‹ + ã“ã“ã§èª¬æ˜Žã•ã‚Œã¦ã„ã‚‹ テクニックをå‚考ã«ã—ã¦ãã ã•ã„。 -

        \ No newline at end of file +
      diff --git a/war/resources/help/maven/private-repository_tr.html b/maven-plugin/src/main/webapp/private-repository_tr.html similarity index 92% rename from war/resources/help/maven/private-repository_tr.html rename to maven-plugin/src/main/webapp/private-repository_tr.html index 51a5c55b94678e74c97c5f8a492cc4425bbf730a..e2be0c855d09383492d1015fcf59392340fe18c9 100644 --- a/war/resources/help/maven/private-repository_tr.html +++ b/maven-plugin/src/main/webapp/private-repository_tr.html @@ -26,5 +26,5 @@

      If you'd prefer to activate this mode in all the Maven jobs executed on Hudson, refer to the technique described - here. -

      \ No newline at end of file + here. +
      diff --git a/war/resources/help/maven/root-pom.html b/maven-plugin/src/main/webapp/root-pom.html similarity index 100% rename from war/resources/help/maven/root-pom.html rename to maven-plugin/src/main/webapp/root-pom.html diff --git a/war/resources/help/maven/root-pom_de.html b/maven-plugin/src/main/webapp/root-pom_de.html similarity index 97% rename from war/resources/help/maven/root-pom_de.html rename to maven-plugin/src/main/webapp/root-pom_de.html index fceb97dad4846b6dd409f28bb23af26e07065132..130ef5e540f4f214d32b538b9ccfc73d10988539 100644 --- a/war/resources/help/maven/root-pom_de.html +++ b/maven-plugin/src/main/webapp/root-pom_de.html @@ -1,9 +1,9 @@ -
      - - Wenn in Ihrem Arbeitsbereich die oberste pom.xml-Datei nicht direkt - im Stammverzeichnis des Arbeitsbereiches liegt, geben Sie - hier den Pfad (relativ zum Stammverzeichnis des Arbeitsbereiches) an, - z.B. parent/pom.xml. -
      - Wenn das Feld leer bleibt, wird als Vorgabewert pom.xml verwendet. +
      + + Wenn in Ihrem Arbeitsbereich die oberste pom.xml-Datei nicht direkt + im Stammverzeichnis des Arbeitsbereiches liegt, geben Sie + hier den Pfad (relativ zum Stammverzeichnis des Arbeitsbereiches) an, + z.B. parent/pom.xml. +
      + Wenn das Feld leer bleibt, wird als Vorgabewert pom.xml verwendet.
      \ No newline at end of file diff --git a/war/resources/help/maven/root-pom_fr.html b/maven-plugin/src/main/webapp/root-pom_fr.html similarity index 100% rename from war/resources/help/maven/root-pom_fr.html rename to maven-plugin/src/main/webapp/root-pom_fr.html diff --git a/war/resources/help/maven/root-pom_ja.html b/maven-plugin/src/main/webapp/root-pom_ja.html similarity index 100% rename from war/resources/help/maven/root-pom_ja.html rename to maven-plugin/src/main/webapp/root-pom_ja.html diff --git a/war/resources/help/maven/root-pom_pt_BR.html b/maven-plugin/src/main/webapp/root-pom_pt_BR.html similarity index 100% rename from war/resources/help/maven/root-pom_pt_BR.html rename to maven-plugin/src/main/webapp/root-pom_pt_BR.html diff --git a/war/resources/help/maven/root-pom_ru.html b/maven-plugin/src/main/webapp/root-pom_ru.html similarity index 100% rename from war/resources/help/maven/root-pom_ru.html rename to maven-plugin/src/main/webapp/root-pom_ru.html diff --git a/war/resources/help/maven/root-pom_tr.html b/maven-plugin/src/main/webapp/root-pom_tr.html similarity index 100% rename from war/resources/help/maven/root-pom_tr.html rename to maven-plugin/src/main/webapp/root-pom_tr.html diff --git a/msi/FindJava.java b/msi/FindJava.java new file mode 100644 index 0000000000000000000000000000000000000000..d6b2ebd9072f95e62771832232ab4e56e8ba464e --- /dev/null +++ b/msi/FindJava.java @@ -0,0 +1,5 @@ +public class FindJava { + public static void main(String[] args) { + System.out.print(System.getProperty("java.home")); + } +} diff --git a/msi/build-on-hudson.sh b/msi/build-on-hudson.sh new file mode 100755 index 0000000000000000000000000000000000000000..90f85fca40c3d3d7f2be3f44b94c4b271927032d --- /dev/null +++ b/msi/build-on-hudson.sh @@ -0,0 +1,15 @@ +#!/bin/bash -ex +if [ ! -e "$1" ]; then + echo "Usage: build-on-hudson path/to/war" + exit 1 +fi +if [ "$HUDSON_URL" == "" ]; then + export HUDSON_URL=http://hudson.sfbay/ +fi +tar cvzf bundle.tgz FindJava.java build.sh hudson.wxs +java -jar hudson-cli.jar dist-fork -z bundle.tgz -f hudson.war="$1" -l windows -Z result.tgz bash -ex build.sh hudson.war + +# hack until we fix distfork to avoid pointless intermediate directory +rm -rf distfork* +tar xvzf result.tgz +mv distfork*/hudson-*.msi . diff --git a/msi/build.sh b/msi/build.sh new file mode 100755 index 0000000000000000000000000000000000000000..d6984510133d5bb6277193fbc2470780b9b78579 --- /dev/null +++ b/msi/build.sh @@ -0,0 +1,33 @@ +#!/bin/bash -ex +export PATH=~/tools/native/wix:$PATH + +war="$1" +if [ ! -e "$war" ]; then + echo "build.sh path/to/hudson.war" + exit 1 +fi + +rm -rf tmp || true +mkdir tmp || true +unzip -p "$war" 'WEB-INF/lib/hudson-core-*.jar' > tmp/core.jar +unzip -p tmp/core.jar windows-service/hudson.exe > tmp/hudson.exe +unzip -p tmp/core.jar windows-service/hudson.xml > tmp/hudson.xm_ +# replace executable name to the bundled JRE +sed -e 's|executable.*|executable>%BASE%\\jre\\bin\\java|' < tmp/hudson.xm_ > tmp/hudson.xml + +# capture JRE +javac FindJava.java +JREDIR=$(java -cp . FindJava) +echo "JRE=$JREDIR" +heat dir "$JREDIR" -o jre.wxs -sfrag -sreg -nologo -srd -gg -cg JreComponents -dr JreDir -var var.JreDir + +# version +v=$(unzip -p "$war" META-INF/MANIFEST.MF | grep Implementation-Version | cut -d ' ' -f2 | tr -d '\r') +echo version=$v + +candle -dVERSION=$v -dJreDir="$JREDIR" -dWAR="$war" -nologo -ext WixUIExtension -ext WixUtilExtension hudson.wxs jre.wxs +# '-sval' skips validation. without this, light somehow doesn't work on automated build environment +light -o hudson-$v.msi -sval -nologo -dcl:high -ext WixUIExtension -ext WixUtilExtension hudson.wixobj jre.wixobj + +# avoid bringing back files that we don't care +rm -rf tmp *.class *.wixpdb *.wixobj diff --git a/msi/hudson.wxs b/msi/hudson.wxs new file mode 100644 index 0000000000000000000000000000000000000000..28b26bd0ee810c6341a4264b8fd0f0b7495edd85 --- /dev/null +++ b/msi/hudson.wxs @@ -0,0 +1,107 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + 1 + + 1 + + 1 + + 1 + 1 + 1 + + + + NOT installed + + + + + + + + + + diff --git a/msi/readme.txt b/msi/readme.txt new file mode 100644 index 0000000000000000000000000000000000000000..53e9ee7162fbe6660ac3ab82925c3ddff67329d1 --- /dev/null +++ b/msi/readme.txt @@ -0,0 +1,8 @@ +TOOO: ask for installation directory and port number?` + +Runtime requirements: + - JRE + - WiX toolkit + +Digital signature + - generate .pfx format by using a tool from http://www.microsoft.com/downloads/details.aspx?FamilyID=F9992C94-B129-46BC-B240-414BDFF679A7&displaylang=EN diff --git a/msi/remote-execute.sh b/msi/remote-execute.sh new file mode 100644 index 0000000000000000000000000000000000000000..68d9c0be4d136e2432984f703c0174ad86958afc --- /dev/null +++ b/msi/remote-execute.sh @@ -0,0 +1,3 @@ +#!/bin/bash -ex +tar cvzf send.tgz FindJava.java build.sh hudson.wxs +java -jar hudson-cli.jar dist-fork -z send.tgz -l windows -f hudson.war="$1" -Z result.tgz bash build.sh hudson.war diff --git a/msi/sign.js b/msi/sign.js new file mode 100644 index 0000000000000000000000000000000000000000..ca6ff781cb13d3be508335bc723d628e0b004ef6 --- /dev/null +++ b/msi/sign.js @@ -0,0 +1,12 @@ +// digitally sign an MSI file by the specified PKCS12 key + +var sc= new ActiveXObject('CAPICOM.SignedCode'); +var signer = new ActiveXObject('CAPICOM.Signer'); + +var args = WScript.Arguments; + +signer.Load(args(1)); +sc.FileName = args(0); +sc.Description = args(2); +sc.DescriptionURL = "http://hudson-ci.org/"; +sc.Sign(signer); diff --git a/opensuse/SOURCES/hudson.init.in b/opensuse/SOURCES/hudson.init.in new file mode 100644 index 0000000000000000000000000000000000000000..bdd3e95b12a2f3a8f1599fc680f113dcaf363d4f --- /dev/null +++ b/opensuse/SOURCES/hudson.init.in @@ -0,0 +1,169 @@ +#!/bin/sh +# +# SUSE system statup script for Hudson +# Copyright (C) 2007 Pascal Bleser +# +# This library is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2.1 of the License, or (at +# your option) any later version. +# +# This library is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, +# USA. +# +### BEGIN INIT INFO +# Provides: hudson +# Required-Start: $local_fs $remote_fs $network $time $named +# Should-Start: $time sendmail +# Required-Stop: $local_fs $remote_fs $network $time $named +# Should-Stop: $time sendmail +# Default-Start: 3 5 +# Default-Stop: 0 1 2 6 +# Short-Description: Hudson continuous build server +# Description: Start the Hudson continuous build server +### END INIT INFO + +# Check for missing binaries (stale symlinks should not happen) +HUDSON_WAR="@@WAR@@" +test -r "$HUDSON_WAR" || { echo "$HUDSON_WAR not installed"; + if [ "$1" = "stop" ]; then exit 0; + else exit 5; fi; } + +# Check for existence of needed config file and read it +HUDSON_CONFIG=/etc/sysconfig/hudson +test -r "$HUDSON_CONFIG" || { echo "$HUDSON_CONFIG not existing"; + if [ "$1" = "stop" ]; then exit 0; + else exit 6; fi; } + +HUDSON_PID_FILE="/var/run/hudson.pid" +HUDSON_USER="hudson" +HUDSON_GROUP="hudson" + +# Read config +. "$HUDSON_CONFIG" + +. /etc/rc.status +rc_reset # Reset status of this service + +# Set up environment accordingly to the configuration settings +[ -n "$HUDSON_HOME" ] || { echo "HUDSON_HOME not configured in $HUDSON_CONFIG"; + if [ "$1" = "stop" ]; then exit 0; + else exit 6; fi; } +[ -d "$HUDSON_HOME" ] || { echo "HUDSON_HOME directory does not exist: $HUDSON_HOME"; + if [ "$1" = "stop" ]; then exit 0; + else exit 1; fi; } +export HUDSON_HOME + +if [ -z "$HUDSON_JAVA_HOME" ]; then + . /etc/profile.d/alljava.sh + [ -n "$JAVA_HOME" ] || { echo "Failed to determine JAVA_HOME, set HUDSON_JAVA_HOME in $HUDSON_CONFIG"; + if [ "$1" = "stop" ]; then exit 0; + else exit 6; fi; } +else + JAVA_HOME="$HUDSON_JAVA_HOME" +fi +[ -d "$JAVA_HOME" ] || { echo "Invalid HUDSON_JAVA_HOME: directory does not exist: $JAVA_HOME"; + if [ "$1" = "stop" ]; then exit 0; + else exit 6; fi; } +[ -e "$JAVA_HOME/bin/java" ] || { echo "Invalid HUDSON_JAVA_HOME: bin/java not found under $JAVA_HOME"; + if [ "$1" = "stop" ]; then exit 0; + else exit 6; fi; } +export JAVA_HOME + +JAVA_CMD="$JAVA_HOME/bin/java $HUDSON_JAVA_OPTIONS -jar $HUDSON_WAR" +PARAMS="--javaHome=$JAVA_HOME --logfile=/var/log/hudson/hudson.log" +[ -n "$HUDSON_PORT" ] && PARAMS="$PARAMS --httpPort=$HUDSON_PORT" +[ -n "$HUDSON_DEBUG_LEVEL" ] && PARAMS="$PARAMS --debug=$HUDSON_DEBUG_LEVEL" +[ -n "$HUDSON_HANDLER_STARTUP" ] && PARAMS="$PARAMS --handlerCountStartup=$HUDSON_HANDLER_STARTUP" +[ -n "$HUDSON_HANDLER_MAX" ] && PARAMS="$PARAMS --handlerCountMax=$HUDSON_HANDLER_MAX" +[ -n "$HUDSON_HANDLER_IDLE" ] && PARAMS="$PARAMS --handlerCountMaxIdle=$HUDSON_HANDLER_IDLE" + +if [ "$HUDSON_ENABLE_ACCESS_LOG" = "yes" ]; then + PARAMS="$PARAMS --accessLoggerClassName=winstone.accesslog.SimpleAccessLogger --simpleAccessLogger.format=combined --simpleAccessLogger.file=/var/log/hudson/access_log" +fi + +case "$1" in + start) + echo -n "Starting Hudson " + if /sbin/startproc -l /var/log/hudson.rc -u "$HUDSON_USER" -p "$HUDSON_PID_FILE" $JAVA_CMD $PARAMS; then + rc_status + # get own session ID + MY_SESSION_ID=`/bin/ps h -o sess -p $$` + # get PID + /bin/ps hww -u hudson -o sess,pid,cmd | \ + while read sess pid cmd; do [ "$sess" = "$MY_SESSION_ID" -a "$cmd" = "$JAVA_CMD $PARAMS" ] && echo $pid; done | \ + head -1 > "$HUDSON_PID_FILE" + else + rc_failed 1 + fi + rc_status -v + ;; + stop) + echo -n "Shutting down Hudson " + PID=`cat "$HUDSON_PID_FILE" 2>/dev/null` + if [ -n "$PID" ]; then + if /bin/kill -0 "$PID"; then + # process exists + /bin/kill -INT "$PID" + rc=$? + [ "$rc" = "0" ] && /bin/rm -f "$HUDSON_PID_FILE" + rc_failed "$rc" + else + rc_failed 7 + fi + else + rc_failed 1 + fi + rc_status -v + ;; + try-restart|condrestart) + if test "$1" = "condrestart"; then + echo "${attn} Use try-restart ${done}(LSB)${attn} rather than condrestart ${warn}(RH)${norm}" + fi + $0 status + if test $? = 0; then + $0 restart + else + rc_reset # Not running is not a failure. + fi + rc_status + ;; + restart) + $0 stop + $0 start + rc_status + ;; + force-reload) + echo -n "Reload service Hudson " + $0 try-restart + rc_status + ;; + reload) + rc_failed 3 + rc_status -v + ;; + status) + echo -n "Checking for service Hudson " + /sbin/checkproc -p "$HUDSON_PID_FILE" "$JAVA_HOME/bin/java" + rc_status -v + ;; + probe) + ## Optional: Probe for the necessity of a reload, print out the + ## argument to this init script which is required for a reload. + ## Note: probe is not (yet) part of LSB (as of 1.9) + + test "$HUDSON_CONFIG" -nt "$HUDSON_PID_FILE" && echo reload + ;; + *) + echo "Usage: $0 {start|stop|status|try-restart|restart|force-reload|reload|probe}" + exit 1 + ;; +esac +rc_exit diff --git a/opensuse/SOURCES/hudson.logrotate b/opensuse/SOURCES/hudson.logrotate new file mode 100644 index 0000000000000000000000000000000000000000..33e217822ef8a23b3f6ffe2baa4d82dbfaae8eda --- /dev/null +++ b/opensuse/SOURCES/hudson.logrotate @@ -0,0 +1,13 @@ +/var/log/hudson/hudson.log /var/log/hudson/access_log { + compress + dateext + maxage 365 + rotate 99 + size=+4096k + notifempty + missingok + create 644 + postrotate + kill -SIGALRM `cat /var/run/hudson.pid` + endscript +} diff --git a/opensuse/SOURCES/hudson.repo b/opensuse/SOURCES/hudson.repo new file mode 100644 index 0000000000000000000000000000000000000000..3325b99594d7d0a7fe0f3b1b88276f7a31a2c103 --- /dev/null +++ b/opensuse/SOURCES/hudson.repo @@ -0,0 +1,7 @@ +[hudson] +name=hudson +enabled=1 +autorefresh=0 +baseurl=http://pkg.hudson-labs.org/opensuse/ +type=rpm-md +keeppackages=0 diff --git a/opensuse/SOURCES/hudson.sysconfig.in b/opensuse/SOURCES/hudson.sysconfig.in new file mode 100644 index 0000000000000000000000000000000000000000..a14eeff973090ce57125d2438dab1f35255196a1 --- /dev/null +++ b/opensuse/SOURCES/hudson.sysconfig.in @@ -0,0 +1,78 @@ +## Path: Development/Hudson +## Description: Configuration for the Hudson continuous build server +## Type: string +## Default: "@@HOME@@" +## ServiceRestart: hudson +# +# Directory where Hudson store its configuration and working +# files (checkouts, build reports, artifacts, ...). +# +HUDSON_HOME="@@HOME@@" + +## Type: string +## Default: "" +## ServiceRestart: hudson +# +# Java executable to run Hudson +# When left empty, we'll try to find the suitable Java. +# +HUDSON_JAVA_CMD="" + +## Type: string +## Default: "hudson" +## ServiceRestart: hudson +# +# Unix user account that runs the Hudson daemon +# Be careful when you change this, as you need to update +# permissions of $HUDSON_HOME and /var/log/hudson. +# +HUDSON_USER="hudson" + +## Type: string +## Default: "-Djava.awt.headless=true" +## ServiceRestart: hudson +# +# Options to pass to java when running Hudson. +# +HUDSON_JAVA_OPTIONS="-Djava.awt.headless=true" + +## Type: integer(0:65535) +## Default: 8080 +## ServiceRestart: hudson +# +# Port Hudson is listening on. +# +HUDSON_PORT="8080" + +## Type: integer(1:9) +## Default: 5 +## ServiceRestart: hudson +# +# Debug level for logs -- the higher the value, the more verbose. +# 5 is INFO. +# +HUDSON_DEBUG_LEVEL="5" + +## Type: yesno +## Default: no +## ServiceRestart: hudson +# +# Whether to enable access logging or not. +# +HUDSON_ENABLE_ACCESS_LOG="no" + +## Type: integer +## Default: 100 +## ServiceRestart: hudson +# +# Maximum number of HTTP worker threads. +# +HUDSON_HANDLER_MAX="100" + +## Type: integer +## Default: 20 +## ServiceRestart: hudson +# +# Maximum number of idle HTTP worker threads. +# +HUDSON_HANDLER_IDLE="20" diff --git a/opensuse/SPECS/hudson.spec b/opensuse/SPECS/hudson.spec new file mode 100644 index 0000000000000000000000000000000000000000..d3539ff478b17594d3ba6e1fab24c674ec0af35f --- /dev/null +++ b/opensuse/SPECS/hudson.spec @@ -0,0 +1,705 @@ +# TODO: +# - how to add to the trusted service of the firewall? + +%define _prefix %{_usr}/lib/hudson +%define workdir %{_var}/lib/hudson + +Name: hudson +Version: %{ver} +Release: 1.1 +Summary: Continous Build Server +Source: hudson.war +Source1: hudson.init.in +Source2: hudson.sysconfig.in +Source3: hudson.logrotate +Source4: hudson.repo +URL: https://hudson.dev.java.net/ +Group: Development/Tools/Building +License: MIT/X License, GPL/CDDL, ASL2 +BuildRoot: %{_tmppath}/build-%{name}-%{version} +# see the comment below from java-1.6.0-openjdk.spec that explains this dependency +# java-1.5.0-ibm from jpackage.org set Epoch to 1 for unknown reasons, +# and this change was brought into RHEL-4. java-1.5.0-ibm packages +# also included the epoch in their virtual provides. This created a +# situation where in-the-wild java-1.5.0-ibm packages provided "java = +# 1:1.5.0". In RPM terms, "1.6.0 < 1:1.5.0" since 1.6.0 is +# interpreted as 0:1.6.0. So the "java >= 1.6.0" requirement would be +# satisfied by the 1:1.5.0 packages. Thus we need to set the epoch in +# JDK package >= 1.6.0 to 1, and packages referring to JDK virtual +# provides >= 1.6.0 must specify the epoch, "java >= 1:1.6.0". +# +# java-1_6_0-sun provides this at least +Requires: java-sun >= 1.6.0 +PreReq: /usr/sbin/groupadd /usr/sbin/useradd +#PreReq: %{fillup_prereq} +BuildArch: noarch + +%description +Hudson monitors executions of repeated jobs, such as building a software +project or jobs run by cron. Among those things, current Hudson focuses on the +following two jobs: +- Building/testing software projects continuously, just like CruiseControl or + DamageControl. In a nutshell, Hudson provides an easy-to-use so-called + continuous integration system, making it easier for developers to integrate + changes to the project, and making it easier for users to obtain a fresh + build. The automated, continuous build increases the productivity. +- Monitoring executions of externally-run jobs, such as cron jobs and procmail + jobs, even those that are run on a remote machine. For example, with cron, + all you receive is regular e-mails that capture the output, and it is up to + you to look at them diligently and notice when it broke. Hudson keeps those + outputs and makes it easy for you to notice when something is wrong. + + + + +Authors: +-------- + Kohsuke Kawaguchi + +%prep +%setup -q -T -c + +%build + +%install +rm -rf "%{buildroot}" +%__install -D -m0644 "%{SOURCE0}" "%{buildroot}%{_prefix}/%{name}.war" +%__install -d "%{buildroot}%{workdir}" +%__install -d "%{buildroot}%{workdir}/plugins" + +%__install -d "%{buildroot}/var/log/hudson" + +%__install -D -m0755 "%{SOURCE1}" "%{buildroot}/etc/init.d/%{name}" +%__sed -i 's,@@WAR@@,%{_prefix}/%{name}.war,g' "%{buildroot}/etc/init.d/%{name}" +%__install -d "%{buildroot}/usr/sbin" +%__ln_s "../../etc/init.d/%{name}" "%{buildroot}/usr/sbin/rc%{name}" + +%__install -D -m0600 "%{SOURCE2}" "%{buildroot}/etc/sysconfig/%{name}" +%__sed -i 's,@@HOME@@,%{workdir},g' "%{buildroot}/etc/sysconfig/%{name}" + +%__install -D -m0644 "%{SOURCE3}" "%{buildroot}/etc/logrotate.d/%{name}" + +%__install -D -m0644 "%{SOURCE4}" "%{buildroot}/etc/zypp/repos.d/hudson.repo" +%pre +/usr/sbin/groupadd -r hudson &>/dev/null || : +# SUSE version had -o here, but in Fedora -o isn't allowed without -u +/usr/sbin/useradd -g hudson -s /bin/false -r -c "Hudson Continuous Build server" \ + -d "%{workdir}" hudson &>/dev/null || : + +%post +/sbin/chkconfig --add hudson + +%preun +if [ "$1" = 0 ] ; then + # if this is uninstallation as opposed to upgrade, delete the service + /sbin/service hudson stop > /dev/null 2>&1 + /sbin/chkconfig --del hudson +fi +exit 0 + +%postun +if [ "$1" -ge 1 ]; then + /sbin/service hudson condrestart > /dev/null 2>&1 +fi +exit 0 + +%clean +%__rm -rf "%{buildroot}" + +%files +%defattr(-,root,root) +%dir %{_prefix} +%{_prefix}/%{name}.war +%attr(0755,hudson,hudson) %dir %{workdir} +%attr(0750,hudson,hudson) /var/log/hudson +%config /etc/logrotate.d/%{name} +%config /etc/init.d/%{name} +%config /etc/sysconfig/%{name} +/etc/zypp/repos.d/hudson.repo +/usr/sbin/rc%{name} + +%changelog +* Mon Jul 6 2009 dmacvicar@suse.de +- update to 1.314: + * Added option to advanced project configuration to clean workspace before each build. + (issue 3966 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3966]) + * Fixed workspace deletion issue on subversion checkout. + (issue 3580 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3580]) + * Hudson failed to notice a build result status change if aborted builds were in the middle. + (report [http://www.nabble.com/Losing-build-state-after-aborts--td24335949.html]) + * Hudson CLI now tries to connect to Hudson via plain TCP/IP, then fall back to tunneling over HTTP. + * Fixed a possible "Cannot create a file when that file already exists" error in managed Windows slave launcher. report [http://www.nabble.com/%%22Cannot-create-a-file-when-that-file-already-exists%%22---huh--td23949362.html#a23950643] + * Made Hudson more robust in parsing CVS/Entries report [http://www.nabble.com/Exception-while-checking-out-from-CVS-td24256117.html] + * Fixed a regression in the groovy CLI command report [http://d.hatena.ne.jp/tanamon/20090630/1246372887] + * Fixed regression in handling of usernames containing <, often used by Mercurial. + (issue 3964 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3964]) + * Allow Maven projects to have their own artifact archiver settings. + (issue 3289 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3289]) + * Added copy-job, delete-job, enable-job, and disable-job command. + * Fixed a bug in the non-ASCII character handling in remote bulk file copy. + (report [http://www.nabble.com/WG%%3A-Error-when-saving-Artifacts-td24106649.html]) + * Supported self restart on all containers in Unix + (report [http://www.nabble.com/What-are-your-experiences-with-Hudson-and-different-containers--td24075611.html]) + * Added Retry Logic to SCM Checkout + * Fix bug in crumb validation when client is coming through a proxy. + (issue 3854 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3854]) + * Replaced "appears to be stuck" with an icon. + (issue 3891 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3891]) + * WebDAV deployment from Maven was failing with VerifyError. + * Subversion checkout/update gets in an infinite loop when a previously valid password goes invalid. + (issue 2909 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2909]) + * 1.311 jars were not properly signed + * Subversion SCM browsers were not working. + (report [http://www.nabble.com/Build-311-breaks-change-logs-td24150221.html]) + * Gracefully handle IBM JVMs on PowerPC. + (issue 3875 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3875]) + * Fixed NPE with GlassFish v3 when CSRF protection is on. + (issue 3878 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3878]) + * Fixed a bug in CLI where the state of command executions may interfere with each other. + * CLI should handle the situation gracefully if the server doesn't use crumb. + * Fixed a performance problem in CLI execution. + * Don't populate the default value of the Subversion local directory name. + (report [http://www.nabble.com/Is-%%22%%22Local-module-directory%%22-really-optional--td24035475.html]) + * Integrated SVNKit 1.3.0 + * Implemented more intelligent polling assisted by commit-hook from SVN repository. (details [http://wiki.hudson-ci.org/display/HUDSON/Subversion+post-commit+hook]) + * Subversion support is moved into a plugin to isolate SVNKit that has GPL-like license. + * Fixed a performance problem in master/slave file copy. + (issue 3799 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3799]) + * Set time out to avoid infinite hang when SMTP servers don't respond in time. + (report [http://www.nabble.com/Lockup-during-e-mail-notification.-td23718820.html]) + * Ant/Maven installers weren't setting the file permissions on Unix. + (issue 3850 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3850]) + * Fixed cross-site scripting vulnerabilities, thanks to Steve Milner. + * Changing number of executors for master node required Hudson restart. + (issue 3092 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3092]) + * Improved validation and help text regarding when number of executors setting may be zero. + (issue 2110 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2110]) + * NPE fix in the remote API if @xpath is used without @exclude. (patch [http://www.nabble.com/Adding-Remote-API-support-to-findbugs-and-emma-plugins-td23819499.html]) + * Expose the node name as 'NODE_NAME' environment varilable to build. + * Added a CLI command to clear the job queue. + (report [http://www.nabble.com/cancel-all--td23930886.html]) + * Sundry improvements to automatic tool installation. You no longer need to configure an absolute tool home directory. Also some Unix-specific fixes. + * Generate nonce values to prevent cross site request forgeries. Extension point to customize the nonce generation algorithm. + * Reimplemented JDK auto installer to reduce Hudson footprint by 5MB. This also fix a failure to run on JBoss. + (report [http://www.nabble.com/Hudson-1.308-seems-to-be-broken-with-Jboss-td23780609.html]) + * Unit test trend graph was not displayed if there's no successful build. + (report [http://www.nabble.com/Re%%3A-Test-Result-Trend-plot-not-showing-p23707741.html]) + * init script ($HUDSON_HOME/init.groovy) is now run with uber-classloader. + * Maven2 projects may fail with "Cannot lookup required component". + (issue 3706 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3706]) + * Toned down the form validation of JDK, Maven, Ant installations given that we can now auto-install them. + * Ant can now be automatically installed from ant.apache.org. + * Maven can now be automatically installed from maven.apache.org. + * AbstractProject.doWipeOutWorkspace() wasn't calling SCM.processWorkspaceBeforeDeletion. + (issue 3506 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3506]) + * X-Hudson header was sent for all views, not just the top page. + (report [http://www.netbeans.org/issues/show_bug.cgi?id=165067]) + * Remote API served incorrect absolute URLs when Hudson is run behind a reverse proxy. + (report [http://www.netbeans.org/issues/show_bug.cgi?id=165067]) + * Further improved the JUnit report parsing. + (report [http://www.nabble.com/NPE-%%28Fatal%%3A-Null%%29-in-recording-junit-test-results-td23562964.html]) + * External job monitoring was ignoring the possible encoding difference between Hudson and the remote machine that executed the job. + (report [http://www.nabble.com/windows%%E3%%81%%AEhudson%%E3%%81%%8B%%E3%%82%%89ssh%%E3%%82%%B9%%E3%%83%%AC%%E3%%83%%BC%%E3%%83%%96%%E3%%82%%92%%E4%%BD%%BF%%E3%%81%%86%%E3%%81%%A8%%E3%%81%%8D%%E3%%81%%AE%%E6%%96%%87%%E5%%AD%%97%%E3%%82%%B3%%E3%%83%%BC%%E3%%83%%89%%E5%%8F%%96%%E3%%82%%8A%%E6%%89%%B1%%E3%%81%%84%%E3%%81%%AB%%E3%%81%%A4%%E3%%81%%84%%E3%%81%%A6-td23583532.html]) + * Slave launch log was doing extra buffering that can prevent error logs (and so on) from showing up instantly. + (report [http://www.nabble.com/Selenium-Grid-Plugin-tp23481283p23486010.html]) + * Some failures in Windows batch files didn't cause Hudson to fail the build. + (report [http://www.nabble.com/Propagating-failure-in-Windows-Batch-actions-td23603409.html]) + * Maven 2.1 support was not working on slaves. + (report [http://www.nabble.com/1.305-fully-break-native-maven-support-td23575755.html]) + * Fixed a bug that caused Hudson to delete slave workspaces too often. + (issue 3653 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3653]) + * If distributed build isn't enabled, slave selection drop-down shouldn't be displayed in the job config. + * Added support for Svent 2.x SCM browsers. + (issue 3357 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3357]) + * Fixed unexpanded rootURL in CLI. + (report [http://d.hatena.ne.jp/masanobuimai/20090511#1242050331]) + * Trying to see the generated maven site results in 404. + (issue 3497 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3497]) + * Long lines in console output are now wrapped in most browsers. + * Hudson can now automatically install JDKs from java.sun.com + * The native m2 mode now works with Maven 2.1 + (issue 2373 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2373]) + * CLI didn't work with "java -jar hudson.war" + (report [http://d.hatena.ne.jp/masanobuimai/20090503#1241357664]) + * Link to the jar file in the CLI usage page is made more robust. + (issue 3621 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3621]) + * "Build after other projects are built" wasn't loading the proper setting. + (issue 3284 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3284]) + * Hudson started as "java -jar hudson.war" can now restart itself on all Unix flavors. + * When run on GlassFish, Hudson configures GF correctly to handle URI encoding always in UTF-8 + * Added a new extension point to contribute fragment to UDP-based auto discovery. + * Rolled back changes for HUDSON-3580 - workspace is once again deleted on svn checkout. + (issue 3580 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3580]) + * Fixed a binary incompatibility in UpstreamCause that results in NoSuchMethodError. Regression in 1.302. + (report [http://www.nabble.com/URGENT%%3A-parameterizedtrigger-plugin-gone-out-of-compatible-with-the--latest-1.302-release....-Re%%3A-parameterized-plugin-sometime-not-trigger-a--build...-td23349444.html]) + * The "groovysh" CLI command puts "println" to server stdout, instead of CLI stdout. + * The elusive 'Not in GZIP format' exception is finally fixed thanks to cristiano_k's great detective work + (issue 2154 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2154]) + * Hudson kept relaunching the slave under the "on-demand" retention strategy. + (report [http://www.nabble.com/SlaveComputer.connect-Called-Multiple-Times-td23208903.html]) + * Extra slash (/) included in path to workspace copy of svn external. + (issue 3533 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3533]) + * NPE prevents Hudson from starting up on some environments + (report [http://www.nabble.com/Failed-to-initialisze-Hudson-%%3A-NullPointerException-td23252806.html]) + * Workspace deleted when subversion checkout happens. + (issue 3580 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3580]) + * Hudson now handles unexpected failures in trigger plugins more gracefully. + * Use 8K buffer to improve remote file copy performance. + (issue 3524 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3524]) + * Hudson now has a CLI + * Hudson's start up performance is improved by loading data concurrently. + * When a SCM plugin is uninstalled, projects using it should fall back to "No SCM". + * When polling SCMs, boolean parameter sets default value collectly. + * Sidebar build descriptions will not have "..." appended unless they have been truncated. + (issue 3541 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3541]) + * Workspace with symlink causes svn exception when updating externals. + (issue 3532 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3532]) + * Hudson now started bundling ssh-slaves plugin out of the box. + * Added an extension point to programmatically contribute a Subversion authentication credential. + (report [http://www.nabble.com/Subversion-credentials-extension-point-td23159323.html]) + * You can now configure which columns are displayed in a view. "Last Stable" was also added as an optional column (not displayed by default). + (issue 3465 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3465]) + * Preventive node monitoring like /tmp size check, swap space size check can be now disabled selectively. + (issue 2596 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2596], issue 2552 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2552]) + * Per-project read permission support. + (issue 2324 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2324]) + * Javadoc browsing broken since 1.297. + (issue 3444 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3444]) + * Fixed a JNLP slave problem on JDK6u10 (and later) + * Added @ExportedBean to DiskSpaceMonitorDescriptor#DiskSpace so that Remote API(/computer/api/) works + * Fixed a Jelly bug in CVS after-the-fact tagging + * Cross site scripting vulnerability in the search box. + (issue 3415 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3415]) + * Auto-completion in the "copy job from" text box was not working. + (issue 3396 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3396]) + * Allow descriptions for parameters + (issue 2557 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2557]) + * support for boolean and choice parameters + (issue 2558 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2558]) + * support for run parameters. Allows you to pick one run from a configurable project, and exposes the url of that run to the build. + * JVM arguments of JNLP slaves can be now controlled. + (issue 3398 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3398]) + * $HUDSON_HOME/userContent/ is now exposed under http://server/hudson/userContent/. + (report [http://www.nabble.com/Is-it-possible-to-add-a-custom-page-Hudson--td22794858.html]) + * Fixed a plugin compatibility regression issue introduced in 1.296 + (issue 3436 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3436]) + * Programmatically created jobs started builds at #0 rather than #1. + (issue 3361 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3361]) + * Drop-down combobox to select a repository browser all had the same title. + (report [http://www.nabble.com/Possible-bug--Showing-%%22Associated-Mantis-Website%%22-in-scm-repository-browser-tt22786295.html]) + * Disk space monitoring was broken since 1.294. + (issue 3381 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3381]) + * Native m2 support is moved to a plugin bundled out-of-the-box in the distribution + (issue 3251 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3251]) + * Hudson now suggests to users to create a view if there are too many jobs but no views yet. + * NPE in the global configuration of CVS. + (issue 3382 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3382]) + * Generated RSS 2.0 feeds weren't properly escaping e-mail addresses. + * Hudson wasn't capturing stdout/stderr from Maven surefire tests. + * Improved the error diagnostics when retrieving JNLP file from CLI. + (report [http://www.nabble.com/Install-jnlp-failure%%3A-java-IOException-to22469576.html]) + * Making various internal changes to make it easier to create custom job types. + * Introduced a revised form field validation mechanism for plugins and core (FormValidation) + * Hudson now monitors the temporary directory to forestall disk out of space problems. + * XML API now exposes information about modules in a native Maven job. + * ZIP archives created from workspace contents will render properly in Windows' built-in "compressed folder" views. + (issue 3294 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3294]) + * Fixed an infinite loop (eventually leading to OOME) if Subversion client SSL certificate authentication fails. + (report [http://www.nabble.com/OutOfMemoryError-when-uploading-credentials-td22430818.html]) + * NPE from artifact archiver when a slave is down. + (issue 3330 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3330]) + * Hudson now monitors the disk consumption of HUDSON_HOME by itself. + * Fixed the possible "java.io.IOException: Not in GZIP format" problem when copying a file remotely. + (issue 3134 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3134]) + * Tool location name in node-specific properties always showed first list entry instead of saved value. + (issue 3264 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3264]) + * Parse the Subversion tunnel configuration properly. + (report [http://www.nabble.com/Problem-using-external-ssh-client-td22413572.html]) + * Improved JUnit result display to handle complex suite setups involving non-unique class names. + (issue 2988 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2988]) + * If the master is on Windows and slave is on Unix or vice versa, PATH environment variable was not properly handled. + * Improved the access denied error message to be more human readable. + (report [http://www.nabble.com/Trouble-in-logging-in-with-Subversion-td22473876.html]) + * api/xml?xpath=...&wrapper=... behaved inconsistently for results of size 0 or 1. + (issue 3267 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3267]) + * Fixed NPE in the WebSphere start up. + (issue 3069 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3069]) + * Fixed a bug in the parsing of the -tunnel option in slave.jar + (issue 2869 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2869]) + * Updated XStream to support FreeBSD. + (issue 2356 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2356]) + * Only show last 150KB of console log in HTML view, with link to show entire log + (issue 261 [https://hudson.dev.java.net/issues/show_bug.cgi?id=261]) + * Can specify build cause when triggering build remotely via token + (issue 324 [https://hudson.dev.java.net/issues/show_bug.cgi?id=324]) + * Recover gracefully from failing to load winp. + (report [http://www.nabble.com/Unable-to-load-winp.dll-td22423157.html]) + * Fixed a regression in 1.286 that broke findbugs and other plugins. + (report [http://www.nabble.com/tasks-and-compiler-warnings-plugins-td22334680.html]) + * Fixed backward compatibility problem with the old audit-trail plugin and the old promoted-build plgin. + (report [http://www.nabble.com/Problems-with-1.288-upgraded-from-1.285-td22360802.html], report [http://www.nabble.com/Promotion-Plugin-Broken-in-Build--1.287-td22376101.html]) + * On Solaris, ZFS detection fails if $HUDSON_HOME is on the top-level file system. + * Fixed a regression in the fingerprinter & archiver interaction in the matrix project + (report [http://www.nabble.com/1.286-version-and-fingerprints-option-broken-.-td22236618.html]) + * Added usage screen to slave.jar. Slaves now also do ping by default to proactively detect failures in the master. (from IRC) + * Could not run java -jar hudson.war using JDK 5. + (issue 3200 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3200]) + * Infinite loop reported when running on Glassfish. + (issue 3163 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3163]) + * Hudson failed to poll multiple Subversion repository locations since 1.286. + (issue 3168 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3168]) + * Avoid broken images/links in matrix project when some combinations are not run due to filter. + (issue 3167 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3167]) + * Add back LDAP group query on uniqueMember (lost in 1.280) and fix memberUid query + (issue 2256 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2256]) + * Adding a slave node was not possible in French locale + (issue 3156 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3156]) + * External builds were shown in Build History of all slave nodes + * Renewed the certificate for signing hudson.war + (report [http://www.nabble.com/1.287%%3A-java.lang.IllegalStateException%%3A-zip-file-closed-td22272400.html]) + * Do not archive empty directories. + (issue 3227 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3227]) + * Hyperlink URLs in JUnit output. + (issue 3225 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3225]) + * Automatically lookup email addresses in LDAP when LDAP authentication is used + (issue 1475 [https://hudson.dev.java.net/issues/show_bug.cgi?id=1475]) + * The project-based security configuration didn't survive the configuration roundtrip since 1.284. + (issue 3116 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3116]) + * Form error check on the new node was checking against job names, not node names. + (issue 3176 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3176]) + * Plugin class is now optional. + * Display a more prominent message if Hudson is going to shut down. + * Builds blocked by the shut-down process now reports its status accordingly. + (issue 3152 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3152]) + * Custom widgets were not rendered. + (issue 3161 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3161]) + * Fixed a regression in 1.286 about handling form field validations in some plugins. + (report [http://www.nabble.com/1.286-version-and-description-The-requested-resource-%%28%%29-is-not--available.-td22233801.html]) + * Improved the robustness in changlog computation when a build fails at check out. + (report [http://www.nabble.com/CVSChangeLogSet.parse-yields-SAXParseExceptions-when-parsing-bad-*AccuRev*-changelog.xml-files-td22213663.html]) + * Fixed a bug in loading winp.dll when directory names involve whitespaces. + (issue 3111 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3111]) + * Switched to Groovy 1.6.0, and did so in a way that avoids some of the library conflicts, such as asm. + (report [http://www.nabble.com/Hudson-library-dependency-to-asm-2.2-td22233542.html]) + * Fixed NPE in Pipe.EOF(0) + (issue 3077 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3077]) + * Improved error handling when Maven fails to start correctly in the m2 project type. + (issue 2394 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2394]) + * Improved the error handling behaviors when non-serializable exceptions are involved in distributed operations. + (issue 1041 [https://hudson.dev.java.net/issues/show_bug.cgi?id=1041]) + * Allow unassigning a job from a node after the last slave node is deleted. + (issue 2905 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2905]) + * Fix "Copy existing job" autocomplete on new job page if any existing job names have a quote character. + * Keep last successful build (or artifacts from it) now tries to keep last stable build too. + (issue 2417 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2417]) + * LDAP authentication realm didn't support the built-in "authenticated" role. + (report [http://www.nabble.com/Hudson-security-issue%%3A-authenticated-user-does-not-work-td22176902.html]) + * Added RemoteCause for triggering build remotely. + * Hudson is now capable of launching Windows slave headlessly and remotely. + * Better SVN polling support - Trigger a build for changes in certain regions. + (issue 3124 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3124]) + * New extension point NodeProperty. + * Internal restructuring for reducing singleton dependencies and automatic Descriptor discovery. + * Build parameter settings are lost when you save the configuration. Regression since 1.284. + (report [http://www.nabble.com/Build-parameters-are-lost-in-1.284-td22077058.html]) + * Indicate the executors of offline nodes as "offline", not "idle" to avoid confusion. + (issue 2263 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2263]) + * Fixed a boot problem in Solaris < 10. + (issue 3044 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3044]) + * In matrix build, show axes used for that build rather than currently configured axes. + * Don't let containers persist authentication information, which may not deserialize correctly. + (report [http://www.nabble.com/ActiveDirectory-Plugin%%3A-ClassNotFoundException-while-loading--persisted-sessions%%3A-td22085140.html]) + * Always use some timeout value for Subversion HTTP access to avoid infinite hang in the read. + * Better CVS polling support - Trigger a build for changes in certain regions. + (issue 3123 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3123]) + * ProcessTreeKiller was not working on 64bit Windows, Windows 2000, and other minor platforms like PowerPC. + (issue 3050 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3050], issue 3060 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3060]) + * Login using Hudson's own user database did not work since 1.283. + (issue 3043 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3043]) + * View of parameters used for a build did not work since 1.283. + (issue 3061 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3061]) + * Equal quiet period and SCM polling schedule could trigger extra build with no changes. + (issue 2671 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2671]) + * Fix localization of some messages in build health reports. + (issue 1670 [https://hudson.dev.java.net/issues/show_bug.cgi?id=1670]) + * Fixed a possible memory leak in the distributed build. + (report [http://www.nabble.com/Possible-memory-leak-in-hudson.remoting.ExportTable-td12000299.html]) + * Suppress more pointless error messages in Winstone when clients cut the connection in the middle. + (report [http://www.nabble.com/javax.servlet.%%2CServletException-td22002253.html]) + * Fixed a concurrent build problem in the parallel parameterized build. + (issue 2997 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2997]) + * Maven2 job types didn't handle property-based profile activations correctly. + (issue 1454 [https://hudson.dev.java.net/issues/show_bug.cgi?id=1454]) + * LDAP group permissions were not applied when logged in via remember-me cookie. + (issue 2329 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2329]) + * Record how each build was started and show this in build page and remote API. + (issue 291 [https://hudson.dev.java.net/issues/show_bug.cgi?id=291]) + * Added the --version option to CLI to show the version. The version information is also visible in the help screen. + (report [http://www.nabble.com/Naming-of-the-Hudson-Warfile-td21921859.html]) + * Hudson's own user database now stores SHA-256 encrypted passwords instead of reversible base-64 scrambling. + (issue 2381 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2381]) + * Built-in servlet container no longer reports pointless error messages when clients abort the TCP connection. + (report [http://www.nabble.com/Hudson-Evaluation---Log-output-td21943690.html]) + * On Solaris, Hudson now supports the migration of the data to ZFS. + * Plugin manager now honors the plugin URL from inside .hpi, not just from the update center. + (report [http://www.nabble.com/Plugin-deployment-issues-td21982824.html]) + * Hudson will now kill all the processes that are left behind by a build, to maintain the stability of the cluster. + (issue 2729 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2729]) + * Matrix security username/groupname validation required admin permission even in project-specific permissions + * Fixed a JavaScript bug in slave configuration page when locale is French. + (report [http://www.nabble.com/Javascript-problem-for-french-version-td21875477.html]) + * File upload from HTML forms doesn't work with Internet Explorer. + (report [http://www.nabble.com/IE%%E3%%81%%8B%%E3%%82%%89%%E3%%81%%AE%%E3%%83%%95%%E3%%82%%A1%%E3%%82%%A4%%E3%%83%%AB%%E3%%82%%A2%%E3%%83%%83%%E3%%83%%97%%E3%%83%%AD%%E3%%83%%BC%%E3%%83%%89-td21853837.html]) + * Jobs now expose JobProperties via the remote API. + (issue 2990 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2990]) + * Hudson now responds to a UDP packet to port 33848 for better discovery. + * Improved the error diagnostics when XML marshalling fails. + (report [http://www.nabble.com/Trouble-configuring-Ldap-in-Hudson-running-on-JBoss-5.0.0.GA-td21849403.html]) + * Remote API access to test results was broken since 1.272. + (issue 2760 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2760]) + * Fixed problem in 1.280 where saving top-level settings with LDAP authentication resulted in very large config.xml + (issue 2958 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2958]) + * Username/groupname validation added in 1.280 had broken images, and got exception in groupname lookup with LDAP. + (issue 2959 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2959]) + * hudson.war now supports the --daemon option for forking into background on Unix. + * Remote API supports stdout/stderr from test reports. + (issue 2760 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2760]) + * Fixed unnecessary builds triggered by SVN polling + (issue 2825 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2825]) + * Hudson can now run on JBoss5 without any hassle. + (issue 2831 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2831]) + * Matrix security configuration now validates whether the username/groupname are valid. + * "Disable build" checkbox was moved to align with the rest of the checkboxes. + (issue 2951 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2951]) + * Added an extension point to manipulate Launcher used during a build. + * Fixed a security related regression in 1.278 where authorized users won't get access to the system. + (issue 2930 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2930]) + * Possible subversion polling problems due to debug code making polling take one minute, since 1.273. + (issue 2913 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2913]) + * Computer page now shows the executor list of that computer. + (issue 2925 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2925]) + * Maven surefire test recording is made robust when clocks are out of sync + (report [http://www.nabble.com/Hudson---test-parsing-failure-tt21520694.html]) + * Matrix project type now supports sparse matrix. + (issue 2813 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2813]) + * Plugins can now add a new column to the list view. + (issue 2862 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2862]) + * The "administer" permission should allow a person to do everything. + (discussion [http://www.nabble.com/Deleting-users-from-Matrix-Based-security-td21566030.html#a21571137]) + * Parameterized projects supported for matrix configurations + (issue 2903 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2903]) + * Improved error recovery when a build fails and javadoc/artifacts weren't created at all. + * Support programmatic scheduling of parameterized builds by HTTP GET or POST to /job/.../buildWithParameters + (issue 2409 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2409]) + * Create "lastStable" symlink on the file system to point to the applicable build. + (report [http://www.nabble.com/lastStable-link-td21582859.html]) + * "Installing slave as Windows service" feature was broken since 1.272 + (issue 2886 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2886]) + * Top level People page showed no project information since 1.269. + (report [http://www.nabble.com/N-A-in-%%22Last-Active%%22-column-in--people-page.-tp21553593p21553593.html]) + * Slave configuration page always showed "Utilize as much as possible" instead of saved value since 1.271. + (issue 2878 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2878]) + * Require build permission to submit results for an external job. + (issue 2873 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2873]) + * With the --logfile==/path/to/logfile option, Hudson now reacts SIGALRM and reopen the log file. This makes Hudson behave nicely wrt log rotation. + * Ok button on New View page was always disabled when not using project-specific permissions. + (issue 2809 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2809]) + * Fixed incompatibility with JBossAS 5.0. + (issue 2831 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2831]) + * Unit test in plugin will now automatically load the plugin. + (discussion [http://www.nabble.com/patch%%3A-WithPlugin-annotation%%2C-usable-in-plugin-projects-td21444423.html]) + * Added direct configuration links for the "manage nodes" page. + (discussion [http://www.nabble.com/How-to-manage-slaves-after-upgrade-to-1.274-td21480759.html]) + * If a build has no change, e-mail shouldn't link to the empty changeset page. + * Display of short time durations failed on locales with comma as fraction separator. + (issue 2843 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2843]) + * Saving main Hudson config failed if more than one plugin used Plugin/config.jelly. + * Added a scheduled slave availability. + * Hudson supports auto-upgrade on Solaris when managed by SMF [http://docs.sun.com/app/docs/doc/819-2252/smf-5?a=view]. + * Removed unused spring-support-1.2.9.jar from Hudson as it was interfering with the Crowd plugin. + (report [http://www.nabble.com/Getting-NoSuchClassDefFoundError-for-ehcache-tt21444908.html]) + * Debian package now has the RUN_STANDALONE switch to control if hudson should be run as a daemon. + (report [http://www.nabble.com/Debian-repo-tt21467102.html]) + * Failure to compute Subversion changelog should result in a build failure. + (issue 2461 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2461]) + * XML API caused NPE when xpath=... is specified. + (issue 2828 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2828]) + * Artifact/workspace browser was unable to serve directories/files that contains ".." in them. + (report [http://www.nabble.com/Status-Code-400-viewing-or-downloading-artifact-whose-filename-contains-two-consecutive-periods-tt21407604.html]) + * Hudson renders durations in milliseconds if the total duration is very short. + (report [http://www.nabble.com/Unit-tests-duration-in-milliseconds-tt21417767.html]) + * On Unix, Hudson will contain symlinks from build numbers to their corresponding build directories. + * Load statistics chart had the blue line and the red line swapped. + (issue 2818 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2818]) + * Artifact archiver and workspace browser didn't handle filenames with spaces since 1.269. + (issue 2793 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2793]) + * The executor status and build queue weren't updated asynchronously in the "manage slaves" page. + (issue 2821 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2821]) + * If SCM polling activities gets clogged, Hudson shows a warning in the management page. + (issue 1646 [https://hudson.dev.java.net/issues/show_bug.cgi?id=1646]) + * Added AdministrativeMonitor extension point for improving the autonomous monitoring of the system in Hudson. + * Sometimes multi-line input field is not properly rendered as a text area. + (issue 2816 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2816]) + * Hudson wasn't able to detect when .NET was completely missing. + (report [http://www.nabble.com/error-installing-hudson-as-a-windows-service-tt21378003.html]) + * Fixed a bug where the "All" view can be lost if upgraded from pre-1.269 and the configuration is reloaded from disk without saving. + (report [http://www.nabble.com/all-view-disappeared-tt21380658.html]) + * If for some reason "All" view is deleted, allow people to create it again. + (report [http://www.nabble.com/all-view-disappeared-tt21380658.html]) + * JNLP slave agents is made more robust in the face of configuration errors. + (report [http://d.hatena.ne.jp/w650/20090107/1231323990]) + * Upgraded JNA to 3.0.9 to support installation as a service on 64bit Windows. + (report [http://www.nabble.com/error-installing-hudson-as-a-windows-service-tt21378003.html]) + * Remote XML API now suports the 'exclude' query parameter to remove nodes that match the specified XPath. + (report [http://d.hatena.ne.jp/masanobuimai/20090109#1231507972]) +* Sat Jan 10 2009 guru@unixtech.be +- update to 1.271: + * Fix URLs in junit test reports to handle some special characters. (https://hudson.dev.java.net/issues/show_bug.cgi?id=1768) + * Project name for external job was not shown in Build History. + * SecurityRealms can now better control the servlet filter chain. (http://www.nabble.com/proposed-patch-to-expose-filters-through-SecurityRealms-tt21062397.html) + * Configuration of slaves are moved to individual pages. + * Hudson now tracks the load statistics on slaves and labels. + * Labels can be now assigned to the master. (https://hudson.dev.java.net/issues/show_bug.cgi?id=754) + * Added cloud support and internal restructuring to deal with this change. Note that a plugin is required to use any particular cloud implementation. +* Tue Jan 6 2009 guru@unixtech.be +- update to 1.270: + * Hudson version number was not shown at bottom of pages since 1.269. + * Hudson system message was not shown on main page since 1.269. + * Top level /api/xml wasn't working since 1.269. (https://hudson.dev.java.net/issues/show_bug.cgi?id=2779) + * Fix posting of external job results. (https://hudson.dev.java.net/issues/show_bug.cgi?id=2786) + * Windows service wrapper messes up environment variables to lower case. (http://www.nabble.com/Hudson-feedback-(and-windows-service-variable-lower-case-issue-continuation)-td21206812.html) + * Construct proper Next/Previous Build links even if request URL has extra slashes. (https://hudson.dev.java.net/issues/show_bug.cgi?id=1457) + * Subversion polling didn't notice when you change your project configuration. (http://www.nabble.com/Proper-way-to-switch---relocate-SVN-tree---tt21173306.html) +* Tue Jan 6 2009 guru@unixtech.be +- update to 1.269: + * Manually making a Maven project as upstream and free-style project as a downstream wasn't working. (https://hudson.dev.java.net/issues/show_bug.cgi?id=2778) + * Allow BuildWrapper plugins to contribute project actions to Maven2 jobs (https://hudson.dev.java.net/issues/show_bug.cgi?id=2777) + * Error pages should return non-200 HTTP status code. + * Logger configuration wasn't working since 1.267. + * Fix artifact archiver and workspace browser to handle filenames that need URL-encoding. (https://hudson.dev.java.net/issues/show_bug.cgi?id=2379) + * Only show form on tagBuild page if user has tag permission. (https://hudson.dev.java.net/issues/show_bug.cgi?id=2366) + * Don't require admin permission to view node list page, just hide some columns from non-admins. (https://hudson.dev.java.net/issues/show_bug.cgi?id=1207) + * Fix login redirect when anonymous user tries to access some pages. (https://hudson.dev.java.net/issues/show_bug.cgi?id=2408) + * Redirect up to build page if next/previousBuild link jumps to an action not present in that build. (https://hudson.dev.java.net/issues/show_bug.cgi?id=117) + * Subversion checkout/update now supports fixed revisions. (https://hudson.dev.java.net/issues/show_bug.cgi?id=262) + * Views are now extensible and can be contributed by plugins. (https://hudson.dev.java.net/issues/show_bug.cgi?id=234) +* Sun Dec 21 2008 guru@unixtech.be +- update to 1.266: + * If there was no successful build, test result trend wasn't displayed. (http://www.nabble.com/Test-Result-Trend-plot-not-showing-td21052568.html) + * Windows service installer wasn't handling the situation correctly if Hudson is started at the installation target. (http://www.nabble.com/how-to-setup-hudson-%%2B-cvsnt-%%2B-ssh-as-a-service-on-windows--tp20902739p20902739.html) + * Always display the restart button on the update center page, if the current environment supports it. (http://www.nabble.com/Restarting-Hudson-%%28as-Windows-service%%29-from-web-UI--td21069038.html) + * slave.jar now supports the -noCertificateCheck to bypass (or cripple) HTTPS certificate examination entirely. Useful for working with self-signed HTTPS that are often seen in the intranet. (http://www.nabble.com/Getting-hudson-slaves-to-connect-to-https-hudson-with-self-signed-certificate-td21042660.html) + * Add extension point to allow alternate update centers. (http://hudson.dev.java.net/issues/show_bug.cgi?id=2732) + * Improved accessibility for visually handicapped. +* Fri Dec 12 2008 guru@unixtech.be +- update to 1.263: + * Fixed a problem in handling of '\' introduced in 1.260. (https://hudson.dev.java.net/issues/show_bug.cgi?id=2584) + * Fixed possible NPE when rendering a build history after a slave removal. (https://hudson.dev.java.net/issues/show_bug.cgi?id=2622) + * JNLP descriptor shouldn't rely on the manually configured root URL for HTTP access. (http://www.nabble.com/Moved-master-to-new-machine%%2C-now-when-creating-new-slave%%2C-jnlp-tries-to-connect-to-old-machine-td20465637.html) + * Use unique id which javascript uses when removing users from Matrix-based securoty. (https://hudson.dev.java.net/issues/show_bug.cgi?id=2652) + * Hudson is now made 5 times more conservative in marking an item in the queue as stuck. (https://hudson.dev.java.net/issues/show_bug.cgi?id=2618) + * Improved the variable expansion mechanism in handling of more complex cases. + * XPath matching numbers and booleans in the remote API will render text/plain, instead of error. +* Sat Nov 15 2008 guru@unixtech.be +- update to 1.262: + * Fixed a Java6 dependency crept in in 1.261. (https://hudson.dev.java.net/issues/show_bug.cgi?id=2623) + * Setting up a manual dependency from a freestyle project to a Maven project didn't work. (http://ml.seasar.org/archives/operation/2008-November/004003.html) + * Use Project Security setting wasn't being persisted. (https://hudson.dev.java.net/issues/show_bug.cgi?id=2305) + * Slave installed as a Windows service didn't attempt automatic reconnection when initiail connection fails. (http://www.nabble.com/Loop-Slave-Connection-Attempts-td20471873.html) + * Maven builder has the advanced section in the freestyle job, just like Ant builder. (http://ml.seasar.org/archives/operation/2008-November/004003.html) +* Wed Nov 12 2008 guru@unixtech.be +- update to 1.261: + * Using Maven inside a matrix project, axes were not expanded in the maven command line. (http://ml.seasar.org/archives/operation/2008-November/003996.html) + * Fixed authentication so that login successfully after signing up. (https://hudson.dev.java.net/issues/show_bug.cgi?id=2594) + * Fixed Project-based Matrix Authorization Strategy reverting to Matrix Authorization Strategy after restarting Hudson (https://hudson.dev.java.net/issues/show_bug.cgi?id=2305) + * LDAP membership query now recognizes uniqueMember and memberUid (https://hudson.dev.java.net/issues/show_bug.cgi?id=2256) + * If a build appears to be hanging for too long, Hudson turns the progress bar to red. +* Thu Nov 6 2008 guru@unixtech.be +- update to 1.260: + * Fixed tokenization handling in command line that involves quotes (like -Dabc="abc def" (https://hudson.dev.java.net/issues/show_bug.cgi?id=2584) + * Hudson wasn't using persistent HTTP connections properly when using Subversion over HTTP. + * Fixed svn:executable handling on 64bit Linux systems. + * When a build is aborted, Hudson now kills all the descendant processes recursively to avoid run-away processes. This is available on Windows, Linux, and Solaris. Contributions for other OSes welcome. + * Improved error diagnostics in the update center when the proxy configuration is likely necessary. (http://www.nabble.com/update-center-proxy-td20205568.html) + * Improved error diagnostics when a temp file creation failed. (https://hudson.dev.java.net/issues/show_bug.cgi?id=2587) +* Wed Nov 5 2008 guru@unixtech.be +- update to 1.259: + * If a job is cancelled while it's already in the queue, remove the job from the queue. (http://www.nabble.com/Disabled-jobs-and-triggered-builds-td20254776.html) + * Installing Hudson as a Windows service requires .NET 2.0 or later. Hudson now checks this before attempting a service installation. + * On Hudson installed as Windows service, Hudson can now upgrade itself when a new version is available. + * Hudson can now be pre-packaged with plugins. (http://www.nabble.com/How-can-I-distribute-Hudson-with-my-plug-in-td20278601.html) + * Supported the javadoc:aggregate goal (https://hudson.dev.java.net/issues/show_bug.cgi?id=2562) + * Bundled StAX implementation so that plugins would have easier time using it. (https://hudson.dev.java.net/issues/show_bug.cgi?id=2547) +* Thu Oct 30 2008 guru@unixtech.be +- update to 1.258: + * Fixed a class incompatibility introduced in 1.257 that breaks TFS and ClearCase plugins. (http://www.nabble.com/Build-257-IncompatibleClassChangeError-td20229011.html) + * Fixed a NPE when dealing with broken Action implementations. (https://hudson.dev.java.net/issues/show_bug.cgi?id=2527) +* Wed Oct 29 2008 guru@unixtech.be +- update to 1.257: + * Fixed an encoding issue when the master and a slave use incompatible encodings. + * Permission matrix was missing tooltip text. (http://www.nabble.com/Missing-hover-text-for-matrix-security-permissions--td20140205.html) + * Parameter expansion in Ant builder didn't honor build parameters. (http://www.nabble.com/Missing-hover-text-for-matrix-security-permissions--td20140205.html) + * Added tooltip for 'S' and 'W' in the top page for showing what it is. (http://www.nabble.com/Re%%3A-What-are-%%27S%%27-and-%%27W%%27-in-Hudson-td20199851.html) + * Expanded the remote API to disable/enable jobs remotely. +* Sat Oct 25 2008 guru@unixtech.be +- update to 1.256: + * Hudson had two dom4j.jar that was causing a VerifyError in WebSphere. (https://hudson.dev.java.net/issues/show_bug.cgi?id=2435) + * Fixed NPE in case of changelog.xml data corruption (https://hudson.dev.java.net/issues/show_bug.cgi?id=2428) + * Improved the error detection when a Windows path is given to a Unix slave. (http://www.nabble.com/windows-32-bit-hudson-talking-to-linux-64-bit-slave--td19755708.html) + * Automatic dependency management for Maven projects can be now disabled. (https://hudson.dev.java.net/issues/show_bug.cgi?id=1714) +* Thu Oct 2 2008 guru@unixtech.be +- update to 1.255: + * Project-level ACL matrix shouldn't display "CREATE" permission. (http://www.nabble.com/Project-based-authorization-%%3A-Create-permission-td19729677.html) + * Fixed the serialized form of project-based matrix authorization strategy. + * Fixed a bug where Hudson installed as service gets killed when the interactive user logs off. (http://www.nabble.com/Project-based-authorization-%%3A-Create-permission-td19729677.html) + * Timer-scheduled build shouldn't honor the quiet period. (http://www.nabble.com/Build-periodically-Schedule-time-difference-vs-actual-execute-time-td19736583.html) + * Hudson slave launched from JNLP is now capable of installing itself as a Windows service. +* Sat Sep 27 2008 guru@unixtech.be +- update to 1.254: + * IllegalArgumentException in DeferredCreationLdapAuthoritiesPopulator if groupSearchBase is omitted. (http://www.nabble.com/IllegalArgumentException-in-DeferredCreationLdapAuthoritiesPopulator-if-groupSearchBase-is-omitted-td19689475.html) + * Fixed "Failed to tag" problem when tagging some builds (https://hudson.dev.java.net/issues/show_bug.cgi?id=2213) + * Hudson is now capable of installing itself as a Windows service. + * Improved the diagnostics of why Hudson needs to do a fresh check out. (http://www.nabble.com/Same-job-gets-rescheduled-again-and-again-td19662648.html) +* Thu Sep 25 2008 guru@unixtech.be +- update to 1.253: + * Fixed FormFieldValidator check for Windows path (https://hudson.dev.java.net/issues/show_bug.cgi?id=2334) + * Support empty cvs executable and Shell executable on configure page (https://hudson.dev.java.net/issues/show_bug.cgi?id=1851) + * Fixed parametric Project build when scheduled automatically from SCM changes (https://hudson.dev.java.net/issues/show_bug.cgi?id=2336) + * "Tag this build" link shouldn't show up in the navigation bar if the user doesn't have a permission. (https://hudson.dev.java.net/issues/show_bug.cgi?id=2380) + * Improved LDAP support so that it doesn't rely on ou=groups. + * Project-based security matrix shouldn't show up in project config page unless the said option is enabled in the global config + * Fixed NPE during the sign up of a new user (https://hudson.dev.java.net/issues/show_bug.cgi?id=2376) + * Suppress the need for a scroll-bar on the configure page when the PATH is very long (https://hudson.dev.java.net/issues/show_bug.cgi?id=2317) + * Now UserProperty objects can provide a summary on a user's main page. (https://hudson.dev.java.net/issues/show_bug.cgi?id=2331) + * Validate Maven installation directory just like Ant installation (https://hudson.dev.java.net/issues/show_bug.cgi?id=2335) + * Show summary.jelly files for JobProperties in the project page (https://hudson.dev.java.net/issues/show_bug.cgi?id=2398) + * Improvements in French and Japanese localization. + * JNLP slaves now support port tunneling for security-restricted environments. + * slave.jar now supports a proactive connection initiation (like JNLP slaves.) This can be used to replace JNLP slaves, especially when you want to run it as a service. + * Added a new extension to define permalinks + * Supported a file submission as one of the possible parameters for a parameterized build. + * The logic to disable slaves based on its response time is made more robust, to ignore temporary spike. + * Improved the robustness of the loading of persisted records to simplify plugin evolution. +* Wed Sep 3 2008 guru@unixtech.be +- update to 1.252: + * Fixed a queue persistence problem where sometimes executors die with NPEs. + * PageDecorator with a global.jelly is now shown in the System configuration page (https://hudson.dev.java.net/issues/show_bug.cgi?id=2289) + * On security-enabled Hudson, redirection for a login didn't work correctly since 1.249. (https://hudson.dev.java.net/issues/show_bug.cgi?id=2290) + * Hudson didn't give SCMs an opportunity to clean up the workspace before project deletion. (https://hudson.dev.java.net/issues/show_bug.cgi?id=2271) + * Subversion SCM enhancement for allowing parametric builds on Tags and Branches. (https://hudson.dev.java.net/issues/show_bug.cgi?id=2298) +* Sat Aug 23 2008 guru@unixtech.be +- update to 1.251: + * JavaScript error in the system configuration prevents a form submission. (https://hudson.dev.java.net/issues/show_bug.cgi?id=2260) +* Sat Aug 23 2008 guru@unixtech.be +- update to 1.250: + * Fixed NPE in the workspace clean up thread when the slave is offline. (https://hudson.dev.java.net/issues/show_bug.cgi?id=2221) + * Hudson was still using deprecated configure methods on some of the extension points. (http://www.nabble.com/Hudson.configure-calling-deprecated-Descriptor.configure-td19051815.html) + * Abbreviated time representation in English (e.g., "seconds" -> "secs") to reduce the width of the job listing. (https://hudson.dev.java.net/issues/show_bug.cgi?id=2251) + * Added LDAPS support (https://hudson.dev.java.net/issues/show_bug.cgi?id=1445) +* Wed Aug 20 2008 guru@unixtech.be +- update to 1.249: + * JNLP slave agent fails to launch when the anonymous user doesn't have a read access. (http://www.nabble.com/Launching-slave-by-JNLP-with-Active-Directory-plugin-and-matrix-security-problem-td18980323.html) + * Trying to access protected resources anonymously now results in 401 status code, to help programmatic access. + * When the security realm was delegated to the container, users didn't have the built-in "authenticated" role. + * Fixed IllegalMonitorStateException (https://hudson.dev.java.net/issues/show_bug.cgi?id=2230) + * Intorduced a mechanism to perform a bulk change to improve performance (and in preparation of version controlling config files) diff --git a/opensuse/build.sh b/opensuse/build.sh new file mode 100755 index 0000000000000000000000000000000000000000..43e30fd59610d63dec23ffc7439c46fbde5a883f --- /dev/null +++ b/opensuse/build.sh @@ -0,0 +1,18 @@ +#!/bin/bash -e +if [ -z "$1" ]; then + echo "Usage: build.sh path/to/hudson.war" + exit 1 +fi + +# figure out the version to package +cp "$1" $(dirname $0)/SOURCES/hudson.war +pushd $(dirname $0) +version=$(unzip -p SOURCES/hudson.war META-INF/MANIFEST.MF | grep Implementation-Version | cut -d ' ' -f2 | tr - .) +echo Version is $version + +# prepare fresh directories +rm -rf BUILD RPMS SRPMS tmp || true +mkdir -p BUILD RPMS SRPMS + +# real action happens here +rpmbuild -ba --define="_topdir $PWD" --define="_tmppath $PWD/tmp" --define="ver $version" SPECS/hudson.spec diff --git a/opensuse/readme.html b/opensuse/readme.html new file mode 100644 index 0000000000000000000000000000000000000000..873338d89705ebfa5790375ac21372a4e1770b21 --- /dev/null +++ b/opensuse/readme.html @@ -0,0 +1,10 @@ +

      Hudson RPM for openSUSE

      +

      +To use this repository, run the following command: + +

      +sudo zypper addrepo http://hudson-ci.org/opensuse/ hudson
      +
      + +

      +With that set up, the Hudson package can be installed with zypper install hudson diff --git a/pom.xml b/pom.xml index 07de79d1f217a74a55a775338461444dc4c6ce40..1012deb7b6da73d12dd214be6c4a3d77b3397db6 100644 --- a/pom.xml +++ b/pom.xml @@ -33,7 +33,7 @@ THE SOFTWARE. org.jvnet.hudson.main pom - 1.306-SNAPSHOT + 1.386-SNAPSHOT pom Hudson main module @@ -43,6 +43,7 @@ THE SOFTWARE. remoting core maven-plugin + ui-samples-plugin maven-agent maven-interceptor war @@ -50,6 +51,10 @@ THE SOFTWARE. cli + + Hudson + http://hudson.glassfish.org/job/hudson-trunk + scm:svn:https://guest@svn.dev.java.net/svn/hudson/branches/rc/ @@ -89,6 +94,55 @@ THE SOFTWARE. maven-antrun-extended-plugin 1.39 + + maven-javadoc-plugin + 2.6.1 + + + maven-jar-plugin + 2.3.1 + + + maven-surefire-plugin + 2.5 + + + maven-dependency-plugin + 2.1 + + + maven-assembly-plugin + 2.2-beta-5 + + + maven-resources-plugin + 2.4.3 + + + + org.kohsuke.stapler + maven-stapler-plugin + 1.15 + true + + + org.jvnet.maven-jellydoc-plugin + maven-jellydoc-plugin + 1.4 + + + @@ -98,27 +152,14 @@ THE SOFTWARE. 2.0-beta-9 - -P release,ips,sign - - -DskipTests install javadoc:javadoc animal-sniffer:check assembly:attached deploy + -P release,sign + -DskipTests javadoc:javadoc animal-sniffer:check deploy javadoc:aggregate true - - maven-assembly-plugin - false - - hudson-${version} - - assembly-src.xml - - - maven-remote-resources-plugin + 1.0 @@ -146,9 +187,10 @@ THE SOFTWARE. - + maven-compiler-plugin - + 2.3.1 + 1.5 1.5 @@ -173,6 +215,16 @@ THE SOFTWARE. + + + org.jvnet.hudson.tools + maven-hudson-dev-plugin + 6.1.7 + + + UTF-8 + + metrics + + + + org.codehaus.mojo + findbugs-maven-plugin + 2.4 + + High + + + + org.apache.maven.plugins + maven-pmd-plugin + 2.5 + + + 1.5 + + + + org.apache.maven.plugins + maven-checkstyle-plugin + 2.5 + + + + + + debug @@ -214,6 +302,52 @@ THE SOFTWARE. hudson + + sorcerer + + + + org.jvnet.sorcerer + maven-sorcerer-plugin + 0.8 + + + + + + + org.jvnet.sorcerer + maven-sorcerer-plugin + 0.8 + + + + + + release + + + + maven-assembly-plugin + false + + + + attached + + package + + hudson-${project.version} + + assembly-src.xml + + + + + + + + @@ -253,7 +387,7 @@ THE SOFTWARE. hudson-www - java-net:/hudson/trunk/www/maven-site/ + scp://hudson-labs.org/home/kohsuke/www/hudson-labs.org/maven-site/ diff --git a/publish-javadoc.sh b/publish-javadoc.sh deleted file mode 100644 index daf8c79a99bf3ba906ed287f62a56f4c4496114f..0000000000000000000000000000000000000000 --- a/publish-javadoc.sh +++ /dev/null @@ -1,54 +0,0 @@ -#!/bin/bash -xe -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - - -# -# publish Hudson javadoc and deploy that into the java.net CVS repository -# - -# make sure we have up-to-date copy so that the commit won't fail later -pushd ../../../www/javadoc -svn revert -R . -svn update -popd - -cp -R target/checkout/core/target/apidocs/* ../../../www/javadoc -cp -R target/checkout/test/target/apidocs/* ../../../www/javadoc/test - -cd ../../../www/javadoc - -# remove timestamp as this creates unnecessary revisions for javadoc files -find . -name "*.html" | xargs perl -p -i.bak -e "s|-- Generated by javadoc .+--|-- --|" -find . -name "*.html" | xargs perl -p -i.bak -e "s|||" -find . -name "*.bak" | xargs rm - -# ignore everything under CVS, then -# ignore all files that are already in CVS, then -# add the rest of the files -#find . -name CVS -prune -o -exec bash in-cvs.sh {} \; -o \( -print -a -exec cvs add {} \+ \) -#rcvsadd . "commiting javadoc" -svn add $(svn status | grep "^?" | cut -d " " -f2-) . -svn commit -m "commiting javadoc" - -# sometimes the first commit fails -#cvs commit -m "commit 1 " || cvs commit -m "commit 2" \ No newline at end of file diff --git a/push-m2-repo.rb b/push-m2-repo.rb deleted file mode 100644 index cf25c848cbd288bf0c75554422b9a4153d410f69..0000000000000000000000000000000000000000 --- a/push-m2-repo.rb +++ /dev/null @@ -1,75 +0,0 @@ -#!/bin/ruby -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - - -ver=ARGV.shift - - -require 'ftools' - -class VersionNumber - def initialize(str) - @tokens = str.split(/\./) - end - def inc - @tokens[-1] = (@tokens[-1].to_i()+1).to_s() - end - def dec - @tokens[-1] = (@tokens[-1].to_i()-1).to_s() - end - def to_s - @tokens.join(".") - end -end - - -print "Releasing master POM for plugins" -prev=VersionNumber.new(ver) -prev.dec() - -def updatePom(src,prev,ver) - open(src) do |i| - open(src+".tmp","w") do |o| - i.each do |line| - line = line.gsub("#{prev}","#{ver}") - o.puts line - end - end - end - File.move(src+".tmp",src) -end - -Dir.chdir("../plugins") do - system "svn update" - # update master POM - updatePom("pom.xml",prev,ver) - # update parent reference in module POM - Dir.glob("*") do |name| - next unless File.directory?(name) - print "#{name}\n" - next unless File.exists?(name+"/pom.xml") - updatePom(name+"/pom.xml",prev,ver) - end - system "svn commit -m 'bumping up POM version'" or fail - system "mvn -N deploy" or fail -end \ No newline at end of file diff --git a/rc-merge.sh b/rc-merge.sh new file mode 100755 index 0000000000000000000000000000000000000000..762a54016687357f55881e8ee5e47e9f91323066 --- /dev/null +++ b/rc-merge.sh @@ -0,0 +1,5 @@ +#!/bin/bash -ex +# merge back the RC branch. +svn up +svnmerge merge -S /branches/rc . +svn commit -F svnmerge-commit-message.txt diff --git a/rc.sh b/rc.sh index 9eacbe7b6a3ab0429c84b95d42bbf67cd5d659ec..ba96418ee951ea542e49c7b0dfc9a235db55a10d 100755 --- a/rc.sh +++ b/rc.sh @@ -27,7 +27,7 @@ # # there shouldn't be any unmerged changes in the RC branch -svnmerge merge -S rc . +svnmerge merge -S /branches/rc . pending=$(svn status | grep -v '^?' | wc -l) if [ $pending != 0 ]; then echo "unmerged or uncommitted changes" @@ -37,8 +37,13 @@ fi # create the release branch repo=https://www.dev.java.net/svn/hudson RC=$repo/branches/rc +tag=$repo/tags/hudson-$(show-pom-version pom.xml | sed -e "s/-SNAPSHOT//g" -e "s/\\./_/g")-rc + svn rm -m "deleting the old RC branch" $RC -svn cp -m "creating a new RC branch" $repo/trunk/hudson/main $RC +svn up +rev=$(svn info --xml . | xmlstarlet sel -t -v /info/entry/@revision) +svn cp -m "tagging the branch point" $repo/trunk/hudson/main@$rev $tag +svn cp -m "creating a new RC branch" $repo/trunk/hudson/main@$rev $RC # update changelog.html WWW=../../www @@ -46,5 +51,11 @@ svn up $WWW/changelog.html ruby rc.changelog.rb < $WWW/changelog.html > $WWW/changelog.new mv $WWW/changelog.new $WWW/changelog.html -cd $WWW +pushd $WWW svn commit -m "RC branch is created" changelog.html +popd + +# re-initialize the tracking +svn up +svnmerge init -F $repo/branches/rc +svn commit -F svnmerge-commit-message.txt diff --git a/readme.txt b/readme.txt new file mode 100644 index 0000000000000000000000000000000000000000..187cdf651cbf44196886f87327dc3968443174fb --- /dev/null +++ b/readme.txt @@ -0,0 +1,2 @@ + executor rendering. + we'd like to sort executors so that WideJobProperty can merge its rendering with parents. diff --git a/release-debian.sh b/release-debian.sh deleted file mode 100755 index cffe659401673bfd619db297a85c106990f0bddb..0000000000000000000000000000000000000000 --- a/release-debian.sh +++ /dev/null @@ -1,50 +0,0 @@ -#!/bin/bash -ex -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - - -# build a debian package from a release build -ver=$1 - -cp target/checkout/war/target/hudson.war hudson.war -(cat << EOF -hudson ($ver) unstable; urgency=low - - * See http://hudson.dev.java.net/changelog.html for more details. - - -- Kohsuke Kawaguchi $(date -R) - -EOF -cat debian/changelog ) > debian/changelog.tmp -mv debian/changelog.tmp debian/changelog - -# build the debian package -debuild -us -uc -B -scp ../hudson_${ver}_all.deb hudson.gotdns.com:~/public_html_hudson/debian/binary - -# build package index -pushd .. -mkdir binary > /dev/null 2>&1 || true -mv hudson_${ver}_all.deb binary -dpkg-scanpackages binary /dev/null | gzip -9c > binary/Packages.gz -scp binary/Packages.gz hudson.gotdns.com:~/public_html_hudson/debian/binary -popd diff --git a/release.sh b/release.sh deleted file mode 100755 index 5ae191c331338818d34655c1ec66db59da4c3e20..0000000000000000000000000000000000000000 --- a/release.sh +++ /dev/null @@ -1,95 +0,0 @@ -#!/bin/bash -ex -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - - -# -# Kohsuke's automated release script. Sorry for my checking this in, -# but Maven doesn't let me run release goals unless I have this in CVS. - -# make sure we have up to date workspace -svn update -# if left-over hudson.war for Debian build from the last time, delete it. -rm hudson.war || true - -tag=hudson-$(show-pom-version pom.xml | sed -e "s/-SNAPSHOT//g" -e "s/\\./_/g") -export MAVEN_OPTS="-Xmx512m -XX:MaxPermSize=256m" -mvn -B -Dtag=$tag -DskipTests release:prepare || mvn -B -Dtag=$tag -DskipTests install release:prepare || true -#svn up -r head -#mvn -B -Dtag=$tag -Dresume release:prepare -mvn release:perform - -id=$(show-pom-version target/checkout/pom.xml) -case $id in -*-SNAPSHOT) - echo Trying to release a SNAPSHOT - exit 1 - ;; -esac -#./publish-javadoc.sh -javanettasks uploadFile hudson /releases/$id "`date +"%Y/%m/%d"` release" Stable target/checkout/war/target/hudson.war | tee target/war-upload.log -warUrl=$(cat target/war-upload.log | grep "^Posted" | sed -e "s/Posted //g") -javanettasks uploadFile hudson /releases/source-bundles/$id "`date +"%Y/%m/%d"` release" Stable target/checkout/target/hudson-$id-src.zip -javanettasks announce hudson "Hudson $id released" "$warUrl" << EOF -See the changelog for details. -Download is available from here. -EOF - -# this is for the JNLP start -cp target/checkout/war/target/hudson.war target/checkout/war/target/hudson.jar -javanettasks uploadFile hudson /releases/jnlp/hudson.jar "version $id" Stable target/checkout/war/target/hudson.jar | tee target/upload.log - -# replace the jar file link accordingly -WWW=../../../www -pushd $WWW -svn revert -R . -svn update -popd -jarUrl=$(cat target/upload.log | grep "^Posted" | sed -e "s/Posted //g") -perl -p -i.bak -e "s|https://.+hudson\.jar|$jarUrl|" $WWW/hudson.jnlp -cp $WWW/hudson.jnlp $WWW/$id.jnlp - -# push the permalink -echo "Redirect 302 /latest/hudson.war $warUrl" > /tmp/latest.htaccess -scp /tmp/latest.htaccess hudson.gotdns.com:/home/kohsuke/public_html_hudson/latest/.htaccess - -# update changelog.html -ruby update.changelog.rb $id < $WWW/changelog.html > $WWW/changelog.new -mv $WWW/changelog.new $WWW/changelog.html - -# push changes to the maven repository -ruby push-m2-repo.rb $id - -chmod u+x publish-javadoc.sh -./publish-javadoc.sh - -# create and publish debian package -chmod u+x release-debian.sh -./release-debian.sh $id -svn commit -m "updated changelog as a part of the release" debian/changelog - -# publish IPS. The server needs to be restarted for it to see the new package. -cat war/target/hudson-war-$id.ipstgz | ssh wsinterop.sun.com "cd ips/repository; gtar xvzf -" -ssh wsinterop.sun.com "cd ips; ./start.sh" - -cd $WWW -svn commit -m "Hudson $id released" changelog.html hudson.jnlp diff --git a/remoting/pom.xml b/remoting/pom.xml index 535211d19aa2eb9b8e5ed64911137621e7b4349c..31b0af8cdb1fe7b86ba9681eb907cdf4ca3942de 100644 --- a/remoting/pom.xml +++ b/remoting/pom.xml @@ -27,7 +27,7 @@ THE SOFTWARE. org.jvnet.hudson.main pom - 1.306-SNAPSHOT + 1.386-SNAPSHOT ../pom.xml @@ -41,16 +41,23 @@ THE SOFTWARE. - - maven-surefire-plugin + org.codehaus.mojo + findbugs-maven-plugin + 2.1 - true + High + + + + org.apache.maven.plugins + maven-pmd-plugin + 2.5 + + + 1.5 @@ -85,8 +92,37 @@ THE SOFTWARE. org.jvnet.maven-antrun-extended-plugin maven-antrun-extended-plugin + + generate-resources + generate-resources + + run + + + + + + + + + + + + + + + + + + + version=${build.version} + + + + + process-classes process-classes run @@ -120,8 +156,30 @@ THE SOFTWARE. args4j args4j - 2.0.13 + 2.0.16 provided + + commons-codec + commons-codec + 1.3 + test + + + commons-io + commons-io + 1.4 + test + + + + + release + + + ${project.version} + + + diff --git a/remoting/src/main/java/hudson/remoting/AsyncFutureImpl.java b/remoting/src/main/java/hudson/remoting/AsyncFutureImpl.java index 02654738a3d3eeebb947d9ca0baabf4c51664ea9..9f360c2932600c9eb2327b0721bc2df7afa67ef0 100644 --- a/remoting/src/main/java/hudson/remoting/AsyncFutureImpl.java +++ b/remoting/src/main/java/hudson/remoting/AsyncFutureImpl.java @@ -26,6 +26,7 @@ package hudson.remoting; import java.util.concurrent.ExecutionException; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; +import java.util.concurrent.CancellationException; /** * {@link Future} implementation whose computation is carried out elsewhere. @@ -35,19 +36,24 @@ import java.util.concurrent.TimeoutException; * @author Kohsuke Kawaguchi */ public class AsyncFutureImpl implements Future { + /** + * Setting this field to true will indicate that the computation is completed. + * + *

      + * One of the following three fields also needs to be set at the same time. + */ + private boolean completed; + private V value; private Throwable problem; - private boolean completed; + private boolean cancelled; - /** - * Not cancellable. - */ public boolean cancel(boolean mayInterruptIfRunning) { return false; } public boolean isCancelled() { - return false; + return cancelled; } public synchronized boolean isDone() { @@ -59,6 +65,8 @@ public class AsyncFutureImpl implements Future { wait(); if(problem!=null) throw new ExecutionException(problem); + if(cancelled) + throw new CancellationException(); return value; } @@ -67,6 +75,8 @@ public class AsyncFutureImpl implements Future { wait(unit.toMillis(timeout)); if(!completed) throw new TimeoutException(); + if(cancelled) + throw new CancellationException(); return get(); } @@ -81,4 +91,13 @@ public class AsyncFutureImpl implements Future { this.problem = problem; notifyAll(); } + + /** + * Marks this task as cancelled. + */ + public synchronized void setAsCancelled() { + completed = true; + cancelled = true; + notifyAll(); + } } diff --git a/remoting/src/main/java/hudson/remoting/BinarySafeStream.java b/remoting/src/main/java/hudson/remoting/BinarySafeStream.java index 25c824fd850929484d3953d21bdba5d043f53c72..c777e91bdc51cb6457fe53f1ca136a6720891fdf 100644 --- a/remoting/src/main/java/hudson/remoting/BinarySafeStream.java +++ b/remoting/src/main/java/hudson/remoting/BinarySafeStream.java @@ -45,7 +45,7 @@ import java.util.Arrays; * If the writing side flush, the reading side should see everything * written by then, without blocking (even if this happens outside the 3-byte boundary) *

    • - * Readinh side won't block unnecessarily. + * Reading side won't block unnecessarily. * * * @author Kohsuke Kawaguchi diff --git a/remoting/src/main/java/hudson/remoting/Capability.java b/remoting/src/main/java/hudson/remoting/Capability.java new file mode 100644 index 0000000000000000000000000000000000000000..a1a3d3b762f5a6d459778a996bfbf5293fb95294 --- /dev/null +++ b/remoting/src/main/java/hudson/remoting/Capability.java @@ -0,0 +1,117 @@ +package hudson.remoting; + +import hudson.remoting.Channel.Mode; + +import java.io.Serializable; +import java.io.UnsupportedEncodingException; +import java.io.ObjectOutputStream; +import java.io.OutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.ObjectInputStream; + +/** + * Represents additional features implemented on {@link Channel}. + * + *

      + * Each {@link Channel} exposes its capability to {@link Channel#getProperty(Object)}. + * + *

      + * This mechanism allows two different versions of remoting.jar to talk to each other. + * + * @author Kohsuke Kawaguchi + * @see Channel#remoteCapability + */ +public final class Capability implements Serializable { + /** + * Bit mask of optional capabilities. + */ + private final long mask; + + Capability(long mask) { + this.mask = mask; + } + + Capability() { + this(MASK_MULTI_CLASSLOADER|MASK_PIPE_THROTTLING); + } + + /** + * Does this implementation supports multi-classloader serialization in + * {@link UserRequest}? + * + * @see MultiClassLoaderSerializer + */ + public boolean supportsMultiClassLoaderRPC() { + return (mask&MASK_MULTI_CLASSLOADER)!=0; + } + + /** + * Does the implementation supports window size control over pipes? + * + * @see ProxyOutputStream + */ + public boolean supportsPipeThrottling() { + return (mask& MASK_PIPE_THROTTLING)!=0; + } + + /** + * Writes out the capacity preamble. + */ + void writePreamble(OutputStream os) throws IOException { + os.write(PREAMBLE); + ObjectOutputStream oos = new ObjectOutputStream(Mode.TEXT.wrap(os)); + oos.writeObject(this); + oos.flush(); + } + + /** + * The opposite operation of {@link #writePreamble(OutputStream)}. + */ + public static Capability read(InputStream is) throws IOException { + try { + ObjectInputStream ois = new ObjectInputStream(Mode.TEXT.wrap(is)); + return (Capability)ois.readObject(); + } catch (ClassNotFoundException e) { + throw (Error)new NoClassDefFoundError(e.getMessage()).initCause(e); + } + } + + private static final long serialVersionUID = 1L; + + /** + * This was used briefly to indicate the use of {@link MultiClassLoaderSerializer}, but + * that was disabled (see HUDSON-4293) in Sep 2009. AFAIK no released version of Hudson + * exposed it, but since then the wire format of {@link MultiClassLoaderSerializer} has evolved + * in an incompatible way. + *

      + * So just to be on the safe side, I assigned a different bit to indicate this feature {@link #MASK_MULTI_CLASSLOADER}, + * so that even if there are remoting.jar out there that advertizes this bit, we won't be using + * the new {@link MultiClassLoaderSerializer} code. + *

      + * If we ever use up all 64bits of long, we can probably come back and reuse this bit, as by then + * hopefully any such remoting.jar deployment is long gone. + */ + private static final long MASK_UNUSED1 = 1L; + /** + * Bit that indicates the use of {@link MultiClassLoaderSerializer}. + */ + private static final long MASK_MULTI_CLASSLOADER = 2L; + + /** + * Bit that indicates the use of TCP-like window control for {@link ProxyOutputStream}. + */ + private static final long MASK_PIPE_THROTTLING = 4L; + + static final byte[] PREAMBLE; + + public static final Capability NONE = new Capability(0); + + static { + try { + PREAMBLE = "<===[HUDSON REMOTING CAPACITY]===>".getBytes("UTF-8"); + } catch (UnsupportedEncodingException e) { + throw new AssertionError(e); + } + } +} diff --git a/remoting/src/main/java/hudson/remoting/Channel.java b/remoting/src/main/java/hudson/remoting/Channel.java index d469fb2afbe1579fd9f066f9ef47eda48c2e46fd..6025b19a525debecfab66b3b1e6d89e8b5d52ba4 100644 --- a/remoting/src/main/java/hudson/remoting/Channel.java +++ b/remoting/src/main/java/hudson/remoting/Channel.java @@ -24,6 +24,11 @@ package hudson.remoting; import hudson.remoting.ExportTable.ExportList; +import hudson.remoting.PipeWindow.Key; +import hudson.remoting.PipeWindow.Real; +import hudson.remoting.forward.ListeningPort; +import hudson.remoting.forward.ForwarderFactory; +import hudson.remoting.forward.PortForwarder; import java.io.EOFException; import java.io.IOException; @@ -33,18 +38,22 @@ import java.io.ObjectOutputStream; import java.io.OutputStream; import java.io.PrintWriter; import java.io.UnsupportedEncodingException; +import java.lang.ref.WeakReference; import java.util.Collections; import java.util.Hashtable; import java.util.Map; import java.util.Vector; -import java.util.concurrent.ExecutionException; -import java.util.concurrent.Executor; -import java.util.concurrent.ExecutorService; +import java.util.WeakHashMap; import java.util.concurrent.atomic.AtomicLong; import java.util.concurrent.atomic.AtomicInteger; import java.util.logging.Level; import java.util.logging.Logger; import java.net.URL; +import java.util.concurrent.ExecutionException; +import java.util.concurrent.Executor; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.ThreadFactory; /** * Represents a communication channel to the remote peer. @@ -100,20 +109,26 @@ import java.net.URL; public class Channel implements VirtualChannel, IChannel { private final ObjectInputStream ois; private final ObjectOutputStream oos; + /** + * Human readable description of where this channel is connected to. Used during diagnostic output + * and error reports. + */ private final String name; /*package*/ final boolean isRestricted; /*package*/ final ExecutorService executor; /** - * If true, the incoming link is already shut down, - * and reader is already terminated. + * If non-null, the incoming link is already shut down, + * and reader is already terminated. The {@link Throwable} object indicates why the outgoing channel + * was closed. */ - private volatile boolean inClosed = false; + private volatile Throwable inClosed = null; /** - * If true, the outgoing link is already shut down, - * and no command can be sent. + * If non-null, the outgoing link is already shut down, + * and no command can be sent. The {@link Throwable} object indicates why the outgoing channel + * was closed. */ - private volatile boolean outClosed = false; + private volatile Throwable outClosed = null; /*package*/ final Map> pendingCalls = new Hashtable>(); @@ -133,6 +148,25 @@ public class Channel implements VirtualChannel, IChannel { */ private final ExportTable exportedObjects = new ExportTable(); + /** + * {@link PipeWindow}s keyed by their OIDs (of the OutputStream exported by the other side.) + * + *

      + * To make the GC of {@link PipeWindow} automatic, the use of weak references here are tricky. + * A strong reference to {@link PipeWindow} is kept from {@link ProxyOutputStream}, and + * this is the only strong reference. Thus while {@link ProxyOutputStream} is alive, + * it keeps {@link PipeWindow} referenced, which in turn keeps its {@link PipeWindow.Real#key} + * referenced, hence this map can be looked up by the OID. When the {@link ProxyOutputStream} + * will be gone, the key is no longer strongly referenced, so it'll get cleaned up. + * + *

      + * In some race condition situation, it might be possible for us to lose the tracking of the collect + * window size. But as long as we can be sure that there's only one {@link PipeWindow} instance + * per OID, it will only result in a temporary spike in the effective window size, + * and therefore should be OK. + */ + private final WeakHashMap> pipeWindows = new WeakHashMap>(); + /** * Registered listeners. */ @@ -183,6 +217,26 @@ public class Channel implements VirtualChannel, IChannel { */ private IChannel remoteChannel; + /** + * Capability of the remote {@link Channel}. + */ + public final Capability remoteCapability; + + /** + * When did we receive any data from this slave the last time? + * This can be used as a basis for detecting dead connections. + *

      + * Note that this doesn't include our sender side of the operation, + * as successfully returning from {@link #send(Command)} doesn't mean + * anything in terms of whether the underlying network was able to send + * the data (for example, if the other end of a socket connection goes down + * without telling us anything, the {@link SocketOutputStream#write(int)} will + * return right away, and the socket only really times out after 10s of minutes. + */ + private volatile long lastHeard; + + /*package*/ final ExecutorService pipeWriter; + /** * Communication mode. * @since 1.161 @@ -197,10 +251,10 @@ public class Channel implements VirtualChannel, IChannel { * but this is useful where stream is binary-unsafe, such as telnet. */ TEXT("<===[HUDSON TRANSMISSION BEGINS]===>") { - protected OutputStream wrap(OutputStream os) { + @Override protected OutputStream wrap(OutputStream os) { return BinarySafeStream.wrap(os); } - protected InputStream wrap(InputStream is) { + @Override protected InputStream wrap(InputStream is) { return BinarySafeStream.wrap(is); } }, @@ -253,7 +307,7 @@ public class Channel implements VirtualChannel, IChannel { /** * Creates a new channel. - * + * * @param name * Human readable name of this channel. Used for debug/logging. Can be anything. * @param exec @@ -281,14 +335,17 @@ public class Channel implements VirtualChannel, IChannel { * safe the resulting behavior is is up to discussion. */ public Channel(String name, ExecutorService exec, Mode mode, InputStream is, OutputStream os, OutputStream header, boolean restricted) throws IOException { + this(name,exec,mode,is,os,header,restricted,new Capability()); + } + + /*package*/ Channel(String name, ExecutorService exec, Mode mode, InputStream is, OutputStream os, OutputStream header, boolean restricted, Capability capability) throws IOException { this.name = name; this.executor = exec; this.isRestricted = restricted; - ObjectOutputStream oos = null; if(export(this,false)!=1) throw new AssertionError(); // export number 1 is reserved for the channel itself - remoteChannel = RemoteInvocationHandler.wrap(this,1,IChannel.class,false); + remoteChannel = RemoteInvocationHandler.wrap(this,1,IChannel.class,false,false); // write the magic preamble. // certain communication channel, such as forking JVM via ssh, @@ -296,6 +353,10 @@ public class Channel implements VirtualChannel, IChannel { // might print some warning before the program starts outputting its own data.) // // so use magic preamble and discard all the data up to that to improve robustness. + + capability.writePreamble(os); + + ObjectOutputStream oos = null; if(mode!= Mode.NEGOTIATE) { os.write(mode.preamble); oos = new ObjectOutputStream(mode.wrap(os)); @@ -303,34 +364,46 @@ public class Channel implements VirtualChannel, IChannel { } {// read the input until we hit preamble - int[] ptr=new int[2]; Mode[] modes={Mode.BINARY,Mode.TEXT}; + byte[][] preambles = new byte[][]{Mode.BINARY.preamble, Mode.TEXT.preamble, Capability.PREAMBLE}; + int[] ptr=new int[3]; + Capability cap = new Capability(0); // remote capacity that we obtained. If we don't hear from remote, assume no capability while(true) { int ch = is.read(); if(ch==-1) throw new EOFException("unexpected stream termination"); - for(int i=0;i<2;i++) { - byte[] preamble = modes[i].preamble; + for(int i=0;i + * If the throttling is supported, use a separate thread to free up the main channel + * reader thread (thus prevent blockage.) Otherwise let the channel reader thread do it, + * which is the historical behaviour. + */ + private ExecutorService createPipeWriter() { + if (remoteCapability.supportsPipeThrottling()) + return Executors.newSingleThreadExecutor(new ThreadFactory() { + public Thread newThread(Runnable r) { + return new Thread(r,"Pipe writer thread: "+name); + } + }); + return new SynchronousExecutorService(); + } + /** * Sends a command to the remote end and executes it there. * @@ -366,8 +462,8 @@ public class Channel implements VirtualChannel, IChannel { * {@link Command}s are executed on a remote system in the order they are sent. */ /*package*/ synchronized void send(Command cmd) throws IOException { - if(outClosed) - throw new IOException("already closed"); + if(outClosed!=null) + throw new ChannelClosedException(outClosed); if(logger.isLoggable(Level.FINE)) logger.fine("Send "+cmd); Channel old = Channel.setCurrent(this); @@ -419,7 +515,7 @@ public class Channel implements VirtualChannel, IChannel { // proxy will unexport this instance when it's GC-ed on the remote machine. final int id = export(instance); - return RemoteInvocationHandler.wrap(null,id,type,userProxy); + return RemoteInvocationHandler.wrap(null,id,type,userProxy,exportedObjects.isRecording()); } /*package*/ int export(Object instance) { @@ -435,7 +531,7 @@ public class Channel implements VirtualChannel, IChannel { } /*package*/ void unexport(int id) { - exportedObjects.unexport(id); + exportedObjects.unexportByOid(id); } /** @@ -498,6 +594,30 @@ public class Channel implements VirtualChannel, IChannel { return call(new PreloadJarTask(jars,local)); } + public boolean preloadJar(ClassLoader local, URL... jars) throws IOException, InterruptedException { + return call(new PreloadJarTask(jars,local)); + } + + /*package*/ PipeWindow getPipeWindow(int oid) { + if (!remoteCapability.supportsPipeThrottling()) + return PipeWindow.FAKE; + + synchronized (pipeWindows) { + Key k = new Key(oid); + WeakReference v = pipeWindows.get(k); + if (v!=null) { + PipeWindow w = v.get(); + if (w!=null) + return w; + } + + Real w = new Real(k, PIPE_WINDOW_SIZE); + pipeWindows.put(k,new WeakReference(w)); + return w; + } + } + + /** * {@inheritDoc} */ @@ -511,11 +631,11 @@ public class Channel implements VirtualChannel, IChannel { // re-wrap the exception so that we can capture the stack trace of the caller. } catch (ClassNotFoundException e) { - IOException x = new IOException("Remote call failed"); + IOException x = new IOException("Remote call on "+name+" failed"); x.initCause(e); throw x; } catch (Error e) { - IOException x = new IOException("Remote call failed"); + IOException x = new IOException("Remote call on "+name+" failed"); x.initCause(e); throw x; } finally { @@ -547,18 +667,30 @@ public class Channel implements VirtualChannel, IChannel { /** * Aborts the connection in response to an error. + * + * @param e + * The error that caused the connection to be aborted. Never null. */ protected synchronized void terminate(IOException e) { - outClosed=inClosed=true; + if (e==null) throw new IllegalArgumentException(); + outClosed=inClosed=e; try { synchronized(pendingCalls) { for (Request req : pendingCalls.values()) req.abort(e); pendingCalls.clear(); } + synchronized (executingCalls) { + for (Request r : executingCalls.values()) { + java.util.concurrent.Future f = r.future; + if(f!=null) f.cancel(true); + } + executingCalls.clear(); + } } finally { notifyAll(); + if (e instanceof OrderlyShutdown) e = null; for (Listener l : listeners.toArray(new Listener[listeners.size()])) l.onClosed(this,e); } @@ -592,10 +724,18 @@ public class Channel implements VirtualChannel, IChannel { * If the current thread is interrupted while waiting for the completion. */ public synchronized void join() throws InterruptedException { - while(!inClosed || !outClosed) + while(inClosed==null || outClosed==null) wait(); } + /** + * If the receiving end of the channel is closed (that is, if we are guaranteed to receive nothing further), + * this method returns true. + */ + /*package*/ boolean isInClosed() { + return inClosed!=null; + } + /** * Waits for this {@link Channel} to be closed down, but only up the given milliseconds. * @@ -605,7 +745,7 @@ public class Channel implements VirtualChannel, IChannel { */ public synchronized void join(long timeout) throws InterruptedException { long start = System.currentTimeMillis(); - while(System.currentTimeMillis()-start T getProperty(ChannelProperty key) { + return key.type.cast(properties.get(key)); + } + /** * Works like {@link #getProperty(Object)} but wait until some value is set by someone. */ @@ -702,9 +847,14 @@ public class Channel implements VirtualChannel, IChannel { } } + /** + * Sets the property value on this side of the channel. + * + * @see #getProperty(Object) + */ public Object setProperty(Object key, Object value) { synchronized (properties) { - Object old = properties.put(key, value); + Object old = value!=null ? properties.put(key, value) : properties.remove(key); properties.notifyAll(); return old; } @@ -718,6 +868,47 @@ public class Channel implements VirtualChannel, IChannel { return remoteChannel.waitForProperty(key); } + /** + * Starts a local to remote port forwarding (the equivalent of "ssh -L"). + * + * @param recvPort + * The port on this local machine that we'll listen to. 0 to let + * OS pick a random available port. If you specify 0, use + * {@link ListeningPort#getPort()} to figure out the actual assigned port. + * @param forwardHost + * The remote host that the connection will be forwarded to. + * Connection to this host will be made from the other JVM that + * this {@link Channel} represents. + * @param forwardPort + * The remote port that the connection will be forwarded to. + * @return + */ + public ListeningPort createLocalToRemotePortForwarding(int recvPort, String forwardHost, int forwardPort) throws IOException, InterruptedException { + return new PortForwarder( recvPort, + ForwarderFactory.create(this,forwardHost,forwardPort)); + } + + /** + * Starts a remote to local port forwarding (the equivalent of "ssh -R"). + * + * @param recvPort + * The port on the remote JVM (represented by this {@link Channel}) + * that we'll listen to. 0 to let + * OS pick a random available port. If you specify 0, use + * {@link ListeningPort#getPort()} to figure out the actual assigned port. + * @param forwardHost + * The remote host that the connection will be forwarded to. + * Connection to this host will be made from this JVM. + * @param forwardPort + * The remote port that the connection will be forwarded to. + * @return + */ + public ListeningPort createRemoteToLocalPortForwarding(int recvPort, String forwardHost, int forwardPort) throws IOException, InterruptedException { + return PortForwarder.create(this,recvPort, + ForwarderFactory.create(forwardHost, forwardPort)); + } + + @Override public String toString() { return super.toString()+":"+name; } @@ -733,22 +924,35 @@ public class Channel implements VirtualChannel, IChannel { return exportedObjects.startRecording(); } + /** + * @see #lastHeard + */ + public long getLastHeard() { + return lastHeard; + } + private final class ReaderThread extends Thread { public ReaderThread(String name) { super("Channel reader thread: "+name); } + @Override public void run() { Command cmd = null; try { - while(!inClosed) { + while(inClosed==null) { try { Channel old = Channel.setCurrent(Channel.this); try { cmd = (Command)ois.readObject(); + lastHeard = System.currentTimeMillis(); } finally { Channel.setCurrent(old); } + } catch (EOFException e) { + IOException ioe = new IOException("Unexpected termination of the channel"); + ioe.initCause(e); + throw ioe; } catch (ClassNotFoundException e) { logger.log(Level.SEVERE, "Unable to read a command",e); } @@ -765,6 +969,8 @@ public class Channel implements VirtualChannel, IChannel { } catch (IOException e) { logger.log(Level.SEVERE, "I/O error in channel "+name,e); terminate(e); + } finally { + pipeWriter.shutdown(); } } } @@ -793,4 +999,46 @@ public class Channel implements VirtualChannel, IChannel { private static final ThreadLocal CURRENT = new ThreadLocal(); private static final Logger logger = Logger.getLogger(Channel.class.getName()); + + public static final int PIPE_WINDOW_SIZE = Integer.getInteger(Channel.class+".pipeWindowSize",128*1024); + +// static { +// ConsoleHandler h = new ConsoleHandler(); +// h.setFormatter(new Formatter(){ +// public synchronized String format(LogRecord record) { +// StringBuilder sb = new StringBuilder(); +// sb.append((record.getMillis()%100000)+100000); +// sb.append(" "); +// if (record.getSourceClassName() != null) { +// sb.append(record.getSourceClassName()); +// } else { +// sb.append(record.getLoggerName()); +// } +// if (record.getSourceMethodName() != null) { +// sb.append(" "); +// sb.append(record.getSourceMethodName()); +// } +// sb.append('\n'); +// String message = formatMessage(record); +// sb.append(record.getLevel().getLocalizedName()); +// sb.append(": "); +// sb.append(message); +// sb.append('\n'); +// if (record.getThrown() != null) { +// try { +// StringWriter sw = new StringWriter(); +// PrintWriter pw = new PrintWriter(sw); +// record.getThrown().printStackTrace(pw); +// pw.close(); +// sb.append(sw.toString()); +// } catch (Exception ex) { +// } +// } +// return sb.toString(); +// } +// }); +// h.setLevel(Level.FINE); +// logger.addHandler(h); +// logger.setLevel(Level.FINE); +// } } diff --git a/remoting/src/main/java/hudson/remoting/ChannelClosedException.java b/remoting/src/main/java/hudson/remoting/ChannelClosedException.java new file mode 100644 index 0000000000000000000000000000000000000000..1a33607755dbf7eb83d58488f6449325d24d08a8 --- /dev/null +++ b/remoting/src/main/java/hudson/remoting/ChannelClosedException.java @@ -0,0 +1,23 @@ +package hudson.remoting; + +import java.io.IOException; + +/** + * Indicates that the channel is already closed. + * + * @author Kohsuke Kawaguchi + */ +public class ChannelClosedException extends IOException { + /** + * @deprecated + * Use {@link #ChannelClosedException(Throwable)}. + */ + public ChannelClosedException() { + super("channel is already closed"); + } + + public ChannelClosedException(Throwable cause) { + super("channel is already closed"); + initCause(cause); + } +} diff --git a/remoting/src/main/java/hudson/remoting/ChannelProperty.java b/remoting/src/main/java/hudson/remoting/ChannelProperty.java new file mode 100644 index 0000000000000000000000000000000000000000..e596ba057179f5a6c8812c1550e16ab8f7f5e73a --- /dev/null +++ b/remoting/src/main/java/hudson/remoting/ChannelProperty.java @@ -0,0 +1,40 @@ +/* + * The MIT License + * + * Copyright (c) 2010, InfraDNA, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +package hudson.remoting; + +/** + * A convenient key type for {@link Channel#getProperty(Object)} and {@link Channel#setProperty(Object, Object)} + * + * @author Kohsuke Kawaguchi + */ +public class ChannelProperty { + public final Class type; + public final String displayName; + + public ChannelProperty(Class type, String displayName) { + this.type = type; + this.displayName = displayName; + } +} diff --git a/remoting/src/main/java/hudson/remoting/Command.java b/remoting/src/main/java/hudson/remoting/Command.java index f8acc460665cb78d8ae77eb98c186a90b92ba6a2..a0112331becebddcbf9404e7f695366cb8ea33dc 100644 --- a/remoting/src/main/java/hudson/remoting/Command.java +++ b/remoting/src/main/java/hudson/remoting/Command.java @@ -44,7 +44,20 @@ abstract class Command implements Serializable { protected Command() { - this.createdAt = new Source(); + this(true); + } + + /** + * @param recordCreatedAt + * If false, skip the recording of where the command is created. This makes the trouble-shooting + * and cause/effect correlation hard in case of a failure, but it will reduce the amount of the data + * transferred. + */ + protected Command(boolean recordCreatedAt) { + if(recordCreatedAt) + this.createdAt = new Source(); + else + this.createdAt = null; } /** diff --git a/remoting/src/main/java/hudson/remoting/Engine.java b/remoting/src/main/java/hudson/remoting/Engine.java index 23daacdb04cded6c8c4346142d8b4799373b1a38..777605b9dc8ec2a09060e7b51ea9ec22f1f75d09 100644 --- a/remoting/src/main/java/hudson/remoting/Engine.java +++ b/remoting/src/main/java/hudson/remoting/Engine.java @@ -27,6 +27,8 @@ import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.DataOutputStream; import java.io.IOException; +import java.io.InputStream; +import java.io.ByteArrayOutputStream; import java.net.HttpURLConnection; import java.net.Socket; import java.net.URL; @@ -35,6 +37,8 @@ import java.util.concurrent.Executors; import java.util.concurrent.ThreadFactory; import java.util.List; import java.util.Collections; +import java.util.logging.Logger; +import static java.util.logging.Level.SEVERE; /** * Slave agent engine that proactively connects to Hudson master. @@ -78,6 +82,7 @@ public class Engine extends Thread { private final String secretKey; public final String slaveName; + private String credentials; /** * See Main#tunnel in the jnlp-agent module for the details. @@ -103,10 +108,15 @@ public class Engine extends Thread { this.tunnel = tunnel; } + public void setCredentials(String creds) { + this.credentials = creds; + } + public void setNoReconnect(boolean noReconnect) { this.noReconnect = noReconnect; } + @SuppressWarnings({"ThrowableInstanceNeverThrown"}) @Override public void run() { try { @@ -130,24 +140,34 @@ public class Engine extends Thread { // find out the TCP port HttpURLConnection con = (HttpURLConnection)salURL.openConnection(); + if (con instanceof HttpURLConnection && credentials != null) { + String encoding = new sun.misc.BASE64Encoder().encode(credentials.getBytes()); + con.setRequestProperty("Authorization", "Basic " + encoding); + } try { - con.connect(); - } catch (IOException x) { - if (firstError == null) { - firstError = new IOException("Failed to connect to " + salURL + ": " + x.getMessage()).initCause(x); + try { + con.setConnectTimeout(30000); + con.setReadTimeout(60000); + con.connect(); + } catch (IOException x) { + if (firstError == null) { + firstError = new IOException("Failed to connect to " + salURL + ": " + x.getMessage()).initCause(x); + } + continue; } - continue; - } - port = con.getHeaderField("X-Hudson-JNLP-Port"); - if(con.getResponseCode()!=200) { - if(firstError==null) - firstError = new Exception(salURL+" is invalid: "+con.getResponseCode()+" "+con.getResponseMessage()); - continue; - } - if(port ==null) { - if(firstError==null) - firstError = new Exception(url+" is not Hudson"); - continue; + port = con.getHeaderField("X-Hudson-JNLP-Port"); + if(con.getResponseCode()!=200) { + if(firstError==null) + firstError = new Exception(salURL+" is invalid: "+con.getResponseCode()+" "+con.getResponseMessage()); + continue; + } + if(port ==null) { + if(firstError==null) + firstError = new Exception(url+" is not Hudson"); + continue; + } + } finally { + con.disconnect(); } // this URL works. From now on, only try this URL @@ -162,7 +182,7 @@ public class Engine extends Thread { return; } - Socket s = connect(port); + final Socket s = connect(port); listener.status("Handshaking"); DataOutputStream dos = new DataOutputStream(s.getOutputStream()); @@ -170,12 +190,34 @@ public class Engine extends Thread { dos.writeUTF(secretKey); dos.writeUTF(slaveName); - Channel channel = new Channel("channel", executor, - new BufferedInputStream(s.getInputStream()), + BufferedInputStream in = new BufferedInputStream(s.getInputStream()); + String greeting = readLine(in); // why, oh why didn't I use DataOutputStream when writing to the network? + if (!greeting.equals(GREETING_SUCCESS)) { + listener.error(new Exception("The server rejected the connection: "+greeting)); + Thread.sleep(10*1000); + continue; + } + + final Channel channel = new Channel("channel", executor, + in, new BufferedOutputStream(s.getOutputStream())); + PingThread t = new PingThread(channel) { + protected void onDead() { + try { + if (!channel.isInClosed()) { + LOGGER.info("Ping failed. Terminating the socket."); + s.close(); + } + } catch (IOException e) { + LOGGER.log(SEVERE, "Failed to terminate the socket", e); + } + } + }; + t.start(); listener.status("Connected"); channel.join(); listener.status("Terminated"); + t.interrupt(); // make sure the ping thread is terminated listener.onDisconnect(); if(noReconnect) @@ -188,6 +230,19 @@ public class Engine extends Thread { } } + /** + * Read until '\n' and returns it as a string. + */ + private static String readLine(InputStream in) throws IOException { + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + while (true) { + int ch = in.read(); + if (ch<0 || ch=='\n') + return baos.toString().trim(); // trim off possible '\r' + baos.write(ch); + } + } + /** * Connects to TCP slave port, with a few retries. */ @@ -207,12 +262,20 @@ public class Engine extends Thread { int retry = 1; while(true) { try { - return new Socket(host, Integer.parseInt(port)); + Socket s = new Socket(host, Integer.parseInt(port)); + s.setTcpNoDelay(true); // we'll do buffering by ourselves + + // set read time out to avoid infinite hang. the time out should be long enough so as not + // to interfere with normal operation. the main purpose of this is that when the other peer dies + // abruptly, we shouldn't hang forever, and at some point we should notice that the connection + // is gone. + s.setSoTimeout(30*60*1000); // 30 mins. See PingThread for the ping interval + return s; } catch (IOException e) { if(retry++>10) - throw e; + throw (IOException)new IOException("Failed to connect to "+host+':'+port).initCause(e); Thread.sleep(1000*10); - listener.status(msg+" (retrying:"+retry+")"); + listener.status(msg+" (retrying:"+retry+")",e); } } } @@ -224,7 +287,8 @@ public class Engine extends Thread { while(true) { Thread.sleep(1000*10); try { - HttpURLConnection con = (HttpURLConnection)hudsonUrl.openConnection(); + // Hudson top page might be read-protected. see http://www.nabble.com/more-lenient-retry-logic-in-Engine.waitForServerToBack-td24703172.html + HttpURLConnection con = (HttpURLConnection)new URL(hudsonUrl,"tcpSlaveAgentListener/").openConnection(); con.connect(); if(con.getResponseCode()==200) return; @@ -245,4 +309,8 @@ public class Engine extends Thread { } private static final ThreadLocal CURRENT = new ThreadLocal(); + + private static final Logger LOGGER = Logger.getLogger(Engine.class.getName()); + + public static final String GREETING_SUCCESS = "Welcome"; } diff --git a/remoting/src/main/java/hudson/remoting/EngineListener.java b/remoting/src/main/java/hudson/remoting/EngineListener.java index 6902f0b75132098f4d71f8a7ccba945948044d53..c72405dc5ee31fa5c4e69b57c58a8c5f35fa65f3 100644 --- a/remoting/src/main/java/hudson/remoting/EngineListener.java +++ b/remoting/src/main/java/hudson/remoting/EngineListener.java @@ -31,8 +31,16 @@ package hudson.remoting; * @author Kohsuke Kawaguchi */ public interface EngineListener { + /** + * Status message that indicates the progress of the operation. + */ void status(String msg); + /** + * Status message, with additoinal stack trace that indicates an error that was recovered. + */ + void status(String msg, Throwable t); + /** * Fatal error that's non recoverable. */ diff --git a/remoting/src/main/java/hudson/remoting/ExportTable.java b/remoting/src/main/java/hudson/remoting/ExportTable.java index 2b1624669019f1ecfa7a627f8729eb5c7c443d1c..ba844e770f35bdd3dcbae4790be4fabb3bff332f 100644 --- a/remoting/src/main/java/hudson/remoting/ExportTable.java +++ b/remoting/src/main/java/hudson/remoting/ExportTable.java @@ -28,7 +28,6 @@ import java.io.PrintWriter; import java.util.HashMap; import java.util.Map; import java.util.ArrayList; -import java.util.List; /** * Manages unique ID for exported objects, and allows look-up from IDs. @@ -42,11 +41,7 @@ final class ExportTable { * {@link ExportList}s which are actively recording the current * export operation. */ - private final ThreadLocal> lists = new ThreadLocal>() { - protected List initialValue() { - return new ArrayList(); - } - }; + private final ThreadLocal lists = new ThreadLocal(); /** * Information about one exporetd object. @@ -97,6 +92,11 @@ final class ExportTable { * on the current thread. */ public final class ExportList extends ArrayList { + private final ExportList old; + private ExportList() { + old=lists.get(); + lists.set(this); + } void release() { synchronized(ExportTable.this) { for (Entry e : this) @@ -104,9 +104,7 @@ final class ExportTable { } } void stopRecording() { - synchronized(ExportTable.this) { - lists.get().remove(this); - } + lists.set(old); } } @@ -121,12 +119,16 @@ final class ExportTable { * * @see ExportList#stopRecording() */ - public synchronized ExportList startRecording() { + public ExportList startRecording() { ExportList el = new ExportList(); - lists.get().add(el); + lists.set(el); return el; } + public boolean isRecording() { + return lists.get()!=null; + } + /** * Exports the given object. * @@ -156,9 +158,10 @@ final class ExportTable { else e.addRef(); - if(notifyListener) - for (ExportList list : lists.get()) - list.add(e); + if(notifyListener) { + ExportList l = lists.get(); + if(l!=null) l.add(e); + } return e.id; } @@ -179,6 +182,16 @@ final class ExportTable { e.release(); } + /** + * Removes the exported object for the specified oid from the table. + */ + public synchronized void unexportByOid(Integer oid) { + if(oid==null) return; + Entry e = table.get(oid); + if(e==null) return; // presumably already unexported + e.release(); + } + /** * Dumps the contents of the table to a file. */ diff --git a/remoting/src/main/java/hudson/remoting/FastPipedInputStream.java b/remoting/src/main/java/hudson/remoting/FastPipedInputStream.java new file mode 100644 index 0000000000000000000000000000000000000000..9d55c7efe0885a66d7d9e8fcb29d54bc62d06050 --- /dev/null +++ b/remoting/src/main/java/hudson/remoting/FastPipedInputStream.java @@ -0,0 +1,205 @@ +/* + * @(#)$Id: FastPipedInputStream.java 3619 2008-03-26 07:23:03Z yui $ + * + * Copyright 2006-2008 Makoto YUI + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Contributors: + * Makoto YUI - initial implementation + */ +package hudson.remoting; + +import java.io.InputStream; +import java.io.IOException; +import java.lang.ref.WeakReference; + +/** + * This class is equivalent to java.io.PipedInputStream. In the + * interface it only adds a constructor which allows for specifying the buffer + * size. Its implementation, however, is much simpler and a lot more efficient + * than its equivalent. It doesn't rely on polling. Instead it uses proper + * synchronization with its counterpart {@link FastPipedOutputStream}. + * + * @author WD + * @link http://developer.java.sun.com/developer/bugParade/bugs/4404700.html + * @see FastPipedOutputStream + */ +public class FastPipedInputStream extends InputStream { + + final byte[] buffer; + /** + * Once closed, this is set to the stack trace of who closed it. + */ + ClosedBy closed = null; + int readLaps = 0; + int readPosition = 0; + WeakReference source; + int writeLaps = 0; + int writePosition = 0; + + private final Throwable allocatedAt = new Throwable(); + + /** + * Creates an unconnected PipedInputStream with a default buffer size. + */ + public FastPipedInputStream() { + this.buffer = new byte[0x10000]; + } + + /** + * Creates a PipedInputStream with a default buffer size and connects it to + * source. + * @exception IOException It was already connected. + */ + public FastPipedInputStream(FastPipedOutputStream source) throws IOException { + this(source, 0x10000 /* 65536 */); + } + + /** + * Creates a PipedInputStream with buffer size bufferSize and + * connects it to source. + * @exception IOException It was already connected. + */ + public FastPipedInputStream(FastPipedOutputStream source, int bufferSize) throws IOException { + if(source != null) { + connect(source); + } + this.buffer = new byte[bufferSize]; + } + + private FastPipedOutputStream source() throws IOException { + FastPipedOutputStream s = source.get(); + if (s==null) throw (IOException)new IOException("Writer side has already been abandoned").initCause(allocatedAt); + return s; + } + + @Override + public int available() throws IOException { + /* The circular buffer is inspected to see where the reader and the writer + * are located. + */ + synchronized (buffer) { + return writePosition > readPosition /* The writer is in the same lap. */? writePosition + - readPosition + : (writePosition < readPosition /* The writer is in the next lap. */? buffer.length + - readPosition + 1 + writePosition + : + /* The writer is at the same position or a complete lap ahead. */ + (writeLaps > readLaps ? buffer.length : 0)); + } + } + + /** + * @exception IOException The pipe is not connected. + */ + @Override + public void close() throws IOException { + if(source == null) { + throw new IOException("Unconnected pipe"); + } + synchronized(buffer) { + closed = new ClosedBy(); + // Release any pending writers. + buffer.notifyAll(); + } + } + + /** + * @exception IOException The pipe is already connected. + */ + public void connect(FastPipedOutputStream source) throws IOException { + if(this.source != null) { + throw new IOException("Pipe already connected"); + } + this.source = new WeakReference(source); + source.sink = new WeakReference(this); + } + + @Override + protected void finalize() throws Throwable { + super.finalize(); + close(); + } + + @Override + public void mark(int readLimit) { + } + + @Override + public boolean markSupported() { + return false; + } + + public int read() throws IOException { + byte[] b = new byte[1]; + return read(b, 0, b.length) == -1 ? -1 : (255 & b[0]); + } + + @Override + public int read(byte[] b) throws IOException { + return read(b, 0, b.length); + } + + /** + * @exception IOException The pipe is not connected. + */ + @Override + public int read(byte[] b, int off, int len) throws IOException { + if(source == null) { + throw new IOException("Unconnected pipe"); + } + + while (true) { + synchronized(buffer) { + if(writePosition == readPosition && writeLaps == readLaps) { + if(closed!=null) { + return -1; + } + source(); // make sure the sink is still trying to read, or else fail the write. + + // Wait for any writer to put something in the circular buffer. + try { + buffer.wait(FastPipedOutputStream.TIMEOUT); + } catch (InterruptedException e) { + throw new IOException(e.getMessage()); + } + // Try again. + continue; + } + + // Don't read more than the capacity indicated by len or what's available + // in the circular buffer. + int amount = Math.min(len, (writePosition > readPosition ? writePosition + : buffer.length) + - readPosition); + System.arraycopy(buffer, readPosition, b, off, amount); + readPosition += amount; + + if(readPosition == buffer.length) {// A lap was completed, so go back. + readPosition = 0; + ++readLaps; + } + + buffer.notifyAll(); + return amount; + } + } + } + + static final class ClosedBy extends Throwable { + ClosedBy() { + super("The pipe was closed at..."); + } + } +} diff --git a/remoting/src/main/java/hudson/remoting/FastPipedOutputStream.java b/remoting/src/main/java/hudson/remoting/FastPipedOutputStream.java new file mode 100644 index 0000000000000000000000000000000000000000..4aafda6d1a827cb65f6dbdab45025f7a7114f888 --- /dev/null +++ b/remoting/src/main/java/hudson/remoting/FastPipedOutputStream.java @@ -0,0 +1,197 @@ +/* + * @(#)$Id: FastPipedOutputStream.java 3619 2008-03-26 07:23:03Z yui $ + * + * Copyright 2006-2008 Makoto YUI + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Contributors: + * Makoto YUI - initial implementation + */ +package hudson.remoting; + +import java.io.InterruptedIOException; +import java.io.OutputStream; +import java.io.IOException; +import java.lang.ref.WeakReference; + +/** + * This class is equivalent to java.io.PipedOutputStream. In the + * interface it only adds a constructor which allows for specifying the buffer + * size. Its implementation, however, is much simpler and a lot more efficient + * than its equivalent. It doesn't rely on polling. Instead it uses proper + * synchronization with its counterpart {@link FastPipedInputStream}. + * + * @author WD + * @link http://developer.java.sun.com/developer/bugParade/bugs/4404700.html + * @see FastPipedOutputStream + */ +public class FastPipedOutputStream extends OutputStream { + + WeakReference sink; + + /** + * Keeps track of the total # of bytes written via this output stream. + * Helps with debugging, and serves no other purpose. + */ + private long written=0; + + private final Throwable allocatedAt = new Throwable(); + + /** + * Creates an unconnected PipedOutputStream. + */ + public FastPipedOutputStream() { + super(); + } + + /** + * Creates a PipedOutputStream with a default buffer size and connects it to + * sink. + * @exception IOException It was already connected. + */ + public FastPipedOutputStream(FastPipedInputStream sink) throws IOException { + connect(sink); + } + + /** + * Creates a PipedOutputStream with buffer size bufferSize and + * connects it to sink. + * @exception IOException It was already connected. + * @deprecated as of 1.350 + * bufferSize parameter is ignored. + */ + public FastPipedOutputStream(FastPipedInputStream sink, int bufferSize) throws IOException { + this(sink); + } + + private FastPipedInputStream sink() throws IOException { + FastPipedInputStream s = sink.get(); + if (s==null) throw (IOException)new IOException("Reader side has already been abandoned").initCause(allocatedAt); + return s; + } + + /** + * @exception IOException The pipe is not connected. + */ + @Override + public void close() throws IOException { + if(sink == null) { + throw new IOException("Unconnected pipe"); + } + FastPipedInputStream s = sink(); + synchronized(s.buffer) { + s.closed = new FastPipedInputStream.ClosedBy(); + flush(); + } + } + + /** + * @exception IOException The pipe is already connected. + */ + public void connect(FastPipedInputStream sink) throws IOException { + if(this.sink != null) { + throw new IOException("Pipe already connected"); + } + this.sink = new WeakReference(sink); + sink.source = new WeakReference(this); + } + + @Override + protected void finalize() throws Throwable { + super.finalize(); + close(); + } + + @Override + public void flush() throws IOException { + FastPipedInputStream s = sink(); + synchronized(s.buffer) { + // Release all readers. + s.buffer.notifyAll(); + } + } + + public void write(int b) throws IOException { + write(new byte[] { (byte) b }); + } + + @Override + public void write(byte[] b) throws IOException { + write(b, 0, b.length); + } + + /** + * @exception IOException The pipe is not connected or a reader has closed it. + */ + @Override + public void write(byte[] b, int off, int len) throws IOException { + if(sink == null) { + throw new IOException("Unconnected pipe"); + } + + while (len>0) { + FastPipedInputStream s = sink(); // make sure the sink is still trying to read, or else fail the write. + + if(s.closed!=null) { + throw (IOException)new IOException("Pipe is already closed").initCause(s.closed); + } + + synchronized(s.buffer) { + if(s.writePosition == s.readPosition && s.writeLaps > s.readLaps) { + // The circular buffer is full, so wait for some reader to consume + // something. + + // release a reference to 's' during the wait so that if the reader has abandoned the pipe + // we can tell. + byte[] buf = s.buffer; + s = null; + + Thread t = Thread.currentThread(); + String oldName = t.getName(); + t.setName("Blocking to write '"+HexDump.toHex(b,off,Math.min(len,256))+"' : "+oldName); + try { + buf.wait(TIMEOUT); + } catch (InterruptedException e) { + throw (InterruptedIOException)new InterruptedIOException(e.getMessage()).initCause(e); + } finally { + t.setName(oldName); + } + // Try again. + continue; + } + + // Don't write more than the capacity indicated by len or the space + // available in the circular buffer. + int amount = Math.min(len, (s.writePosition < s.readPosition ? s.readPosition + : s.buffer.length) + - s.writePosition); + System.arraycopy(b, off, s.buffer, s.writePosition, amount); + s.writePosition += amount; + + if(s.writePosition == s.buffer.length) { + s.writePosition = 0; + ++s.writeLaps; + } + + off += amount; + len -= amount; + written += amount; + + s.buffer.notifyAll(); + } + } + } + + static final int TIMEOUT = Integer.getInteger(FastPipedOutputStream.class.getName()+".timeout",10*1000); +} diff --git a/remoting/src/main/java/hudson/remoting/HexDump.java b/remoting/src/main/java/hudson/remoting/HexDump.java new file mode 100644 index 0000000000000000000000000000000000000000..a476846dc40baba8df9db17c6afd0a55f4a52cf7 --- /dev/null +++ b/remoting/src/main/java/hudson/remoting/HexDump.java @@ -0,0 +1,21 @@ +package hudson.remoting; + +/** + * @author Kohsuke Kawaguchi + */ +public class HexDump { + private static final String CODE = "0123456789abcdef"; + + public static String toHex(byte[] buf) { + return toHex(buf,0,buf.length); + } + public static String toHex(byte[] buf, int start, int len) { + StringBuilder r = new StringBuilder(len*2); + for (int i=0; i>4)&15)); + r.append(CODE.charAt(b&15)); + } + return r.toString(); + } +} diff --git a/remoting/src/main/java/hudson/remoting/ImportedClassLoaderTable.java b/remoting/src/main/java/hudson/remoting/ImportedClassLoaderTable.java index 622878be0cd308ad0323bd7d22555a2353c706b2..b46fbe675abf9cb61d0f42dbc2ca1b8f4fcdb6b2 100644 --- a/remoting/src/main/java/hudson/remoting/ImportedClassLoaderTable.java +++ b/remoting/src/main/java/hudson/remoting/ImportedClassLoaderTable.java @@ -40,7 +40,7 @@ final class ImportedClassLoaderTable { } public synchronized ClassLoader get(int oid) { - return get(RemoteInvocationHandler.wrap(channel,oid,IClassLoader.class,false)); + return get(RemoteInvocationHandler.wrap(channel,oid,IClassLoader.class,false,false)); } public synchronized ClassLoader get(IClassLoader classLoaderProxy) { diff --git a/remoting/src/main/java/hudson/remoting/Launcher.java b/remoting/src/main/java/hudson/remoting/Launcher.java index d8c88c9541b05a0f362d1046cc5bbe4edc4bc1c4..57658594c53a7fdc075bc6b585be2b0c6e3874c3 100644 --- a/remoting/src/main/java/hudson/remoting/Launcher.java +++ b/remoting/src/main/java/hudson/remoting/Launcher.java @@ -1,7 +1,7 @@ /* * The MIT License * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi + * Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -57,14 +57,19 @@ import java.net.Socket; import java.net.URLClassLoader; import java.net.InetSocketAddress; import java.net.HttpURLConnection; +import java.net.Authenticator; +import java.net.PasswordAuthentication; import java.util.ArrayList; import java.util.List; +import java.util.Locale; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.security.cert.X509Certificate; import java.security.cert.CertificateException; import java.security.NoSuchAlgorithmException; import java.security.KeyManagementException; +import java.security.SecureRandom; +import java.util.Properties; /** * Entry point for running a {@link Channel}. This is the main method of the slave JVM. @@ -86,7 +91,7 @@ public class Launcher { "Useful for running slave over 8-bit unsafe protocol like telnet") public void setTextMode(boolean b) { mode = b?Mode.TEXT:Mode.BINARY; - System.out.println("Running in "+mode.name().toLowerCase()+" mode"); + System.out.println("Running in "+mode.name().toLowerCase(Locale.ENGLISH)+" mode"); } @Option(name="-jnlpUrl",usage="instead of talking to the master via stdin/stdout, " + @@ -94,6 +99,9 @@ public class Launcher { "Connection parameters are obtained by parsing the JNLP file.") public URL slaveJnlpURL = null; + @Option(name="-jnlpCredentials",metaVar="USER:PASSWORD",usage="HTTP BASIC AUTH header to pass in for making HTTP requests.") + public String slaveJnlpCredentials = null; + @Option(name="-cp",aliases="-classpath",metaVar="PATH", usage="add the given classpath elements to the system classloader.") public void addClasspath(String pathList) throws Exception { @@ -114,6 +122,10 @@ public class Launcher { "then wait for the master to connect to that port.") public File tcpPortFile=null; + + @Option(name="-auth",metaVar="user:pass",usage="If your Hudson is security-enabeld, specify a valid user name and password.") + public String auth = null; + public InetSocketAddress connectionTarget = null; @Option(name="-connectTo",usage="make a TCP connection to the given host and port, then start communication.",metaVar="HOST:PORT") @@ -147,6 +159,7 @@ public class Launcher { } public static void main(String... args) throws Exception { + computeVersion(); Launcher launcher = new Launcher(); CmdLineParser parser = new CmdLineParser(launcher); try { @@ -161,13 +174,29 @@ public class Launcher { } public void run() throws Exception { + if(auth!=null) { + final int idx = auth.indexOf(':'); + if(idx<0) throw new CmdLineException(null, "No ':' in the -auth option"); + Authenticator.setDefault(new Authenticator() { + @Override public PasswordAuthentication getPasswordAuthentication() { + return new PasswordAuthentication(auth.substring(0,idx), auth.substring(idx+1).toCharArray()); + } + }); + } if(connectionTarget!=null) { runAsTcpClient(); System.exit(0); } else if(slaveJnlpURL!=null) { List jnlpArgs = parseJnlpArguments(); - hudson.remoting.jnlp.Main.main(jnlpArgs.toArray(new String[jnlpArgs.size()])); + try { + hudson.remoting.jnlp.Main._main(jnlpArgs.toArray(new String[jnlpArgs.size()])); + } catch (CmdLineException e) { + System.err.println("JNLP file "+slaveJnlpURL+" has invalid arguments: "+jnlpArgs); + System.err.println("Most likely a configuration error in the master"); + System.err.println(e.getMessage()); + System.exit(1); + } } else if(tcpPortFile!=null) { runAsTcpServer(); @@ -185,6 +214,12 @@ public class Launcher { while (true) { try { URLConnection con = slaveJnlpURL.openConnection(); + if (con instanceof HttpURLConnection && slaveJnlpCredentials != null) { + HttpURLConnection http = (HttpURLConnection) con; + String userPassword = slaveJnlpCredentials; + String encoding = new sun.misc.BASE64Encoder().encode(userPassword.getBytes()); + http.setRequestProperty("Authorization", "Basic " + encoding); + } con.connect(); if (con instanceof HttpURLConnection) { @@ -216,6 +251,10 @@ public class Launcher { List jnlpArgs = new ArrayList(); for( int i=0; i 0 && interval > 0) { + new PingThread(channel, timeout, interval) { @Override protected void onDead() { System.err.println("Ping failed. Terminating"); @@ -363,4 +434,25 @@ public class Launcher { return new X509Certificate[0]; } } + + public static boolean isWindows() { + return File.pathSeparatorChar==';'; + } + + private static void computeVersion() { + Properties props = new Properties(); + try { + InputStream is = Launcher.class.getResourceAsStream("hudson-version.properties"); + if(is!=null) + props.load(is); + } catch (IOException e) { + e.printStackTrace(); + } + VERSION = props.getProperty("version", "?"); + } + + /** + * Version number of Hudson this slave.jar is from. + */ + public static String VERSION = "?"; } diff --git a/remoting/src/main/java/hudson/remoting/MultiClassLoaderSerializer.java b/remoting/src/main/java/hudson/remoting/MultiClassLoaderSerializer.java new file mode 100644 index 0000000000000000000000000000000000000000..55b1c3f60cce7424bbf82a3d1ed734fc577c816b --- /dev/null +++ b/remoting/src/main/java/hudson/remoting/MultiClassLoaderSerializer.java @@ -0,0 +1,144 @@ +package hudson.remoting; + +import hudson.remoting.RemoteClassLoader.IClassLoader; + +import java.io.IOException; +import java.io.InputStream; +import java.io.ObjectInputStream; +import java.io.ObjectOutputStream; +import java.io.ObjectStreamClass; +import java.io.OutputStream; +import java.lang.reflect.Proxy; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * {@link ObjectInputStream}/{@link ObjectOutputStream} pair that can handle object graph that spans across + * multiple classloaders. + * + *

      + * To pass around ClassLoaders, this class uses OID instead of {@link IClassLoader}, since doing so + * can results in recursive class resolution that may end up with NPE in ObjectInputStream.defaultReadFields like + * described in the comment from huybrechts in HUDSON-4293. + * + * @author Kohsuke Kawaguchi + * @see Capability#supportsMultiClassLoaderRPC() + */ +class MultiClassLoaderSerializer { + static final class Output extends ObjectOutputStream { + private final Channel channel; + /** + * Encountered Classloaders, to their indices. + */ + private final Map classLoaders = new HashMap(); + + Output(Channel channel, OutputStream out) throws IOException { + super(out); + this.channel = channel; + } + + @Override + protected void annotateClass(Class c) throws IOException { + ClassLoader cl = c.getClassLoader(); + if (cl==null) {// bootstrap classloader. no need to export. + writeInt(TAG_SYSTEMCLASSLOADER); + return; + } + + Integer idx = classLoaders.get(cl); + if (idx==null) { + classLoaders.put(cl,classLoaders.size()); + if (cl instanceof RemoteClassLoader) { + int oid = ((RemoteClassLoader) cl).getOid(channel); + if (oid>=0) { + // this classloader came from where we are sending this classloader to. + writeInt(TAG_LOCAL_CLASSLOADER); + writeInt(oid); + return; + } + } + + // tell the receiving side that they need to import a new classloader + writeInt(TAG_EXPORTED_CLASSLOADER); + writeInt(RemoteClassLoader.exportId(cl,channel)); + } else {// reference to a classloader that's already written + writeInt(idx); + } + } + + @Override + protected void annotateProxyClass(Class cl) throws IOException { + annotateClass(cl); + } + } + + static final class Input extends ObjectInputStream { + private final Channel channel; + private final List classLoaders = new ArrayList(); + + Input(Channel channel, InputStream in) throws IOException { + super(in); + this.channel = channel; + } + + private ClassLoader readClassLoader() throws IOException, ClassNotFoundException { + ClassLoader cl; + int code = readInt(); + switch (code) { + case TAG_SYSTEMCLASSLOADER: + return null; + + case TAG_LOCAL_CLASSLOADER: + cl = ((RemoteClassLoader.ClassLoaderProxy)channel.getExportedObject(readInt())).cl; + classLoaders.add(cl); + return cl; + + case TAG_EXPORTED_CLASSLOADER: + cl = channel.importedClassLoaders.get(readInt()); + classLoaders.add(cl); + return cl; + default: + return classLoaders.get(code); + } + } + + @Override + protected Class resolveClass(ObjectStreamClass desc) throws IOException, ClassNotFoundException { + String name = desc.getName(); + try { + ClassLoader cl = readClassLoader(); + Class c = Class.forName(name, false, cl); + return c; + } catch (ClassNotFoundException ex) { + return super.resolveClass(desc); + } + } + + @Override + protected Class resolveProxyClass(String[] interfaces) throws IOException, ClassNotFoundException { + ClassLoader cl = readClassLoader(); + + Class[] classes = new Class[interfaces.length]; + for (int i = 0; i < interfaces.length; i++) + classes[i] = Class.forName(interfaces[i], false, cl); + return Proxy.getProxyClass(cl, classes); + } + } + + /** + * Indicates that the class being sent should be loaded from the system classloader. + */ + private static final int TAG_SYSTEMCLASSLOADER = -3; + /** + * Indicates that the class being sent originates from the sender side. The sender exports this classloader + * and sends its OID in the following int. The receiver will import this classloader to resolve the class. + */ + private static final int TAG_EXPORTED_CLASSLOADER = -2; + /** + * Indicates that the class being sent originally came from the receiver. The following int indicates + * the OID of the classloader exported from the receiver, which the sender used. + */ + private static final int TAG_LOCAL_CLASSLOADER = -1; +} diff --git a/remoting/src/main/java/hudson/remoting/ObjectInputStreamEx.java b/remoting/src/main/java/hudson/remoting/ObjectInputStreamEx.java index f3a3d32e1bbc66a00bace8c566be83f063c82da2..98bf69b68adaefdcecf0301ffb2fd7db3f4f015f 100644 --- a/remoting/src/main/java/hudson/remoting/ObjectInputStreamEx.java +++ b/remoting/src/main/java/hudson/remoting/ObjectInputStreamEx.java @@ -29,13 +29,11 @@ import java.io.ObjectInputStream; import java.io.ObjectStreamClass; import java.lang.reflect.Modifier; import java.lang.reflect.Proxy; -import java.util.Map; -import java.util.HashMap; /** * {@link ObjectInputStream} that uses a specific class loader. */ -final class ObjectInputStreamEx extends ObjectInputStream { +public class ObjectInputStreamEx extends ObjectInputStream { private final ClassLoader cl; public ObjectInputStreamEx(InputStream in, ClassLoader cl) throws IOException { diff --git a/remoting/src/main/java/hudson/remoting/PingThread.java b/remoting/src/main/java/hudson/remoting/PingThread.java index 7f016762ee10c8665e73b5276f7c3eee33d194b9..9ef700dbb998d65737146ee41982753ad10d62c5 100644 --- a/remoting/src/main/java/hudson/remoting/PingThread.java +++ b/remoting/src/main/java/hudson/remoting/PingThread.java @@ -1,7 +1,7 @@ /* * The MIT License * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi + * Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -46,19 +46,31 @@ import java.util.logging.Logger; public abstract class PingThread extends Thread { private final Channel channel; + /** + * Time out in milliseconds. + * If the response doesn't come back by then, the channel is considered dead. + */ + private final long timeout; + /** * Performs a check every this milliseconds. */ private final long interval; - public PingThread(Channel channel, long interval) { + public PingThread(Channel channel, long timeout, long interval) { super("Ping thread for channel "+channel); this.channel = channel; + this.timeout = timeout; this.interval = interval; + setDaemon(true); + } + + public PingThread(Channel channel, long interval) { + this(channel, 4*60*1000/*4 mins*/, interval); } public PingThread(Channel channel) { - this(channel,5*60*1000/*5 mins*/); + this(channel,10*60*1000/*10 mins*/); } public void run() { @@ -73,6 +85,8 @@ public abstract class PingThread extends Thread { while((diff=nextCheck-System.currentTimeMillis())>0) Thread.sleep(diff); } + } catch (ChannelClosedException e) { + LOGGER.fine(getName()+" is closed. Terminating"); } catch (IOException e) { onDead(); } catch (InterruptedException e) { @@ -84,8 +98,10 @@ public abstract class PingThread extends Thread { private void ping() throws IOException, InterruptedException { Future f = channel.callAsync(new Ping()); try { - f.get(TIME_OUT,MILLISECONDS); + f.get(timeout,MILLISECONDS); } catch (ExecutionException e) { + if (e.getCause() instanceof RequestAbortedException) + return; // connection has shut down orderly. onDead(); } catch (TimeoutException e) { onDead(); @@ -105,11 +121,5 @@ public abstract class PingThread extends Thread { } } - /** - * Time out in milliseconds. - * If the response doesn't come back by then, the channel is considered dead. - */ - private static final long TIME_OUT = 60*1000; // 1 min - private static final Logger LOGGER = Logger.getLogger(PingThread.class.getName()); } diff --git a/remoting/src/main/java/hudson/remoting/Pipe.java b/remoting/src/main/java/hudson/remoting/Pipe.java index a6d184b54c9799abcbf499068dd7746f8d6bf0be..22fb5c9a3cfcaa9a704a958d6c443f69f0800174 100644 --- a/remoting/src/main/java/hudson/remoting/Pipe.java +++ b/remoting/src/main/java/hudson/remoting/Pipe.java @@ -28,8 +28,6 @@ import java.io.InputStream; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.io.OutputStream; -import java.io.PipedInputStream; -import java.io.PipedOutputStream; import java.io.Serializable; import java.util.logging.Level; import java.util.logging.Logger; @@ -109,7 +107,7 @@ public final class Pipe implements Serializable { */ public static Pipe createRemoteToLocal() { // OutputStream will be created on the target - return new Pipe(new PipedInputStream(),null); + return new Pipe(new FastPipedInputStream(),null); } /** @@ -122,7 +120,7 @@ public final class Pipe implements Serializable { private void writeObject(ObjectOutputStream oos) throws IOException { if(in!=null && out==null) { // remote will write to local - PipedOutputStream pos = new PipedOutputStream((PipedInputStream)in); + FastPipedOutputStream pos = new FastPipedOutputStream((FastPipedInputStream)in); int oid = Channel.current().export(pos,false); // this export is unexported in ProxyOutputStream.finalize() oos.writeBoolean(true); // marker @@ -152,8 +150,8 @@ public final class Pipe implements Serializable { final int oidRos = ois.readInt(); // we want 'oidRos' to send data to this PipedOutputStream - PipedOutputStream pos = new PipedOutputStream(); - PipedInputStream pis = new PipedInputStream(pos); + FastPipedOutputStream pos = new FastPipedOutputStream(); + FastPipedInputStream pis = new FastPipedInputStream(pos); final int oidPos = channel.export(pos); // tell 'ros' to connect to our 'pos'. @@ -177,14 +175,20 @@ public final class Pipe implements Serializable { this.oidPos = oidPos; } - protected void execute(Channel channel) { - try { - ProxyOutputStream ros = (ProxyOutputStream) channel.getExportedObject(oidRos); - channel.unexport(oidRos); - ros.connect(channel, oidPos); - } catch (IOException e) { - logger.log(Level.SEVERE,"Failed to connect to pipe",e); - } + protected void execute(final Channel channel) { + channel.pipeWriter.submit(new Runnable() { + public void run() { + try { + final ProxyOutputStream ros = (ProxyOutputStream) channel.getExportedObject(oidRos); + channel.unexport(oidRos); + ros.connect(channel, oidPos); + } catch (IOException e) { + logger.log(Level.SEVERE,"Failed to connect to pipe",e); + } + } + }); } + + static final long serialVersionUID = -9128735897846418140L; } } diff --git a/remoting/src/main/java/hudson/remoting/PipeWindow.java b/remoting/src/main/java/hudson/remoting/PipeWindow.java new file mode 100644 index 0000000000000000000000000000000000000000..bd41b1dfecbaf49bb5642db5f411219c2e322784 --- /dev/null +++ b/remoting/src/main/java/hudson/remoting/PipeWindow.java @@ -0,0 +1,172 @@ +/* + * The MIT License + * + * Copyright (c) 2010, InfraDNA, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.remoting; + +import java.io.OutputStream; +import java.util.logging.Logger; + +import static java.util.logging.Level.*; + +/** + * Keeps track of the number of bytes that the sender can send without overwhelming the receiver of the pipe. + * + *

      + * {@link OutputStream} is a blocking operation in Java, so when we send byte[] to the remote to write to + * {@link OutputStream}, it needs to be done in a separate thread (or else we'll fail to attend to the channel + * in timely fashion.) This in turn means the byte[] being sent needs to go to a queue between a + * channel reader thread and I/O processing thread, and thus in turn means we need some kind of throttling + * mechanism, or else the queue can grow too much. + * + *

      + * This implementation solves the problem by using TCP/IP like window size tracking. The sender allocates + * a fixed length window size. Every time the sender sends something we reduce this value. When the receiver + * writes data to {@link OutputStream}, it'll send back the "ack" command, which adds to this value, allowing + * the sender to send more data. + * + * @author Kohsuke Kawaguchi + */ +abstract class PipeWindow { + abstract void increase(int delta); + + abstract int peek(); + + /** + * Blocks until some space becomes available. + */ + abstract int get() throws InterruptedException; + + abstract void decrease(int delta); + + /** + * Fake implementation used when the receiver side doesn't support throttling. + */ + static final PipeWindow FAKE = new PipeWindow() { + void increase(int delta) { + } + + int peek() { + return Integer.MAX_VALUE; + } + + int get() throws InterruptedException { + return Integer.MAX_VALUE; + } + + void decrease(int delta) { + } + }; + + static final class Key { + public final int oid; + + Key(int oid) { + this.oid = oid; + } + + @Override + public boolean equals(Object o) { + if (o == null || getClass() != o.getClass()) return false; + + return oid == ((Key) o).oid; + } + + @Override + public int hashCode() { + return oid; + } + } + + static class Real extends PipeWindow { + private int available; + private long written; + private long acked; + private final int oid; + /** + * The only strong reference to the key, which in turn + * keeps this object accessible in {@link Channel#pipeWindows}. + */ + private final Key key; + + Real(Key key, int initialSize) { + this.key = key; + this.oid = key.oid; + this.available = initialSize; + } + + public synchronized void increase(int delta) { + if (LOGGER.isLoggable(FINER)) + LOGGER.finer(String.format("increase(%d,%d)->%d",oid,delta,delta+available)); + available += delta; + acked += delta; + notifyAll(); + } + + public synchronized int peek() { + return available; + } + + /** + * Blocks until some space becomes available. + * + *

      + * If the window size is empty, induce some delay outside the synchronized block, + * to avoid fragmenting the window size. That is, if a bunch of small ACKs come in a sequence, + * bundle them up into a bigger size before making a call. + */ + public int get() throws InterruptedException { + synchronized (this) { + if (available>0) + return available; + + while (available==0) { + wait(); + } + } + + Thread.sleep(10); + + synchronized (this) { + return available; + } + } + + public synchronized void decrease(int delta) { + if (LOGGER.isLoggable(FINER)) + LOGGER.finer(String.format("decrease(%d,%d)->%d",oid,delta,available-delta)); + available -= delta; + written+= delta; + /* + HUDSON-7745 says the following assertion fails, which AFAICT is only possible if multiple + threads write to OutputStream concurrently, but that doesn't happen in most of the situations, so + I'm puzzled. For the time being, cheating by just suppressing the assertion. + + HUDSON-7581 appears to be related. + */ +// if (available<0) +// throw new AssertionError(); + } + } + + private static final Logger LOGGER = Logger.getLogger(PipeWindow.class.getName()); +} diff --git a/remoting/src/main/java/hudson/remoting/ProxyOutputStream.java b/remoting/src/main/java/hudson/remoting/ProxyOutputStream.java index 70b31b346c0727026aa6d1c29c85ee9534ea2173..0ee44424cb29bcedb743157fc7a81a76d55fc24e 100644 --- a/remoting/src/main/java/hudson/remoting/ProxyOutputStream.java +++ b/remoting/src/main/java/hudson/remoting/ProxyOutputStream.java @@ -25,7 +25,10 @@ package hudson.remoting; import java.io.ByteArrayOutputStream; import java.io.IOException; +import java.io.InterruptedIOException; import java.io.OutputStream; +import java.util.logging.Level; +import java.util.logging.Logger; /** * {@link OutputStream} that sends bits to an exported @@ -35,6 +38,8 @@ final class ProxyOutputStream extends OutputStream { private Channel channel; private int oid; + private PipeWindow window; + /** * If bytes are written to this stream before it's connected * to a remote object, bytes will be stored in this buffer. @@ -76,10 +81,13 @@ final class ProxyOutputStream extends OutputStream { this.channel = channel; this.oid = oid; + window = channel.getPipeWindow(oid); + // if we already have bytes to write, do so now. if(tmp!=null) { - channel.send(new Chunk(oid,tmp.toByteArray())); + byte[] b = tmp.toByteArray(); tmp = null; + _write(b,0,b.length); } if(closed) // already marked closed? doClose(); @@ -92,28 +100,34 @@ final class ProxyOutputStream extends OutputStream { public void write(byte b[], int off, int len) throws IOException { if(closed) throw new IOException("stream is already closed"); - if(off==0 && len==b.length) - write(b); - else { - byte[] buf = new byte[len]; - System.arraycopy(b,off,buf,0,len); - write(buf); - } + _write(b, off, len); } - public synchronized void write(byte b[]) throws IOException { - if(closed) - throw new IOException("stream is already closed"); + /** + * {@link #write(byte[])} without the close check. + */ + private void _write(byte[] b, int off, int len) throws IOException { if(channel==null) { if(tmp==null) tmp = new ByteArrayOutputStream(); - tmp.write(b); + tmp.write(b,off,len); } else { - channel.send(new Chunk(oid,b)); + while (len>0) { + int sendable; + try { + sendable = Math.min(window.get(),len); + } catch (InterruptedException e) { + throw (IOException)new InterruptedIOException().initCause(e); + } + + channel.send(new Chunk(oid,b,off,sendable)); + window.decrease(sendable); + off+=sendable; + len-=sendable; + } } } - public void flush() throws IOException { if(channel!=null) channel.send(new Flush(oid)); @@ -149,18 +163,41 @@ final class ProxyOutputStream extends OutputStream { private final int oid; private final byte[] buf; - public Chunk(int oid, byte[] buf) { + public Chunk(int oid, byte[] buf, int start, int len) { + // to improve the performance when a channel is used purely as a pipe, + // don't record the stack trace. On FilePath.writeToTar case, the stack trace and the OOS header + // takes up about 1.5K. + super(false); this.oid = oid; - this.buf = buf; + if (start==0 && len==buf.length) + this.buf = buf; + else { + this.buf = new byte[len]; + System.arraycopy(buf,start,this.buf,0,len); + } } - protected void execute(Channel channel) { - OutputStream os = (OutputStream) channel.getExportedObject(oid); - try { - os.write(buf); - } catch (IOException e) { - // ignore errors - } + protected void execute(final Channel channel) { + final OutputStream os = (OutputStream) channel.getExportedObject(oid); + channel.pipeWriter.submit(new Runnable() { + public void run() { + try { + os.write(buf); + } catch (IOException e) { + // ignore errors + LOGGER.log(Level.WARNING, "Failed to write to stream",e); + } finally { + if (channel.remoteCapability.supportsPipeThrottling()) { + try { + channel.send(new Ack(oid,buf.length)); + } catch (IOException e) { + // ignore errors + LOGGER.log(Level.WARNING, "Failed to ack the stream",e); + } + } + } + } + }); } public String toString() { @@ -177,16 +214,21 @@ final class ProxyOutputStream extends OutputStream { private final int oid; public Flush(int oid) { + super(false); this.oid = oid; } protected void execute(Channel channel) { - OutputStream os = (OutputStream) channel.getExportedObject(oid); - try { - os.flush(); - } catch (IOException e) { - // ignore errors - } + final OutputStream os = (OutputStream) channel.getExportedObject(oid); + channel.pipeWriter.submit(new Runnable() { + public void run() { + try { + os.flush(); + } catch (IOException e) { + // ignore errors + } + } + }); } public String toString() { @@ -209,8 +251,12 @@ final class ProxyOutputStream extends OutputStream { this.oid = oid; } - protected void execute(Channel channel) { - channel.unexport(oid); + protected void execute(final Channel channel) { + channel.pipeWriter.submit(new Runnable() { + public void run() { + channel.unexport(oid); + } + }); } public String toString() { @@ -231,14 +277,18 @@ final class ProxyOutputStream extends OutputStream { } - protected void execute(Channel channel) { - OutputStream os = (OutputStream) channel.getExportedObject(oid); - channel.unexport(oid); - try { - os.close(); - } catch (IOException e) { - // ignore errors - } + protected void execute(final Channel channel) { + final OutputStream os = (OutputStream) channel.getExportedObject(oid); + channel.pipeWriter.submit(new Runnable() { + public void run() { + channel.unexport(oid); + try { + os.close(); + } catch (IOException e) { + // ignore errors + } + } + }); } public String toString() { @@ -247,4 +297,37 @@ final class ProxyOutputStream extends OutputStream { private static final long serialVersionUID = 1L; } + + /** + * {@link Command} to notify the sender that it can send some more data. + */ + private static class Ack extends Command { + /** + * The oid of the {@link OutputStream} on the receiver side of the data. + */ + private final int oid; + /** + * The number of bytes that were freed up. + */ + private final int size; + + private Ack(int oid, int size) { + super(false); // performance optimization + this.oid = oid; + this.size = size; + } + + protected void execute(Channel channel) { + PipeWindow w = channel.getPipeWindow(oid); + w.increase(size); + } + + public String toString() { + return "Pipe.Ack("+oid+','+size+")"; + } + + private static final long serialVersionUID = 1L; + } + + private static final Logger LOGGER = Logger.getLogger(ProxyOutputStream.class.getName()); } diff --git a/remoting/src/main/java/hudson/remoting/RemoteClassLoader.java b/remoting/src/main/java/hudson/remoting/RemoteClassLoader.java index 76a8222b664679e4974361a01cdeee4aa47749d0..84271f370da97e583502d181dc71a6bba403be8f 100644 --- a/remoting/src/main/java/hudson/remoting/RemoteClassLoader.java +++ b/remoting/src/main/java/hudson/remoting/RemoteClassLoader.java @@ -53,6 +53,7 @@ import java.util.HashSet; * @author Kohsuke Kawaguchi */ final class RemoteClassLoader extends URLClassLoader { + /** * Proxy to the code running on remote end. */ @@ -89,6 +90,14 @@ final class RemoteClassLoader extends URLClassLoader { this.channel = RemoteInvocationHandler.unwrap(proxy); } + /** + * If this {@link RemoteClassLoader} represents a classloader from the specified channel, + * return its exported OID. Otherwise return -1. + */ + /*package*/ int getOid(Channel channel) { + return RemoteInvocationHandler.unwrap(proxy,channel); + } + protected Class findClass(String name) throws ClassNotFoundException { try { // first attempt to load from locally fetched jars @@ -97,16 +106,49 @@ final class RemoteClassLoader extends URLClassLoader { if(channel.isRestricted) throw e; // delegate to remote - long startTime = System.nanoTime(); - byte[] bytes = proxy.fetch(name); - channel.classLoadingTime.addAndGet(System.nanoTime()-startTime); - channel.classLoadingCount.incrementAndGet(); + if (channel.remoteCapability.supportsMultiClassLoaderRPC()) { + /* + In multi-classloader setup, RemoteClassLoaders do not retain the relationships among the original classloaders, + so each RemoteClassLoader ends up loading classes on its own without delegating to other RemoteClassLoaders. + + See the classloader X/Y examples in HUDSON-5048 for the depiction of the problem. + + So instead, we find the right RemoteClassLoader to load the class on per class basis. + The communication is optimized for the single classloader use, by always returning the class file image + along with the reference to the initiating ClassLoader (if the initiating ClassLoader has already loaded this class, + then the class file image is wasted.) + */ + long startTime = System.nanoTime(); + ClassFile cf = proxy.fetch2(name); + channel.classLoadingTime.addAndGet(System.nanoTime()-startTime); + channel.classLoadingCount.incrementAndGet(); + + ClassLoader cl = channel.importedClassLoaders.get(cf.classLoader); + if (cl instanceof RemoteClassLoader) { + RemoteClassLoader rcl = (RemoteClassLoader) cl; + Class c = rcl.findLoadedClass(name); + if (c==null) + c = rcl.loadClassFile(name,cf.classImage); + return c; + } else { + return cl.loadClass(name); + } + } else { + long startTime = System.nanoTime(); + byte[] bytes = proxy.fetch(name); + channel.classLoadingTime.addAndGet(System.nanoTime()-startTime); + channel.classLoadingCount.incrementAndGet(); + + return loadClassFile(name, bytes); + } + } + } - // define package - definePackage(name); + private Class loadClassFile(String name, byte[] bytes) { + // define package + definePackage(name); - return defineClass(name, bytes, 0, bytes.length); - } + return defineClass(name, bytes, 0, bytes.length); } /** @@ -137,7 +179,7 @@ final class RemoteClassLoader extends URLClassLoader { if(f.exists()) // be defensive against external factors that might have deleted this file, since we use /tmp // see http://www.nabble.com/Surefire-reports-tt17554215.html - return f.toURL(); + return f.toURI().toURL(); } long startTime = System.nanoTime(); @@ -151,7 +193,7 @@ final class RemoteClassLoader extends URLClassLoader { File res = makeResource(name, image); resourceMap.put(name,res); - return res.toURL(); + return res.toURI().toURL(); } catch (IOException e) { throw new Error("Unable to load resource "+name,e); } @@ -161,7 +203,7 @@ final class RemoteClassLoader extends URLClassLoader { Vector r = new Vector(files.size()); for (File f : files) { if(!f.exists()) return null; // abort - r.add(f.toURL()); + r.add(f.toURI().toURL()); } return r; } @@ -194,15 +236,58 @@ final class RemoteClassLoader extends URLClassLoader { return toURLs(files).elements(); } + // FIXME move to utils + /** Instructs Java to recursively delete the given directory (dir) and its contents when the JVM exits. + * @param dir File customer representing directory to delete. If this file argument is not a directory, it will still + * be deleted.

      + * The method works in Java 1.3, Java 1.4, Java 5.0 and Java 6.0; but it does not work with some early Java 6.0 versions + * See http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6437591 + */ + public static void deleteDirectoryOnExit(final File dir) { + // Delete this on exit. Delete on exit requests are processed in REVERSE order + dir.deleteOnExit(); + + // If it's a directory, visit its children. This recursive walk has to be done AFTER calling deleteOnExit + // on the directory itself because Java deletes the files to be deleted on exit in reverse order. + if (dir.isDirectory()) { + File[] childFiles = dir.listFiles(); + if (childFiles != null) { // listFiles may return null if there's an IO error + for (File f: childFiles) { deleteDirectoryOnExit(f); } + } + } + } + + private File makeResource(String name, byte[] image) throws IOException { - int idx = name.lastIndexOf('/'); - File f = File.createTempFile("hudson-remoting","."+name.substring(idx+1)); - FileOutputStream fos = new FileOutputStream(f); + File tmpFile = createTempDir(); + File resource = new File(tmpFile, name); + resource.getParentFile().mkdirs(); + + FileOutputStream fos = new FileOutputStream(resource); fos.write(image); fos.close(); - f.deleteOnExit(); - return f; + deleteDirectoryOnExit(tmpFile); + + return resource; + } + + private File createTempDir() throws IOException { + // work around sun bug 6325169 on windows + // see http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6325169 + int nRetry=0; + while (true) { + try { + File tmpFile = File.createTempFile("hudson-remoting", ""); + tmpFile.delete(); + tmpFile.mkdir(); + return tmpFile; + } catch (IOException e) { + if (nRetry++ < 100) + continue; + throw e; + } + } } /** @@ -229,12 +314,28 @@ final class RemoteClassLoader extends URLClassLoader { } } + static class ClassFile implements Serializable { + /** + * oid of the classloader that should load this class. + */ + final int classLoader; + final byte[] classImage; + + ClassFile(int classLoader, byte[] classImage) { + this.classLoader = classLoader; + this.classImage = classImage; + } + + private static final long serialVersionUID = 1L; + } + /** * Remoting interface. */ /*package*/ static interface IClassLoader { byte[] fetchJar(URL url) throws IOException; byte[] fetch(String className) throws ClassNotFoundException; + ClassFile fetch2(String className) throws ClassNotFoundException; byte[] getResource(String name) throws IOException; byte[][] getResources(String name) throws IOException; } @@ -248,21 +349,25 @@ final class RemoteClassLoader extends URLClassLoader { return new RemoteIClassLoader(oid,rcl.proxy); } } - return local.export(IClassLoader.class, new ClassLoaderProxy(cl), false); + return local.export(IClassLoader.class, new ClassLoaderProxy(cl,local), false); } /** * Exports and just returns the object ID, instead of obtaining the proxy. */ static int exportId(ClassLoader cl, Channel local) { - return local.export(new ClassLoaderProxy(cl)); + return local.export(new ClassLoaderProxy(cl,local), false); } /*package*/ static final class ClassLoaderProxy implements IClassLoader { - private final ClassLoader cl; + final ClassLoader cl; + final Channel channel; + + public ClassLoaderProxy(ClassLoader cl, Channel channel) { + assert cl != null; - public ClassLoaderProxy(ClassLoader cl) { this.cl = cl; + this.channel = channel; } public byte[] fetchJar(URL url) throws IOException { @@ -270,6 +375,10 @@ final class RemoteClassLoader extends URLClassLoader { } public byte[] fetch(String className) throws ClassNotFoundException { + if (!USE_BOOTSTRAP_CLASSLOADER && cl==PSEUDO_BOOTSTRAP) { + throw new ClassNotFoundException("Classloading from bootstrap classloader disabled"); + } + InputStream in = cl.getResourceAsStream(className.replace('.', '/') + ".class"); if(in==null) throw new ClassNotFoundException(className); @@ -281,20 +390,59 @@ final class RemoteClassLoader extends URLClassLoader { } } + public ClassFile fetch2(String className) throws ClassNotFoundException { + ClassLoader ecl = cl.loadClass(className).getClassLoader(); + if (ecl == null) { + if (USE_BOOTSTRAP_CLASSLOADER) { + ecl = PSEUDO_BOOTSTRAP; + } else { + throw new ClassNotFoundException("Classloading from system classloader disabled"); + } + } - public byte[] getResource(String name) throws IOException { - InputStream in = cl.getResourceAsStream(name); - if(in==null) return null; + try { + return new ClassFile( + exportId(ecl,channel), + readFully(ecl.getResourceAsStream(className.replace('.', '/') + ".class"))); + } catch (IOException e) { + throw new ClassNotFoundException(); + } + } - return readFully(in); + public byte[] getResource(String name) throws IOException { + URL resource = cl.getResource(name); + if (resource == null) { + return null; + } + + if (!USE_BOOTSTRAP_CLASSLOADER) { + URL systemResource = PSEUDO_BOOTSTRAP.getResource(name); + if (resource.equals(systemResource)) { + return null; + } + } + + return readFully(resource.openStream()); } public byte[][] getResources(String name) throws IOException { List images = new ArrayList(); + + Set systemResources = null; + if (!USE_BOOTSTRAP_CLASSLOADER) { + systemResources = new HashSet(); + Enumeration e = PSEUDO_BOOTSTRAP.getResources(name); + while (e.hasMoreElements()) { + systemResources.add(e.nextElement()); + } + } Enumeration e = cl.getResources(name); while(e.hasMoreElements()) { - images.add(readFully(e.nextElement().openStream())); + URL url = e.nextElement(); + if (systemResources == null || !systemResources.contains(url)) { + images.add(readFully(url.openStream())); + } } return images.toArray(new byte[images.size()][]); @@ -322,6 +470,17 @@ final class RemoteClassLoader extends URLClassLoader { public int hashCode() { return cl.hashCode(); } + + /** + * Since bootstrap classloader by itself doesn't have the {@link ClassLoader} object + * representing it (a crazy design, really), accessing it is unnecessarily hard. + * + *

      + * So we create a child classloader that delegates directly to the bootstrap, without adding + * any new classpath. In this way, we can effectively use this classloader as a representation + * of the bootstrap classloader. + */ + private static final ClassLoader PSEUDO_BOOTSTRAP = new URLClassLoader(new URL[0],null); } /** @@ -349,6 +508,10 @@ final class RemoteClassLoader extends URLClassLoader { return proxy.fetch(className); } + public ClassFile fetch2(String className) throws ClassNotFoundException { + return proxy.fetch2(className); + } + public byte[] getResource(String name) throws IOException { return proxy.getResource(name); } @@ -364,4 +527,10 @@ final class RemoteClassLoader extends URLClassLoader { private static final long serialVersionUID = 1L; } + /** + * If set to true, classes loaded by the bootstrap classloader will be also remoted to the remote JVM. + * By default, classes that belong to the bootstrap classloader will NOT be remoted, as each JVM gets its own JRE + * and their versions can be potentially different. + */ + public static boolean USE_BOOTSTRAP_CLASSLOADER = Boolean.getBoolean(RemoteClassLoader.class.getName() + ".useBootstrapClassLoader"); } diff --git a/remoting/src/main/java/hudson/remoting/RemoteInvocationHandler.java b/remoting/src/main/java/hudson/remoting/RemoteInvocationHandler.java index 74d350210f17ad8bfedce0c415589957e64e2bf8..e7617d08ccd5f2f855392387718075ec38f73e54 100644 --- a/remoting/src/main/java/hudson/remoting/RemoteInvocationHandler.java +++ b/remoting/src/main/java/hudson/remoting/RemoteInvocationHandler.java @@ -59,35 +59,45 @@ final class RemoteInvocationHandler implements InvocationHandler, Serializable { */ private final boolean userProxy; + /** + * If true, this proxy is automatically unexported by the calling {@link Channel}, + * so this object won't release the object at {@link #finalize()}. + *

      + * This ugly distinction enables us to keep the # of exported objects low for + * the typical situation where the calls are synchronous (thus end of the call + * signifies full unexport of all involved objects.) + */ + private final boolean autoUnexportByCaller; + /** * If true, indicates that this proxy object is being sent back - * to where it came from. If false, indicate sthat this proxy + * to where it came from. If false, indicates that this proxy * is being sent to the remote peer. * * Only used in the serialized form of this class. */ private boolean goingHome; - RemoteInvocationHandler(int id, boolean userProxy) { - this.oid = id; - this.userProxy = userProxy; - } - /** * Creates a proxy that wraps an existing OID on the remote. */ - RemoteInvocationHandler(Channel channel, int id, boolean userProxy) { + RemoteInvocationHandler(Channel channel, int id, boolean userProxy, boolean autoUnexportByCaller) { this.channel = channel; this.oid = id; this.userProxy = userProxy; + this.autoUnexportByCaller = autoUnexportByCaller; } /** * Wraps an OID to the typed wrapper. */ - public static T wrap(Channel channel, int id, Class type, boolean userProxy) { - return type.cast(Proxy.newProxyInstance( type.getClassLoader(), new Class[]{type,IReadResolve.class}, - new RemoteInvocationHandler(channel,id,userProxy))); + public static T wrap(Channel channel, int id, Class type, boolean userProxy, boolean autoUnexportByCaller) { + ClassLoader cl = type.getClassLoader(); + // if the type is a JDK-defined type, classloader should be for IReadResolve + if(cl==null || cl==ClassLoader.getSystemClassLoader()) + cl = IReadResolve.class.getClassLoader(); + return type.cast(Proxy.newProxyInstance(cl, new Class[]{type,IReadResolve.class}, + new RemoteInvocationHandler(channel,id,userProxy,autoUnexportByCaller))); } /** @@ -183,7 +193,7 @@ final class RemoteInvocationHandler implements InvocationHandler, Serializable { protected void finalize() throws Throwable { // unexport the remote object - if(channel!=null) + if(channel!=null && !autoUnexportByCaller) channel.send(new UnexportCommand(oid)); super.finalize(); } @@ -287,6 +297,10 @@ final class RemoteInvocationHandler implements InvocationHandler, Serializable { return null; } + Object[] getArguments() { // for debugging + return arguments; + } + public String toString() { return "RPCRequest("+oid+","+methodName+")"; } diff --git a/remoting/src/main/java/hudson/remoting/Request.java b/remoting/src/main/java/hudson/remoting/Request.java index addc04ab42ad27a202b7fd4067f10bb812d0cd73..c1850baca80295a6d2d8b39acb4239a7d1cef501 100644 --- a/remoting/src/main/java/hudson/remoting/Request.java +++ b/remoting/src/main/java/hudson/remoting/Request.java @@ -25,6 +25,7 @@ package hudson.remoting; import java.io.IOException; import java.io.Serializable; +import java.util.concurrent.CancellationException; import java.util.concurrent.ExecutionException; import java.util.concurrent.Future; import java.util.concurrent.TimeUnit; @@ -69,7 +70,7 @@ abstract class Request extends C /** * While executing the call this is set to the handle of the execution. */ - private volatile transient Future future; + protected volatile transient Future future; protected Request() { @@ -105,35 +106,49 @@ abstract class Request extends C } } - synchronized(this) { - // set the thread name to represent the channel we are blocked on, - // so that thread dump would give us more useful information. - Thread t = Thread.currentThread(); - final String name = t.getName(); - try { - t.setName(name+" / waiting for "+channel); - while(response==null) - wait(); // wait until the response arrives - } catch (InterruptedException e) { - // if we are cancelled, abort the remote computation, too - channel.send(new Cancel(id)); - throw e; - } finally { - t.setName(name); - } + try { + synchronized(this) { + // set the thread name to represent the channel we are blocked on, + // so that thread dump would give us more useful information. + Thread t = Thread.currentThread(); + final String name = t.getName(); + try { + // wait until the response arrives + t.setName(name+" / waiting for "+channel); + while(response==null && !channel.isInClosed()) + // I don't know exactly when this can happen, as pendingCalls are cleaned up by Channel, + // but in production I've observed that in rare occasion it can block forever, even after a channel + // is gone. So be defensive against that. + wait(30*1000); + + if (response==null) + // channel is closed and we still don't have a response + throw new RequestAbortedException(null); + } finally { + t.setName(name); + } - Object exc = response.exception; + Object exc = response.exception; - if(exc !=null) { - if(exc instanceof RequestAbortedException) { - // add one more exception, so that stack trace shows both who's waiting for the completion - // and where the connection outage was detected. - exc = new RequestAbortedException((RequestAbortedException)exc); + if (exc!=null) { + if(exc instanceof RequestAbortedException) { + // add one more exception, so that stack trace shows both who's waiting for the completion + // and where the connection outage was detected. + exc = new RequestAbortedException((RequestAbortedException)exc); + } + throw (EXC)exc; // some versions of JDK fails to compile this line. If so, upgrade your JDK. } - throw (EXC)exc; // some versions of JDK fails to compile this line. If so, upgrade your JDK. - } - return response.returnValue; + return response.returnValue; + } + } catch (InterruptedException e) { + // if we are cancelled, abort the remote computation, too. + // do this outside the "synchronized(this)" block to prevent locking Request and Channel in a wrong order. + synchronized (channel) { // ... so that the close check and send won't be interrupted in the middle by a close + if (!channel.isOutClosed()) + channel.send(new Cancel(id)); // only send a cancel if we can, or else ChannelClosedException will mask the original cause + } + throw e; } } @@ -155,26 +170,41 @@ abstract class Request extends C channel.send(this); return new hudson.remoting.Future() { - /** - * The task cannot be cancelled. - */ + + private volatile boolean cancelled; + public boolean cancel(boolean mayInterruptIfRunning) { - return false; + if (cancelled || isDone()) { + return false; + } + cancelled = true; + if (mayInterruptIfRunning) { + try { + channel.send(new Cancel(id)); + } catch (IOException x) { + return false; + } + } + return true; } public boolean isCancelled() { - return false; + return cancelled; } public boolean isDone() { - return response!=null; + return isCancelled() || response!=null; } public RSP get() throws InterruptedException, ExecutionException { synchronized(Request.this) { try { - while(response==null) + while(response==null) { + if (isCancelled()) { + throw new CancellationException(); + } Request.this.wait(); // wait until the response arrives + } } catch (InterruptedException e) { try { channel.send(new Cancel(id)); @@ -193,8 +223,12 @@ abstract class Request extends C public RSP get(long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException { synchronized(Request.this) { - if(response==null) + if(response==null) { + if (isCancelled()) { + throw new CancellationException(); + } Request.this.wait(unit.toMillis(timeout)); // wait until the response arrives + } if(response==null) throw new TimeoutException(); @@ -231,16 +265,22 @@ abstract class Request extends C future = channel.executor.submit(new Runnable() { public void run() { try { - RSP rsp; + Command rsp; try { - rsp = Request.this.perform(channel); + RSP r = Request.this.perform(channel); + // normal completion + rsp = new Response(id,r); } catch (Throwable t) { // error return - channel.send(new Response(id,t)); - return; + rsp = new Response(id,t); + } + if(chainCause) + rsp.createdAt.initCause(createdAt); + + synchronized (channel) {// expand the synchronization block of the send() method to a check + if(!channel.isOutClosed()) + channel.send(rsp); } - // normal completion - channel.send(new Response(id,rsp)); } catch (IOException e) { // communication error. // this means the caller will block forever @@ -261,6 +301,12 @@ abstract class Request extends C private static final Logger logger = Logger.getLogger(Request.class.getName()); + /** + * Set to true to chain {@link Command#createdAt} to track request/response relationship. + * This will substantially increase the network traffic, but useful for debugging. + */ + public static boolean chainCause = Boolean.getBoolean(Request.class.getName()+".chainCause"); + //private static final Unsafe unsafe = getUnsafe(); //private static Unsafe getUnsafe() { diff --git a/remoting/src/main/java/hudson/remoting/SynchronousExecutorService.java b/remoting/src/main/java/hudson/remoting/SynchronousExecutorService.java new file mode 100644 index 0000000000000000000000000000000000000000..b4fbf4733617161f2a79df110ee82ef0e9091a09 --- /dev/null +++ b/remoting/src/main/java/hudson/remoting/SynchronousExecutorService.java @@ -0,0 +1,62 @@ +package hudson.remoting; + +import java.util.Collections; +import java.util.List; +import java.util.concurrent.AbstractExecutorService; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.TimeUnit; + +/** + * {@link ExecutorService} that executes synchronously. + * + * @author Kohsuke Kawaguchi + */ +class SynchronousExecutorService extends AbstractExecutorService { + private volatile boolean shutdown = false; + private int count = 0; + + public void shutdown() { + shutdown = true; + } + + public List shutdownNow() { + shutdown = true; + return Collections.emptyList(); + } + + public boolean isShutdown() { + return shutdown; + } + + public synchronized boolean isTerminated() { + return shutdown && count==0; + } + + public synchronized boolean awaitTermination(long timeout, TimeUnit unit) throws InterruptedException { + long end = System.currentTimeMillis() + unit.toMillis(timeout); + + while (count!=0) { + long d = end - System.currentTimeMillis(); + if (d<0) return false; + wait(d); + } + return true; + } + + public void execute(Runnable command) { + if (shutdown) + throw new IllegalStateException("Already shut down"); + touchCount(1); + try { + command.run(); + } finally { + touchCount(-1); + } + } + + private synchronized void touchCount(int diff) { + count += diff; + if (count==0) + notifyAll(); + } +} diff --git a/remoting/src/main/java/hudson/remoting/UserRequest.java b/remoting/src/main/java/hudson/remoting/UserRequest.java index fac09915a4a38cc6a4c9c8b05dc7b7dcbeeb8094..693796171ac76d7348b830425a492b564d29b500 100644 --- a/remoting/src/main/java/hudson/remoting/UserRequest.java +++ b/remoting/src/main/java/hudson/remoting/UserRequest.java @@ -33,6 +33,7 @@ import java.io.IOException; import java.io.ObjectOutputStream; import java.io.Serializable; import java.io.NotSerializableException; +import java.io.ObjectInputStream; /** * {@link Request} that can take {@link Callable} whose actual implementation @@ -69,10 +70,20 @@ final class UserRequest extends Request c) { - if(c instanceof DelegatingCallable) - return ((DelegatingCallable)c).getClassLoader(); - else - return c.getClass().getClassLoader(); + ClassLoader result = null; + + if(c instanceof DelegatingCallable) { + result =((DelegatingCallable)c).getClassLoader(); + } + else { + result = c.getClass().getClassLoader(); + } + + if (result == null) { + result = ClassLoader.getSystemClassLoader(); + } + + return result; } protected UserResponse perform(Channel channel) throws EXC { @@ -84,7 +95,7 @@ final class UserRequest extends Request extends Request extends Request implements Serializable { public RSP retrieve(Channel channel, ClassLoader cl) throws IOException, ClassNotFoundException, EXC { Channel old = Channel.setCurrent(channel); try { - Object o = new ObjectInputStreamEx(new ByteArrayInputStream(response), cl).readObject(); + Object o = UserRequest.deserialize(channel,response,cl); if(isException) throw (EXC)o; diff --git a/remoting/src/main/java/hudson/remoting/Which.java b/remoting/src/main/java/hudson/remoting/Which.java index b9b4c10981bc1b5b5d3448987bc32e7048edc9cf..e266ea5709f36e2c5f120aab5bfbe3ce4ddae454 100644 --- a/remoting/src/main/java/hudson/remoting/Which.java +++ b/remoting/src/main/java/hudson/remoting/Which.java @@ -82,6 +82,13 @@ public class Which { resURL = resURL.substring("code-source:/".length(), resURL.lastIndexOf('!')); // cut off jar: and the file name portion return new File(decode(new URL("file:/"+resURL).getPath())); } + + if(resURL.startsWith("zip:")){ + // weblogic uses this. See http://www.nabble.com/patch-to-get-Hudson-working-on-weblogic-td23997258.html + // also see http://www.nabble.com/Re%3A-Hudson-on-Weblogic-10.3-td25038378.html#a25043415 + resURL = resURL.substring("zip:".length(), resURL.lastIndexOf('!')); // cut off zip: and the file name portion + return new File(decode(new URL("file:"+resURL).getPath())); + } if(resURL.startsWith("file:")) { // unpackaged classes @@ -104,17 +111,22 @@ public class Which { // JBoss5 InputStream is = res.openStream(); try { - Field f = is.getClass().getDeclaredField("delegate"); - f.setAccessible(true); - Object delegate = f.get(is); - f = delegate.getClass().getDeclaredField("this$0"); + Object delegate = is; + while (delegate.getClass().getEnclosingClass()!=ZipFile.class) { + Field f = is.getClass().getDeclaredField("delegate"); + f.setAccessible(true); + delegate = f.get(is); + } + Field f = delegate.getClass().getDeclaredField("this$0"); f.setAccessible(true); ZipFile zipFile = (ZipFile)f.get(delegate); return new File(zipFile.getName()); } catch (NoSuchFieldException e) { // something must have changed in JBoss5. fall through + LOGGER.log(Level.FINE, "Failed to resolve vfszip into a jar location",e); } catch (IllegalAccessException e) { // something must have changed in JBoss5. fall through + LOGGER.log(Level.FINE, "Failed to resolve vfszip into a jar location",e); } finally { is.close(); } @@ -125,20 +137,22 @@ public class Which { if (con instanceof JarURLConnection) { JarURLConnection jcon = (JarURLConnection) con; JarFile jarFile = jcon.getJarFile(); - String n = jarFile.getName(); - if(n.length()>0) {// JDK6u10 needs this - return new File(n); - } else { - // JDK6u10 apparently starts hiding the real jar file name, - // so this just keeps getting tricker and trickier... - try { - Field f = ZipFile.class.getDeclaredField("name"); - f.setAccessible(true); - return new File((String) f.get(jarFile)); - } catch (NoSuchFieldException e) { - LOGGER.log(Level.INFO, "Failed to obtain the local cache file name of "+clazz, e); - } catch (IllegalAccessException e) { - LOGGER.log(Level.INFO, "Failed to obtain the local cache file name of "+clazz, e); + if (jarFile!=null) { + String n = jarFile.getName(); + if(n.length()>0) {// JDK6u10 needs this + return new File(n); + } else { + // JDK6u10 apparently starts hiding the real jar file name, + // so this just keeps getting tricker and trickier... + try { + Field f = ZipFile.class.getDeclaredField("name"); + f.setAccessible(true); + return new File((String) f.get(jarFile)); + } catch (NoSuchFieldException e) { + LOGGER.log(Level.INFO, "Failed to obtain the local cache file name of "+clazz, e); + } catch (IllegalAccessException e) { + LOGGER.log(Level.INFO, "Failed to obtain the local cache file name of "+clazz, e); + } } } } diff --git a/remoting/src/main/java/hudson/remoting/forward/CopyThread.java b/remoting/src/main/java/hudson/remoting/forward/CopyThread.java new file mode 100644 index 0000000000000000000000000000000000000000..08e04001bf6eb27289057b168f11bcdaad7350f9 --- /dev/null +++ b/remoting/src/main/java/hudson/remoting/forward/CopyThread.java @@ -0,0 +1,37 @@ +package hudson.remoting.forward; + +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; + +/** + * Copies a stream and close them at EOF. + * + * @author Kohsuke Kawaguchi + */ +final class CopyThread extends Thread { + private final InputStream in; + private final OutputStream out; + + public CopyThread(String threadName, InputStream in, OutputStream out) { + super(threadName); + this.in = in; + this.out = out; + } + + public void run() { + try { + try { + byte[] buf = new byte[8192]; + int len; + while ((len = in.read(buf)) > 0) + out.write(buf, 0, len); + } finally { + in.close(); + out.close(); + } + } catch (IOException e) { + // TODO: what to do? + } + } +} diff --git a/remoting/src/main/java/hudson/remoting/forward/Forwarder.java b/remoting/src/main/java/hudson/remoting/forward/Forwarder.java new file mode 100644 index 0000000000000000000000000000000000000000..de4de2a01215632e44779ea6dbdc0f1eac8d8386 --- /dev/null +++ b/remoting/src/main/java/hudson/remoting/forward/Forwarder.java @@ -0,0 +1,45 @@ +/* + * The MIT License + * + * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.remoting.forward; + +import java.io.Serializable; +import java.io.OutputStream; +import java.io.IOException; + +/** + * Abstracts away how the forwarding is set up. + * + * @author Kohsuke Kawaguchi +*/ +public interface Forwarder extends Serializable { + /** + * Establishes a port forwarding connection and returns + * the writer end. + * + * @param out + * The writer end to the initiator. The callee will + * start a thread that writes to this. + */ + OutputStream connect(OutputStream out) throws IOException; +} diff --git a/remoting/src/main/java/hudson/remoting/forward/ForwarderFactory.java b/remoting/src/main/java/hudson/remoting/forward/ForwarderFactory.java new file mode 100644 index 0000000000000000000000000000000000000000..68796da0d266c35d9a4812ffe834a471b7ce937f --- /dev/null +++ b/remoting/src/main/java/hudson/remoting/forward/ForwarderFactory.java @@ -0,0 +1,83 @@ +/* + * The MIT License + * + * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.remoting.forward; + +import hudson.remoting.VirtualChannel; +import hudson.remoting.Callable; +import hudson.remoting.SocketInputStream; +import hudson.remoting.RemoteOutputStream; +import hudson.remoting.SocketOutputStream; +import hudson.remoting.Channel; + +import java.io.IOException; +import java.io.OutputStream; +import java.net.Socket; + +/** + * Creates {@link Forwarder}. + * + * @author Kohsuke Kawaguchi + */ +public class ForwarderFactory { + /** + * Creates a connector on the remote side that connects to the speicied host and port. + */ + public static Forwarder create(VirtualChannel channel, final String remoteHost, final int remotePort) throws IOException, InterruptedException { + return channel.call(new Callable() { + public Forwarder call() throws IOException { + return new ForwarderImpl(remoteHost,remotePort); + } + + private static final long serialVersionUID = 1L; + }); + } + + public static Forwarder create(String remoteHost, int remotePort) { + return new ForwarderImpl(remoteHost,remotePort); + } + + private static class ForwarderImpl implements Forwarder { + private final String remoteHost; + private final int remotePort; + + private ForwarderImpl(String remoteHost, int remotePort) { + this.remoteHost = remoteHost; + this.remotePort = remotePort; + } + + public OutputStream connect(OutputStream out) throws IOException { + Socket s = new Socket(remoteHost, remotePort); + new CopyThread(String.format("Copier to %s:%d", remoteHost, remotePort), + new SocketInputStream(s), out).start(); + return new RemoteOutputStream(new SocketOutputStream(s)); + } + + /** + * When sent to the remote node, send a proxy. + */ + private Object writeReplace() { + return Channel.current().export(Forwarder.class, this); + } + } +} diff --git a/remoting/src/main/java/hudson/remoting/forward/ListeningPort.java b/remoting/src/main/java/hudson/remoting/forward/ListeningPort.java new file mode 100644 index 0000000000000000000000000000000000000000..4a70a7fe9b74f0a3bb0bae53d3879f795edc3c4d --- /dev/null +++ b/remoting/src/main/java/hudson/remoting/forward/ListeningPort.java @@ -0,0 +1,24 @@ +package hudson.remoting.forward; + +import java.io.Closeable; +import java.io.IOException; + +/** + * Represents a listening port that forwards a connection + * via port forwarding. + * + * @author Kohsuke Kawaguchi + */ +public interface ListeningPort extends Closeable { + /** + * TCP/IP port that is listening. + */ + int getPort(); + + /** + * Shuts down the port forwarding by removing the server socket. + * Connections that are already established will not be affected + * by this operation. + */ + void close() throws IOException; +} diff --git a/remoting/src/main/java/hudson/remoting/forward/PortForwarder.java b/remoting/src/main/java/hudson/remoting/forward/PortForwarder.java new file mode 100644 index 0000000000000000000000000000000000000000..163d75d3097ea800984c8076d601d8b1369f2149 --- /dev/null +++ b/remoting/src/main/java/hudson/remoting/forward/PortForwarder.java @@ -0,0 +1,120 @@ +/* + * The MIT License + * + * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.remoting.forward; + +import hudson.remoting.RemoteOutputStream; +import hudson.remoting.SocketOutputStream; +import hudson.remoting.SocketInputStream; +import hudson.remoting.VirtualChannel; +import hudson.remoting.Callable; +import hudson.remoting.Channel; + +import java.net.ServerSocket; +import java.net.Socket; +import java.io.IOException; +import java.io.OutputStream; +import java.io.Closeable; +import static java.util.logging.Level.FINE; +import java.util.logging.Logger; + +/** + * Port forwarder over a remote channel. + * + * @author Kohsuke Kawaguchi + * @since 1.315 + */ +public class PortForwarder extends Thread implements Closeable, ListeningPort { + private final Forwarder forwarder; + private final ServerSocket socket; + + public PortForwarder(int localPort, Forwarder forwarder) throws IOException { + super(String.format("Port forwarder %d",localPort)); + this.forwarder = forwarder; + this.socket = new ServerSocket(localPort); + // mark as a daemon thread by default. + // the caller can explicitly cancel this by doing "setDaemon(false)" + setDaemon(true); + } + + public int getPort() { + return socket.getLocalPort(); + } + + @Override + public void run() { + try { + try { + while(true) { + final Socket s = socket.accept(); + new Thread("Port forwarding session from "+s.getRemoteSocketAddress()) { + public void run() { + try { + final OutputStream out = forwarder.connect(new RemoteOutputStream(new SocketOutputStream(s))); + new CopyThread("Copier for "+s.getRemoteSocketAddress(), + new SocketInputStream(s), out).start(); + } catch (IOException e) { + // this happens if the socket connection is terminated abruptly. + LOGGER.log(FINE,"Port forwarding session was shut down abnormally",e); + } + } + }.start(); + } + } finally { + socket.close(); + } + } catch (IOException e) { + LOGGER.log(FINE,"Port forwarding was shut down abnormally",e); + } + } + + /** + * Shuts down this port forwarder. + */ + public void close() throws IOException { + interrupt(); + socket.close(); + } + + /** + * Starts a {@link PortForwarder} accepting remotely at the given channel, + * which connects by using the given connector. + * + * @return + * A {@link Closeable} that can be used to shut the port forwarding down. + */ + public static ListeningPort create(VirtualChannel ch, final int acceptingPort, Forwarder forwarder) throws IOException, InterruptedException { + // need a remotable reference + final Forwarder proxy = ch.export(Forwarder.class, forwarder); + + return ch.call(new Callable() { + public ListeningPort call() throws IOException { + PortForwarder t = new PortForwarder(acceptingPort, proxy); + t.start(); + return Channel.current().export(ListeningPort.class,t); + } + }); + } + + private static final Logger LOGGER = Logger.getLogger(PortForwarder.class.getName()); +} diff --git a/remoting/src/main/java/hudson/remoting/forward/package-info.java b/remoting/src/main/java/hudson/remoting/forward/package-info.java new file mode 100644 index 0000000000000000000000000000000000000000..03026acbb89932edb04b4a45f956d2bb09969ce2 --- /dev/null +++ b/remoting/src/main/java/hudson/remoting/forward/package-info.java @@ -0,0 +1,4 @@ +/** + * TCP port forwarding over {@code hudson.remoting}. + */ +package hudson.remoting.forward; diff --git a/remoting/src/main/java/hudson/remoting/jnlp/GuiListener.java b/remoting/src/main/java/hudson/remoting/jnlp/GuiListener.java index 3cf6c844a76b03ef3556039a075959d2a6e19167..b4e1e1b7e0e80fb1ee0a3b579b0d67c13ad2e1c7 100644 --- a/remoting/src/main/java/hudson/remoting/jnlp/GuiListener.java +++ b/remoting/src/main/java/hudson/remoting/jnlp/GuiListener.java @@ -23,11 +23,15 @@ */ package hudson.remoting.jnlp; +import javax.swing.JOptionPane; +import javax.swing.SwingUtilities; import hudson.remoting.EngineListener; -import javax.swing.*; import java.io.StringWriter; import java.io.PrintWriter; +import java.util.logging.Logger; +import static java.util.logging.Level.INFO; +import static java.util.logging.Level.SEVERE; /** * {@link EngineListener} implementation that shows GUI. @@ -42,9 +46,15 @@ public final class GuiListener implements EngineListener { } public void status(final String msg) { + status(msg,null); + } + + public void status(final String msg, final Throwable t) { SwingUtilities.invokeLater(new Runnable() { public void run() { frame.status(msg); + if(t!=null) + LOGGER.log(INFO, msg, t); } }); } @@ -52,6 +62,7 @@ public final class GuiListener implements EngineListener { public void error(final Throwable t) { SwingUtilities.invokeLater(new Runnable() { public void run() { + LOGGER.log(SEVERE, t.getMessage(), t); StringWriter sw = new StringWriter(); t.printStackTrace(new PrintWriter(sw)); JOptionPane.showMessageDialog( @@ -70,4 +81,6 @@ public final class GuiListener implements EngineListener { } }); } + + private static final Logger LOGGER = Logger.getLogger(GuiListener.class.getName()); } diff --git a/remoting/src/main/java/hudson/remoting/jnlp/Main.java b/remoting/src/main/java/hudson/remoting/jnlp/Main.java index fd18c21d84573ae84ed04542abb14d71c5a2fa42..b80638f8e00b77b477608fbe050110d50c3868c1 100644 --- a/remoting/src/main/java/hudson/remoting/jnlp/Main.java +++ b/remoting/src/main/java/hudson/remoting/jnlp/Main.java @@ -30,6 +30,7 @@ import org.kohsuke.args4j.CmdLineException; import java.util.logging.Logger; import java.util.logging.Level; +import static java.util.logging.Level.INFO; import java.util.List; import java.util.ArrayList; import java.net.URL; @@ -63,6 +64,10 @@ public class Main { usage="Specify the Hudson root URLs to connect to.") public final List urls = new ArrayList(); + @Option(name="-credentials",metaVar="USER:PASSWORD", + usage="HTTP BASIC AUTH header to pass in for making HTTP requests.") + public String credentials; + @Option(name="-noreconnect", usage="If the connection ends, don't retry and just exit.") public boolean noReconnect = false; @@ -75,6 +80,19 @@ public class Main { public final List args = new ArrayList(); public static void main(String[] args) throws IOException, InterruptedException { + try { + _main(args); + } catch (CmdLineException e) { + System.err.println(e.getMessage()); + System.err.println("java -jar slave.jar [options...] "); + new CmdLineParser(new Main()).printUsage(System.err); + } + } + + /** + * Main without the argument handling. + */ + public static void _main(String[] args) throws IOException, InterruptedException, CmdLineException { // see http://forum.java.sun.com/thread.jspa?threadID=706976&tstart=0 // not sure if this is the cause, but attempting to fix // https://hudson.dev.java.net/issues/show_bug.cgi?id=310 @@ -88,18 +106,11 @@ public class Main { Main m = new Main(); CmdLineParser p = new CmdLineParser(m); - try { - p.parseArgument(args); - if(m.args.size()!=2) - throw new CmdLineException("two arguments required, but got "+m.args); - if(m.urls.isEmpty()) - throw new CmdLineException("At least one -url option is required."); - } catch (CmdLineException e) { - System.err.println(e.getMessage()); - System.err.println("java -jar slave.jar [options...] "); - p.printUsage(System.err); - return; - } + p.parseArgument(args); + if(m.args.size()!=2) + throw new CmdLineException("two arguments required, but got "+m.args); + if(m.urls.isEmpty()) + throw new CmdLineException("At least one -url option is required."); m.main(); } @@ -110,6 +121,8 @@ public class Main { urls, args.get(0), args.get(1)); if(tunnel!=null) engine.setTunnel(tunnel); + if(credentials!=null) + engine.setCredentials(credentials); engine.setNoReconnect(noReconnect); engine.start(); engine.join(); @@ -123,11 +136,15 @@ public class Main { LOGGER.info("Hudson agent is running in headless mode."); } - public void status(final String msg) { - LOGGER.info(msg); + public void status(String msg, Throwable t) { + LOGGER.log(INFO,msg,t); + } + + public void status(String msg) { + status(msg,null); } - public void error(final Throwable t) { + public void error(Throwable t) { LOGGER.log(Level.SEVERE, t.getMessage(), t); System.exit(-1); } diff --git a/remoting/src/test/java/TrafficAnalyzer.java b/remoting/src/test/java/TrafficAnalyzer.java new file mode 100644 index 0000000000000000000000000000000000000000..c2f854fc14d5381baf774cf98e76aafd48639425 --- /dev/null +++ b/remoting/src/test/java/TrafficAnalyzer.java @@ -0,0 +1,11 @@ +/** + * See {@link hudson.remoting.TrafficAnalyzer}. This entry point makes it easier to + * invoke the tool. + * + * @author Kohsuke Kawaguchi + */ +public class TrafficAnalyzer { + public static void main(String[] args) throws Exception { + hudson.remoting.TrafficAnalyzer.main(args); + } +} diff --git a/remoting/src/test/java/hudson/remoting/BinarySafeStreamTest.java b/remoting/src/test/java/hudson/remoting/BinarySafeStreamTest.java index 1292bfb8a557cbcc253c1d4ff5e1c61446af65bc..4c082523c460e275a32893ef40f2f7de4a1411b8 100644 --- a/remoting/src/test/java/hudson/remoting/BinarySafeStreamTest.java +++ b/remoting/src/test/java/hudson/remoting/BinarySafeStreamTest.java @@ -23,7 +23,6 @@ */ package hudson.remoting; -import com.sun.org.apache.xerces.internal.impl.dv.util.Base64; import junit.framework.TestCase; import java.io.ByteArrayInputStream; @@ -34,6 +33,8 @@ import java.io.OutputStream; import java.util.Arrays; import java.util.Random; +import org.apache.commons.codec.binary.Base64; + /** * @author Kohsuke Kawaguchi */ @@ -47,16 +48,16 @@ public class BinarySafeStreamTest extends TestCase { o.close(); InputStream in = BinarySafeStream.wrap(new ByteArrayInputStream(buf.toByteArray())); - for (int i = 0; i < data.length; i++) { + for (byte b : data) { int ch = in.read(); - assertEquals(data[i], ch); + assertEquals(b, ch); } assertEquals(-1,in.read()); } public void testSingleWrite() throws IOException { byte[] ds = getDataSet(65536); - String master = Base64.encode(ds); + String master = new String(Base64.encodeBase64(ds)); ByteArrayOutputStream buf = new ByteArrayOutputStream(); OutputStream o = BinarySafeStream.wrap(buf); @@ -67,7 +68,7 @@ public class BinarySafeStreamTest extends TestCase { public void testChunkedWrites() throws IOException { byte[] ds = getDataSet(65536); - String master = Base64.encode(ds); + String master = new String(Base64.encodeBase64(ds)); Random r = new Random(0); for( int i=0; i<16; i++) { @@ -89,7 +90,6 @@ public class BinarySafeStreamTest extends TestCase { private void _testRoundtrip(boolean flush) throws IOException { byte[] dataSet = getDataSet(65536); Random r = new Random(0); - String master = Base64.encode(dataSet); for(int i=0; i<16; i++) { if(dump) @@ -125,7 +125,7 @@ public class BinarySafeStreamTest extends TestCase { int ptr=0; for( int i=0; i=0; + assertTrue(255>=ch && ch>=-1); // make sure the range is [-1,255] if(ch==-1) return; out.write(ch); diff --git a/remoting/src/test/java/hudson/remoting/ChannelRunner.java b/remoting/src/test/java/hudson/remoting/ChannelRunner.java index 86ebd16cd2a1afc8d129bcf66a6fdbdf188ff707..6bfaf46218bc8420d49dac875e3300c1b2866392 100644 --- a/remoting/src/test/java/hudson/remoting/ChannelRunner.java +++ b/remoting/src/test/java/hudson/remoting/ChannelRunner.java @@ -1,7 +1,7 @@ /* * The MIT License * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi + * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, InfraDNA, Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -23,13 +23,22 @@ */ package hudson.remoting; +import hudson.remoting.Channel.Mode; import junit.framework.Assert; import java.io.IOException; import java.io.PipedInputStream; import java.io.PipedOutputStream; +import java.io.File; +import java.io.OutputStream; +import java.io.FileOutputStream; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; +import java.net.URLClassLoader; +import java.net.URL; + +import org.apache.commons.io.output.TeeOutputStream; +import org.apache.commons.io.FileUtils; /** * Hides the logic of starting/stopping a channel for test. @@ -41,12 +50,6 @@ interface ChannelRunner { void stop(Channel channel) throws Exception; String getName(); - Class[] LIST = new Class[] { - InProcess.class, - Fork.class - }; - - /** * Runs a channel in the same JVM. */ @@ -58,18 +61,18 @@ interface ChannelRunner { private Exception failure; public Channel start() throws Exception { - final PipedInputStream in1 = new PipedInputStream(); - final PipedOutputStream out1 = new PipedOutputStream(in1); + final FastPipedInputStream in1 = new FastPipedInputStream(); + final FastPipedOutputStream out1 = new FastPipedOutputStream(in1); - final PipedInputStream in2 = new PipedInputStream(); - final PipedOutputStream out2 = new PipedOutputStream(in2); + final FastPipedInputStream in2 = new FastPipedInputStream(); + final FastPipedOutputStream out2 = new FastPipedOutputStream(in2); executor = Executors.newCachedThreadPool(); Thread t = new Thread("south bridge runner") { public void run() { try { - Channel s = new Channel("south", executor, in2, out1); + Channel s = new Channel("south", executor, Mode.BINARY, in2, out1, null, false, createCapability()); s.join(); System.out.println("south completed"); } catch (IOException e) { @@ -83,7 +86,7 @@ interface ChannelRunner { }; t.start(); - return new Channel("north", executor, in1, out2); + return new Channel("north", executor, Mode.BINARY, in1, out2, null, false, createCapability()); } public void stop(Channel channel) throws Exception { @@ -100,6 +103,21 @@ interface ChannelRunner { public String getName() { return "local"; } + + protected Capability createCapability() { + return new Capability(); + } + } + + static class InProcessCompatibilityMode extends InProcess { + public String getName() { + return "local-compatibility"; + } + + @Override + protected Capability createCapability() { + return Capability.NONE; + } } /** @@ -113,25 +131,34 @@ interface ChannelRunner { public Channel start() throws Exception { System.out.println("forking a new process"); // proc = Runtime.getRuntime().exec("java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=8000 hudson.remoting.Launcher"); - proc = Runtime.getRuntime().exec("java hudson.remoting.Launcher"); - copier = new Copier("copier",proc.getErrorStream(),System.err); + System.out.println(getClasspath()); + proc = Runtime.getRuntime().exec(new String[]{"java","-cp",getClasspath(),"hudson.remoting.Launcher"}); + + copier = new Copier("copier",proc.getErrorStream(),System.out); copier.start(); executor = Executors.newCachedThreadPool(); - return new Channel("north", executor, proc.getInputStream(), proc.getOutputStream()); + OutputStream out = proc.getOutputStream(); + if (RECORD_OUTPUT) { + File f = File.createTempFile("remoting",".log"); + System.out.println("Recording to "+f); + out = new TeeOutputStream(out,new FileOutputStream(f)); + } + return new Channel("north", executor, proc.getInputStream(), out); } public void stop(Channel channel) throws Exception { channel.close(); + channel.join(10*1000); - System.out.println("north completed"); +// System.out.println("north completed"); executor.shutdown(); copier.join(); int r = proc.waitFor(); - System.out.println("south completed"); +// System.out.println("south completed"); Assert.assertEquals("exit code should have been 0",0,r); } @@ -139,5 +166,21 @@ interface ChannelRunner { public String getName() { return "fork"; } + + public String getClasspath() { + // this assumes we run in Maven + StringBuilder buf = new StringBuilder(); + URLClassLoader ucl = (URLClassLoader)getClass().getClassLoader(); + for (URL url : ucl.getURLs()) { + if (buf.length()>0) buf.append(File.pathSeparatorChar); + buf.append(FileUtils.toFile(url)); // assume all of them are file URLs + } + return buf.toString(); + } + + /** + * Record the communication to the remote node. Used during debugging. + */ + private static boolean RECORD_OUTPUT = false; } } diff --git a/remoting/src/test/java/hudson/remoting/ChannelTest.java b/remoting/src/test/java/hudson/remoting/ChannelTest.java new file mode 100644 index 0000000000000000000000000000000000000000..8b5b2f9fa3f0bb76de20e970cd128574fc676629 --- /dev/null +++ b/remoting/src/test/java/hudson/remoting/ChannelTest.java @@ -0,0 +1,10 @@ +package hudson.remoting; + +/** + * @author Kohsuke Kawaguchi + */ +public class ChannelTest extends RmiTestBase { + public void testCapability() { + assertTrue(channel.remoteCapability.supportsMultiClassLoaderRPC()); + } +} diff --git a/remoting/src/test/java/hudson/remoting/DummyClassLoader.java b/remoting/src/test/java/hudson/remoting/DummyClassLoader.java index d81a4eb2b2c6d72b85f49b79b6225d0a13f9517b..052c42d3cc92fa99a3860656615a58a1faffb5c6 100644 --- a/remoting/src/test/java/hudson/remoting/DummyClassLoader.java +++ b/remoting/src/test/java/hudson/remoting/DummyClassLoader.java @@ -83,7 +83,7 @@ class DummyClassLoader extends ClassLoader { os.write(loadTransformedClassImage("hudson.remoting.test.TestCallable")); os.close(); f.deleteOnExit(); - return f.toURL(); + return f.toURI().toURL(); } catch (IOException e) { return null; } diff --git a/remoting/src/test/java/hudson/remoting/HexDumpTest.java b/remoting/src/test/java/hudson/remoting/HexDumpTest.java new file mode 100644 index 0000000000000000000000000000000000000000..a522ebde42f126dcefaf260f2bba0b1810413124 --- /dev/null +++ b/remoting/src/test/java/hudson/remoting/HexDumpTest.java @@ -0,0 +1,12 @@ +package hudson.remoting; + +import junit.framework.TestCase; + +/** + * @author Kohsuke Kawaguchi + */ +public class HexDumpTest extends TestCase { + public void test1() { + assertEquals("0001ff",HexDump.toHex(new byte[]{0,1,-1})); + } +} diff --git a/remoting/src/test/java/hudson/remoting/PipeTest.java b/remoting/src/test/java/hudson/remoting/PipeTest.java index c1ba4884c601dd725e697538502da00f018059f5..019fc3ba9555406dd1ec6a722bab5c7748da3ffc 100644 --- a/remoting/src/test/java/hudson/remoting/PipeTest.java +++ b/remoting/src/test/java/hudson/remoting/PipeTest.java @@ -23,8 +23,11 @@ */ package hudson.remoting; +import hudson.remoting.ChannelRunner.InProcessCompatibilityMode; import junit.framework.Test; +import org.apache.commons.io.output.NullOutputStream; +import java.io.DataInputStream; import java.io.OutputStream; import java.io.IOException; import java.io.InputStream; @@ -89,6 +92,78 @@ public class PipeTest extends RmiTestBase { assertEquals(5,r); } + public interface ISaturationTest { + void ensureConnected() throws IOException; + int readFirst() throws IOException; + void readRest() throws IOException; + } + + public void testSaturation() throws Exception { + if (channelRunner instanceof InProcessCompatibilityMode) + return; // can't do this test without the throttling support. + + final Pipe p = Pipe.createLocalToRemote(); + + Thread writer = new Thread() { + @Override + public void run() { + OutputStream os = p.getOut(); + try { + byte[] buf = new byte[Channel.PIPE_WINDOW_SIZE*2+1]; + os.write(buf); + } catch (IOException e) { + e.printStackTrace(); + } + } + }; + + // 1. wait until the receiver sees the first byte. at this point the pipe should be completely clogged + // 2. make sure the writer thread is still alive, blocking + // 3. read the rest + + ISaturationTest target = channel.call(new CreateSaturationTestProxy(p)); + + // make sure the pipe is connected + target.ensureConnected(); + writer.start(); + + // make sure that some data arrived to the receiver + // at this point the pipe should be fully clogged + assertEquals(0,target.readFirst()); + + // the writer should be still blocked + Thread.sleep(1000); + assertTrue(writer.isAlive()); + + target.readRest(); + } + + private static class CreateSaturationTestProxy implements Callable { + private final Pipe pipe; + + public CreateSaturationTestProxy(Pipe pipe) { + this.pipe = pipe; + } + + public ISaturationTest call() throws IOException { + return Channel.current().export(ISaturationTest.class, new ISaturationTest() { + private InputStream in; + public void ensureConnected() throws IOException { + in = pipe.getIn(); + in.available(); + } + + public int readFirst() throws IOException { + return in.read(); + } + + public void readRest() throws IOException { + new DataInputStream(in).readFully(new byte[Channel.PIPE_WINDOW_SIZE*2]); + } + }); + } + } + private static class ReadingCallable implements Callable { private final Pipe pipe; @@ -121,6 +196,22 @@ public class PipeTest extends RmiTestBase { in.close(); } + + public void _testSendBigStuff() throws Exception { + OutputStream f = channel.call(new DevNullSink()); + + for (int i=0; i<1024*1024; i++) + f.write(new byte[8000]); + f.close(); + } + + private static class DevNullSink implements Callable { + public OutputStream call() throws IOException { + return new RemoteOutputStream(new NullOutputStream()); + } + + } + public static Test suite() throws Exception { return buildSuite(PipeTest.class); } diff --git a/remoting/src/test/java/hudson/remoting/RmiTestBase.java b/remoting/src/test/java/hudson/remoting/RmiTestBase.java index 15aef00a0f978d07a3fe285da6b65f86747f235c..f550b7a35a92f4245ea2f1efaa37347ccad335ad 100644 --- a/remoting/src/test/java/hudson/remoting/RmiTestBase.java +++ b/remoting/src/test/java/hudson/remoting/RmiTestBase.java @@ -1,7 +1,7 @@ /* * The MIT License * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi + * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, InfraDNA, Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -23,29 +23,28 @@ */ package hudson.remoting; -import junit.framework.TestCase; +import hudson.remoting.ChannelRunner.InProcess; import junit.framework.Test; +import junit.framework.TestCase; import junit.framework.TestSuite; -import java.io.IOException; -import java.io.PipedInputStream; -import java.io.PipedOutputStream; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; - -import hudson.remoting.ChannelRunner.InProcess; - /** * Base class for remoting tests. * * @author Kohsuke Kawaguchi */ +@WithRunner({ + ChannelRunner.InProcess.class, + ChannelRunner.InProcessCompatibilityMode.class, + ChannelRunner.Fork.class +}) public abstract class RmiTestBase extends TestCase { protected Channel channel; - private ChannelRunner channelRunner = new InProcess(); + protected ChannelRunner channelRunner = new InProcess(); protected void setUp() throws Exception { + System.out.println("Starting "+getName()); channel = channelRunner.start(); } @@ -74,7 +73,10 @@ public abstract class RmiTestBase extends TestCase { */ protected static Test buildSuite(Class testClass) { TestSuite suite = new TestSuite(); - for( Class r : ChannelRunner.LIST ) { + + WithRunner wr = testClass.getAnnotation(WithRunner.class); + + for( Class r : wr.value() ) { suite.addTest(new ChannelTestSuite(testClass,r)); } return suite; diff --git a/remoting/src/test/java/hudson/remoting/SimpleTest.java b/remoting/src/test/java/hudson/remoting/SimpleTest.java index 01d76c48783c42ba03f0606998066c157a5b0238..abcd4afa6ed22633d78282209b821fd6c525085e 100644 --- a/remoting/src/test/java/hudson/remoting/SimpleTest.java +++ b/remoting/src/test/java/hudson/remoting/SimpleTest.java @@ -23,6 +23,7 @@ */ package hudson.remoting; +import java.util.concurrent.CancellationException; import junit.framework.Test; import java.util.concurrent.ExecutionException; @@ -103,6 +104,35 @@ public class SimpleTest extends RmiTestBase { } } + /** + * Checks whether {@link Future#cancel} behaves according to spec. + * Currently seems to be used by MavenBuilder.call and Proc.RemoteProc.kill + * (in turn used by MercurialSCM.joinWithTimeout when polling on remote host). + */ + //@Bug(4611) + public void testCancellation() throws Exception { + Cancellable task = new Cancellable(); + Future r = channel.callAsync(task); + r.cancel(true); + try { + r.get(); + fail("should not return normally"); + } catch (CancellationException x) { + // right + } + assertTrue(r.isCancelled()); + assertFalse(task.ran); + // XXX ought to also test various other aspects: cancelling before start, etc. + } + private static class Cancellable implements Callable { + boolean ran; + public Integer call() throws InterruptedException { + Thread.sleep(9999); + ran = true; + return 0; + } + } + public static Test suite() throws Exception { return buildSuite(SimpleTest.class); } diff --git a/remoting/src/test/java/hudson/remoting/TrafficAnalyzer.java b/remoting/src/test/java/hudson/remoting/TrafficAnalyzer.java new file mode 100644 index 0000000000000000000000000000000000000000..56efd180fd5f8321fbd1fb154cb8b27478f9f8f0 --- /dev/null +++ b/remoting/src/test/java/hudson/remoting/TrafficAnalyzer.java @@ -0,0 +1,43 @@ +package hudson.remoting; + +import hudson.remoting.RemoteInvocationHandler.RPCRequest; + +import java.io.File; +import java.io.FileInputStream; +import java.io.DataInputStream; +import java.io.ObjectInputStream; + +/** + * A little forensic analysis tool to figure out what information master and slaves are exchanging. + * + *

      + * Use the tee command or network packet capturing tool to capture the traffic between the master and + * the slave, then run it through this tool to get the dump of what commands are sent between them. + * + * @author Kohsuke Kawaguchi + */ +public class TrafficAnalyzer { + public static void main(String[] args) throws Exception { + File f = new File("/home/kohsuke/ws/hudson/investigations/javafx-windows-hang/out.log"); + DataInputStream fin = new DataInputStream(new FileInputStream(f)); + fin.readFully(new byte[4]); // skip preamble + ObjectInputStream ois = new ObjectInputStream(fin); + for (int n=0; ; n++) { + Command o = (Command)ois.readObject(); + System.out.println("#"+n+" : "+o); + if (o instanceof RPCRequest) { + RPCRequest request = (RPCRequest) o; + System.out.print(" ("); + boolean first=true; + for (Object argument : request.getArguments()) { + if(first) first=false; + else System.out.print(","); + System.out.print(argument); + } + System.out.println(")"); + } + if (o.createdAt!=null) + o.createdAt.printStackTrace(System.out); + } + } +} diff --git a/remoting/src/test/java/hudson/remoting/WithRunner.java b/remoting/src/test/java/hudson/remoting/WithRunner.java new file mode 100644 index 0000000000000000000000000000000000000000..7b415cf70ae3f88990e50c9311735b8f2ca44933 --- /dev/null +++ b/remoting/src/test/java/hudson/remoting/WithRunner.java @@ -0,0 +1,44 @@ +/* + * The MIT License + * + * Copyright (c) 2010, InfraDNA, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package hudson.remoting; + +import java.lang.annotation.Documented; +import java.lang.annotation.Inherited; +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +import static java.lang.annotation.ElementType.*; +import static java.lang.annotation.RetentionPolicy.*; + +/** + * Specify the channel runners for a test case. + * @author Kohsuke Kawaguchi + */ +@Retention(RUNTIME) +@Target(TYPE) +@Documented +@Inherited +public @interface WithRunner { + Class[] value(); +} diff --git a/rpm/SOURCES/hudson.init.in b/rpm/SOURCES/hudson.init.in new file mode 100644 index 0000000000000000000000000000000000000000..b67d5dd9424ee1da17731bf5806a2ebe2c9020dd --- /dev/null +++ b/rpm/SOURCES/hudson.init.in @@ -0,0 +1,158 @@ +#!/bin/sh +# +# SUSE system statup script for Hudson +# Copyright (C) 2007 Pascal Bleser +# +# This library is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2.1 of the License, or (at +# your option) any later version. +# +# This library is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, +# USA. +# +### BEGIN INIT INFO +# Provides: hudson +# Required-Start: $local_fs $remote_fs $network $time $named +# Should-Start: $time sendmail +# Required-Stop: $local_fs $remote_fs $network $time $named +# Should-Stop: $time sendmail +# Default-Start: 3 5 +# Default-Stop: 0 1 2 6 +# Short-Description: Hudson continuous build server +# Description: Start the Hudson continuous build server +### END INIT INFO + +# Check for missing binaries (stale symlinks should not happen) +HUDSON_WAR="@@WAR@@" +test -r "$HUDSON_WAR" || { echo "$HUDSON_WAR not installed"; + if [ "$1" = "stop" ]; then exit 0; + else exit 5; fi; } + +# Check for existence of needed config file and read it +HUDSON_CONFIG=/etc/sysconfig/hudson +test -e "$HUDSON_CONFIG" || { echo "$HUDSON_CONFIG not existing"; + if [ "$1" = "stop" ]; then exit 0; + else exit 6; fi; } +test -r "$HUDSON_CONFIG" || { echo "$HUDSON_CONFIG not readable. Perhaps you forgot 'sudo'?"; + if [ "$1" = "stop" ]; then exit 0; + else exit 6; fi; } + +HUDSON_PID_FILE="/var/run/hudson.pid" + +# Source function library. +. /etc/init.d/functions + +# Read config +[ -f "$HUDSON_CONFIG" ] && . "$HUDSON_CONFIG" + +# Set up environment accordingly to the configuration settings +[ -n "$HUDSON_HOME" ] || { echo "HUDSON_HOME not configured in $HUDSON_CONFIG"; + if [ "$1" = "stop" ]; then exit 0; + else exit 6; fi; } +[ -d "$HUDSON_HOME" ] || { echo "HUDSON_HOME directory does not exist: $HUDSON_HOME"; + if [ "$1" = "stop" ]; then exit 0; + else exit 1; fi; } +export HUDSON_HOME + +# Search usable Java. We do this because various reports indicated +# that /usr/bin/java may not always point to Java 1.5 +# see http://www.nabble.com/guinea-pigs-wanted-----Hudson-RPM-for-RedHat-Linux-td25673707.html +for candidate in /usr/lib/jvm/java-1.6.0/bin/java /usr/lib/jvm/jre-1.6.0/bin/java /usr/lib/jvm/java-1.5.0/bin/java /usr/lib/jvm/jre-1.5.0/bin/java /usr/bin/java +do + [ -x "$HUDSON_JAVA_CMD" ] && break + HUDSON_JAVA_CMD="$candidate" +done + +JAVA_CMD="$HUDSON_JAVA_CMD $HUDSON_JAVA_OPTIONS -DHUDSON_HOME=$HUDSON_HOME -jar $HUDSON_WAR" +PARAMS="--logfile=/var/log/hudson/hudson.log --daemon" +[ -n "$HUDSON_PORT" ] && PARAMS="$PARAMS --httpPort=$HUDSON_PORT" +[ -n "$HUDSON_DEBUG_LEVEL" ] && PARAMS="$PARAMS --debug=$HUDSON_DEBUG_LEVEL" +[ -n "$HUDSON_HANDLER_STARTUP" ] && PARAMS="$PARAMS --handlerCountStartup=$HUDSON_HANDLER_STARTUP" +[ -n "$HUDSON_HANDLER_MAX" ] && PARAMS="$PARAMS --handlerCountMax=$HUDSON_HANDLER_MAX" +[ -n "$HUDSON_HANDLER_IDLE" ] && PARAMS="$PARAMS --handlerCountMaxIdle=$HUDSON_HANDLER_IDLE" +[ -n "$HUDSON_ARGS" ] && PARAMS="$PARAMS $HUDSON_ARGS" + +if [ "$HUDSON_ENABLE_ACCESS_LOG" = "yes" ]; then + PARAMS="$PARAMS --accessLoggerClassName=winstone.accesslog.SimpleAccessLogger --simpleAccessLogger.format=combined --simpleAccessLogger.file=/var/log/hudson/access_log" +fi + +RETVAL=0 + +case "$1" in + start) + echo -n "Starting Hudson " + daemon --user "$HUDSON_USER" --pidfile "$HUDSON_PID_FILE" $JAVA_CMD $PARAMS > /dev/null + RETVAL=$? + if [ $RETVAL = 0 ]; then + success + echo > "$HUDSON_PID_FILE" # just in case we fail to find it + MY_SESSION_ID=`/bin/ps h -o sess -p $$` + # get PID + /bin/ps hww -u "$HUDSON_USER" -o sess,ppid,pid,cmd | \ + while read sess ppid pid cmd; do + [ "$ppid" = 1 ] || continue + # this test doesn't work because Hudson sets a new Session ID + # [ "$sess" = "$MY_SESSION_ID" ] || continue + echo "$cmd" | grep $HUDSON_WAR > /dev/null + [ $? = 0 ] || continue + # found a PID + echo $pid > "$HUDSON_PID_FILE" + done + else + failure + fi + echo + ;; + stop) + echo -n "Shutting down Hudson " + killproc hudson + RETVAL=$? + echo + ;; + try-restart|condrestart) + if test "$1" = "condrestart"; then + echo "${attn} Use try-restart ${done}(LSB)${attn} rather than condrestart ${warn}(RH)${norm}" + fi + $0 status + if test $? = 0; then + $0 restart + else + : # Not running is not a failure. + fi + ;; + restart) + $0 stop + $0 start + ;; + force-reload) + echo -n "Reload service Hudson " + $0 try-restart + ;; + reload) + $0 restart + ;; + status) + status hudson + RETVAL=$? + ;; + probe) + ## Optional: Probe for the necessity of a reload, print out the + ## argument to this init script which is required for a reload. + ## Note: probe is not (yet) part of LSB (as of 1.9) + + test "$HUDSON_CONFIG" -nt "$HUDSON_PID_FILE" && echo reload + ;; + *) + echo "Usage: $0 {start|stop|status|try-restart|restart|force-reload|reload|probe}" + exit 1 + ;; +esac +exit $RETVAL diff --git a/rpm/SOURCES/hudson.logrotate b/rpm/SOURCES/hudson.logrotate new file mode 100644 index 0000000000000000000000000000000000000000..33e217822ef8a23b3f6ffe2baa4d82dbfaae8eda --- /dev/null +++ b/rpm/SOURCES/hudson.logrotate @@ -0,0 +1,13 @@ +/var/log/hudson/hudson.log /var/log/hudson/access_log { + compress + dateext + maxage 365 + rotate 99 + size=+4096k + notifempty + missingok + create 644 + postrotate + kill -SIGALRM `cat /var/run/hudson.pid` + endscript +} diff --git a/rpm/SOURCES/hudson.repo b/rpm/SOURCES/hudson.repo new file mode 100644 index 0000000000000000000000000000000000000000..52cc96723569d589ce9e4255d39b2848f53ca56b --- /dev/null +++ b/rpm/SOURCES/hudson.repo @@ -0,0 +1,4 @@ +[hudson] +name=Hudson +baseurl=http://pkg.hudson-labs.org/redhat/ +gpgcheck=1 diff --git a/rpm/SOURCES/hudson.sysconfig.in b/rpm/SOURCES/hudson.sysconfig.in new file mode 100644 index 0000000000000000000000000000000000000000..b7180e8494e56bf1c02dd753abddee6d321d435a --- /dev/null +++ b/rpm/SOURCES/hudson.sysconfig.in @@ -0,0 +1,87 @@ +## Path: Development/Hudson +## Description: Configuration for the Hudson continuous build server +## Type: string +## Default: "@@HOME@@" +## ServiceRestart: hudson +# +# Directory where Hudson store its configuration and working +# files (checkouts, build reports, artifacts, ...). +# +HUDSON_HOME="@@HOME@@" + +## Type: string +## Default: "" +## ServiceRestart: hudson +# +# Java executable to run Hudson +# When left empty, we'll try to find the suitable Java. +# +HUDSON_JAVA_CMD="" + +## Type: string +## Default: "hudson" +## ServiceRestart: hudson +# +# Unix user account that runs the Hudson daemon +# Be careful when you change this, as you need to update +# permissions of $HUDSON_HOME and /var/log/hudson. +# +HUDSON_USER="hudson" + +## Type: string +## Default: "-Djava.awt.headless=true" +## ServiceRestart: hudson +# +# Options to pass to java when running Hudson. +# +HUDSON_JAVA_OPTIONS="-Djava.awt.headless=true" + +## Type: integer(0:65535) +## Default: 8080 +## ServiceRestart: hudson +# +# Port Hudson is listening on. +# +HUDSON_PORT="8080" + +## Type: integer(1:9) +## Default: 5 +## ServiceRestart: hudson +# +# Debug level for logs -- the higher the value, the more verbose. +# 5 is INFO. +# +HUDSON_DEBUG_LEVEL="5" + +## Type: yesno +## Default: no +## ServiceRestart: hudson +# +# Whether to enable access logging or not. +# +HUDSON_ENABLE_ACCESS_LOG="no" + +## Type: integer +## Default: 100 +## ServiceRestart: hudson +# +# Maximum number of HTTP worker threads. +# +HUDSON_HANDLER_MAX="100" + +## Type: integer +## Default: 20 +## ServiceRestart: hudson +# +# Maximum number of idle HTTP worker threads. +# +HUDSON_HANDLER_IDLE="20" + +## Type: string +## Default: "" +## ServiceRestart: hudson +# +# Pass arbitrary arguments to Hudson. +# Full option list: java -jar hudson.war --help +# +HUDSON_ARGS="" diff --git a/rpm/SPECS/hudson.spec b/rpm/SPECS/hudson.spec new file mode 100644 index 0000000000000000000000000000000000000000..0a17034297671a0deddc7bf01e8b04003d4f59ae --- /dev/null +++ b/rpm/SPECS/hudson.spec @@ -0,0 +1,709 @@ +# TODO: +# - how to add to the trusted service of the firewall? + +%define _prefix %{_usr}/lib/hudson +%define workdir %{_var}/lib/hudson + +Name: hudson +Version: %{ver} +Release: 1.1 +Summary: Continous Build Server +Source: hudson.war +Source1: hudson.init.in +Source2: hudson.sysconfig.in +Source3: hudson.logrotate +Source4: hudson.repo +URL: https://hudson.dev.java.net/ +Group: Development/Tools/Building +License: MIT/X License, GPL/CDDL, ASL2 +BuildRoot: %{_tmppath}/build-%{name}-%{version} +# see the comment below from java-1.6.0-openjdk.spec that explains this dependency +# java-1.5.0-ibm from jpackage.org set Epoch to 1 for unknown reasons, +# and this change was brought into RHEL-4. java-1.5.0-ibm packages +# also included the epoch in their virtual provides. This created a +# situation where in-the-wild java-1.5.0-ibm packages provided "java = +# 1:1.5.0". In RPM terms, "1.6.0 < 1:1.5.0" since 1.6.0 is +# interpreted as 0:1.6.0. So the "java >= 1.6.0" requirement would be +# satisfied by the 1:1.5.0 packages. Thus we need to set the epoch in +# JDK package >= 1.6.0 to 1, and packages referring to JDK virtual +# provides >= 1.6.0 must specify the epoch, "java >= 1:1.6.0". +# +# Kohsuke - 2009/09/29 +# test by mrooney on what he believes to be RHEL 5.2 indicates +# that there's no such packages. JRE/JDK RPMs from java.sun.com +# do not have this virtual package declarations. So for now, +# I'm dropping this requirement. +# Requires: java >= 1:1.6.0 +PreReq: /usr/sbin/groupadd /usr/sbin/useradd +#PreReq: %{fillup_prereq} +BuildArch: noarch + +%description +Hudson monitors executions of repeated jobs, such as building a software +project or jobs run by cron. Among those things, current Hudson focuses on the +following two jobs: +- Building/testing software projects continuously, just like CruiseControl or + DamageControl. In a nutshell, Hudson provides an easy-to-use so-called + continuous integration system, making it easier for developers to integrate + changes to the project, and making it easier for users to obtain a fresh + build. The automated, continuous build increases the productivity. +- Monitoring executions of externally-run jobs, such as cron jobs and procmail + jobs, even those that are run on a remote machine. For example, with cron, + all you receive is regular e-mails that capture the output, and it is up to + you to look at them diligently and notice when it broke. Hudson keeps those + outputs and makes it easy for you to notice when something is wrong. + + + + +Authors: +-------- + Kohsuke Kawaguchi + +%prep +%setup -q -T -c + +%build + +%install +rm -rf "%{buildroot}" +%__install -D -m0644 "%{SOURCE0}" "%{buildroot}%{_prefix}/%{name}.war" +%__install -d "%{buildroot}%{workdir}" +%__install -d "%{buildroot}%{workdir}/plugins" + +%__install -d "%{buildroot}/var/log/hudson" + +%__install -D -m0755 "%{SOURCE1}" "%{buildroot}/etc/init.d/%{name}" +%__sed -i 's,@@WAR@@,%{_prefix}/%{name}.war,g' "%{buildroot}/etc/init.d/%{name}" +%__install -d "%{buildroot}/usr/sbin" +%__ln_s "../../etc/init.d/%{name}" "%{buildroot}/usr/sbin/rc%{name}" + +%__install -D -m0600 "%{SOURCE2}" "%{buildroot}/etc/sysconfig/%{name}" +%__sed -i 's,@@HOME@@,%{workdir},g' "%{buildroot}/etc/sysconfig/%{name}" + +%__install -D -m0644 "%{SOURCE3}" "%{buildroot}/etc/logrotate.d/%{name}" +%__install -D -m0644 "%{SOURCE4}" "%{buildroot}/etc/yum.repos.d/hudson.repo" + +%pre +/usr/sbin/groupadd -r hudson &>/dev/null || : +# SUSE version had -o here, but in Fedora -o isn't allowed without -u +/usr/sbin/useradd -g hudson -s /bin/false -r -c "Hudson Continuous Build server" \ + -d "%{workdir}" hudson &>/dev/null || : + +%post +/sbin/chkconfig --add hudson + +%preun +if [ "$1" = 0 ] ; then + # if this is uninstallation as opposed to upgrade, delete the service + /sbin/service hudson stop > /dev/null 2>&1 + /sbin/chkconfig --del hudson +fi +exit 0 + +%postun +if [ "$1" -ge 1 ]; then + /sbin/service hudson condrestart > /dev/null 2>&1 +fi +exit 0 + +%clean +%__rm -rf "%{buildroot}" + +%files +%defattr(-,root,root) +%dir %{_prefix} +%{_prefix}/%{name}.war +%attr(0755,hudson,hudson) %dir %{workdir} +%attr(0750,hudson,hudson) /var/log/hudson +%config /etc/logrotate.d/%{name} +%config /etc/init.d/%{name} +%config /etc/sysconfig/%{name} +/etc/yum.repos.d/hudson.repo +/usr/sbin/rc%{name} + +%changelog +* Mon Jul 6 2009 dmacvicar@suse.de +- update to 1.314: + * Added option to advanced project configuration to clean workspace before each build. + (issue 3966 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3966]) + * Fixed workspace deletion issue on subversion checkout. + (issue 3580 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3580]) + * Hudson failed to notice a build result status change if aborted builds were in the middle. + (report [http://www.nabble.com/Losing-build-state-after-aborts--td24335949.html]) + * Hudson CLI now tries to connect to Hudson via plain TCP/IP, then fall back to tunneling over HTTP. + * Fixed a possible "Cannot create a file when that file already exists" error in managed Windows slave launcher. report [http://www.nabble.com/%%22Cannot-create-a-file-when-that-file-already-exists%%22---huh--td23949362.html#a23950643] + * Made Hudson more robust in parsing CVS/Entries report [http://www.nabble.com/Exception-while-checking-out-from-CVS-td24256117.html] + * Fixed a regression in the groovy CLI command report [http://d.hatena.ne.jp/tanamon/20090630/1246372887] + * Fixed regression in handling of usernames containing <, often used by Mercurial. + (issue 3964 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3964]) + * Allow Maven projects to have their own artifact archiver settings. + (issue 3289 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3289]) + * Added copy-job, delete-job, enable-job, and disable-job command. + * Fixed a bug in the non-ASCII character handling in remote bulk file copy. + (report [http://www.nabble.com/WG%%3A-Error-when-saving-Artifacts-td24106649.html]) + * Supported self restart on all containers in Unix + (report [http://www.nabble.com/What-are-your-experiences-with-Hudson-and-different-containers--td24075611.html]) + * Added Retry Logic to SCM Checkout + * Fix bug in crumb validation when client is coming through a proxy. + (issue 3854 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3854]) + * Replaced "appears to be stuck" with an icon. + (issue 3891 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3891]) + * WebDAV deployment from Maven was failing with VerifyError. + * Subversion checkout/update gets in an infinite loop when a previously valid password goes invalid. + (issue 2909 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2909]) + * 1.311 jars were not properly signed + * Subversion SCM browsers were not working. + (report [http://www.nabble.com/Build-311-breaks-change-logs-td24150221.html]) + * Gracefully handle IBM JVMs on PowerPC. + (issue 3875 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3875]) + * Fixed NPE with GlassFish v3 when CSRF protection is on. + (issue 3878 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3878]) + * Fixed a bug in CLI where the state of command executions may interfere with each other. + * CLI should handle the situation gracefully if the server doesn't use crumb. + * Fixed a performance problem in CLI execution. + * Don't populate the default value of the Subversion local directory name. + (report [http://www.nabble.com/Is-%%22%%22Local-module-directory%%22-really-optional--td24035475.html]) + * Integrated SVNKit 1.3.0 + * Implemented more intelligent polling assisted by commit-hook from SVN repository. (details [http://wiki.hudson-ci.org/display/HUDSON/Subversion+post-commit+hook]) + * Subversion support is moved into a plugin to isolate SVNKit that has GPL-like license. + * Fixed a performance problem in master/slave file copy. + (issue 3799 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3799]) + * Set time out to avoid infinite hang when SMTP servers don't respond in time. + (report [http://www.nabble.com/Lockup-during-e-mail-notification.-td23718820.html]) + * Ant/Maven installers weren't setting the file permissions on Unix. + (issue 3850 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3850]) + * Fixed cross-site scripting vulnerabilities, thanks to Steve Milner. + * Changing number of executors for master node required Hudson restart. + (issue 3092 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3092]) + * Improved validation and help text regarding when number of executors setting may be zero. + (issue 2110 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2110]) + * NPE fix in the remote API if @xpath is used without @exclude. (patch [http://www.nabble.com/Adding-Remote-API-support-to-findbugs-and-emma-plugins-td23819499.html]) + * Expose the node name as 'NODE_NAME' environment varilable to build. + * Added a CLI command to clear the job queue. + (report [http://www.nabble.com/cancel-all--td23930886.html]) + * Sundry improvements to automatic tool installation. You no longer need to configure an absolute tool home directory. Also some Unix-specific fixes. + * Generate nonce values to prevent cross site request forgeries. Extension point to customize the nonce generation algorithm. + * Reimplemented JDK auto installer to reduce Hudson footprint by 5MB. This also fix a failure to run on JBoss. + (report [http://www.nabble.com/Hudson-1.308-seems-to-be-broken-with-Jboss-td23780609.html]) + * Unit test trend graph was not displayed if there's no successful build. + (report [http://www.nabble.com/Re%%3A-Test-Result-Trend-plot-not-showing-p23707741.html]) + * init script ($HUDSON_HOME/init.groovy) is now run with uber-classloader. + * Maven2 projects may fail with "Cannot lookup required component". + (issue 3706 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3706]) + * Toned down the form validation of JDK, Maven, Ant installations given that we can now auto-install them. + * Ant can now be automatically installed from ant.apache.org. + * Maven can now be automatically installed from maven.apache.org. + * AbstractProject.doWipeOutWorkspace() wasn't calling SCM.processWorkspaceBeforeDeletion. + (issue 3506 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3506]) + * X-Hudson header was sent for all views, not just the top page. + (report [http://www.netbeans.org/issues/show_bug.cgi?id=165067]) + * Remote API served incorrect absolute URLs when Hudson is run behind a reverse proxy. + (report [http://www.netbeans.org/issues/show_bug.cgi?id=165067]) + * Further improved the JUnit report parsing. + (report [http://www.nabble.com/NPE-%%28Fatal%%3A-Null%%29-in-recording-junit-test-results-td23562964.html]) + * External job monitoring was ignoring the possible encoding difference between Hudson and the remote machine that executed the job. + (report [http://www.nabble.com/windows%%E3%%81%%AEhudson%%E3%%81%%8B%%E3%%82%%89ssh%%E3%%82%%B9%%E3%%83%%AC%%E3%%83%%BC%%E3%%83%%96%%E3%%82%%92%%E4%%BD%%BF%%E3%%81%%86%%E3%%81%%A8%%E3%%81%%8D%%E3%%81%%AE%%E6%%96%%87%%E5%%AD%%97%%E3%%82%%B3%%E3%%83%%BC%%E3%%83%%89%%E5%%8F%%96%%E3%%82%%8A%%E6%%89%%B1%%E3%%81%%84%%E3%%81%%AB%%E3%%81%%A4%%E3%%81%%84%%E3%%81%%A6-td23583532.html]) + * Slave launch log was doing extra buffering that can prevent error logs (and so on) from showing up instantly. + (report [http://www.nabble.com/Selenium-Grid-Plugin-tp23481283p23486010.html]) + * Some failures in Windows batch files didn't cause Hudson to fail the build. + (report [http://www.nabble.com/Propagating-failure-in-Windows-Batch-actions-td23603409.html]) + * Maven 2.1 support was not working on slaves. + (report [http://www.nabble.com/1.305-fully-break-native-maven-support-td23575755.html]) + * Fixed a bug that caused Hudson to delete slave workspaces too often. + (issue 3653 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3653]) + * If distributed build isn't enabled, slave selection drop-down shouldn't be displayed in the job config. + * Added support for Svent 2.x SCM browsers. + (issue 3357 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3357]) + * Fixed unexpanded rootURL in CLI. + (report [http://d.hatena.ne.jp/masanobuimai/20090511#1242050331]) + * Trying to see the generated maven site results in 404. + (issue 3497 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3497]) + * Long lines in console output are now wrapped in most browsers. + * Hudson can now automatically install JDKs from java.sun.com + * The native m2 mode now works with Maven 2.1 + (issue 2373 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2373]) + * CLI didn't work with "java -jar hudson.war" + (report [http://d.hatena.ne.jp/masanobuimai/20090503#1241357664]) + * Link to the jar file in the CLI usage page is made more robust. + (issue 3621 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3621]) + * "Build after other projects are built" wasn't loading the proper setting. + (issue 3284 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3284]) + * Hudson started as "java -jar hudson.war" can now restart itself on all Unix flavors. + * When run on GlassFish, Hudson configures GF correctly to handle URI encoding always in UTF-8 + * Added a new extension point to contribute fragment to UDP-based auto discovery. + * Rolled back changes for HUDSON-3580 - workspace is once again deleted on svn checkout. + (issue 3580 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3580]) + * Fixed a binary incompatibility in UpstreamCause that results in NoSuchMethodError. Regression in 1.302. + (report [http://www.nabble.com/URGENT%%3A-parameterizedtrigger-plugin-gone-out-of-compatible-with-the--latest-1.302-release....-Re%%3A-parameterized-plugin-sometime-not-trigger-a--build...-td23349444.html]) + * The "groovysh" CLI command puts "println" to server stdout, instead of CLI stdout. + * The elusive 'Not in GZIP format' exception is finally fixed thanks to cristiano_k's great detective work + (issue 2154 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2154]) + * Hudson kept relaunching the slave under the "on-demand" retention strategy. + (report [http://www.nabble.com/SlaveComputer.connect-Called-Multiple-Times-td23208903.html]) + * Extra slash (/) included in path to workspace copy of svn external. + (issue 3533 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3533]) + * NPE prevents Hudson from starting up on some environments + (report [http://www.nabble.com/Failed-to-initialisze-Hudson-%%3A-NullPointerException-td23252806.html]) + * Workspace deleted when subversion checkout happens. + (issue 3580 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3580]) + * Hudson now handles unexpected failures in trigger plugins more gracefully. + * Use 8K buffer to improve remote file copy performance. + (issue 3524 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3524]) + * Hudson now has a CLI + * Hudson's start up performance is improved by loading data concurrently. + * When a SCM plugin is uninstalled, projects using it should fall back to "No SCM". + * When polling SCMs, boolean parameter sets default value collectly. + * Sidebar build descriptions will not have "..." appended unless they have been truncated. + (issue 3541 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3541]) + * Workspace with symlink causes svn exception when updating externals. + (issue 3532 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3532]) + * Hudson now started bundling ssh-slaves plugin out of the box. + * Added an extension point to programmatically contribute a Subversion authentication credential. + (report [http://www.nabble.com/Subversion-credentials-extension-point-td23159323.html]) + * You can now configure which columns are displayed in a view. "Last Stable" was also added as an optional column (not displayed by default). + (issue 3465 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3465]) + * Preventive node monitoring like /tmp size check, swap space size check can be now disabled selectively. + (issue 2596 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2596], issue 2552 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2552]) + * Per-project read permission support. + (issue 2324 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2324]) + * Javadoc browsing broken since 1.297. + (issue 3444 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3444]) + * Fixed a JNLP slave problem on JDK6u10 (and later) + * Added @ExportedBean to DiskSpaceMonitorDescriptor#DiskSpace so that Remote API(/computer/api/) works + * Fixed a Jelly bug in CVS after-the-fact tagging + * Cross site scripting vulnerability in the search box. + (issue 3415 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3415]) + * Auto-completion in the "copy job from" text box was not working. + (issue 3396 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3396]) + * Allow descriptions for parameters + (issue 2557 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2557]) + * support for boolean and choice parameters + (issue 2558 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2558]) + * support for run parameters. Allows you to pick one run from a configurable project, and exposes the url of that run to the build. + * JVM arguments of JNLP slaves can be now controlled. + (issue 3398 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3398]) + * $HUDSON_HOME/userContent/ is now exposed under http://server/hudson/userContent/. + (report [http://www.nabble.com/Is-it-possible-to-add-a-custom-page-Hudson--td22794858.html]) + * Fixed a plugin compatibility regression issue introduced in 1.296 + (issue 3436 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3436]) + * Programmatically created jobs started builds at #0 rather than #1. + (issue 3361 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3361]) + * Drop-down combobox to select a repository browser all had the same title. + (report [http://www.nabble.com/Possible-bug--Showing-%%22Associated-Mantis-Website%%22-in-scm-repository-browser-tt22786295.html]) + * Disk space monitoring was broken since 1.294. + (issue 3381 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3381]) + * Native m2 support is moved to a plugin bundled out-of-the-box in the distribution + (issue 3251 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3251]) + * Hudson now suggests to users to create a view if there are too many jobs but no views yet. + * NPE in the global configuration of CVS. + (issue 3382 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3382]) + * Generated RSS 2.0 feeds weren't properly escaping e-mail addresses. + * Hudson wasn't capturing stdout/stderr from Maven surefire tests. + * Improved the error diagnostics when retrieving JNLP file from CLI. + (report [http://www.nabble.com/Install-jnlp-failure%%3A-java-IOException-to22469576.html]) + * Making various internal changes to make it easier to create custom job types. + * Introduced a revised form field validation mechanism for plugins and core (FormValidation) + * Hudson now monitors the temporary directory to forestall disk out of space problems. + * XML API now exposes information about modules in a native Maven job. + * ZIP archives created from workspace contents will render properly in Windows' built-in "compressed folder" views. + (issue 3294 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3294]) + * Fixed an infinite loop (eventually leading to OOME) if Subversion client SSL certificate authentication fails. + (report [http://www.nabble.com/OutOfMemoryError-when-uploading-credentials-td22430818.html]) + * NPE from artifact archiver when a slave is down. + (issue 3330 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3330]) + * Hudson now monitors the disk consumption of HUDSON_HOME by itself. + * Fixed the possible "java.io.IOException: Not in GZIP format" problem when copying a file remotely. + (issue 3134 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3134]) + * Tool location name in node-specific properties always showed first list entry instead of saved value. + (issue 3264 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3264]) + * Parse the Subversion tunnel configuration properly. + (report [http://www.nabble.com/Problem-using-external-ssh-client-td22413572.html]) + * Improved JUnit result display to handle complex suite setups involving non-unique class names. + (issue 2988 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2988]) + * If the master is on Windows and slave is on Unix or vice versa, PATH environment variable was not properly handled. + * Improved the access denied error message to be more human readable. + (report [http://www.nabble.com/Trouble-in-logging-in-with-Subversion-td22473876.html]) + * api/xml?xpath=...&wrapper=... behaved inconsistently for results of size 0 or 1. + (issue 3267 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3267]) + * Fixed NPE in the WebSphere start up. + (issue 3069 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3069]) + * Fixed a bug in the parsing of the -tunnel option in slave.jar + (issue 2869 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2869]) + * Updated XStream to support FreeBSD. + (issue 2356 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2356]) + * Only show last 150KB of console log in HTML view, with link to show entire log + (issue 261 [https://hudson.dev.java.net/issues/show_bug.cgi?id=261]) + * Can specify build cause when triggering build remotely via token + (issue 324 [https://hudson.dev.java.net/issues/show_bug.cgi?id=324]) + * Recover gracefully from failing to load winp. + (report [http://www.nabble.com/Unable-to-load-winp.dll-td22423157.html]) + * Fixed a regression in 1.286 that broke findbugs and other plugins. + (report [http://www.nabble.com/tasks-and-compiler-warnings-plugins-td22334680.html]) + * Fixed backward compatibility problem with the old audit-trail plugin and the old promoted-build plgin. + (report [http://www.nabble.com/Problems-with-1.288-upgraded-from-1.285-td22360802.html], report [http://www.nabble.com/Promotion-Plugin-Broken-in-Build--1.287-td22376101.html]) + * On Solaris, ZFS detection fails if $HUDSON_HOME is on the top-level file system. + * Fixed a regression in the fingerprinter & archiver interaction in the matrix project + (report [http://www.nabble.com/1.286-version-and-fingerprints-option-broken-.-td22236618.html]) + * Added usage screen to slave.jar. Slaves now also do ping by default to proactively detect failures in the master. (from IRC) + * Could not run java -jar hudson.war using JDK 5. + (issue 3200 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3200]) + * Infinite loop reported when running on Glassfish. + (issue 3163 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3163]) + * Hudson failed to poll multiple Subversion repository locations since 1.286. + (issue 3168 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3168]) + * Avoid broken images/links in matrix project when some combinations are not run due to filter. + (issue 3167 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3167]) + * Add back LDAP group query on uniqueMember (lost in 1.280) and fix memberUid query + (issue 2256 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2256]) + * Adding a slave node was not possible in French locale + (issue 3156 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3156]) + * External builds were shown in Build History of all slave nodes + * Renewed the certificate for signing hudson.war + (report [http://www.nabble.com/1.287%%3A-java.lang.IllegalStateException%%3A-zip-file-closed-td22272400.html]) + * Do not archive empty directories. + (issue 3227 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3227]) + * Hyperlink URLs in JUnit output. + (issue 3225 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3225]) + * Automatically lookup email addresses in LDAP when LDAP authentication is used + (issue 1475 [https://hudson.dev.java.net/issues/show_bug.cgi?id=1475]) + * The project-based security configuration didn't survive the configuration roundtrip since 1.284. + (issue 3116 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3116]) + * Form error check on the new node was checking against job names, not node names. + (issue 3176 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3176]) + * Plugin class is now optional. + * Display a more prominent message if Hudson is going to shut down. + * Builds blocked by the shut-down process now reports its status accordingly. + (issue 3152 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3152]) + * Custom widgets were not rendered. + (issue 3161 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3161]) + * Fixed a regression in 1.286 about handling form field validations in some plugins. + (report [http://www.nabble.com/1.286-version-and-description-The-requested-resource-%%28%%29-is-not--available.-td22233801.html]) + * Improved the robustness in changlog computation when a build fails at check out. + (report [http://www.nabble.com/CVSChangeLogSet.parse-yields-SAXParseExceptions-when-parsing-bad-*AccuRev*-changelog.xml-files-td22213663.html]) + * Fixed a bug in loading winp.dll when directory names involve whitespaces. + (issue 3111 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3111]) + * Switched to Groovy 1.6.0, and did so in a way that avoids some of the library conflicts, such as asm. + (report [http://www.nabble.com/Hudson-library-dependency-to-asm-2.2-td22233542.html]) + * Fixed NPE in Pipe.EOF(0) + (issue 3077 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3077]) + * Improved error handling when Maven fails to start correctly in the m2 project type. + (issue 2394 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2394]) + * Improved the error handling behaviors when non-serializable exceptions are involved in distributed operations. + (issue 1041 [https://hudson.dev.java.net/issues/show_bug.cgi?id=1041]) + * Allow unassigning a job from a node after the last slave node is deleted. + (issue 2905 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2905]) + * Fix "Copy existing job" autocomplete on new job page if any existing job names have a quote character. + * Keep last successful build (or artifacts from it) now tries to keep last stable build too. + (issue 2417 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2417]) + * LDAP authentication realm didn't support the built-in "authenticated" role. + (report [http://www.nabble.com/Hudson-security-issue%%3A-authenticated-user-does-not-work-td22176902.html]) + * Added RemoteCause for triggering build remotely. + * Hudson is now capable of launching Windows slave headlessly and remotely. + * Better SVN polling support - Trigger a build for changes in certain regions. + (issue 3124 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3124]) + * New extension point NodeProperty. + * Internal restructuring for reducing singleton dependencies and automatic Descriptor discovery. + * Build parameter settings are lost when you save the configuration. Regression since 1.284. + (report [http://www.nabble.com/Build-parameters-are-lost-in-1.284-td22077058.html]) + * Indicate the executors of offline nodes as "offline", not "idle" to avoid confusion. + (issue 2263 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2263]) + * Fixed a boot problem in Solaris < 10. + (issue 3044 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3044]) + * In matrix build, show axes used for that build rather than currently configured axes. + * Don't let containers persist authentication information, which may not deserialize correctly. + (report [http://www.nabble.com/ActiveDirectory-Plugin%%3A-ClassNotFoundException-while-loading--persisted-sessions%%3A-td22085140.html]) + * Always use some timeout value for Subversion HTTP access to avoid infinite hang in the read. + * Better CVS polling support - Trigger a build for changes in certain regions. + (issue 3123 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3123]) + * ProcessTreeKiller was not working on 64bit Windows, Windows 2000, and other minor platforms like PowerPC. + (issue 3050 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3050], issue 3060 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3060]) + * Login using Hudson's own user database did not work since 1.283. + (issue 3043 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3043]) + * View of parameters used for a build did not work since 1.283. + (issue 3061 [https://hudson.dev.java.net/issues/show_bug.cgi?id=3061]) + * Equal quiet period and SCM polling schedule could trigger extra build with no changes. + (issue 2671 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2671]) + * Fix localization of some messages in build health reports. + (issue 1670 [https://hudson.dev.java.net/issues/show_bug.cgi?id=1670]) + * Fixed a possible memory leak in the distributed build. + (report [http://www.nabble.com/Possible-memory-leak-in-hudson.remoting.ExportTable-td12000299.html]) + * Suppress more pointless error messages in Winstone when clients cut the connection in the middle. + (report [http://www.nabble.com/javax.servlet.%%2CServletException-td22002253.html]) + * Fixed a concurrent build problem in the parallel parameterized build. + (issue 2997 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2997]) + * Maven2 job types didn't handle property-based profile activations correctly. + (issue 1454 [https://hudson.dev.java.net/issues/show_bug.cgi?id=1454]) + * LDAP group permissions were not applied when logged in via remember-me cookie. + (issue 2329 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2329]) + * Record how each build was started and show this in build page and remote API. + (issue 291 [https://hudson.dev.java.net/issues/show_bug.cgi?id=291]) + * Added the --version option to CLI to show the version. The version information is also visible in the help screen. + (report [http://www.nabble.com/Naming-of-the-Hudson-Warfile-td21921859.html]) + * Hudson's own user database now stores SHA-256 encrypted passwords instead of reversible base-64 scrambling. + (issue 2381 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2381]) + * Built-in servlet container no longer reports pointless error messages when clients abort the TCP connection. + (report [http://www.nabble.com/Hudson-Evaluation---Log-output-td21943690.html]) + * On Solaris, Hudson now supports the migration of the data to ZFS. + * Plugin manager now honors the plugin URL from inside .hpi, not just from the update center. + (report [http://www.nabble.com/Plugin-deployment-issues-td21982824.html]) + * Hudson will now kill all the processes that are left behind by a build, to maintain the stability of the cluster. + (issue 2729 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2729]) + * Matrix security username/groupname validation required admin permission even in project-specific permissions + * Fixed a JavaScript bug in slave configuration page when locale is French. + (report [http://www.nabble.com/Javascript-problem-for-french-version-td21875477.html]) + * File upload from HTML forms doesn't work with Internet Explorer. + (report [http://www.nabble.com/IE%%E3%%81%%8B%%E3%%82%%89%%E3%%81%%AE%%E3%%83%%95%%E3%%82%%A1%%E3%%82%%A4%%E3%%83%%AB%%E3%%82%%A2%%E3%%83%%83%%E3%%83%%97%%E3%%83%%AD%%E3%%83%%BC%%E3%%83%%89-td21853837.html]) + * Jobs now expose JobProperties via the remote API. + (issue 2990 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2990]) + * Hudson now responds to a UDP packet to port 33848 for better discovery. + * Improved the error diagnostics when XML marshalling fails. + (report [http://www.nabble.com/Trouble-configuring-Ldap-in-Hudson-running-on-JBoss-5.0.0.GA-td21849403.html]) + * Remote API access to test results was broken since 1.272. + (issue 2760 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2760]) + * Fixed problem in 1.280 where saving top-level settings with LDAP authentication resulted in very large config.xml + (issue 2958 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2958]) + * Username/groupname validation added in 1.280 had broken images, and got exception in groupname lookup with LDAP. + (issue 2959 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2959]) + * hudson.war now supports the --daemon option for forking into background on Unix. + * Remote API supports stdout/stderr from test reports. + (issue 2760 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2760]) + * Fixed unnecessary builds triggered by SVN polling + (issue 2825 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2825]) + * Hudson can now run on JBoss5 without any hassle. + (issue 2831 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2831]) + * Matrix security configuration now validates whether the username/groupname are valid. + * "Disable build" checkbox was moved to align with the rest of the checkboxes. + (issue 2951 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2951]) + * Added an extension point to manipulate Launcher used during a build. + * Fixed a security related regression in 1.278 where authorized users won't get access to the system. + (issue 2930 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2930]) + * Possible subversion polling problems due to debug code making polling take one minute, since 1.273. + (issue 2913 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2913]) + * Computer page now shows the executor list of that computer. + (issue 2925 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2925]) + * Maven surefire test recording is made robust when clocks are out of sync + (report [http://www.nabble.com/Hudson---test-parsing-failure-tt21520694.html]) + * Matrix project type now supports sparse matrix. + (issue 2813 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2813]) + * Plugins can now add a new column to the list view. + (issue 2862 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2862]) + * The "administer" permission should allow a person to do everything. + (discussion [http://www.nabble.com/Deleting-users-from-Matrix-Based-security-td21566030.html#a21571137]) + * Parameterized projects supported for matrix configurations + (issue 2903 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2903]) + * Improved error recovery when a build fails and javadoc/artifacts weren't created at all. + * Support programmatic scheduling of parameterized builds by HTTP GET or POST to /job/.../buildWithParameters + (issue 2409 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2409]) + * Create "lastStable" symlink on the file system to point to the applicable build. + (report [http://www.nabble.com/lastStable-link-td21582859.html]) + * "Installing slave as Windows service" feature was broken since 1.272 + (issue 2886 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2886]) + * Top level People page showed no project information since 1.269. + (report [http://www.nabble.com/N-A-in-%%22Last-Active%%22-column-in--people-page.-tp21553593p21553593.html]) + * Slave configuration page always showed "Utilize as much as possible" instead of saved value since 1.271. + (issue 2878 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2878]) + * Require build permission to submit results for an external job. + (issue 2873 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2873]) + * With the --logfile==/path/to/logfile option, Hudson now reacts SIGALRM and reopen the log file. This makes Hudson behave nicely wrt log rotation. + * Ok button on New View page was always disabled when not using project-specific permissions. + (issue 2809 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2809]) + * Fixed incompatibility with JBossAS 5.0. + (issue 2831 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2831]) + * Unit test in plugin will now automatically load the plugin. + (discussion [http://www.nabble.com/patch%%3A-WithPlugin-annotation%%2C-usable-in-plugin-projects-td21444423.html]) + * Added direct configuration links for the "manage nodes" page. + (discussion [http://www.nabble.com/How-to-manage-slaves-after-upgrade-to-1.274-td21480759.html]) + * If a build has no change, e-mail shouldn't link to the empty changeset page. + * Display of short time durations failed on locales with comma as fraction separator. + (issue 2843 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2843]) + * Saving main Hudson config failed if more than one plugin used Plugin/config.jelly. + * Added a scheduled slave availability. + * Hudson supports auto-upgrade on Solaris when managed by SMF [http://docs.sun.com/app/docs/doc/819-2252/smf-5?a=view]. + * Removed unused spring-support-1.2.9.jar from Hudson as it was interfering with the Crowd plugin. + (report [http://www.nabble.com/Getting-NoSuchClassDefFoundError-for-ehcache-tt21444908.html]) + * Debian package now has the RUN_STANDALONE switch to control if hudson should be run as a daemon. + (report [http://www.nabble.com/Debian-repo-tt21467102.html]) + * Failure to compute Subversion changelog should result in a build failure. + (issue 2461 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2461]) + * XML API caused NPE when xpath=... is specified. + (issue 2828 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2828]) + * Artifact/workspace browser was unable to serve directories/files that contains ".." in them. + (report [http://www.nabble.com/Status-Code-400-viewing-or-downloading-artifact-whose-filename-contains-two-consecutive-periods-tt21407604.html]) + * Hudson renders durations in milliseconds if the total duration is very short. + (report [http://www.nabble.com/Unit-tests-duration-in-milliseconds-tt21417767.html]) + * On Unix, Hudson will contain symlinks from build numbers to their corresponding build directories. + * Load statistics chart had the blue line and the red line swapped. + (issue 2818 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2818]) + * Artifact archiver and workspace browser didn't handle filenames with spaces since 1.269. + (issue 2793 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2793]) + * The executor status and build queue weren't updated asynchronously in the "manage slaves" page. + (issue 2821 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2821]) + * If SCM polling activities gets clogged, Hudson shows a warning in the management page. + (issue 1646 [https://hudson.dev.java.net/issues/show_bug.cgi?id=1646]) + * Added AdministrativeMonitor extension point for improving the autonomous monitoring of the system in Hudson. + * Sometimes multi-line input field is not properly rendered as a text area. + (issue 2816 [https://hudson.dev.java.net/issues/show_bug.cgi?id=2816]) + * Hudson wasn't able to detect when .NET was completely missing. + (report [http://www.nabble.com/error-installing-hudson-as-a-windows-service-tt21378003.html]) + * Fixed a bug where the "All" view can be lost if upgraded from pre-1.269 and the configuration is reloaded from disk without saving. + (report [http://www.nabble.com/all-view-disappeared-tt21380658.html]) + * If for some reason "All" view is deleted, allow people to create it again. + (report [http://www.nabble.com/all-view-disappeared-tt21380658.html]) + * JNLP slave agents is made more robust in the face of configuration errors. + (report [http://d.hatena.ne.jp/w650/20090107/1231323990]) + * Upgraded JNA to 3.0.9 to support installation as a service on 64bit Windows. + (report [http://www.nabble.com/error-installing-hudson-as-a-windows-service-tt21378003.html]) + * Remote XML API now suports the 'exclude' query parameter to remove nodes that match the specified XPath. + (report [http://d.hatena.ne.jp/masanobuimai/20090109#1231507972]) +* Sat Jan 10 2009 guru@unixtech.be +- update to 1.271: + * Fix URLs in junit test reports to handle some special characters. (https://hudson.dev.java.net/issues/show_bug.cgi?id=1768) + * Project name for external job was not shown in Build History. + * SecurityRealms can now better control the servlet filter chain. (http://www.nabble.com/proposed-patch-to-expose-filters-through-SecurityRealms-tt21062397.html) + * Configuration of slaves are moved to individual pages. + * Hudson now tracks the load statistics on slaves and labels. + * Labels can be now assigned to the master. (https://hudson.dev.java.net/issues/show_bug.cgi?id=754) + * Added cloud support and internal restructuring to deal with this change. Note that a plugin is required to use any particular cloud implementation. +* Tue Jan 6 2009 guru@unixtech.be +- update to 1.270: + * Hudson version number was not shown at bottom of pages since 1.269. + * Hudson system message was not shown on main page since 1.269. + * Top level /api/xml wasn't working since 1.269. (https://hudson.dev.java.net/issues/show_bug.cgi?id=2779) + * Fix posting of external job results. (https://hudson.dev.java.net/issues/show_bug.cgi?id=2786) + * Windows service wrapper messes up environment variables to lower case. (http://www.nabble.com/Hudson-feedback-(and-windows-service-variable-lower-case-issue-continuation)-td21206812.html) + * Construct proper Next/Previous Build links even if request URL has extra slashes. (https://hudson.dev.java.net/issues/show_bug.cgi?id=1457) + * Subversion polling didn't notice when you change your project configuration. (http://www.nabble.com/Proper-way-to-switch---relocate-SVN-tree---tt21173306.html) +* Tue Jan 6 2009 guru@unixtech.be +- update to 1.269: + * Manually making a Maven project as upstream and free-style project as a downstream wasn't working. (https://hudson.dev.java.net/issues/show_bug.cgi?id=2778) + * Allow BuildWrapper plugins to contribute project actions to Maven2 jobs (https://hudson.dev.java.net/issues/show_bug.cgi?id=2777) + * Error pages should return non-200 HTTP status code. + * Logger configuration wasn't working since 1.267. + * Fix artifact archiver and workspace browser to handle filenames that need URL-encoding. (https://hudson.dev.java.net/issues/show_bug.cgi?id=2379) + * Only show form on tagBuild page if user has tag permission. (https://hudson.dev.java.net/issues/show_bug.cgi?id=2366) + * Don't require admin permission to view node list page, just hide some columns from non-admins. (https://hudson.dev.java.net/issues/show_bug.cgi?id=1207) + * Fix login redirect when anonymous user tries to access some pages. (https://hudson.dev.java.net/issues/show_bug.cgi?id=2408) + * Redirect up to build page if next/previousBuild link jumps to an action not present in that build. (https://hudson.dev.java.net/issues/show_bug.cgi?id=117) + * Subversion checkout/update now supports fixed revisions. (https://hudson.dev.java.net/issues/show_bug.cgi?id=262) + * Views are now extensible and can be contributed by plugins. (https://hudson.dev.java.net/issues/show_bug.cgi?id=234) +* Sun Dec 21 2008 guru@unixtech.be +- update to 1.266: + * If there was no successful build, test result trend wasn't displayed. (http://www.nabble.com/Test-Result-Trend-plot-not-showing-td21052568.html) + * Windows service installer wasn't handling the situation correctly if Hudson is started at the installation target. (http://www.nabble.com/how-to-setup-hudson-%%2B-cvsnt-%%2B-ssh-as-a-service-on-windows--tp20902739p20902739.html) + * Always display the restart button on the update center page, if the current environment supports it. (http://www.nabble.com/Restarting-Hudson-%%28as-Windows-service%%29-from-web-UI--td21069038.html) + * slave.jar now supports the -noCertificateCheck to bypass (or cripple) HTTPS certificate examination entirely. Useful for working with self-signed HTTPS that are often seen in the intranet. (http://www.nabble.com/Getting-hudson-slaves-to-connect-to-https-hudson-with-self-signed-certificate-td21042660.html) + * Add extension point to allow alternate update centers. (http://hudson.dev.java.net/issues/show_bug.cgi?id=2732) + * Improved accessibility for visually handicapped. +* Fri Dec 12 2008 guru@unixtech.be +- update to 1.263: + * Fixed a problem in handling of '\' introduced in 1.260. (https://hudson.dev.java.net/issues/show_bug.cgi?id=2584) + * Fixed possible NPE when rendering a build history after a slave removal. (https://hudson.dev.java.net/issues/show_bug.cgi?id=2622) + * JNLP descriptor shouldn't rely on the manually configured root URL for HTTP access. (http://www.nabble.com/Moved-master-to-new-machine%%2C-now-when-creating-new-slave%%2C-jnlp-tries-to-connect-to-old-machine-td20465637.html) + * Use unique id which javascript uses when removing users from Matrix-based securoty. (https://hudson.dev.java.net/issues/show_bug.cgi?id=2652) + * Hudson is now made 5 times more conservative in marking an item in the queue as stuck. (https://hudson.dev.java.net/issues/show_bug.cgi?id=2618) + * Improved the variable expansion mechanism in handling of more complex cases. + * XPath matching numbers and booleans in the remote API will render text/plain, instead of error. +* Sat Nov 15 2008 guru@unixtech.be +- update to 1.262: + * Fixed a Java6 dependency crept in in 1.261. (https://hudson.dev.java.net/issues/show_bug.cgi?id=2623) + * Setting up a manual dependency from a freestyle project to a Maven project didn't work. (http://ml.seasar.org/archives/operation/2008-November/004003.html) + * Use Project Security setting wasn't being persisted. (https://hudson.dev.java.net/issues/show_bug.cgi?id=2305) + * Slave installed as a Windows service didn't attempt automatic reconnection when initiail connection fails. (http://www.nabble.com/Loop-Slave-Connection-Attempts-td20471873.html) + * Maven builder has the advanced section in the freestyle job, just like Ant builder. (http://ml.seasar.org/archives/operation/2008-November/004003.html) +* Wed Nov 12 2008 guru@unixtech.be +- update to 1.261: + * Using Maven inside a matrix project, axes were not expanded in the maven command line. (http://ml.seasar.org/archives/operation/2008-November/003996.html) + * Fixed authentication so that login successfully after signing up. (https://hudson.dev.java.net/issues/show_bug.cgi?id=2594) + * Fixed Project-based Matrix Authorization Strategy reverting to Matrix Authorization Strategy after restarting Hudson (https://hudson.dev.java.net/issues/show_bug.cgi?id=2305) + * LDAP membership query now recognizes uniqueMember and memberUid (https://hudson.dev.java.net/issues/show_bug.cgi?id=2256) + * If a build appears to be hanging for too long, Hudson turns the progress bar to red. +* Thu Nov 6 2008 guru@unixtech.be +- update to 1.260: + * Fixed tokenization handling in command line that involves quotes (like -Dabc="abc def" (https://hudson.dev.java.net/issues/show_bug.cgi?id=2584) + * Hudson wasn't using persistent HTTP connections properly when using Subversion over HTTP. + * Fixed svn:executable handling on 64bit Linux systems. + * When a build is aborted, Hudson now kills all the descendant processes recursively to avoid run-away processes. This is available on Windows, Linux, and Solaris. Contributions for other OSes welcome. + * Improved error diagnostics in the update center when the proxy configuration is likely necessary. (http://www.nabble.com/update-center-proxy-td20205568.html) + * Improved error diagnostics when a temp file creation failed. (https://hudson.dev.java.net/issues/show_bug.cgi?id=2587) +* Wed Nov 5 2008 guru@unixtech.be +- update to 1.259: + * If a job is cancelled while it's already in the queue, remove the job from the queue. (http://www.nabble.com/Disabled-jobs-and-triggered-builds-td20254776.html) + * Installing Hudson as a Windows service requires .NET 2.0 or later. Hudson now checks this before attempting a service installation. + * On Hudson installed as Windows service, Hudson can now upgrade itself when a new version is available. + * Hudson can now be pre-packaged with plugins. (http://www.nabble.com/How-can-I-distribute-Hudson-with-my-plug-in-td20278601.html) + * Supported the javadoc:aggregate goal (https://hudson.dev.java.net/issues/show_bug.cgi?id=2562) + * Bundled StAX implementation so that plugins would have easier time using it. (https://hudson.dev.java.net/issues/show_bug.cgi?id=2547) +* Thu Oct 30 2008 guru@unixtech.be +- update to 1.258: + * Fixed a class incompatibility introduced in 1.257 that breaks TFS and ClearCase plugins. (http://www.nabble.com/Build-257-IncompatibleClassChangeError-td20229011.html) + * Fixed a NPE when dealing with broken Action implementations. (https://hudson.dev.java.net/issues/show_bug.cgi?id=2527) +* Wed Oct 29 2008 guru@unixtech.be +- update to 1.257: + * Fixed an encoding issue when the master and a slave use incompatible encodings. + * Permission matrix was missing tooltip text. (http://www.nabble.com/Missing-hover-text-for-matrix-security-permissions--td20140205.html) + * Parameter expansion in Ant builder didn't honor build parameters. (http://www.nabble.com/Missing-hover-text-for-matrix-security-permissions--td20140205.html) + * Added tooltip for 'S' and 'W' in the top page for showing what it is. (http://www.nabble.com/Re%%3A-What-are-%%27S%%27-and-%%27W%%27-in-Hudson-td20199851.html) + * Expanded the remote API to disable/enable jobs remotely. +* Sat Oct 25 2008 guru@unixtech.be +- update to 1.256: + * Hudson had two dom4j.jar that was causing a VerifyError in WebSphere. (https://hudson.dev.java.net/issues/show_bug.cgi?id=2435) + * Fixed NPE in case of changelog.xml data corruption (https://hudson.dev.java.net/issues/show_bug.cgi?id=2428) + * Improved the error detection when a Windows path is given to a Unix slave. (http://www.nabble.com/windows-32-bit-hudson-talking-to-linux-64-bit-slave--td19755708.html) + * Automatic dependency management for Maven projects can be now disabled. (https://hudson.dev.java.net/issues/show_bug.cgi?id=1714) +* Thu Oct 2 2008 guru@unixtech.be +- update to 1.255: + * Project-level ACL matrix shouldn't display "CREATE" permission. (http://www.nabble.com/Project-based-authorization-%%3A-Create-permission-td19729677.html) + * Fixed the serialized form of project-based matrix authorization strategy. + * Fixed a bug where Hudson installed as service gets killed when the interactive user logs off. (http://www.nabble.com/Project-based-authorization-%%3A-Create-permission-td19729677.html) + * Timer-scheduled build shouldn't honor the quiet period. (http://www.nabble.com/Build-periodically-Schedule-time-difference-vs-actual-execute-time-td19736583.html) + * Hudson slave launched from JNLP is now capable of installing itself as a Windows service. +* Sat Sep 27 2008 guru@unixtech.be +- update to 1.254: + * IllegalArgumentException in DeferredCreationLdapAuthoritiesPopulator if groupSearchBase is omitted. (http://www.nabble.com/IllegalArgumentException-in-DeferredCreationLdapAuthoritiesPopulator-if-groupSearchBase-is-omitted-td19689475.html) + * Fixed "Failed to tag" problem when tagging some builds (https://hudson.dev.java.net/issues/show_bug.cgi?id=2213) + * Hudson is now capable of installing itself as a Windows service. + * Improved the diagnostics of why Hudson needs to do a fresh check out. (http://www.nabble.com/Same-job-gets-rescheduled-again-and-again-td19662648.html) +* Thu Sep 25 2008 guru@unixtech.be +- update to 1.253: + * Fixed FormFieldValidator check for Windows path (https://hudson.dev.java.net/issues/show_bug.cgi?id=2334) + * Support empty cvs executable and Shell executable on configure page (https://hudson.dev.java.net/issues/show_bug.cgi?id=1851) + * Fixed parametric Project build when scheduled automatically from SCM changes (https://hudson.dev.java.net/issues/show_bug.cgi?id=2336) + * "Tag this build" link shouldn't show up in the navigation bar if the user doesn't have a permission. (https://hudson.dev.java.net/issues/show_bug.cgi?id=2380) + * Improved LDAP support so that it doesn't rely on ou=groups. + * Project-based security matrix shouldn't show up in project config page unless the said option is enabled in the global config + * Fixed NPE during the sign up of a new user (https://hudson.dev.java.net/issues/show_bug.cgi?id=2376) + * Suppress the need for a scroll-bar on the configure page when the PATH is very long (https://hudson.dev.java.net/issues/show_bug.cgi?id=2317) + * Now UserProperty objects can provide a summary on a user's main page. (https://hudson.dev.java.net/issues/show_bug.cgi?id=2331) + * Validate Maven installation directory just like Ant installation (https://hudson.dev.java.net/issues/show_bug.cgi?id=2335) + * Show summary.jelly files for JobProperties in the project page (https://hudson.dev.java.net/issues/show_bug.cgi?id=2398) + * Improvements in French and Japanese localization. + * JNLP slaves now support port tunneling for security-restricted environments. + * slave.jar now supports a proactive connection initiation (like JNLP slaves.) This can be used to replace JNLP slaves, especially when you want to run it as a service. + * Added a new extension to define permalinks + * Supported a file submission as one of the possible parameters for a parameterized build. + * The logic to disable slaves based on its response time is made more robust, to ignore temporary spike. + * Improved the robustness of the loading of persisted records to simplify plugin evolution. +* Wed Sep 3 2008 guru@unixtech.be +- update to 1.252: + * Fixed a queue persistence problem where sometimes executors die with NPEs. + * PageDecorator with a global.jelly is now shown in the System configuration page (https://hudson.dev.java.net/issues/show_bug.cgi?id=2289) + * On security-enabled Hudson, redirection for a login didn't work correctly since 1.249. (https://hudson.dev.java.net/issues/show_bug.cgi?id=2290) + * Hudson didn't give SCMs an opportunity to clean up the workspace before project deletion. (https://hudson.dev.java.net/issues/show_bug.cgi?id=2271) + * Subversion SCM enhancement for allowing parametric builds on Tags and Branches. (https://hudson.dev.java.net/issues/show_bug.cgi?id=2298) +* Sat Aug 23 2008 guru@unixtech.be +- update to 1.251: + * JavaScript error in the system configuration prevents a form submission. (https://hudson.dev.java.net/issues/show_bug.cgi?id=2260) +* Sat Aug 23 2008 guru@unixtech.be +- update to 1.250: + * Fixed NPE in the workspace clean up thread when the slave is offline. (https://hudson.dev.java.net/issues/show_bug.cgi?id=2221) + * Hudson was still using deprecated configure methods on some of the extension points. (http://www.nabble.com/Hudson.configure-calling-deprecated-Descriptor.configure-td19051815.html) + * Abbreviated time representation in English (e.g., "seconds" -> "secs") to reduce the width of the job listing. (https://hudson.dev.java.net/issues/show_bug.cgi?id=2251) + * Added LDAPS support (https://hudson.dev.java.net/issues/show_bug.cgi?id=1445) +* Wed Aug 20 2008 guru@unixtech.be +- update to 1.249: + * JNLP slave agent fails to launch when the anonymous user doesn't have a read access. (http://www.nabble.com/Launching-slave-by-JNLP-with-Active-Directory-plugin-and-matrix-security-problem-td18980323.html) + * Trying to access protected resources anonymously now results in 401 status code, to help programmatic access. + * When the security realm was delegated to the container, users didn't have the built-in "authenticated" role. + * Fixed IllegalMonitorStateException (https://hudson.dev.java.net/issues/show_bug.cgi?id=2230) + * Intorduced a mechanism to perform a bulk change to improve performance (and in preparation of version controlling config files) diff --git a/rpm/build.sh b/rpm/build.sh new file mode 100755 index 0000000000000000000000000000000000000000..8b0221fa3df5300aef753252e8f365bbb4063058 --- /dev/null +++ b/rpm/build.sh @@ -0,0 +1,20 @@ +#!/bin/bash -e +if [ -z "$1" ]; then + echo "Usage: build.sh path/to/hudson.war" + exit 1 +fi + +sudo apt-get install -y rpm expect || true + +# figure out the version to package +cp "$1" $(dirname $0)/SOURCES/hudson.war +pushd $(dirname $0) +version=$(unzip -p SOURCES/hudson.war META-INF/MANIFEST.MF | grep Implementation-Version | cut -d ' ' -f2 | tr - .) +echo Version is $version + +# prepare fresh directories +rm -rf BUILD RPMS SRPMS tmp || true +mkdir -p BUILD RPMS SRPMS + +# real action happens here +rpmbuild -ba --define="_topdir $PWD" --define="_tmppath $PWD/tmp" --define="ver $version" SPECS/hudson.spec diff --git a/test/pom.xml b/test/pom.xml index 29c642fd647f5bdff5eabff15f42b240a7596175..31776d095cce48fde7ac88d673ac675824daedab 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -27,32 +27,61 @@ THE SOFTWARE. pom org.jvnet.hudson.main - 1.306-SNAPSHOT + 1.386-SNAPSHOT 4.0.0 org.jvnet.hudson.main hudson-test-harness + stapler-jar Test harness for Hudson and plugins Unit test harness (src/main) and Unit tests for Hudson core (src/test) + + 1 + + maven-surefire-plugin - - once - - true + true - org.codehaus.groovy.maven + + com.sun.maven + maven-junit-plugin + 1.5 + + + + test + + + true + ${concurrency} + -XX:MaxPermSize=192m -Xmx256m -Dfile.encoding=UTF-8 + + + + hudson.ClassicPluginStrategy.useAntClassLoader + true + + + + + + + + org.kohsuke.gmaven gmaven-plugin + 1.0-rc-5-patch-2 + preset-packager process-resources execute @@ -61,15 +90,28 @@ THE SOFTWARE. ${pom.basedir}/src/main/preset-data/package.groovy + + test-in-groovy + + + testCompile + + - ant + org.apache.ant ant - 1.6.5 + 1.8.0 + + org.kohsuke.stapler + maven-stapler-plugin + 1.15 + true + @@ -90,9 +132,9 @@ THE SOFTWARE. ${project.version} - ${project.groupId} - maven-plugin - ${project.version} + org.jvnet.hudson.plugins + subversion + 1.11 org.mortbay.jetty @@ -112,15 +154,21 @@ THE SOFTWARE. org.jvnet.hudson htmlunit - 2.2-hudson-9 + 2.6-hudson-2 + + + + xml-apis + xml-apis + + - + org.jvnet.hudson - htmlunit-core-js - 2.2-hudson-2 + embedded-rhino-debugger + 1.2 - org.jvnet.hudson @@ -137,9 +185,21 @@ THE SOFTWARE. easymock 2.4 + + org.mockito + mockito-core + 1.8.5 + test + + + light-test + + true + + + ${project.basedir}/../core/src/build-script ${project.basedir}/src/build-script/unitTest.groovy @@ -169,7 +229,8 @@ THE SOFTWARE. - maven-surefire-plugin + com.sun.maven + maven-junit-plugin true diff --git a/test/src/main/java/org/jvnet/hudson/test/CaptureEnvironmentBuilder.java b/test/src/main/java/org/jvnet/hudson/test/CaptureEnvironmentBuilder.java index c5997864a910635043eb6e886538c966aca2eb4b..775eb8d14648ed06ed9d9d0fd5101a8b470b333b 100644 --- a/test/src/main/java/org/jvnet/hudson/test/CaptureEnvironmentBuilder.java +++ b/test/src/main/java/org/jvnet/hudson/test/CaptureEnvironmentBuilder.java @@ -34,7 +34,6 @@ import net.sf.json.JSONObject; import org.kohsuke.stapler.StaplerRequest; import java.io.IOException; -import java.util.Map; /** * {@link Builder} that captures the environment variables used during a build. diff --git a/test/src/main/java/org/jvnet/hudson/test/ClosureExecuterAction.java b/test/src/main/java/org/jvnet/hudson/test/ClosureExecuterAction.java new file mode 100644 index 0000000000000000000000000000000000000000..9feb531faf3d15299b04e35da700d7604e92badd --- /dev/null +++ b/test/src/main/java/org/jvnet/hudson/test/ClosureExecuterAction.java @@ -0,0 +1,70 @@ +/* + * The MIT License + * + * Copyright (c) 2004-2009, Sun Microsystems, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package org.jvnet.hudson.test; + +import hudson.Extension; +import hudson.model.RootAction; +import org.kohsuke.stapler.QueryParameter; +import org.kohsuke.stapler.StaplerResponse; + +import java.io.IOException; +import java.util.Collections; +import java.util.HashMap; +import java.util.Map; +import java.util.UUID; + +/** + * Server-side logic that implements {@link HudsonTestCase#executeOnServer(Callable)}. + * + * @author Kohsuke Kawaguchi + */ +@Extension +public final class ClosureExecuterAction implements RootAction { + private final Map runnables = Collections.synchronizedMap(new HashMap()); + + public void add(UUID uuid, Runnable r) { + runnables.put(uuid,r); + } + + public void doIndex(StaplerResponse rsp, @QueryParameter("uuid") String uuid) throws IOException { + Runnable r = runnables.remove(UUID.fromString(uuid)); + if (r!=null) { + r.run(); + } else { + rsp.sendError(404); + } + } + + public String getIconFileName() { + return null; + } + + public String getDisplayName() { + return null; + } + + public String getUrlName() { + return "closures"; + } +} diff --git a/test/src/main/java/org/jvnet/hudson/test/ComputerConnectorTester.java b/test/src/main/java/org/jvnet/hudson/test/ComputerConnectorTester.java new file mode 100644 index 0000000000000000000000000000000000000000..872039bad149d06453ec32595bb01d33109261e2 --- /dev/null +++ b/test/src/main/java/org/jvnet/hudson/test/ComputerConnectorTester.java @@ -0,0 +1,67 @@ +/* + * The MIT License + * + * Copyright (c) 2010, InfraDNA, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package org.jvnet.hudson.test; + +import hudson.Extension; +import hudson.model.AbstractDescribableImpl; +import hudson.model.Describable; +import hudson.model.Descriptor; +import hudson.slaves.ComputerConnector; +import hudson.slaves.ComputerConnectorDescriptor; +import org.kohsuke.stapler.StaplerRequest; + +import javax.servlet.ServletException; +import java.io.IOException; +import java.util.List; + +/** + * Test bed to verify the configuration roundtripness of the {@link ComputerConnector}. + * + * @author Kohsuke Kawaguchi + * @see HudsonTestCase#computerConnectorTester + */ +public class ComputerConnectorTester extends AbstractDescribableImpl { + public final HudsonTestCase testCase; + public ComputerConnector connector; + + public ComputerConnectorTester(HudsonTestCase testCase) { + this.testCase = testCase; + } + + public void doConfigSubmit(StaplerRequest req) throws IOException, ServletException { + connector = req.bindJSON(ComputerConnector.class, req.getSubmittedForm().getJSONObject("connector")); + } + + public List getConnectorDescriptors() { + return ComputerConnectorDescriptor.all(); + } + + @Extension + public static class DescriptorImpl extends Descriptor { + @Override + public String getDisplayName() { + return ""; + } + } +} diff --git a/test/src/main/java/org/jvnet/hudson/test/DefaultConstructorChecker.java b/test/src/main/java/org/jvnet/hudson/test/DefaultConstructorChecker.java new file mode 100644 index 0000000000000000000000000000000000000000..9c862edc4773d6a89af2497dcc74a39b9d124130 --- /dev/null +++ b/test/src/main/java/org/jvnet/hudson/test/DefaultConstructorChecker.java @@ -0,0 +1,28 @@ +package org.jvnet.hudson.test; + +import junit.framework.TestCase; + +/** + * Tests that the specified class has the default constructor. + * + * @author Kohsuke Kawaguchi + */ +public class DefaultConstructorChecker extends TestCase { + private final Class clazz; + + public DefaultConstructorChecker(Class clazz) { + this.clazz = clazz; + setName(clazz.getName()+".verifyDefaultConstructor"); + } + + @Override + protected void runTest() throws Throwable { + try { + clazz.getConstructor(); + } catch (NoSuchMethodException e) { + throw new Error(clazz+" must have the default constructor",e); + } catch (SecurityException e) { + throw new Error(clazz+" must have the default constructor",e); + } + } +} diff --git a/test/src/main/java/org/jvnet/hudson/test/ExtractChangeLogParser.java b/test/src/main/java/org/jvnet/hudson/test/ExtractChangeLogParser.java new file mode 100644 index 0000000000000000000000000000000000000000..5455efd2e7e9b2dbc2b7471d2bf2aaa358009537 --- /dev/null +++ b/test/src/main/java/org/jvnet/hudson/test/ExtractChangeLogParser.java @@ -0,0 +1,159 @@ +/* + * The MIT License + * + * Copyright (c) 2004-2009, Sun Microsystems, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package org.jvnet.hudson.test; + +import hudson.model.AbstractBuild; +import hudson.model.User; +import hudson.scm.ChangeLogParser; +import hudson.scm.ChangeLogSet; +import org.apache.commons.digester.Digester; +import org.kohsuke.stapler.export.Exported; +import org.kohsuke.stapler.export.ExportedBean; +import org.xml.sax.SAXException; + +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +/** + * @author Andrew Bayer + */ +public class ExtractChangeLogParser extends ChangeLogParser { + @Override + public ExtractChangeLogSet parse(AbstractBuild build, File changeLogFile) throws IOException, SAXException { + if (changeLogFile.exists()) { + FileInputStream fis = new FileInputStream(changeLogFile); + ExtractChangeLogSet logSet = parse(build, fis); + fis.close(); + return logSet; + } else { + return new ExtractChangeLogSet(build, new ArrayList()); + } + } + + public ExtractChangeLogSet parse(AbstractBuild build, InputStream changeLogStream) throws IOException, SAXException { + + ArrayList changeLog = new ArrayList(); + + Digester digester = new Digester(); + digester.setClassLoader(ExtractChangeLogSet.class.getClassLoader()); + digester.push(changeLog); + digester.addObjectCreate("*/extractChanges/entry", ExtractChangeLogEntry.class); + + digester.addBeanPropertySetter("*/extractChanges/entry/zipFile"); + + digester.addObjectCreate("*/extractChanges/entry/file", + FileInZip.class); + digester.addBeanPropertySetter("*/extractChanges/entry/file/fileName"); + digester.addSetNext("*/extractChanges/entry/file", "addFile"); + digester.addSetNext("*/extractChanges/entry", "add"); + + digester.parse(changeLogStream); + + return new ExtractChangeLogSet(build, changeLog); + } + + + @ExportedBean(defaultVisibility = 999) + public static class ExtractChangeLogEntry extends ChangeLogSet.Entry { + private List files = new ArrayList(); + private String zipFile; + + public ExtractChangeLogEntry() { + } + + public ExtractChangeLogEntry(String zipFile) { + this.zipFile = zipFile; + } + + public void setZipFile(String zipFile) { + this.zipFile = zipFile; + } + + @Exported + public String getZipFile() { + return zipFile; + } + + @Override + public void setParent(ChangeLogSet parent) { + super.setParent(parent); + } + + @Override + public Collection getAffectedPaths() { + Collection paths = new ArrayList(files.size()); + for (FileInZip file : files) { + paths.add(file.getFileName()); + } + return paths; + } + + @Override + @Exported + public User getAuthor() { + return User.get("testuser"); + } + + @Override + @Exported + public String getMsg() { + return "Extracted from " + zipFile; + } + + public void addFile(FileInZip fileName) { + files.add(fileName); + } + + public void addFiles(Collection fileNames) { + this.files.addAll(fileNames); + } + } + + @ExportedBean(defaultVisibility = 999) + public static class FileInZip { + private String fileName = ""; + + public FileInZip() { + } + + public FileInZip(String fileName) { + this.fileName = fileName; + } + + @Exported + public String getFileName() { + return fileName; + } + + public void setFileName(String fileName) { + this.fileName = fileName; + } + } + +} diff --git a/test/src/main/java/org/jvnet/hudson/test/ExtractChangeLogSet.java b/test/src/main/java/org/jvnet/hudson/test/ExtractChangeLogSet.java new file mode 100644 index 0000000000000000000000000000000000000000..5e36aaeb243eb866c002c0d62f1f72f8eb4c564f --- /dev/null +++ b/test/src/main/java/org/jvnet/hudson/test/ExtractChangeLogSet.java @@ -0,0 +1,57 @@ +/* + * The MIT License + * + * Copyright (c) 2004-2009, Sun Microsystems, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package org.jvnet.hudson.test; + +import hudson.model.AbstractBuild; +import hudson.scm.ChangeLogSet; + +import java.util.List; +import java.util.Collections; +import java.util.Iterator; + + +/** + * @author Andrew Bayer + */ +public class ExtractChangeLogSet extends ChangeLogSet { + private List changeLogs = null; + + public ExtractChangeLogSet(AbstractBuild build, List changeLogs) { + super(build); + for (ExtractChangeLogParser.ExtractChangeLogEntry entry : changeLogs) { + entry.setParent(this); + } + this.changeLogs = Collections.unmodifiableList(changeLogs); + } + + @Override + public boolean isEmptySet() { + return changeLogs.isEmpty(); + } + + public Iterator iterator() { + return changeLogs.iterator(); + } + +} diff --git a/test/src/main/java/org/jvnet/hudson/test/ExtractResourceWithChangesSCM.java b/test/src/main/java/org/jvnet/hudson/test/ExtractResourceWithChangesSCM.java new file mode 100644 index 0000000000000000000000000000000000000000..0c581dcb4225a4ea583be1d11411483530756a88 --- /dev/null +++ b/test/src/main/java/org/jvnet/hudson/test/ExtractResourceWithChangesSCM.java @@ -0,0 +1,142 @@ +/* + * The MIT License + * + * Copyright (c) 2004-2009, Sun Microsystems, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package org.jvnet.hudson.test; + +import hudson.FilePath; +import hudson.Launcher; +import hudson.Util; +import hudson.model.AbstractBuild; +import hudson.model.BuildListener; +import hudson.scm.ChangeLogParser; +import hudson.scm.NullSCM; +import hudson.scm.SCM; + +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.PrintStream; +import java.net.URL; +import java.util.zip.ZipEntry; +import java.util.zip.ZipInputStream; + +/** + * {@link SCM} useful for testing that extracts the given resource as a zip file. + * + * @author Kohsuke Kawaguchi + */ +public class ExtractResourceWithChangesSCM extends NullSCM { + private final URL firstZip; + private final URL secondZip; + private final String moduleRoot; + + public ExtractResourceWithChangesSCM(URL firstZip, URL secondZip) { + if ((firstZip == null) || (secondZip == null)) + throw new IllegalArgumentException(); + this.firstZip = firstZip; + this.secondZip = secondZip; + this.moduleRoot = null; + } + + public ExtractResourceWithChangesSCM(URL firstZip, URL secondZip, String moduleRoot) { + if ((firstZip == null) || (secondZip == null)) + throw new IllegalArgumentException(); + this.firstZip = firstZip; + this.secondZip = secondZip; + this.moduleRoot = moduleRoot; + } + + @Override + public FilePath getModuleRoot(FilePath workspace) { + if (moduleRoot!=null) { + return workspace.child(moduleRoot); + } + return workspace; + } + + @Override + public boolean checkout(AbstractBuild build, Launcher launcher, FilePath workspace, BuildListener listener, File changeLogFile) throws IOException, InterruptedException { + if (workspace.exists()) { + listener.getLogger().println("Deleting existing workspace " + workspace.getRemote()); + workspace.deleteRecursive(); + } + listener.getLogger().println("Staging first zip: " + firstZip); + workspace.unzipFrom(firstZip.openStream()); + listener.getLogger().println("Staging second zip: " + secondZip); + workspace.unzipFrom(secondZip.openStream()); + + // Get list of files changed in secondZip. + ZipInputStream zip = new ZipInputStream(secondZip.openStream()); + ZipEntry e; + ExtractChangeLogParser.ExtractChangeLogEntry changeLog = new ExtractChangeLogParser.ExtractChangeLogEntry(secondZip.toString()); + + try { + while ((e = zip.getNextEntry()) != null) { + if (!e.isDirectory()) + changeLog.addFile(new ExtractChangeLogParser.FileInZip(e.getName())); + } + } + finally { + zip.close(); + } + saveToChangeLog(changeLogFile, changeLog); + + return true; + } + + @Override + public ChangeLogParser createChangeLogParser() { + return new ExtractChangeLogParser(); + } + + private static String escapeForXml(String string) { + return Util.xmlEscape(Util.fixNull(string)); + } + + public void saveToChangeLog(File changeLogFile, ExtractChangeLogParser.ExtractChangeLogEntry changeLog) throws IOException { + FileOutputStream outputStream = new FileOutputStream(changeLogFile); + + PrintStream stream = new PrintStream(outputStream, false, "UTF-8"); + + stream.println(""); + stream.println(""); + stream.println(""); + stream.println("" + escapeForXml(changeLog.getZipFile()) + ""); + stream.println(""); + + for (String fileName : changeLog.getAffectedPaths()) { + stream.println("" + escapeForXml(fileName) + ""); + } + + stream.println(""); + stream.println(""); + stream.println(""); + + stream.close(); + } + + /** + * Don't write 'this', so that subtypes can be implemented as anonymous class. + */ + private Object writeReplace() { return new Object(); } +} diff --git a/test/src/main/java/org/jvnet/hudson/test/FailureBuilder.java b/test/src/main/java/org/jvnet/hudson/test/FailureBuilder.java index 773821dc48aad66e0119f050d314c66bdb24c04e..65856acf14d980047bfd143a600e17c75d8b667c 100644 --- a/test/src/main/java/org/jvnet/hudson/test/FailureBuilder.java +++ b/test/src/main/java/org/jvnet/hudson/test/FailureBuilder.java @@ -41,6 +41,7 @@ import java.io.IOException; * @author Kohsuke Kawaguchi */ public class FailureBuilder extends Builder { + public boolean perform(AbstractBuild build, Launcher launcher, BuildListener listener) throws InterruptedException, IOException { listener.getLogger().println("Simulating a failure"); build.setResult(Result.FAILURE); @@ -49,12 +50,11 @@ public class FailureBuilder extends Builder { @Extension public static final class DescriptorImpl extends Descriptor { - public Builder newInstance(StaplerRequest req, JSONObject data) { - throw new UnsupportedOperationException(); - } - public String getDisplayName() { return "Always fail"; } + public FailureBuilder newInstance(StaplerRequest req, JSONObject data) { + return new FailureBuilder(); + } } } diff --git a/test/src/main/java/org/jvnet/hudson/test/FakeLauncher.java b/test/src/main/java/org/jvnet/hudson/test/FakeLauncher.java new file mode 100644 index 0000000000000000000000000000000000000000..f91c05cc4a2c0ee5313d9b420ebea861367ca6a6 --- /dev/null +++ b/test/src/main/java/org/jvnet/hudson/test/FakeLauncher.java @@ -0,0 +1,51 @@ +package org.jvnet.hudson.test; + +import hudson.Launcher.ProcStarter; +import hudson.Proc; + +import java.io.IOException; + +/** + * Fake a process launch. + * + * @author Kohsuke Kawaguchi + * @see PretendSlave + * @see MockFakeLauncher + */ +public interface FakeLauncher { + /** + * Called whenever a {@link PretendSlave} is asked to fork a new process. + * + *

      + * The callee can inspect the {@link ProcStarter} object to determine what process is being launched, + * and if necessary, fake a process launch by either returning a valid {@link Proc} object, or let + * the normal process launch happen by returning null. + */ + Proc onLaunch(ProcStarter p) throws IOException; + + /** + * Fake {@link Proc} implementation that represents a completed process. + */ + public class FinishedProc extends Proc { + public final int exitCode; + + public FinishedProc(int exitCode) { + this.exitCode = exitCode; + } + + @Override + public boolean isAlive() throws IOException, InterruptedException { + return false; + } + + @Override + public void kill() throws IOException, InterruptedException { + throw new UnsupportedOperationException(); + } + + @Override + public int join() throws IOException, InterruptedException { + return exitCode; + } + } +} diff --git a/test/src/main/java/org/jvnet/hudson/test/For.java b/test/src/main/java/org/jvnet/hudson/test/For.java new file mode 100644 index 0000000000000000000000000000000000000000..856beb36d2650a983a3c6ce5faf7581e71e8b9c0 --- /dev/null +++ b/test/src/main/java/org/jvnet/hudson/test/For.java @@ -0,0 +1,44 @@ +/* + * The MIT License + * + * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package org.jvnet.hudson.test; + +import java.lang.annotation.Documented; +import java.lang.annotation.ElementType; +import java.lang.annotation.Target; + +/** + * Marks a test case as a test related to the specified production class. + * + *

      + * This can be used when the relationship between the test class and the test subject + * is not obvious. + * + * @author Kohsuke Kawaguchi + * @since 1.351 + */ +@Documented +@Target({ElementType.METHOD, ElementType.TYPE}) +public @interface For { + Class[] value(); +} diff --git a/test/src/main/java/org/jvnet/hudson/test/GroovyHudsonTestCase.java b/test/src/main/java/org/jvnet/hudson/test/GroovyHudsonTestCase.java new file mode 100644 index 0000000000000000000000000000000000000000..4198d50dfe76b6fea981cb671fd3d837a4c5674b --- /dev/null +++ b/test/src/main/java/org/jvnet/hudson/test/GroovyHudsonTestCase.java @@ -0,0 +1,47 @@ +package org.jvnet.hudson.test; + +import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerResponse; +import groovy.lang.Closure; +import hudson.model.AbstractBuild; +import hudson.model.BuildListener; +import hudson.tasks.Builder; +import hudson.Launcher; + +import java.util.concurrent.Callable; +import java.io.IOException; + +/** + * {@link HudsonTestCase} with more convenience methods for Groovy. + * + * @author Kohsuke Kawaguchi + */ +public abstract class GroovyHudsonTestCase extends HudsonTestCase { + /** + * Executes the given closure on the server, in the context of an HTTP request. + * This is useful for testing some methods that require {@link StaplerRequest} and {@link StaplerResponse}. + * + *

      + * The closure will get the request and response as parameters. + */ + public Object executeOnServer(final Closure c) throws Exception { + return executeOnServer(new Callable() { + public Object call() throws Exception { + return c.call(); + } + }); + } + + /** + * Wraps a closure as a {@link Builder}. + */ + public Builder builder(final Closure c) { + return new TestBuilder() { + public boolean perform(AbstractBuild build, Launcher launcher, BuildListener listener) throws InterruptedException, IOException { + Object r = c.call(new Object[]{build,launcher,listener}); + if (r instanceof Boolean) return (Boolean)r; + return true; + } + }; + } +} diff --git a/test/src/main/java/org/jvnet/hudson/test/HudsonHomeLoader.java b/test/src/main/java/org/jvnet/hudson/test/HudsonHomeLoader.java index dc4a25b0e2c08b8e4093f4bff69e2df898ef7624..8c5b9c81423a5bcb6bec7562094c40e5184350f2 100644 --- a/test/src/main/java/org/jvnet/hudson/test/HudsonHomeLoader.java +++ b/test/src/main/java/org/jvnet/hudson/test/HudsonHomeLoader.java @@ -65,7 +65,7 @@ public interface HudsonHomeLoader { * Either a zip file or a directory that contains the home image. */ public CopyExisting(File source) throws MalformedURLException { - this(source.toURL()); + this(source.toURI().toURL()); } /** @@ -82,7 +82,7 @@ public interface HudsonHomeLoader { public File allocate() throws Exception { File target = NEW.allocate(); if(source.getProtocol().equals("file")) { - File src = new File(source.getPath()); + File src = new File(source.toURI()); if(src.isDirectory()) new FilePath(src).copyRecursiveTo("**/*",new FilePath(target)); else @@ -116,7 +116,7 @@ public interface HudsonHomeLoader { if(!res.getProtocol().equals("file")) throw new AssertionError("Test data is not available in the file system: "+res); // if we picked up a directory, it's one level above config.xml - File home = new File(res.getPath()); + File home = new File(res.toURI()); if(!home.getName().endsWith(".zip")) home = home.getParentFile(); diff --git a/test/src/main/java/org/jvnet/hudson/test/HudsonPageCreator.java b/test/src/main/java/org/jvnet/hudson/test/HudsonPageCreator.java index 60ad9bcac2337a08c1c024fa62fe7da35027e68b..07f2fafe5ca7bb8b31191f0e2e716ebc737b21dd 100644 --- a/test/src/main/java/org/jvnet/hudson/test/HudsonPageCreator.java +++ b/test/src/main/java/org/jvnet/hudson/test/HudsonPageCreator.java @@ -30,6 +30,7 @@ import com.gargoylesoftware.htmlunit.WebWindow; import com.gargoylesoftware.htmlunit.PageCreator; import java.io.IOException; +import java.util.Locale; /** * {@link PageCreator} that understands JNLP file. @@ -39,7 +40,7 @@ import java.io.IOException; public class HudsonPageCreator extends DefaultPageCreator { @Override public Page createPage(WebResponse webResponse, WebWindow webWindow) throws IOException { - String contentType = webResponse.getContentType().toLowerCase(); + String contentType = webResponse.getContentType().toLowerCase(Locale.ENGLISH); if(contentType.equals("application/x-java-jnlp-file")) return createXmlPage(webResponse, webWindow); return super.createPage(webResponse, webWindow); diff --git a/test/src/main/java/org/jvnet/hudson/test/HudsonTestCase.java b/test/src/main/java/org/jvnet/hudson/test/HudsonTestCase.java index ef4a8cb66433c8779ab9eabdd86ae9400fa9e916..a70f897975380afc779c99f8cc38de8120f729be 100644 --- a/test/src/main/java/org/jvnet/hudson/test/HudsonTestCase.java +++ b/test/src/main/java/org/jvnet/hudson/test/HudsonTestCase.java @@ -1,7 +1,7 @@ /* * The MIT License * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Erik Ramfelt, Yahoo! Inc. + * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Erik Ramfelt, Yahoo! Inc., Tom Huybrechts * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -23,13 +23,20 @@ */ package org.jvnet.hudson.test; -import hudson.CloseProofOutputStream; -import hudson.FilePath; -import hudson.Functions; -import hudson.WebAppMain; -import hudson.EnvVars; -import hudson.ExtensionList; -import hudson.DescriptorExtensionList; +import com.gargoylesoftware.htmlunit.DefaultCssErrorHandler; +import com.gargoylesoftware.htmlunit.javascript.HtmlUnitContextFactory; +import com.gargoylesoftware.htmlunit.javascript.host.xml.XMLHttpRequest; +import hudson.*; +import hudson.Util; +import hudson.model.*; +import hudson.model.Queue.Executable; +import hudson.security.AbstractPasswordBasedSecurityRealm; +import hudson.security.GroupDetails; +import hudson.security.SecurityRealm; +import hudson.slaves.ComputerConnector; +import hudson.tasks.Builder; +import hudson.tasks.Publisher; +import hudson.tools.ToolProperty; import hudson.remoting.Which; import hudson.Launcher.LocalLauncher; import hudson.matrix.MatrixProject; @@ -37,22 +44,8 @@ import hudson.matrix.MatrixBuild; import hudson.matrix.MatrixRun; import hudson.maven.MavenModuleSet; import hudson.maven.MavenEmbedder; -import hudson.model.Descriptor; -import hudson.model.FreeStyleProject; -import hudson.model.Hudson; -import hudson.model.Item; -import hudson.model.JDK; -import hudson.model.Label; -import hudson.model.Node; -import hudson.model.Result; -import hudson.model.Run; -import hudson.model.Saveable; -import hudson.model.TaskListener; -import hudson.model.UpdateCenter; -import hudson.model.AbstractProject; -import hudson.model.UpdateCenter.UpdateCenterConfiguration; import hudson.model.Node.Mode; -import hudson.scm.SubversionSCM; +import hudson.security.csrf.CrumbIssuer; import hudson.slaves.CommandLauncher; import hudson.slaves.DumbSlave; import hudson.slaves.RetentionStrategy; @@ -61,8 +54,8 @@ import hudson.tasks.Maven; import hudson.tasks.Ant; import hudson.tasks.Ant.AntInstallation; import hudson.tasks.Maven.MavenInstallation; -import hudson.util.NullStream; -import hudson.util.ProcessTreeKiller; +import hudson.util.PersistedList; +import hudson.util.ReflectionUtils; import hudson.util.StreamTaskListener; import hudson.util.jna.GNUCLibrary; @@ -70,20 +63,26 @@ import java.io.BufferedReader; import java.io.File; import java.io.IOException; import java.io.InputStreamReader; -import java.io.OutputStream; -import java.io.PrintWriter; import java.lang.annotation.Annotation; import java.lang.ref.WeakReference; +import java.lang.reflect.Array; +import java.lang.reflect.Constructor; import java.lang.reflect.Method; import java.lang.reflect.Field; import java.net.MalformedURLException; +import java.net.URISyntaxException; import java.net.URL; import java.net.URLClassLoader; import java.util.ArrayList; import java.util.Enumeration; +import java.util.Iterator; import java.util.List; import java.util.Locale; import java.util.Arrays; +import java.util.Collections; +import java.util.UUID; +import java.util.concurrent.Callable; +import java.util.concurrent.Future; import java.util.jar.Manifest; import java.util.logging.Filter; import java.util.logging.Level; @@ -96,18 +95,32 @@ import javax.servlet.ServletContextEvent; import junit.framework.TestCase; +import net.sourceforge.htmlunit.corejs.javascript.Context; +import net.sourceforge.htmlunit.corejs.javascript.ContextFactory.Listener; +import org.acegisecurity.AuthenticationException; +import org.acegisecurity.BadCredentialsException; +import org.acegisecurity.GrantedAuthority; +import org.acegisecurity.userdetails.UserDetails; +import org.acegisecurity.userdetails.UsernameNotFoundException; +import org.apache.commons.httpclient.NameValuePair; import org.apache.commons.io.FileUtils; -import org.apache.commons.io.IOUtils; import org.apache.commons.beanutils.PropertyUtils; import org.apache.maven.artifact.Artifact; import org.apache.maven.artifact.resolver.AbstractArtifactResolutionException; import org.jvnet.hudson.test.HudsonHomeLoader.CopyExisting; import org.jvnet.hudson.test.recipes.Recipe; import org.jvnet.hudson.test.recipes.Recipe.Runner; +import org.jvnet.hudson.test.recipes.WithPlugin; import org.jvnet.hudson.test.rhino.JavaScriptDebugger; +import org.kohsuke.stapler.ClassDescriptor; +import org.kohsuke.stapler.DataBoundConstructor; import org.kohsuke.stapler.Dispatcher; import org.kohsuke.stapler.MetaClass; import org.kohsuke.stapler.MetaClassLoader; +import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.Stapler; +import org.mortbay.jetty.MimeTypes; import org.mortbay.jetty.Server; import org.mortbay.jetty.bio.SocketConnector; import org.mortbay.jetty.security.HashUserRealm; @@ -115,9 +128,9 @@ import org.mortbay.jetty.security.UserRealm; import org.mortbay.jetty.webapp.Configuration; import org.mortbay.jetty.webapp.WebAppContext; import org.mortbay.jetty.webapp.WebXmlConfiguration; -import org.mozilla.javascript.Context; -import org.mozilla.javascript.ContextFactory; -import org.tmatesoft.svn.core.SVNException; +import org.mozilla.javascript.tools.debugger.Dim; +import org.mozilla.javascript.tools.shell.Global; +import org.springframework.dao.DataAccessException; import org.w3c.css.sac.CSSException; import org.w3c.css.sac.CSSParseException; import org.w3c.css.sac.ErrorHandler; @@ -128,24 +141,24 @@ import com.gargoylesoftware.htmlunit.BrowserVersion; import com.gargoylesoftware.htmlunit.FailingHttpStatusCodeException; import com.gargoylesoftware.htmlunit.Page; import com.gargoylesoftware.htmlunit.WebRequestSettings; -import com.gargoylesoftware.htmlunit.html.HtmlButton; -import com.gargoylesoftware.htmlunit.html.HtmlForm; -import com.gargoylesoftware.htmlunit.html.HtmlPage; -import com.gargoylesoftware.htmlunit.html.HtmlElement; -import com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine; -import com.gargoylesoftware.htmlunit.javascript.host.Stylesheet; -import com.gargoylesoftware.htmlunit.javascript.host.XMLHttpRequest; +import com.gargoylesoftware.htmlunit.xml.XmlPage; +import com.gargoylesoftware.htmlunit.html.*; +import hudson.maven.MavenBuild; +import hudson.maven.MavenModule; +import hudson.maven.MavenModuleSetBuild; +import hudson.slaves.ComputerListener; +import java.util.concurrent.CountDownLatch; /** * Base class for all Hudson test cases. * - * @see Wiki article about unit testing in Hudson + * @see Wiki article about unit testing in Hudson * @author Kohsuke Kawaguchi */ -public abstract class HudsonTestCase extends TestCase { +public abstract class HudsonTestCase extends TestCase implements RootAction { public Hudson hudson; - protected final TestEnvironment env = new TestEnvironment(); + protected final TestEnvironment env = new TestEnvironment(this); protected HudsonHomeLoader homeLoader = HudsonHomeLoader.NEW; /** * TCP/IP port that the server is listening on. @@ -154,9 +167,11 @@ public abstract class HudsonTestCase extends TestCase { protected Server server; /** - * Where in the {@link Server} is Hudson deploed? + * Where in the {@link Server} is Hudson deployed? + *

      + * Just like {@link ServletContext#getContextPath()}, starts with '/' but doesn't end with '/'. */ - protected String contextPath = "/"; + protected String contextPath = ""; /** * {@link Runnable}s to be invoked at {@link #tearDown()}. @@ -181,6 +196,17 @@ public abstract class HudsonTestCase extends TestCase { */ protected JavaScriptDebugger jsDebugger = new JavaScriptDebugger(); + /** + * If this test case has additional {@link WithPlugin} annotations, set to true. + * This will cause a fresh {@link PluginManager} to be created for this test. + * Leaving this to false enables the test harness to use a pre-loaded plugin manager, + * which runs faster. + */ + public boolean useLocalPluginManager; + + public ComputerConnectorTester computerConnectorTester = new ComputerConnectorTester(this); + + protected HudsonTestCase(String name) { super(name); } @@ -188,14 +214,40 @@ public abstract class HudsonTestCase extends TestCase { protected HudsonTestCase() { } + @Override + public void runBare() throws Throwable { + // override the thread name to make the thread dump more useful. + Thread t = Thread.currentThread(); + String o = getClass().getName()+'.'+t.getName(); + t.setName("Executing "+getName()); + try { + super.runBare(); + } finally { + t.setName(o); + } + } + + @Override protected void setUp() throws Exception { env.pin(); recipe(); AbstractProject.WORKSPACE.toString(); + User.clear(); - hudson = newHudson(); + try { + hudson = newHudson(); + } catch (Exception e) { + // if Hudson instance fails to initialize, it leaves the instance field non-empty and break all the rest of the tests, so clean that up. + Field f = Hudson.class.getDeclaredField("theInstance"); + f.setAccessible(true); + f.set(null,null); + throw e; + } hudson.setNoUsageStatistics(true); // collecting usage stats from tests are pointless. + + hudson.setCrumbIssuer(new TestCrumbIssuer()); + hudson.servletContext.setAttribute("app",hudson); hudson.servletContext.setAttribute("version","?"); WebAppMain.installExpressionFactory(new ServletContextEvent(hudson.servletContext)); @@ -203,13 +255,11 @@ public abstract class HudsonTestCase extends TestCase { // set a default JDK to be the one that the harness is using. hudson.getJDKs().add(new JDK("default",System.getProperty("java.home"))); - // load updates from local proxy to avoid network traffic. - final String updateCenterUrl = "http://localhost:"+JavaNetReverseProxy.getInstance().localPort+"/"; - hudson.getUpdateCenter().configure(new UpdateCenterConfiguration() { - public String getUpdateCenterUrl() { - return updateCenterUrl; - } - }); + configureUpdateCenter(); + + // expose the test instance as a part of URL tree. + // this allows tests to use a part of the URL space for itself. + hudson.getActions().add(this); // cause all the descriptors to reload. // ideally we'd like to reset them to properly emulate the behavior, but that's not possible. @@ -218,46 +268,69 @@ public abstract class HudsonTestCase extends TestCase { d.load(); } - protected void tearDown() throws Exception { - // cancel pending asynchronous operations, although this doesn't really seem to be working - for (WeakReference client : clients) { - WebClient c = client.get(); - if(c==null) continue; - // unload the page to cancel asynchronous operations - c.getPage("about:blank"); - } - clients.clear(); - - server.stop(); - for (LenientRunnable r : tearDowns) - r.run(); + /** + * Configures the update center setting for the test. + * By default, we load updates from local proxy to avoid network traffic as much as possible. + */ + protected void configureUpdateCenter() throws Exception { + final String updateCenterUrl = "http://localhost:"+ JavaNetReverseProxy.getInstance().localPort+"/update-center.json"; - hudson.cleanUp(); - env.dispose(); - ExtensionList.clearLegacyInstances(); - DescriptorExtensionList.clearLegacyInstances(); + // don't waste bandwidth talking to the update center + DownloadService.neverUpdate = true; + UpdateSite.neverUpdate = true; - // Hudson creates ClassLoaders for plugins that hold on to file descriptors of its jar files, - // but because there's no explicit dispose method on ClassLoader, they won't get GC-ed until - // at some later point, leading to possible file descriptor overflow. So encourage GC now. - // see http://bugs.sun.com/view_bug.do?bug_id=4950148 - System.gc(); + PersistedList sites = hudson.getUpdateCenter().getSites(); + sites.clear(); + sites.add(new UpdateSite("default", updateCenterUrl)); } - protected void runTest() throws Throwable { - System.out.println("=== Starting "+getName()); - new JavaScriptEngine(null); // ensure that ContextFactory is initialized - Context cx= ContextFactory.getGlobal().enterContext(); + @Override + protected void tearDown() throws Exception { try { - cx.setOptimizationLevel(-1); - cx.setDebugger(jsDebugger,null); - - super.runTest(); + // cancel pending asynchronous operations, although this doesn't really seem to be working + for (WeakReference client : clients) { + WebClient c = client.get(); + if(c==null) continue; + // unload the page to cancel asynchronous operations + c.getPage("about:blank"); + } + clients.clear(); } finally { - Context.exit(); + server.stop(); + for (LenientRunnable r : tearDowns) + r.run(); + + hudson.cleanUp(); + env.dispose(); + ExtensionList.clearLegacyInstances(); + DescriptorExtensionList.clearLegacyInstances(); + + // Hudson creates ClassLoaders for plugins that hold on to file descriptors of its jar files, + // but because there's no explicit dispose method on ClassLoader, they won't get GC-ed until + // at some later point, leading to possible file descriptor overflow. So encourage GC now. + // see http://bugs.sun.com/view_bug.do?bug_id=4950148 + System.gc(); } } + @Override + protected void runTest() throws Throwable { + System.out.println("=== Starting "+ getClass().getSimpleName() + "." + getName()); + super.runTest(); + } + + public String getIconFileName() { + return null; + } + + public String getDisplayName() { + return null; + } + + public String getUrlName() { + return "self"; + } + /** * Creates a new instance of {@link Hudson}. If the derived class wants to create it in a different way, * you can override it. @@ -266,7 +339,7 @@ public abstract class HudsonTestCase extends TestCase { File home = homeLoader.allocate(); for (Runner r : recipes) r.decorateHome(this,home); - return new Hudson(home, createWebServer()); + return new Hudson(home, createWebServer(), useLocalPluginManager ? null : TestPluginManager.INSTANCE); } /** @@ -280,6 +353,7 @@ public abstract class HudsonTestCase extends TestCase { context.setClassLoader(getClass().getClassLoader()); context.setConfigurations(new Configuration[]{new WebXmlConfiguration(),new NoListenerConfiguration()}); server.setHandler(context); + context.setMimeTypes(MIME_TYPES); SocketConnector connector = new SocketConnector(); server.addConnector(connector); @@ -308,24 +382,33 @@ public abstract class HudsonTestCase extends TestCase { return realm; } +// /** +// * Sets guest credentials to access java.net Subversion repo. +// */ +// protected void setJavaNetCredential() throws SVNException, IOException { +// // set the credential to access svn.dev.java.net +// hudson.getDescriptorByType(SubversionSCM.DescriptorImpl.class).postCredential("https://svn.dev.java.net/svn/hudson/","guest","",null,new PrintWriter(new NullStream())); +// } + /** - * Sets guest credentials to access java.net Subversion repo. + * Returns the older default Maven, while still allowing specification of other bundled Mavens. */ - protected void setJavaNetCredential() throws SVNException, IOException { - // set the credential to access svn.dev.java.net - hudson.getDescriptorByType(SubversionSCM.DescriptorImpl.class).postCredential("https://svn.dev.java.net/svn/hudson/","guest","",null,new PrintWriter(new NullStream())); + protected MavenInstallation configureDefaultMaven() throws Exception { + return configureDefaultMaven("apache-maven-2.2.1", MavenInstallation.MAVEN_20); } - + /** * Locates Maven2 and configure that as the only Maven in the system. */ - protected MavenInstallation configureDefaultMaven() throws Exception { - // first if we are running inside Maven, pick that Maven. + protected MavenInstallation configureDefaultMaven(String mavenVersion, int mavenReqVersion) throws Exception { + // first if we are running inside Maven, pick that Maven, if it meets the criteria we require.. String home = System.getProperty("maven.home"); if(home!=null) { - MavenInstallation mavenInstallation = new MavenInstallation("default",home); - hudson.getDescriptorByType(Maven.DescriptorImpl.class).setInstallations(mavenInstallation); - return mavenInstallation; + MavenInstallation mavenInstallation = new MavenInstallation("default",home, NO_PROPERTIES); + if (mavenInstallation.meetsMavenReqVersion(createLocalLauncher(), mavenReqVersion)) { + hudson.getDescriptorByType(Maven.DescriptorImpl.class).setInstallations(mavenInstallation); + return mavenInstallation; + } } // otherwise extract the copy we have. @@ -333,20 +416,15 @@ public abstract class HudsonTestCase extends TestCase { LOGGER.warning("Extracting a copy of Maven bundled in the test harness. " + "To avoid a performance hit, set the system property 'maven.home' to point to a Maven2 installation."); FilePath mvn = hudson.getRootPath().createTempFile("maven", "zip"); - OutputStream os = mvn.write(); - try { - IOUtils.copy(HudsonTestCase.class.getClassLoader().getResourceAsStream("maven-2.0.7-bin.zip"), os); - } finally { - os.close(); - } + mvn.copyFrom(HudsonTestCase.class.getClassLoader().getResource(mavenVersion + "-bin.zip")); File mvnHome = createTmpDir(); mvn.unzip(new FilePath(mvnHome)); // TODO: switch to tar that preserves file permissions more easily - if(!Hudson.isWindows()) - GNUCLibrary.LIBC.chmod(new File(mvnHome,"maven-2.0.7/bin/mvn").getPath(),0755); + if(!Functions.isWindows()) + GNUCLibrary.LIBC.chmod(new File(mvnHome,mavenVersion+"/bin/mvn").getPath(),0755); MavenInstallation mavenInstallation = new MavenInstallation("default", - new File(mvnHome,"maven-2.0.7").getAbsolutePath()); + new File(mvnHome,mavenVersion).getAbsolutePath(), NO_PROPERTIES); hudson.getDescriptorByType(Maven.DescriptorImpl.class).setInstallations(mavenInstallation); return mavenInstallation; } @@ -357,24 +435,19 @@ public abstract class HudsonTestCase extends TestCase { protected Ant.AntInstallation configureDefaultAnt() throws Exception { Ant.AntInstallation antInstallation; if (System.getenv("ANT_HOME") != null) { - antInstallation = new AntInstallation("default", System.getenv("ANT_HOME")); + antInstallation = new AntInstallation("default", System.getenv("ANT_HOME"), NO_PROPERTIES); } else { LOGGER.warning("Extracting a copy of Ant bundled in the test harness. " + "To avoid a performance hit, set the environment variable ANT_HOME to point to an Ant installation."); FilePath ant = hudson.getRootPath().createTempFile("ant", "zip"); - OutputStream os = ant.write(); - try { - IOUtils.copy(HudsonTestCase.class.getClassLoader().getResourceAsStream("apache-ant-1.7.1-bin.zip"), os); - } finally { - os.close(); - } + ant.copyFrom(HudsonTestCase.class.getClassLoader().getResource("apache-ant-1.8.1-bin.zip")); File antHome = createTmpDir(); ant.unzip(new FilePath(antHome)); // TODO: switch to tar that preserves file permissions more easily - if(!Hudson.isWindows()) - GNUCLibrary.LIBC.chmod(new File(antHome,"apache-ant-1.7.1/bin/ant").getPath(),0755); + if(!Functions.isWindows()) + GNUCLibrary.LIBC.chmod(new File(antHome,"apache-ant-1.8.1/bin/ant").getPath(),0755); - antInstallation = new AntInstallation("default", new File(antHome,"apache-ant-1.7.1").getAbsolutePath()); + antInstallation = new AntInstallation("default", new File(antHome,"apache-ant-1.8.1").getAbsolutePath(),NO_PROPERTIES); } hudson.getDescriptorByType(Ant.DescriptorImpl.class).setInstallations(antInstallation); return antInstallation; @@ -426,7 +499,7 @@ public abstract class HudsonTestCase extends TestCase { * Creates {@link LocalLauncher}. Useful for launching processes. */ protected LocalLauncher createLocalLauncher() { - return new LocalLauncher(new StreamTaskListener(System.out)); + return new LocalLauncher(StreamTaskListener.fromStdout()); } /** @@ -437,7 +510,7 @@ public abstract class HudsonTestCase extends TestCase { } public DumbSlave createSlave() throws Exception { - return createSlave(null); + return createSlave("",null); } /** @@ -446,24 +519,125 @@ public abstract class HudsonTestCase extends TestCase { public DumbSlave createSlave(Label l) throws Exception { return createSlave(l, null); } - + /** - * Creates a slave with certain additional environment variables + * Creates a test {@link SecurityRealm} that recognizes username==password as valid. + */ + public SecurityRealm createDummySecurityRealm() { + return new AbstractPasswordBasedSecurityRealm() { + @Override + protected UserDetails authenticate(String username, String password) throws AuthenticationException { + if (username.equals(password)) + return loadUserByUsername(username); + throw new BadCredentialsException(username); + } + + @Override + public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException, DataAccessException { + return new org.acegisecurity.userdetails.User(username,"",true,true,true,true,new GrantedAuthority[]{AUTHENTICATED_AUTHORITY}); + } + + @Override + public GroupDetails loadGroupByGroupname(String groupname) throws UsernameNotFoundException, DataAccessException { + throw new UsernameNotFoundException(groupname); + } + }; + } + + /** + * Returns the URL of the webapp top page. + * URL ends with '/'. */ + public URL getURL() throws IOException { + return new URL("http://localhost:"+localPort+contextPath+"/"); + } + + public DumbSlave createSlave(EnvVars env) throws Exception { + return createSlave("",env); + } + public DumbSlave createSlave(Label l, EnvVars env) throws Exception { - CommandLauncher launcher = new CommandLauncher( - "\""+System.getProperty("java.home") + "/bin/java\" -jar \"" + - new File(hudson.getJnlpJars("slave.jar").getURL().toURI()).getAbsolutePath() + "\"", env); - - // this synchronization block is so that we don't end up adding the same slave name more than once. - synchronized (hudson) { - DumbSlave slave = new DumbSlave("slave" + hudson.getNodes().size(), "dummy", - createTmpDir().getPath(), "1", Mode.NORMAL, l==null?"":l.getName(), launcher, RetentionStrategy.NOOP); + return createSlave(l==null ? null : l.getExpression(), env); + } + + /** + * Creates a slave with certain additional environment variables + */ + public DumbSlave createSlave(String labels, EnvVars env) throws Exception { + synchronized (hudson) { + // this synchronization block is so that we don't end up adding the same slave name more than once. + + int sz = hudson.getNodes().size(); + + DumbSlave slave = new DumbSlave("slave" + sz, "dummy", + createTmpDir().getPath(), "1", Mode.NORMAL, labels==null?"":labels, createComputerLauncher(env), RetentionStrategy.NOOP, Collections.EMPTY_LIST); hudson.addNode(slave); return slave; } } + public PretendSlave createPretendSlave(FakeLauncher faker) throws Exception { + synchronized (hudson) { + int sz = hudson.getNodes().size(); + PretendSlave slave = new PretendSlave("slave" + sz, createTmpDir().getPath(), "", createComputerLauncher(null), faker); + hudson.addNode(slave); + return slave; + } + } + + /** + * Creates a {@link CommandLauncher} for launching a slave locally. + * + * @param env + * Environment variables to add to the slave process. Can be null. + */ + public CommandLauncher createComputerLauncher(EnvVars env) throws URISyntaxException, MalformedURLException { + int sz = hudson.getNodes().size(); + return new CommandLauncher( + String.format("\"%s/bin/java\" %s -jar \"%s\"", + System.getProperty("java.home"), + SLAVE_DEBUG_PORT>0 ? " -Xdebug -Xrunjdwp:transport=dt_socket,server=y,address="+(SLAVE_DEBUG_PORT+sz): "", + new File(hudson.getJnlpJars("slave.jar").getURL().toURI()).getAbsolutePath()), + env); + } + + /** + * Create a new slave on the local host and wait for it to come onilne + * before returning. + */ + public DumbSlave createOnlineSlave() throws Exception { + return createOnlineSlave(null); + } + + /** + * Create a new slave on the local host and wait for it to come onilne + * before returning. + */ + public DumbSlave createOnlineSlave(Label l) throws Exception { + return createOnlineSlave(l, null); + } + + /** + * Create a new slave on the local host and wait for it to come online + * before returning + */ + public DumbSlave createOnlineSlave(Label l, EnvVars env) throws Exception { + final CountDownLatch latch = new CountDownLatch(1); + ComputerListener waiter = new ComputerListener() { + @Override + public void onOnline(Computer C, TaskListener t) { + latch.countDown(); + unregister(); + } + }; + waiter.register(); + + DumbSlave s = createSlave(l, env); + latch.await(); + + return s; + } + /** * Blocks until the ENTER key is hit. * This is useful during debugging a test so that one can inspect the state of Hudson through the web browser. @@ -497,6 +671,44 @@ public abstract class HudsonTestCase extends TestCase { return new WebClient().search(q); } + /** + * Loads a configuration page and submits it without any modifications, to + * perform a round-trip configuration test. + *

      + * See http://wiki.hudson-ci.org/display/HUDSON/Unit+Test#UnitTest-Configurationroundtriptesting + */ + protected

      P configRoundtrip(P job) throws Exception { + submit(createWebClient().getPage(job,"configure").getFormByName("config")); + return job; + } + + /** + * Performs a configuration round-trip testing for a builder. + */ + protected B configRoundtrip(B before) throws Exception { + FreeStyleProject p = createFreeStyleProject(); + p.getBuildersList().add(before); + configRoundtrip(p); + return (B)p.getBuildersList().get(before.getClass()); + } + + /** + * Performs a configuration round-trip testing for a publisher. + */ + protected

      P configRoundtrip(P before) throws Exception { + FreeStyleProject p = createFreeStyleProject(); + p.getPublishersList().add(before); + configRoundtrip(p); + return (P)p.getPublishersList().get(before.getClass()); + } + + protected C configRoundtrip(C before) throws Exception { + computerConnectorTester.connector = before; + submit(createWebClient().goTo("self/computerConnectorTester/configure").getFormByName("config")); + return (C)computerConnectorTester.connector; + } + + /** * Asserts that the outcome of the build is a specific outcome. */ @@ -505,27 +717,69 @@ public abstract class HudsonTestCase extends TestCase { return r; // dump the build output in failure message - String msg = "unexpected build status; build log was:\n------\n" + r.getLog() + "\n------\n"; + String msg = "unexpected build status; build log was:\n------\n" + getLog(r) + "\n------\n"; if(r instanceof MatrixBuild) { MatrixBuild mb = (MatrixBuild)r; for (MatrixRun mr : mb.getRuns()) { - msg+="--- "+mr.getParent().getCombination()+" ---\n"+mr.getLog()+"\n------\n"; + msg+="--- "+mr.getParent().getCombination()+" ---\n"+getLog(mr)+"\n------\n"; } } assertEquals(msg, status,r.getResult()); return r; } + /** Determines whether the specifed HTTP status code is generally "good" */ + public boolean isGoodHttpStatus(int status) { + if ((400 <= status) && (status <= 417)) { + return false; + } + if ((500 <= status) && (status <= 505)) { + return false; + } + return true; + } + + /** Assert that the specifed page can be served with a "good" HTTP status, + * eg, the page is not missing and can be served without a server error + * @param page + */ + public void assertGoodStatus(Page page) { + assertTrue(isGoodHttpStatus(page.getWebResponse().getStatusCode())); + } + + public R assertBuildStatusSuccess(R r) throws Exception { assertBuildStatus(Result.SUCCESS,r); return r; } + public R assertBuildStatusSuccess(Future r) throws Exception { + assertNotNull("build was actually scheduled", r); + return assertBuildStatusSuccess(r.get()); + } + + public ,R extends AbstractBuild> R buildAndAssertSuccess(J job) throws Exception { + return assertBuildStatusSuccess(job.scheduleBuild2(0)); + } + + /** + * Avoids need for cumbersome {@code this.buildAndAssertSuccess(...)} type hints under JDK 7 javac (and supposedly also IntelliJ). + */ + public FreeStyleBuild buildAndAssertSuccess(FreeStyleProject job) throws Exception { + return assertBuildStatusSuccess(job.scheduleBuild2(0)); + } + public MavenModuleSetBuild buildAndAssertSuccess(MavenModuleSet job) throws Exception { + return assertBuildStatusSuccess(job.scheduleBuild2(0)); + } + public MavenBuild buildAndAssertSuccess(MavenModule job) throws Exception { + return assertBuildStatusSuccess(job.scheduleBuild2(0)); + } + /** * Asserts that the console output of the build contains the given substring. */ public void assertLogContains(String substring, Run run) throws Exception { - String log = run.getLog(); + String log = getLog(run); if(log.contains(substring)) return; // good! @@ -533,6 +787,14 @@ public abstract class HudsonTestCase extends TestCase { fail("Console output of "+run+" didn't contain "+substring); } + /** + * Get entire log file (this method is deprecated in hudson.model.Run, + * but in tests it is OK to load entire log). + */ + protected static String getLog(Run run) throws IOException { + return Util.loadFile(run.getLogFile(), run.getCharset()); + } + /** * Asserts that the XPath matches. */ @@ -541,8 +803,115 @@ public abstract class HudsonTestCase extends TestCase { page.getDocumentElement().selectSingleNode(xpath)); } + /** Asserts that the XPath matches the contents of a DomNode page. This + * variant of assertXPath(HtmlPage page, String xpath) allows us to + * examine XmlPages. + * @param page + * @param xpath + */ + public void assertXPath(DomNode page, String xpath) { + List< ? extends Object> nodes = page.getByXPath(xpath); + assertFalse("There should be an object that matches XPath:"+xpath, nodes.isEmpty()); + } + + public void assertXPathValue(DomNode page, String xpath, String expectedValue) { + Object node = page.getFirstByXPath(xpath); + assertNotNull("no node found", node); + assertTrue("the found object was not a Node " + xpath, node instanceof org.w3c.dom.Node); + + org.w3c.dom.Node n = (org.w3c.dom.Node) node; + String textString = n.getTextContent(); + assertEquals("xpath value should match for " + xpath, expectedValue, textString); + } + + public void assertXPathValueContains(DomNode page, String xpath, String needle) { + Object node = page.getFirstByXPath(xpath); + assertNotNull("no node found", node); + assertTrue("the found object was not a Node " + xpath, node instanceof org.w3c.dom.Node); + + org.w3c.dom.Node n = (org.w3c.dom.Node) node; + String textString = n.getTextContent(); + assertTrue("needle found in haystack", textString.contains(needle)); + } + + public void assertXPathResultsContainText(DomNode page, String xpath, String needle) { + List nodes = page.getByXPath(xpath); + assertFalse("no nodes matching xpath found", nodes.isEmpty()); + boolean found = false; + for (Object o : nodes) { + if (o instanceof org.w3c.dom.Node) { + org.w3c.dom.Node n = (org.w3c.dom.Node) o; + String textString = n.getTextContent(); + if ((textString != null) && textString.contains(needle)) { + found = true; + break; + } + } + } + assertTrue("needle found in haystack", found); + } + + + public void assertStringContains(String message, String haystack, String needle) { + if (haystack.contains(needle)) { + // good + return; + } else { + fail(message + " (seeking '" + needle + "')"); + } + } + + public void assertStringContains(String haystack, String needle) { + if (haystack.contains(needle)) { + // good + return; + } else { + fail("Could not find '" + needle + "'."); + } + } + + /** + * Asserts that help files exist for the specified properties of the given instance. + * + * @param type + * The describable class type that should have the associated help files. + * @param properties + * ','-separated list of properties whose help files should exist. + */ + public void assertHelpExists(final Class type, final String properties) throws Exception { + executeOnServer(new Callable() { + public Object call() throws Exception { + Descriptor d = hudson.getDescriptor(type); + WebClient wc = createWebClient(); + for (String property : listProperties(properties)) { + String url = d.getHelpFile(property); + assertNotNull("Help file for the property "+property+" is missing on "+type, url); + wc.goTo(url); // make sure it successfully loads + } + return null; + } + }); + } + + /** + * Tokenizes "foo,bar,zot,-bar" and returns "foo,zot" (the token that starts with '-' is handled as + * a cancellation. + */ + private List listProperties(String properties) { + List props = new ArrayList(Arrays.asList(properties.split(","))); + for (String p : props.toArray(new String[props.size()])) { + if (p.startsWith("-")) { + props.remove(p); + props.remove(p.substring(1)); + } + } + return props; + } + /** * Submits the form. + * + * Plain {@link HtmlForm#submit()} doesn't work correctly due to the use of YUI in Hudson. */ public HtmlPage submit(HtmlForm form) throws Exception { return (HtmlPage)form.submit((HtmlButton)last(form.getHtmlElementsByTagName("button"))); @@ -557,12 +926,34 @@ public abstract class HudsonTestCase extends TestCase { public HtmlPage submit(HtmlForm form, String name) throws Exception { for( HtmlElement e : form.getHtmlElementsByTagName("button")) { HtmlElement p = (HtmlElement)e.getParentNode().getParentNode(); - if(p.getAttribute("name").equals(name)) + if(p.getAttribute("name").equals(name)) { + // To make YUI event handling work, this combo seems to be necessary + // the click will trigger _onClick in buton-*.js, but it doesn't submit the form + // (a comment alluding to this behavior can be seen in submitForm method) + // so to complete it, submit the form later. + // + // Just doing form.submit() doesn't work either, because it doesn't do + // the preparation work needed to pass along the name of the button that + // triggered a submission (more concretely, m_oSubmitTrigger is not set.) + ((HtmlButton)e).click(); return (HtmlPage)form.submit((HtmlButton)e); + } } throw new AssertionError("No such submit button with the name "+name); } + protected HtmlInput findPreviousInputElement(HtmlElement current, String name) { + return (HtmlInput)current.selectSingleNode("(preceding::input[@name='_."+name+"'])[last()]"); + } + + protected HtmlButton getButtonByCaption(HtmlForm f, String s) { + for (HtmlElement b : f.getHtmlElementsByTagName("button")) { + if(b.getTextContent().trim().equals(s)) + return (HtmlButton)b; + } + return null; + } + /** * Creates a {@link TaskListener} connected to stdout. */ @@ -602,10 +993,9 @@ public abstract class HudsonTestCase extends TestCase { if(pd==null) { // field? try { - Field f1 = lhs.getClass().getField(p); - Field f2 = rhs.getClass().getField(p); - lp = f1.get(lhs); - rp = f2.get(rhs); + Field f = lhs.getClass().getField(p); + lp = f.get(lhs); + rp = f.get(rhs); } catch (NoSuchFieldException e) { assertNotNull("No such property "+p+" on "+lhs.getClass(),pd); return; @@ -614,10 +1004,142 @@ public abstract class HudsonTestCase extends TestCase { lp = PropertyUtils.getProperty(lhs, p); rp = PropertyUtils.getProperty(rhs, p); } + + if (lp!=null && rp!=null && lp.getClass().isArray() && rp.getClass().isArray()) { + // deep array equality comparison + int m = Array.getLength(lp); + int n = Array.getLength(rp); + assertEquals("Array length is different for property "+p, m,n); + for (int i=0; i primitiveProperties = new ArrayList(); + + String[] names = ClassDescriptor.loadParameterNames(lc); + Class[] types = lc.getParameterTypes(); + assertEquals(names.length,types.length); + for (int i=0; i findDataBoundConstructor(Class c) { + for (Constructor m : c.getConstructors()) { + if (m.getAnnotation(DataBoundConstructor.class)!=null) + return m; + } + return null; + } + + /** + * Gets the descriptor instance of the current Hudson by its type. + */ + protected > T get(Class d) { + return hudson.getDescriptorByType(d); + } + + + /** + * Returns true if Hudson is building something or going to build something. + */ + protected boolean isSomethingHappening() { + if (!hudson.getQueue().isEmpty()) + return true; + for (Computer n : hudson.getComputers()) + if (!n.isIdle()) + return true; + return false; + } + + /** + * Waits until Hudson finishes building everything, including those in the queue. + *

      + * This method uses a default time out to prevent infinite hang in the automated test execution environment. + */ + protected void waitUntilNoActivity() throws Exception { + waitUntilNoActivityUpTo(60*1000); + } + + /** + * Waits until Hudson finishes building everything, including those in the queue, or fail the test + * if the specified timeout milliseconds is + */ + protected void waitUntilNoActivityUpTo(int timeout) throws Exception { + long startTime = System.currentTimeMillis(); + int streak = 0; + + while (true) { + Thread.sleep(10); + if (isSomethingHappening()) + streak=0; + else + streak++; + + if (streak>5) // the system is quiet for a while + return; + + if (System.currentTimeMillis()-startTime > timeout) { + List building = new ArrayList(); + for (Computer c : hudson.getComputers()) { + for (Executor e : c.getExecutors()) { + if (e.isBusy()) + building.add(e.getCurrentExecutable()); + } + } + throw new AssertionError(String.format("Hudson is still doing something after %dms: queue=%s building=%s", + timeout, Arrays.asList(hudson.getQueue().getItems()), building)); + } + } + } + + // // recipe methods. Control the test environments. @@ -634,18 +1156,22 @@ public abstract class HudsonTestCase extends TestCase { protected void recipe() throws Exception { recipeLoadCurrentPlugin(); // look for recipe meta-annotation - Method runMethod= getClass().getMethod(getName()); - for( final Annotation a : runMethod.getAnnotations() ) { - Recipe r = a.annotationType().getAnnotation(Recipe.class); - if(r==null) continue; - final Runner runner = r.value().newInstance(); - recipes.add(runner); - tearDowns.add(new LenientRunnable() { - public void run() throws Exception { - runner.tearDown(HudsonTestCase.this,a); - } - }); - runner.setup(this,a); + try { + Method runMethod= getClass().getMethod(getName()); + for( final Annotation a : runMethod.getAnnotations() ) { + Recipe r = a.annotationType().getAnnotation(Recipe.class); + if(r==null) continue; + final Runner runner = r.value().newInstance(); + recipes.add(runner); + tearDowns.add(new LenientRunnable() { + public void run() throws Exception { + runner.tearDown(HudsonTestCase.this,a); + } + }); + runner.setup(this,a); + } + } catch (NoSuchMethodException e) { + // not a plain JUnit test. } } @@ -658,79 +1184,76 @@ public abstract class HudsonTestCase extends TestCase { * packaging is hpi. */ protected void recipeLoadCurrentPlugin() throws Exception { - Enumeration e = getClass().getClassLoader().getResources("the.hpl"); + final Enumeration e = getClass().getClassLoader().getResources("the.hpl"); if(!e.hasMoreElements()) return; // nope final URL hpl = e.nextElement(); - if(e.hasMoreElements()) { - // this happens if one plugin produces a test jar and another plugin depends on it. - // I can't think of a good way to make this work, so for now, just detect that and report an error. - URL hpl2 = e.nextElement(); - throw new Error("We have both "+hpl+" and "+hpl2); - } - recipes.add(new Runner() { @Override public void decorateHome(HudsonTestCase testCase, File home) throws Exception { - // make the plugin itself available - Manifest m = new Manifest(hpl.openStream()); - String shortName = m.getMainAttributes().getValue("Short-Name"); - if(shortName==null) - throw new Error(hpl+" doesn't have the Short-Name attribute"); - FileUtils.copyURLToFile(hpl,new File(home,"plugins/"+shortName+".hpl")); - - // make dependency plugins available - // TODO: probably better to read POM, but where to read from? - // TODO: this doesn't handle transitive dependencies - - // Tom: plugins are now searched on the classpath first. They should be available on - // the compile or test classpath. As a backup, we do a best-effort lookup in the Maven repository - // For transitive dependencies, we could evaluate Plugin-Dependencies transitively. - - String dependencies = m.getMainAttributes().getValue("Plugin-Dependencies"); - if(dependencies!=null) { - MavenEmbedder embedder = new MavenEmbedder(null); - embedder.setClassLoader(getClass().getClassLoader()); - embedder.start(); - for( String dep : dependencies.split(",")) { - String[] tokens = dep.split(":"); - String artifactId = tokens[0]; - String version = tokens[1]; - File dependencyJar=null; - // need to search multiple group IDs - // TODO: extend manifest to include groupID:artifactID:version - Exception resolutionError=null; - for (String groupId : new String[]{"org.jvnet.hudson.plugins","org.jvnet.hudson.main"}) { - - // first try to find it on the classpath. - // this takes advantage of Maven POM located in POM - URL dependencyPomResource = getClass().getResource("/META-INF/maven/"+groupId+"/"+artifactId+"/pom.xml"); - if (dependencyPomResource != null) { - // found it - dependencyJar = Which.jarFile(dependencyPomResource); - break; - } else { - Artifact a; - a = embedder.createArtifact(groupId, artifactId, version, "compile"/*doesn't matter*/, "hpi"); - try { - embedder.resolve(a, Arrays.asList(embedder.createRepository("http://maven.glassfish.org/content/groups/public/","repo")),embedder.getLocalRepository()); - dependencyJar = a.getFile(); - } catch (AbstractArtifactResolutionException x) { - // could be a wrong groupId - resolutionError = x; + while (e.hasMoreElements()) { + final URL hpl = e.nextElement(); + + // make the plugin itself available + Manifest m = new Manifest(hpl.openStream()); + String shortName = m.getMainAttributes().getValue("Short-Name"); + if(shortName==null) + throw new Error(hpl+" doesn't have the Short-Name attribute"); + FileUtils.copyURLToFile(hpl,new File(home,"plugins/"+shortName+".hpl")); + + // make dependency plugins available + // TODO: probably better to read POM, but where to read from? + // TODO: this doesn't handle transitive dependencies + + // Tom: plugins are now searched on the classpath first. They should be available on + // the compile or test classpath. As a backup, we do a best-effort lookup in the Maven repository + // For transitive dependencies, we could evaluate Plugin-Dependencies transitively. + + String dependencies = m.getMainAttributes().getValue("Plugin-Dependencies"); + if(dependencies!=null) { + MavenEmbedder embedder = new MavenEmbedder(null); + embedder.setClassLoader(getClass().getClassLoader()); + embedder.start(); + for( String dep : dependencies.split(",")) { + String[] tokens = dep.split(":"); + String artifactId = tokens[0]; + String version = tokens[1]; + File dependencyJar=null; + // need to search multiple group IDs + // TODO: extend manifest to include groupID:artifactID:version + Exception resolutionError=null; + for (String groupId : new String[]{"org.jvnet.hudson.plugins","org.jvnet.hudson.main"}) { + + // first try to find it on the classpath. + // this takes advantage of Maven POM located in POM + URL dependencyPomResource = getClass().getResource("/META-INF/maven/"+groupId+"/"+artifactId+"/pom.xml"); + if (dependencyPomResource != null) { + // found it + dependencyJar = Which.jarFile(dependencyPomResource); + break; + } else { + Artifact a; + a = embedder.createArtifact(groupId, artifactId, version, "compile"/*doesn't matter*/, "hpi"); + try { + embedder.resolve(a, Arrays.asList(embedder.createRepository("http://maven.glassfish.org/content/groups/public/","repo")),embedder.getLocalRepository()); + dependencyJar = a.getFile(); + } catch (AbstractArtifactResolutionException x) { + // could be a wrong groupId + resolutionError = x; + } } } - } - if(dependencyJar==null) - throw new Exception("Failed to resolve plugin: "+dep,resolutionError); + if(dependencyJar==null) + throw new Exception("Failed to resolve plugin: "+dep,resolutionError); - File dst = new File(home, "plugins/" + artifactId + ".hpi"); - if(!dst.exists() || dst.lastModified()!=dependencyJar.lastModified()) { - FileUtils.copyFile(dependencyJar, dst); + File dst = new File(home, "plugins/" + artifactId + ".hpi"); + if(!dst.exists() || dst.lastModified()!=dependencyJar.lastModified()) { + FileUtils.copyFile(dependencyJar, dst); + } } + embedder.stop(); } - embedder.stop(); } } }); @@ -762,6 +1285,39 @@ public abstract class HudsonTestCase extends TestCase { return this; } + + /** + * Executes the given closure on the server, in the context of an HTTP request. + * This is useful for testing some methods that require {@link StaplerRequest} and {@link StaplerResponse}. + * + *

      + * The closure will get the request and response as parameters. + */ + public V executeOnServer(final Callable c) throws Exception { + final Exception[] t = new Exception[1]; + final List r = new ArrayList(1); // size 1 list + + ClosureExecuterAction cea = hudson.getExtensionList(RootAction.class).get(ClosureExecuterAction.class); + UUID id = UUID.randomUUID(); + cea.add(id,new Runnable() { + public void run() { + try { + StaplerResponse rsp = Stapler.getCurrentResponse(); + rsp.setStatus(200); + rsp.setContentType("text/html"); + r.add(c.call()); + } catch (Exception e) { + t[0] = e; + } + } + }); + createWebClient().goTo("closures/?uuid="+id); + + if (t[0]!=null) + throw t[0]; + return r.get(0); + } + /** * Sometimes a part of a test case may ends up creeping into the serialization tree of {@link Saveable#save()}, * so detect that and flag that as an error. @@ -770,6 +1326,13 @@ public abstract class HudsonTestCase extends TestCase { throw new AssertionError("HudsonTestCase "+getName()+" is not supposed to be serialized"); } + /** + * This is to assist Groovy test clients who are incapable of instantiating the inner classes properly. + */ + public WebClient createWebClient() { + return new WebClient(); + } + /** * Extends {@link com.gargoylesoftware.htmlunit.WebClient} and provide convenience methods * for accessing Hudson. @@ -783,10 +1346,45 @@ public abstract class HudsonTestCase extends TestCase { // setJavaScriptEnabled(false); setPageCreator(HudsonPageCreator.INSTANCE); clients.add(new WeakReference(this)); - // make ajax calls synchronous for predictable behaviors that simplify debugging + // make ajax calls run as post-action for predictable behaviors that simplify debugging setAjaxController(new AjaxController() { public boolean processSynchron(HtmlPage page, WebRequestSettings settings, boolean async) { - return true; + return false; + } + }); + + setCssErrorHandler(new ErrorHandler() { + final ErrorHandler defaultHandler = new DefaultCssErrorHandler(); + + public void warning(CSSParseException exception) throws CSSException { + if (!ignore(exception)) + defaultHandler.warning(exception); + } + + public void error(CSSParseException exception) throws CSSException { + if (!ignore(exception)) + defaultHandler.error(exception); + } + + public void fatalError(CSSParseException exception) throws CSSException { + if (!ignore(exception)) + defaultHandler.fatalError(exception); + } + + private boolean ignore(CSSParseException e) { + return e.getURI().contains("/yui/"); + } + }); + + // if no other debugger is installed, install jsDebugger, + // so as not to interfere with the 'Dim' class. + getJavaScriptEngine().getContextFactory().addListener(new Listener() { + public void contextCreated(Context cx) { + if (cx.getDebugger() == null) + cx.setDebugger(jsDebugger, null); + } + + public void contextReleased(Context cx) { } }); } @@ -795,7 +1393,7 @@ public abstract class HudsonTestCase extends TestCase { * Logs in to Hudson. */ public WebClient login(String username, String password) throws Exception { - HtmlPage page = goTo("login"); + HtmlPage page = goTo("/login"); // page = (HtmlPage) page.getFirstAnchorByText("Login").click(); HtmlForm form = page.getFormByName("login"); @@ -857,6 +1455,14 @@ public abstract class HudsonTestCase extends TestCase { return goTo(item.toComputer().getUrl()+relative); } + public HtmlPage getPage(View view) throws IOException, SAXException { + return goTo(view.getUrl()); + } + + public HtmlPage getPage(View view, String relative) throws IOException, SAXException { + return goTo(view.getUrl()+relative); + } + /** * @deprecated * This method expects a full URL. This method is marked as deprecated to warn you @@ -864,6 +1470,7 @@ public abstract class HudsonTestCase extends TestCase { * a relative path within the Hudson being tested. (IOW, if you really need to hit * a website on the internet, there's nothing wrong with using this method.) */ + @Override public Page getPage(String url) throws IOException, FailingHttpStatusCodeException { return super.getPage(url); } @@ -885,15 +1492,96 @@ public abstract class HudsonTestCase extends TestCase { } public Page goTo(String relative, String expectedContentType) throws IOException, SAXException { - return super.getPage(getContextPath() +relative); + Page p = super.getPage(getContextPath() + relative); + assertEquals(expectedContentType,p.getWebResponse().getContentType()); + return p; } + /** Loads a page as XML. Useful for testing Hudson's xml api, in concert with + * assertXPath(DomNode page, String xpath) + * @param path the path part of the url to visit + * @return the XmlPage found at that url + * @throws IOException + * @throws SAXException + */ + public XmlPage goToXml(String path) throws IOException, SAXException { + Page page = goTo(path, "application/xml"); + if (page instanceof XmlPage) + return (XmlPage) page; + else + return null; + } + + /** * Returns the URL of the webapp top page. * URL ends with '/'. */ - public String getContextPath() { - return "http://localhost:"+localPort+contextPath; + public String getContextPath() throws IOException { + return getURL().toExternalForm(); + } + + /** + * Adds a security crumb to the quest + */ + public WebRequestSettings addCrumb(WebRequestSettings req) { + NameValuePair crumb[] = { new NameValuePair() }; + + crumb[0].setName(hudson.getCrumbIssuer().getDescriptor().getCrumbRequestField()); + crumb[0].setValue(hudson.getCrumbIssuer().getCrumb( null )); + + req.setRequestParameters(Arrays.asList( crumb )); + return req; + } + + /** + * Creates a URL with crumb parameters relative to {{@link #getContextPath()} + */ + public URL createCrumbedUrl(String relativePath) throws IOException { + CrumbIssuer issuer = hudson.getCrumbIssuer(); + String crumbName = issuer.getDescriptor().getCrumbRequestField(); + String crumb = issuer.getCrumb(null); + + return new URL(getContextPath()+relativePath+"?"+crumbName+"="+crumb); + } + + /** + * Makes an HTTP request, process it with the given request handler, and returns the response. + */ + public HtmlPage eval(final Runnable requestHandler) throws IOException, SAXException { + ClosureExecuterAction cea = hudson.getExtensionList(RootAction.class).get(ClosureExecuterAction.class); + UUID id = UUID.randomUUID(); + cea.add(id,requestHandler); + return goTo("closures/?uuid="+id); + } + + /** + * Starts an interactive JavaScript debugger, and break at the next JavaScript execution. + * + *

      + * This is useful during debugging a test so that you can step execute and inspect state of JavaScript. + * This will launch a Swing GUI, and the method returns immediately. + * + *

      + * Note that installing a debugger appears to make an execution of JavaScript substantially slower. + * + *

      + * TODO: because each script block evaluation in HtmlUnit is done in a separate Rhino context, + * if you step over from one script block, the debugger fails to kick in on the beginning of the next script block. + * This makes it difficult to set a break point on arbitrary script block in the HTML page. We need to fix this + * by tweaking {@link Dim.StackFrame#onLineChange(Context, int)}. + */ + public Dim interactiveJavaScriptDebugger() { + Global global = new Global(); + HtmlUnitContextFactory cf = getJavaScriptEngine().getContextFactory(); + global.init(cf); + + Dim dim = org.mozilla.javascript.tools.debugger.Main.mainEmbedded(cf, global, "Rhino debugger: " + getName()); + + // break on exceptions. this catch most of the errors + dim.setBreakOnExceptions(true); + + return dim; } } @@ -903,8 +1591,6 @@ public abstract class HudsonTestCase extends TestCase { static { // screen scraping relies on locale being fixed. Locale.setDefault(Locale.ENGLISH); - // don't waste bandwidth talking to the update center - UpdateCenter.neverUpdate = true; {// enable debug assistance, since tests are often run from IDE Dispatcher.TRACE = true; @@ -914,43 +1600,17 @@ public abstract class HudsonTestCase extends TestCase { if(dir.exists() && MetaClassLoader.debugLoader==null) try { MetaClassLoader.debugLoader = new MetaClassLoader( - new URLClassLoader(new URL[]{dir.toURL()})); + new URLClassLoader(new URL[]{dir.toURI().toURL()})); } catch (MalformedURLException e) { throw new AssertionError(e); } } - // we don't care CSS errors in YUI - final ErrorHandler defaultHandler = Stylesheet.CSS_ERROR_HANDLER; - Stylesheet.CSS_ERROR_HANDLER = new ErrorHandler() { - public void warning(CSSParseException exception) throws CSSException { - if(!ignore(exception)) - defaultHandler.warning(exception); - } - - public void error(CSSParseException exception) throws CSSException { - if(!ignore(exception)) - defaultHandler.error(exception); - } - - public void fatalError(CSSParseException exception) throws CSSException { - if(!ignore(exception)) - defaultHandler.fatalError(exception); - } - - private boolean ignore(CSSParseException e) { - return e.getURI().contains("/yui/"); - } - }; - - // clean up run-away processes extra hard - ProcessTreeKiller.enabled = true; - // suppress INFO output from Spring, which is verbose Logger.getLogger("org.springframework").setLevel(Level.WARNING); // hudson-behavior.js relies on this to decide whether it's running unit tests. - Functions.isUnitTest = true; + Main.isUnitTest = true; // prototype.js calls this method all the time, so ignore this warning. XML_HTTP_REQUEST_LOGGER.setFilter(new Filter() { @@ -958,7 +1618,31 @@ public abstract class HudsonTestCase extends TestCase { return !record.getMessage().contains("XMLHttpRequest.getResponseHeader() was called before the response was available."); } }); + + // remove the upper bound of the POST data size in Jetty. + System.setProperty("org.mortbay.jetty.Request.maxFormContentSize","-1"); } private static final Logger LOGGER = Logger.getLogger(HudsonTestCase.class.getName()); + + protected static final List> NO_PROPERTIES = Collections.>emptyList(); + + /** + * Specify this to a TCP/IP port number to have slaves started with the debugger. + */ + public static int SLAVE_DEBUG_PORT = Integer.getInteger(HudsonTestCase.class.getName()+".slaveDebugPort",-1); + + public static final MimeTypes MIME_TYPES = new MimeTypes(); + static { + MIME_TYPES.addMimeMapping("js","application/javascript"); + Functions.DEBUG_YUI = true; + + // during the unit test, predictably releasing classloader is important to avoid + // file descriptor leak. + ClassicPluginStrategy.useAntClassLoader = true; + + // DNS multicast support takes up a lot of time during tests, so just disable it altogether + // this also prevents tests from falsely advertising Hudson + DNSMultiCast.disabled = true; + } } diff --git a/test/src/main/java/org/jvnet/hudson/test/JavaNetReverseProxy.java b/test/src/main/java/org/jvnet/hudson/test/JavaNetReverseProxy.java index 3deb71c8347f031846c0993a46e43799958bc14c..94552b34912417757def5bd6cf0d09cbffc7ed0d 100644 --- a/test/src/main/java/org/jvnet/hudson/test/JavaNetReverseProxy.java +++ b/test/src/main/java/org/jvnet/hudson/test/JavaNetReverseProxy.java @@ -1,8 +1,8 @@ package org.jvnet.hudson.test; import hudson.Util; +import hudson.util.IOUtils; import org.apache.commons.io.FileUtils; -import org.apache.commons.io.IOUtils; import org.mortbay.jetty.Server; import org.mortbay.jetty.bio.SocketConnector; import org.mortbay.jetty.handler.ContextHandlerCollection; @@ -14,7 +14,6 @@ import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.File; -import java.io.FileInputStream; import java.io.IOException; import java.net.URL; @@ -81,12 +80,12 @@ public class JavaNetReverseProxy extends HttpServlet { File cache = new File(cacheFolder, d); if(!cache.exists()) { - URL url = new URL("https://hudson.dev.java.net/" + path); + URL url = new URL("http://hudson-ci.org/" + path); FileUtils.copyURLToFile(url,cache); } resp.setContentType(getMimeType(path)); - IOUtils.copy(new FileInputStream(cache),resp.getOutputStream()); + IOUtils.copy(cache,resp.getOutputStream()); } private String getMimeType(String path) { @@ -105,7 +104,7 @@ public class JavaNetReverseProxy extends HttpServlet { public static synchronized JavaNetReverseProxy getInstance() throws Exception { if(INSTANCE==null) // TODO: think of a better location --- ideally inside the target/ dir so that clean would wipe them out - INSTANCE = new JavaNetReverseProxy(new File(new File(System.getProperty("java.io.tmpdir")),"java.net-cache")); + INSTANCE = new JavaNetReverseProxy(new File(new File(System.getProperty("java.io.tmpdir")),"hudson-ci.org-cache2")); return INSTANCE; } } diff --git a/test/src/main/java/org/jvnet/hudson/test/JellyTestSuiteBuilder.java b/test/src/main/java/org/jvnet/hudson/test/JellyTestSuiteBuilder.java new file mode 100644 index 0000000000000000000000000000000000000000..0f925baa319dd9b00faeccade7884b3aede4b4fb --- /dev/null +++ b/test/src/main/java/org/jvnet/hudson/test/JellyTestSuiteBuilder.java @@ -0,0 +1,147 @@ +/* + * The MIT License + * + * Copyright (c) 2004-2009, Sun Microsystems, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package org.jvnet.hudson.test; + +import junit.framework.TestCase; +import junit.framework.TestResult; +import junit.framework.TestSuite; +import org.apache.commons.io.FileUtils; +import org.dom4j.Document; +import org.dom4j.io.SAXReader; +import org.jvnet.hudson.test.junit.GroupedTest; +import org.kohsuke.stapler.MetaClassLoader; +import org.kohsuke.stapler.jelly.JellyClassLoaderTearOff; + +import java.io.File; +import java.net.URL; +import java.util.Collection; +import java.util.Enumeration; +import java.util.concurrent.Callable; +import java.util.jar.JarEntry; +import java.util.jar.JarFile; + +/** + * Builds up a {@link TestSuite} for performing static syntax checks on Jelly scripts. + * + * @author Kohsuke Kawaguchi + */ +public class JellyTestSuiteBuilder { + /** + * Given a jar file or a class file directory, recursively search all the Jelly files and build a {@link TestSuite} + * that performs static syntax checks. + */ + public static TestSuite build(File res) throws Exception { + TestSuite ts = new JellyTestSuite(); + + final JellyClassLoaderTearOff jct = new MetaClassLoader(JellyTestSuiteBuilder.class.getClassLoader()).loadTearOff(JellyClassLoaderTearOff.class); + + if (res.isDirectory()) { + for (final File jelly : (Collection )FileUtils.listFiles(res,new String[]{"jelly"},true)) + ts.addTest(new JellyCheck(jelly.toURI().toURL(), jct)); + } + if (res.getName().endsWith(".jar")) { + String jarUrl = res.toURI().toURL().toExternalForm(); + JarFile jf = new JarFile(res); + Enumeration e = jf.entries(); + while (e.hasMoreElements()) { + JarEntry ent = e.nextElement(); + if (ent.getName().endsWith(".jelly")) + ts.addTest(new JellyCheck(new URL("jar:"+jarUrl+"!/"+ent.getName()), jct)); + } + jf.close(); + } + return ts; + } + + private static class JellyCheck extends TestCase { + private final URL jelly; + private final JellyClassLoaderTearOff jct; + + public JellyCheck(URL jelly, JellyClassLoaderTearOff jct) { + super(jelly.getPath()); + this.jelly = jelly; + this.jct = jct; + } + + @Override + protected void runTest() throws Exception { + jct.createContext().compileScript(jelly); + Document dom = new SAXReader().read(jelly); + checkLabelFor(dom); + // TODO: what else can we check statically? use of taglibs? + } + + /** + * Makes sure that <label for=...> is not used inside config.jelly nor global.jelly + */ + private void checkLabelFor(Document dom) { + if (isConfigJelly() || isGlobalJelly()) { + if (!dom.selectNodes("//label[@for]").isEmpty()) + throw new AssertionError("